@cdk_utils/iam 1.3.0 → 1.4.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.
- package/.jsii +2864 -1444
- package/lib/generated/services/a2c.js +1 -1
- package/lib/generated/services/a4b.js +3 -3
- package/lib/generated/services/access-analyzer.js +4 -4
- package/lib/generated/services/account-access.js +4 -4
- package/lib/generated/services/account.js +4 -4
- package/lib/generated/services/acm-pca.js +4 -4
- package/lib/generated/services/acm.js +4 -4
- package/lib/generated/services/aco-automation.js +4 -4
- package/lib/generated/services/action-recommendations.js +1 -1
- package/lib/generated/services/activate.js +1 -1
- package/lib/generated/services/agent-registry.js +4 -4
- package/lib/generated/services/agentaccess-mcp.js +2 -2
- package/lib/generated/services/aidevops.js +4 -4
- package/lib/generated/services/aiops.js +4 -4
- package/lib/generated/services/airflow-serverless.js +4 -4
- package/lib/generated/services/airflow.js +4 -4
- package/lib/generated/services/amplify.js +4 -4
- package/lib/generated/services/amplifybackend.js +3 -3
- package/lib/generated/services/amplifyuibuilder.js +4 -4
- package/lib/generated/services/aoss.js +4 -4
- package/lib/generated/services/apigateway.js +4 -4
- package/lib/generated/services/app-integrations.js +4 -4
- package/lib/generated/services/appconfig.d.ts +126 -0
- package/lib/generated/services/appconfig.js +157 -15
- package/lib/generated/services/appfabric.js +4 -4
- package/lib/generated/services/appflow.js +4 -4
- package/lib/generated/services/application-autoscaling.js +4 -4
- package/lib/generated/services/application-signals-mcp.js +3 -3
- package/lib/generated/services/application-signals.js +4 -4
- package/lib/generated/services/application-transformation.js +1 -1
- package/lib/generated/services/applicationinsights.js +3 -3
- package/lib/generated/services/appmesh-preview.js +2 -2
- package/lib/generated/services/appmesh.js +4 -4
- package/lib/generated/services/apprunner.js +4 -4
- package/lib/generated/services/appstream.js +4 -4
- package/lib/generated/services/appstudio.js +2 -2
- package/lib/generated/services/appsync.js +4 -4
- package/lib/generated/services/apptest.js +3 -3
- package/lib/generated/services/aps.js +4 -4
- package/lib/generated/services/arc-region-switch.js +4 -4
- package/lib/generated/services/arc-zonal-shift.js +4 -4
- package/lib/generated/services/arsenal.js +1 -1
- package/lib/generated/services/artifact.js +4 -4
- package/lib/generated/services/athena.js +4 -4
- package/lib/generated/services/auditmanager.js +4 -4
- package/lib/generated/services/autoscaling-plans.js +2 -2
- package/lib/generated/services/autoscaling.js +4 -4
- package/lib/generated/services/aws-external-anthropic.js +3 -3
- package/lib/generated/services/aws-marketplace-management.js +1 -1
- package/lib/generated/services/aws-marketplace.js +4 -4
- package/lib/generated/services/aws-portal.js +1 -1
- package/lib/generated/services/awsconnector.js +1 -1
- package/lib/generated/services/b2bi.js +4 -4
- package/lib/generated/services/backup-gateway.js +4 -4
- package/lib/generated/services/backup-search.js +4 -4
- package/lib/generated/services/backup-storage.js +1 -1
- package/lib/generated/services/backup.js +4 -4
- package/lib/generated/services/batch.js +4 -4
- package/lib/generated/services/bcm-dashboards.js +4 -4
- package/lib/generated/services/bcm-data-exports.js +4 -4
- package/lib/generated/services/bcm-pricing-calculator.js +4 -4
- package/lib/generated/services/bcm-recommended-actions.js +2 -2
- package/lib/generated/services/bedrock-agentcore.js +4 -4
- package/lib/generated/services/bedrock-mantle.js +3 -3
- package/lib/generated/services/bedrock-websearch.js +2 -2
- package/lib/generated/services/bedrock.d.ts +65 -0
- package/lib/generated/services/bedrock.js +75 -5
- package/lib/generated/services/billing.js +4 -4
- package/lib/generated/services/billingconductor.js +4 -4
- package/lib/generated/services/braket.js +4 -4
- package/lib/generated/services/budgets.js +4 -4
- package/lib/generated/services/bugbust.js +3 -3
- package/lib/generated/services/cases.js +4 -4
- package/lib/generated/services/cassandra.js +4 -4
- package/lib/generated/services/ce.js +4 -4
- package/lib/generated/services/chatbot.js +4 -4
- package/lib/generated/services/chime.js +4 -4
- package/lib/generated/services/cleanrooms-ml.js +4 -4
- package/lib/generated/services/cleanrooms.js +4 -4
- package/lib/generated/services/cloud9.js +4 -4
- package/lib/generated/services/clouddirectory.js +3 -3
- package/lib/generated/services/cloudformation.js +4 -4
- package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
- package/lib/generated/services/cloudfront.js +4 -4
- package/lib/generated/services/cloudhsm.js +4 -4
- package/lib/generated/services/cloudsearch.js +3 -3
- package/lib/generated/services/cloudshell.js +3 -3
- package/lib/generated/services/cloudtrail-data.js +4 -4
- package/lib/generated/services/cloudtrail.js +4 -4
- package/lib/generated/services/cloudwatch.js +4 -4
- package/lib/generated/services/codeartifact.js +4 -4
- package/lib/generated/services/codebuild.js +4 -4
- package/lib/generated/services/codecatalyst.js +4 -4
- package/lib/generated/services/codecommit.js +4 -4
- package/lib/generated/services/codeconnections.js +4 -4
- package/lib/generated/services/codedeploy-commands-secure.js +1 -1
- package/lib/generated/services/codedeploy.js +4 -4
- package/lib/generated/services/codeguru-profiler.js +4 -4
- package/lib/generated/services/codeguru-reviewer.js +4 -4
- package/lib/generated/services/codeguru-security.js +4 -4
- package/lib/generated/services/codeguru.js +1 -1
- package/lib/generated/services/codepipeline.js +4 -4
- package/lib/generated/services/codestar-connections.js +4 -4
- package/lib/generated/services/codestar-notifications.js +4 -4
- package/lib/generated/services/codestar.js +3 -3
- package/lib/generated/services/codewhisperer.js +3 -3
- package/lib/generated/services/cognito-identity.js +4 -4
- package/lib/generated/services/cognito-idp.js +4 -4
- package/lib/generated/services/cognito-sync.js +3 -3
- package/lib/generated/services/comprehend.js +4 -4
- package/lib/generated/services/comprehendmedical.js +3 -3
- package/lib/generated/services/compute-optimizer.js +3 -3
- package/lib/generated/services/config.js +4 -4
- package/lib/generated/services/connect-campaigns.js +4 -4
- package/lib/generated/services/connect.js +4 -4
- package/lib/generated/services/consoleapp.js +2 -2
- package/lib/generated/services/consolidatedbilling.js +1 -1
- package/lib/generated/services/controlcatalog.js +3 -3
- package/lib/generated/services/controltower.js +4 -4
- package/lib/generated/services/cost-optimization-hub.js +2 -2
- package/lib/generated/services/cur.js +4 -4
- package/lib/generated/services/customer-verification.js +1 -1
- package/lib/generated/services/databrew.js +4 -4
- package/lib/generated/services/dataexchange.js +4 -4
- package/lib/generated/services/datapipeline.js +4 -4
- package/lib/generated/services/datasync.js +4 -4
- package/lib/generated/services/datazone.js +4 -4
- package/lib/generated/services/dax.js +4 -4
- package/lib/generated/services/dbqms.js +1 -1
- package/lib/generated/services/deadline.js +4 -4
- package/lib/generated/services/detective.js +4 -4
- package/lib/generated/services/devicefarm.js +4 -4
- package/lib/generated/services/devops-guru.js +4 -4
- package/lib/generated/services/directconnect.js +4 -4
- package/lib/generated/services/discovery.js +3 -3
- package/lib/generated/services/dlm.js +4 -4
- package/lib/generated/services/dms.js +4 -4
- package/lib/generated/services/docdb-elastic.js +4 -4
- package/lib/generated/services/drs.js +4 -4
- package/lib/generated/services/ds-data.js +4 -4
- package/lib/generated/services/ds.js +4 -4
- package/lib/generated/services/dsql.js +4 -4
- package/lib/generated/services/dynamodb.js +4 -4
- package/lib/generated/services/ebs.js +4 -4
- package/lib/generated/services/ec2-instance-connect.js +4 -4
- package/lib/generated/services/ec2.js +4 -4
- package/lib/generated/services/ec2messages.js +2 -2
- package/lib/generated/services/ecr-public.js +4 -4
- package/lib/generated/services/ecr.js +4 -4
- package/lib/generated/services/ecs-mcp.js +1 -1
- package/lib/generated/services/ecs.js +4 -4
- package/lib/generated/services/eks-auth.js +4 -4
- package/lib/generated/services/eks-mcp.js +1 -1
- package/lib/generated/services/eks.js +4 -4
- package/lib/generated/services/elasticache.js +4 -4
- package/lib/generated/services/elasticbeanstalk.js +4 -4
- package/lib/generated/services/elasticfilesystem.js +4 -4
- package/lib/generated/services/elasticloadbalancing.js +4 -4
- package/lib/generated/services/elasticmapreduce.js +4 -4
- package/lib/generated/services/elastictranscoder.js +2 -2
- package/lib/generated/services/elemental-activations.js +1 -1
- package/lib/generated/services/elemental-appliances-software.js +2 -2
- package/lib/generated/services/elemental-inference.js +4 -4
- package/lib/generated/services/elemental-support-cases.js +3 -3
- package/lib/generated/services/elemental-support-content.js +1 -1
- package/lib/generated/services/emr-containers.js +4 -4
- package/lib/generated/services/emr-serverless.js +4 -4
- package/lib/generated/services/entityresolution.js +4 -4
- package/lib/generated/services/es.js +4 -4
- package/lib/generated/services/events.js +4 -4
- package/lib/generated/services/eventsbilltoaws.js +3 -3
- package/lib/generated/services/evidently.js +3 -3
- package/lib/generated/services/evs.js +4 -4
- package/lib/generated/services/execute-api.js +4 -4
- package/lib/generated/services/finops-agent.js +1 -1
- package/lib/generated/services/finspace-api.js +3 -3
- package/lib/generated/services/finspace.js +4 -4
- package/lib/generated/services/firehose.js +4 -4
- package/lib/generated/services/fis.js +4 -4
- package/lib/generated/services/fms.js +4 -4
- package/lib/generated/services/forecast.js +4 -4
- package/lib/generated/services/frauddetector.js +4 -4
- package/lib/generated/services/freertos.js +3 -3
- package/lib/generated/services/freetier.js +2 -2
- package/lib/generated/services/fsx.js +4 -4
- package/lib/generated/services/gamelift.js +4 -4
- package/lib/generated/services/gameliftstreams.js +4 -4
- package/lib/generated/services/geo-maps.js +3 -3
- package/lib/generated/services/geo-places.js +3 -3
- package/lib/generated/services/geo-routes.js +3 -3
- package/lib/generated/services/geo.js +4 -4
- package/lib/generated/services/glacier.js +4 -4
- package/lib/generated/services/globalaccelerator.js +4 -4
- package/lib/generated/services/glue.js +4 -4
- package/lib/generated/services/grafana.js +4 -4
- package/lib/generated/services/greengrass.js +4 -4
- package/lib/generated/services/groundstation.js +4 -4
- package/lib/generated/services/groundtruthlabeling.js +1 -1
- package/lib/generated/services/guardduty.js +4 -4
- package/lib/generated/services/health-agent.js +4 -4
- package/lib/generated/services/health.js +4 -4
- package/lib/generated/services/healthlake.js +4 -4
- package/lib/generated/services/honeycode.js +2 -2
- package/lib/generated/services/iam.js +4 -4
- package/lib/generated/services/identity-sync.js +2 -2
- package/lib/generated/services/identitystore-auth.js +1 -1
- package/lib/generated/services/identitystore.js +4 -4
- package/lib/generated/services/imagebuilder.js +4 -4
- package/lib/generated/services/importexport.js +2 -2
- package/lib/generated/services/inspector-scan.js +2 -2
- package/lib/generated/services/inspector.js +2 -2
- package/lib/generated/services/inspector2-telemetry.js +1 -1
- package/lib/generated/services/inspector2.js +4 -4
- package/lib/generated/services/interconnect.js +4 -4
- package/lib/generated/services/internetmonitor.js +4 -4
- package/lib/generated/services/invoicing.js +4 -4
- package/lib/generated/services/iot-device-tester.js +1 -1
- package/lib/generated/services/iot.js +4 -4
- package/lib/generated/services/iotanalytics.js +3 -3
- package/lib/generated/services/iotdeviceadvisor.js +4 -4
- package/lib/generated/services/iotevents.js +3 -3
- package/lib/generated/services/iotfleethub.js +3 -3
- package/lib/generated/services/iotfleetwise.js +4 -4
- package/lib/generated/services/iotjobsdata.js +4 -4
- package/lib/generated/services/iotmanagedintegrations.js +4 -4
- package/lib/generated/services/iotsitewise.js +4 -4
- package/lib/generated/services/iottwinmaker.js +4 -4
- package/lib/generated/services/iotwireless.js +4 -4
- package/lib/generated/services/iq-permission.js +2 -2
- package/lib/generated/services/iq.js +2 -2
- package/lib/generated/services/ivs.js +4 -4
- package/lib/generated/services/ivschat.js +4 -4
- package/lib/generated/services/kafka-cluster.js +3 -3
- package/lib/generated/services/kafka.js +4 -4
- package/lib/generated/services/kafkaconnect.js +4 -4
- package/lib/generated/services/kendra-ranking.js +4 -4
- package/lib/generated/services/kendra.js +4 -4
- package/lib/generated/services/kinesis.js +4 -4
- package/lib/generated/services/kinesisanalytics.js +4 -4
- package/lib/generated/services/kinesisvideo.js +4 -4
- package/lib/generated/services/kms.js +4 -4
- package/lib/generated/services/lakeformation.js +3 -3
- package/lib/generated/services/lambda.js +4 -4
- package/lib/generated/services/launchwizard.js +4 -4
- package/lib/generated/services/lex.js +4 -4
- package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
- package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
- package/lib/generated/services/license-manager.js +4 -4
- package/lib/generated/services/lightsail.js +4 -4
- package/lib/generated/services/logs.js +4 -4
- package/lib/generated/services/lookoutequipment.js +4 -4
- package/lib/generated/services/lookoutmetrics.js +3 -3
- package/lib/generated/services/lookoutvision.js +3 -3
- package/lib/generated/services/m2.js +4 -4
- package/lib/generated/services/machinelearning.js +3 -3
- package/lib/generated/services/macie2.js +4 -4
- package/lib/generated/services/managedblockchain-query.js +2 -2
- package/lib/generated/services/managedblockchain.js +4 -4
- package/lib/generated/services/mapcredits.js +2 -2
- package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
- package/lib/generated/services/mechanicalturk.js +2 -2
- package/lib/generated/services/mediaconnect.js +4 -4
- package/lib/generated/services/mediaconvert.js +4 -4
- package/lib/generated/services/mediaimport.js +1 -1
- package/lib/generated/services/medialive.js +4 -4
- package/lib/generated/services/mediapackage-vod.js +4 -4
- package/lib/generated/services/mediapackage.js +4 -4
- package/lib/generated/services/mediapackagev2.js +4 -4
- package/lib/generated/services/mediastore.js +4 -4
- package/lib/generated/services/mediatailor.js +4 -4
- package/lib/generated/services/medical-imaging.js +4 -4
- package/lib/generated/services/memorydb.js +4 -4
- package/lib/generated/services/mgh.js +4 -4
- package/lib/generated/services/mgn.js +4 -4
- package/lib/generated/services/migrationhub-orchestrator.js +4 -4
- package/lib/generated/services/migrationhub-strategy.js +2 -2
- package/lib/generated/services/mobileanalytics.js +1 -1
- package/lib/generated/services/mobiletargeting.js +4 -4
- package/lib/generated/services/monitron.js +3 -3
- package/lib/generated/services/mpa.js +4 -4
- package/lib/generated/services/mq.js +4 -4
- package/lib/generated/services/neptune-db.js +4 -4
- package/lib/generated/services/neptune-graph.js +4 -4
- package/lib/generated/services/network-firewall.js +4 -4
- package/lib/generated/services/network-security-director.js +1 -1
- package/lib/generated/services/networkflowmonitor.js +4 -4
- package/lib/generated/services/networkmanager-chat.js +1 -1
- package/lib/generated/services/networkmanager.js +4 -4
- package/lib/generated/services/networkmonitor.js +4 -4
- package/lib/generated/services/nimble.js +3 -3
- package/lib/generated/services/notifications-contacts.js +4 -4
- package/lib/generated/services/notifications.js +4 -4
- package/lib/generated/services/nova-act.js +3 -3
- package/lib/generated/services/oam.js +4 -4
- package/lib/generated/services/observabilityadmin.js +4 -4
- package/lib/generated/services/odb.js +4 -4
- package/lib/generated/services/omics.js +4 -4
- package/lib/generated/services/one.js +3 -3
- package/lib/generated/services/opensearch.js +3 -3
- package/lib/generated/services/opsworks-cm.js +2 -2
- package/lib/generated/services/opsworks.js +2 -2
- package/lib/generated/services/organizations.js +4 -4
- package/lib/generated/services/osis.js +4 -4
- package/lib/generated/services/outposts.js +4 -4
- package/lib/generated/services/panorama.js +3 -3
- package/lib/generated/services/partnercentral-account-management.js +2 -2
- package/lib/generated/services/partnercentral.js +4 -4
- package/lib/generated/services/payment-cryptography.js +4 -4
- package/lib/generated/services/payments.js +3 -3
- package/lib/generated/services/pca-connector-ad.js +4 -4
- package/lib/generated/services/pca-connector-scep.js +4 -4
- package/lib/generated/services/pcs.js +4 -4
- package/lib/generated/services/personalize.js +4 -4
- package/lib/generated/services/pi.js +4 -4
- package/lib/generated/services/pipes.js +4 -4
- package/lib/generated/services/polly.js +3 -3
- package/lib/generated/services/pricing.js +2 -2
- package/lib/generated/services/pricingplanmanager.js +3 -3
- package/lib/generated/services/private-networks.js +3 -3
- package/lib/generated/services/profile.js +4 -4
- package/lib/generated/services/proton.js +4 -4
- package/lib/generated/services/purchase-orders.js +3 -3
- package/lib/generated/services/q.js +3 -3
- package/lib/generated/services/qapps.js +4 -4
- package/lib/generated/services/qbusiness.js +4 -4
- package/lib/generated/services/qdeveloper.js +3 -3
- package/lib/generated/services/qldb.js +3 -3
- package/lib/generated/services/quicksight.js +4 -4
- package/lib/generated/services/ram.js +4 -4
- package/lib/generated/services/rbin.js +4 -4
- package/lib/generated/services/rds-data.js +4 -4
- package/lib/generated/services/rds-db.js +2 -2
- package/lib/generated/services/rds.js +4 -4
- package/lib/generated/services/redshift-data.js +4 -4
- package/lib/generated/services/redshift-serverless.js +4 -4
- package/lib/generated/services/redshift.js +4 -4
- package/lib/generated/services/refactor-spaces.js +4 -4
- package/lib/generated/services/rekognition.js +4 -4
- package/lib/generated/services/repostspace.js +4 -4
- package/lib/generated/services/researchstudio.js +1 -1
- package/lib/generated/services/resiliencehub.js +4 -4
- package/lib/generated/services/resource-explorer-2.js +4 -4
- package/lib/generated/services/resource-explorer.js +1 -1
- package/lib/generated/services/resource-groups.js +4 -4
- package/lib/generated/services/rhelkb.js +1 -1
- package/lib/generated/services/robomaker.js +3 -3
- package/lib/generated/services/rolesanywhere.js +4 -4
- package/lib/generated/services/route53-recovery-cluster.js +4 -4
- package/lib/generated/services/route53-recovery-control-config.js +4 -4
- package/lib/generated/services/route53-recovery-readiness.js +4 -4
- package/lib/generated/services/route53.js +4 -4
- package/lib/generated/services/route53domains.js +2 -2
- package/lib/generated/services/route53globalresolver.js +4 -4
- package/lib/generated/services/route53profiles.js +4 -4
- package/lib/generated/services/route53resolver.js +4 -4
- package/lib/generated/services/rtbfabric.js +4 -4
- package/lib/generated/services/rum.js +4 -4
- package/lib/generated/services/s3-object-lambda.js +3 -3
- package/lib/generated/services/s3-outposts.js +4 -4
- package/lib/generated/services/s3.js +4 -4
- package/lib/generated/services/s3express.js +3 -3
- package/lib/generated/services/s3files.js +4 -4
- package/lib/generated/services/s3tables.js +4 -4
- package/lib/generated/services/s3vectors.js +4 -4
- package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
- package/lib/generated/services/sagemaker-geospatial.js +4 -4
- package/lib/generated/services/sagemaker-mlflow.js +3 -3
- package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
- package/lib/generated/services/sagemaker.js +4 -4
- package/lib/generated/services/savingsplans.js +4 -4
- package/lib/generated/services/scheduler.js +4 -4
- package/lib/generated/services/schemas.js +4 -4
- package/lib/generated/services/scn.js +4 -4
- package/lib/generated/services/sdb.js +3 -3
- package/lib/generated/services/secretsmanager.js +4 -4
- package/lib/generated/services/security-ir.js +4 -4
- package/lib/generated/services/securityagent.js +4 -4
- package/lib/generated/services/securityhub.js +4 -4
- package/lib/generated/services/securitylake.js +4 -4
- package/lib/generated/services/serverlessrepo.js +4 -4
- package/lib/generated/services/servicecatalog.js +4 -4
- package/lib/generated/services/servicediscovery.js +4 -4
- package/lib/generated/services/serviceextract.js +1 -1
- package/lib/generated/services/servicequotas.js +4 -4
- package/lib/generated/services/ses.js +4 -4
- package/lib/generated/services/shield.js +4 -4
- package/lib/generated/services/signer.js +4 -4
- package/lib/generated/services/signin.js +4 -4
- package/lib/generated/services/simspaceweaver.js +3 -3
- package/lib/generated/services/sms-voice.js +4 -4
- package/lib/generated/services/sms.js +1 -1
- package/lib/generated/services/snow-device-management.js +4 -4
- package/lib/generated/services/snowball.js +2 -2
- package/lib/generated/services/sns.js +6 -5
- package/lib/generated/services/social-messaging.js +4 -4
- package/lib/generated/services/sqlworkbench.js +3 -3
- package/lib/generated/services/sqs.js +4 -4
- package/lib/generated/services/ssm-contacts.js +4 -4
- package/lib/generated/services/ssm-guiconnect.js +2 -2
- package/lib/generated/services/ssm-incidents.js +4 -4
- package/lib/generated/services/ssm-quicksetup.js +4 -4
- package/lib/generated/services/ssm-sap.js +4 -4
- package/lib/generated/services/ssm.js +4 -4
- package/lib/generated/services/ssmmessages.js +2 -2
- package/lib/generated/services/sso-directory.js +1 -1
- package/lib/generated/services/sso-oauth.js +3 -3
- package/lib/generated/services/sso.js +4 -4
- package/lib/generated/services/states.js +4 -4
- package/lib/generated/services/storagegateway.js +4 -4
- package/lib/generated/services/sts.js +4 -4
- package/lib/generated/services/support-console.js +1 -1
- package/lib/generated/services/support.js +2 -2
- package/lib/generated/services/supportapp.js +2 -2
- package/lib/generated/services/supportauthz.js +4 -4
- package/lib/generated/services/supportplans.js +1 -1
- package/lib/generated/services/sustainability.js +2 -2
- package/lib/generated/services/swf.js +4 -4
- package/lib/generated/services/synthetics.js +7 -13
- package/lib/generated/services/tag.js +2 -2
- package/lib/generated/services/tax.js +2 -2
- package/lib/generated/services/textract.js +4 -4
- package/lib/generated/services/thinclient.js +4 -4
- package/lib/generated/services/timestream-influxdb.js +4 -4
- package/lib/generated/services/timestream.js +4 -4
- package/lib/generated/services/tiros.js +1 -1
- package/lib/generated/services/tnb.js +4 -4
- package/lib/generated/services/transcribe.js +4 -4
- package/lib/generated/services/transfer.js +4 -4
- package/lib/generated/services/transform-custom.js +3 -3
- package/lib/generated/services/transform.js +3 -3
- package/lib/generated/services/translate.js +4 -4
- package/lib/generated/services/trustedadvisor.js +3 -3
- package/lib/generated/services/ts.js +3 -3
- package/lib/generated/services/user-subscriptions.js +2 -2
- package/lib/generated/services/uxc.js +2 -2
- package/lib/generated/services/vendor-insights.js +3 -3
- package/lib/generated/services/verified-access.js +1 -1
- package/lib/generated/services/verifiedpermissions.js +4 -4
- package/lib/generated/services/voiceid.js +4 -4
- package/lib/generated/services/vpc-lattice-svcs.js +3 -3
- package/lib/generated/services/vpc-lattice.js +4 -4
- package/lib/generated/services/vpce.js +2 -2
- package/lib/generated/services/waf-regional.js +4 -4
- package/lib/generated/services/waf.js +4 -4
- package/lib/generated/services/wafv2.js +4 -4
- package/lib/generated/services/wam.js +1 -1
- package/lib/generated/services/wellarchitected.js +4 -4
- package/lib/generated/services/wickr.js +4 -4
- package/lib/generated/services/wisdom.js +4 -4
- package/lib/generated/services/workdocs.js +3 -3
- package/lib/generated/services/worklink.js +3 -3
- package/lib/generated/services/workmail.js +4 -4
- package/lib/generated/services/workmailmessageflow.js +3 -3
- package/lib/generated/services/workspaces-instances.js +4 -4
- package/lib/generated/services/workspaces-web.js +4 -4
- package/lib/generated/services/workspaces.js +4 -4
- package/lib/generated/services/xray.js +4 -4
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ class AppconfigActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.AppconfigActions = AppconfigActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
AppconfigActions[_a] = { fqn: "@cdk_utils/iam.appconfig.AppconfigActions", version: "1.
|
|
19
|
+
AppconfigActions[_a] = { fqn: "@cdk_utils/iam.appconfig.AppconfigActions", version: "1.4.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
AppconfigActions.SERVICE_PREFIX = "appconfig";
|
|
22
22
|
/** [Write] appconfig:CreateApplication */
|
|
@@ -27,6 +27,8 @@ AppconfigActions.CreateConfigurationProfile = "appconfig:CreateConfigurationProf
|
|
|
27
27
|
AppconfigActions.CreateDeploymentStrategy = "appconfig:CreateDeploymentStrategy";
|
|
28
28
|
/** [Write] appconfig:CreateEnvironment */
|
|
29
29
|
AppconfigActions.CreateEnvironment = "appconfig:CreateEnvironment";
|
|
30
|
+
/** [Write] appconfig:CreateExperimentDefinition */
|
|
31
|
+
AppconfigActions.CreateExperimentDefinition = "appconfig:CreateExperimentDefinition";
|
|
30
32
|
/** [Write] appconfig:CreateExtension */
|
|
31
33
|
AppconfigActions.CreateExtension = "appconfig:CreateExtension";
|
|
32
34
|
/** [Write] appconfig:CreateExtensionAssociation */
|
|
@@ -41,6 +43,8 @@ AppconfigActions.DeleteConfigurationProfile = "appconfig:DeleteConfigurationProf
|
|
|
41
43
|
AppconfigActions.DeleteDeploymentStrategy = "appconfig:DeleteDeploymentStrategy";
|
|
42
44
|
/** [Write] appconfig:DeleteEnvironment */
|
|
43
45
|
AppconfigActions.DeleteEnvironment = "appconfig:DeleteEnvironment";
|
|
46
|
+
/** [Write] appconfig:DeleteExperimentDefinition */
|
|
47
|
+
AppconfigActions.DeleteExperimentDefinition = "appconfig:DeleteExperimentDefinition";
|
|
44
48
|
/** [Write] appconfig:DeleteExtension */
|
|
45
49
|
AppconfigActions.DeleteExtension = "appconfig:DeleteExtension";
|
|
46
50
|
/** [Write] appconfig:DeleteExtensionAssociation */
|
|
@@ -61,6 +65,10 @@ AppconfigActions.actionGetDeployment = "appconfig:GetDeployment";
|
|
|
61
65
|
AppconfigActions.actionGetDeploymentStrategy = "appconfig:GetDeploymentStrategy";
|
|
62
66
|
/** [Read] appconfig:GetEnvironment */
|
|
63
67
|
AppconfigActions.actionGetEnvironment = "appconfig:GetEnvironment";
|
|
68
|
+
/** [Read] appconfig:GetExperimentDefinition */
|
|
69
|
+
AppconfigActions.actionGetExperimentDefinition = "appconfig:GetExperimentDefinition";
|
|
70
|
+
/** [Read] appconfig:GetExperimentRun */
|
|
71
|
+
AppconfigActions.actionGetExperimentRun = "appconfig:GetExperimentRun";
|
|
64
72
|
/** [Read] appconfig:GetExtension */
|
|
65
73
|
AppconfigActions.actionGetExtension = "appconfig:GetExtension";
|
|
66
74
|
/** [Read] appconfig:GetExtensionAssociation */
|
|
@@ -79,6 +87,12 @@ AppconfigActions.ListDeploymentStrategies = "appconfig:ListDeploymentStrategies"
|
|
|
79
87
|
AppconfigActions.ListDeployments = "appconfig:ListDeployments";
|
|
80
88
|
/** [List] appconfig:ListEnvironments */
|
|
81
89
|
AppconfigActions.ListEnvironments = "appconfig:ListEnvironments";
|
|
90
|
+
/** [List] appconfig:ListExperimentDefinitions */
|
|
91
|
+
AppconfigActions.ListExperimentDefinitions = "appconfig:ListExperimentDefinitions";
|
|
92
|
+
/** [List] appconfig:ListExperimentRunEvents */
|
|
93
|
+
AppconfigActions.ListExperimentRunEvents = "appconfig:ListExperimentRunEvents";
|
|
94
|
+
/** [List] appconfig:ListExperimentRuns */
|
|
95
|
+
AppconfigActions.ListExperimentRuns = "appconfig:ListExperimentRuns";
|
|
82
96
|
/** [List] appconfig:ListExtensionAssociations */
|
|
83
97
|
AppconfigActions.ListExtensionAssociations = "appconfig:ListExtensionAssociations";
|
|
84
98
|
/** [List] appconfig:ListExtensions */
|
|
@@ -91,8 +105,12 @@ AppconfigActions.ListTagsForResource = "appconfig:ListTagsForResource";
|
|
|
91
105
|
AppconfigActions.StartConfigurationSession = "appconfig:StartConfigurationSession";
|
|
92
106
|
/** [Write] appconfig:StartDeployment */
|
|
93
107
|
AppconfigActions.StartDeployment = "appconfig:StartDeployment";
|
|
108
|
+
/** [Write] appconfig:StartExperimentRun */
|
|
109
|
+
AppconfigActions.StartExperimentRun = "appconfig:StartExperimentRun";
|
|
94
110
|
/** [Write] appconfig:StopDeployment */
|
|
95
111
|
AppconfigActions.StopDeployment = "appconfig:StopDeployment";
|
|
112
|
+
/** [Write] appconfig:StopExperimentRun */
|
|
113
|
+
AppconfigActions.StopExperimentRun = "appconfig:StopExperimentRun";
|
|
96
114
|
/** [Tagging] appconfig:TagResource */
|
|
97
115
|
AppconfigActions.TagResource = "appconfig:TagResource";
|
|
98
116
|
/** [Tagging] appconfig:UntagResource */
|
|
@@ -107,6 +125,10 @@ AppconfigActions.UpdateConfigurationProfile = "appconfig:UpdateConfigurationProf
|
|
|
107
125
|
AppconfigActions.UpdateDeploymentStrategy = "appconfig:UpdateDeploymentStrategy";
|
|
108
126
|
/** [Write] appconfig:UpdateEnvironment */
|
|
109
127
|
AppconfigActions.UpdateEnvironment = "appconfig:UpdateEnvironment";
|
|
128
|
+
/** [Write] appconfig:UpdateExperimentDefinition */
|
|
129
|
+
AppconfigActions.UpdateExperimentDefinition = "appconfig:UpdateExperimentDefinition";
|
|
130
|
+
/** [Write] appconfig:UpdateExperimentRun */
|
|
131
|
+
AppconfigActions.UpdateExperimentRun = "appconfig:UpdateExperimentRun";
|
|
110
132
|
/** [Write] appconfig:UpdateExtension */
|
|
111
133
|
AppconfigActions.UpdateExtension = "appconfig:UpdateExtension";
|
|
112
134
|
/** [Write] appconfig:UpdateExtensionAssociation */
|
|
@@ -122,6 +144,8 @@ AppconfigActions.AllReadActions = [
|
|
|
122
144
|
AppconfigActions.actionGetDeployment,
|
|
123
145
|
AppconfigActions.actionGetDeploymentStrategy,
|
|
124
146
|
AppconfigActions.actionGetEnvironment,
|
|
147
|
+
AppconfigActions.actionGetExperimentDefinition,
|
|
148
|
+
AppconfigActions.actionGetExperimentRun,
|
|
125
149
|
AppconfigActions.actionGetExtension,
|
|
126
150
|
AppconfigActions.actionGetExtensionAssociation,
|
|
127
151
|
AppconfigActions.actionGetHostedConfigurationVersion,
|
|
@@ -134,6 +158,7 @@ AppconfigActions.AllWriteActions = [
|
|
|
134
158
|
AppconfigActions.CreateConfigurationProfile,
|
|
135
159
|
AppconfigActions.CreateDeploymentStrategy,
|
|
136
160
|
AppconfigActions.CreateEnvironment,
|
|
161
|
+
AppconfigActions.CreateExperimentDefinition,
|
|
137
162
|
AppconfigActions.CreateExtension,
|
|
138
163
|
AppconfigActions.CreateExtensionAssociation,
|
|
139
164
|
AppconfigActions.CreateHostedConfigurationVersion,
|
|
@@ -141,17 +166,22 @@ AppconfigActions.AllWriteActions = [
|
|
|
141
166
|
AppconfigActions.DeleteConfigurationProfile,
|
|
142
167
|
AppconfigActions.DeleteDeploymentStrategy,
|
|
143
168
|
AppconfigActions.DeleteEnvironment,
|
|
169
|
+
AppconfigActions.DeleteExperimentDefinition,
|
|
144
170
|
AppconfigActions.DeleteExtension,
|
|
145
171
|
AppconfigActions.DeleteExtensionAssociation,
|
|
146
172
|
AppconfigActions.DeleteHostedConfigurationVersion,
|
|
147
173
|
AppconfigActions.StartConfigurationSession,
|
|
148
174
|
AppconfigActions.StartDeployment,
|
|
175
|
+
AppconfigActions.StartExperimentRun,
|
|
149
176
|
AppconfigActions.StopDeployment,
|
|
177
|
+
AppconfigActions.StopExperimentRun,
|
|
150
178
|
AppconfigActions.UpdateAccountSettings,
|
|
151
179
|
AppconfigActions.UpdateApplication,
|
|
152
180
|
AppconfigActions.UpdateConfigurationProfile,
|
|
153
181
|
AppconfigActions.UpdateDeploymentStrategy,
|
|
154
182
|
AppconfigActions.UpdateEnvironment,
|
|
183
|
+
AppconfigActions.UpdateExperimentDefinition,
|
|
184
|
+
AppconfigActions.UpdateExperimentRun,
|
|
155
185
|
AppconfigActions.UpdateExtension,
|
|
156
186
|
AppconfigActions.UpdateExtensionAssociation,
|
|
157
187
|
AppconfigActions.ValidateConfiguration,
|
|
@@ -163,6 +193,9 @@ AppconfigActions.AllListActions = [
|
|
|
163
193
|
AppconfigActions.ListDeploymentStrategies,
|
|
164
194
|
AppconfigActions.ListDeployments,
|
|
165
195
|
AppconfigActions.ListEnvironments,
|
|
196
|
+
AppconfigActions.ListExperimentDefinitions,
|
|
197
|
+
AppconfigActions.ListExperimentRunEvents,
|
|
198
|
+
AppconfigActions.ListExperimentRuns,
|
|
166
199
|
AppconfigActions.ListExtensionAssociations,
|
|
167
200
|
AppconfigActions.ListExtensions,
|
|
168
201
|
AppconfigActions.ListHostedConfigurationVersions,
|
|
@@ -180,6 +213,8 @@ const ConfigurationprofileArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<regi
|
|
|
180
213
|
const DeploymentArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):application\/(?<applicationId>[^:/?]+)\/environment\/(?<environmentId>[^:/?]+)\/deployment\/(?<deploymentNumber>[^:/?]+)$/;
|
|
181
214
|
const DeploymentstrategyArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):deploymentstrategy\/(?<deploymentStrategyId>[^:/?]+)$/;
|
|
182
215
|
const EnvironmentArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):application\/(?<applicationId>[^:/?]+)\/environment\/(?<environmentId>[^:/?]+)$/;
|
|
216
|
+
const ExperimentdefinitionArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):application\/(?<applicationId>[^:/?]+)\/experimentdefinition\/(?<experimentDefinitionId>[^:/?]+)$/;
|
|
217
|
+
const ExperimentrunArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):application\/(?<applicationId>[^:/?]+)\/experimentdefinition\/(?<experimentDefinitionId>[^:/?]+)\/experimentrun\/(?<experimentRunNumber>[^:/?]+)$/;
|
|
183
218
|
const ExtensionArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):extension\/(?<extensionId>[^:/?]+)\/(?<extensionVersionNumber>[^:/?]+)$/;
|
|
184
219
|
const ExtensionassociationArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):extensionassociation\/(?<extensionAssociationId>[^:/?]+)$/;
|
|
185
220
|
const HostedconfigurationversionArnRegex = /^arn:(?<partition>[^:]+):appconfig:(?<region>[^:]*):(?<account>[^:]*):application\/(?<applicationId>[^:/?]+)\/configurationprofile\/(?<configurationProfileId>[^:/?]+)$/;
|
|
@@ -361,6 +396,65 @@ class AppconfigResources {
|
|
|
361
396
|
environmentId: match.groups.environmentId,
|
|
362
397
|
};
|
|
363
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Builds an ARN for the experimentdefinition resource.
|
|
401
|
+
*/
|
|
402
|
+
static experimentdefinition(props) {
|
|
403
|
+
return `arn:${props.partition ?? "aws"}:appconfig:${props.region ?? "*"}:${props.account ?? "*"}:application/${props.applicationId}/experimentdefinition/${props.experimentDefinitionId}`;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Validates whether a string is a valid ARN for the experimentdefinition resource.
|
|
407
|
+
*/
|
|
408
|
+
static isValidExperimentdefinitionArn(arn) {
|
|
409
|
+
return ExperimentdefinitionArnRegex.test(arn);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Parses a experimentdefinition ARN into its components.
|
|
413
|
+
* @throws Error if the ARN does not match the expected format.
|
|
414
|
+
*/
|
|
415
|
+
static parseExperimentdefinitionArn(arn) {
|
|
416
|
+
const match = ExperimentdefinitionArnRegex.exec(arn);
|
|
417
|
+
if (!match?.groups) {
|
|
418
|
+
throw new Error(`Invalid experimentdefinition ARN: ${arn}`);
|
|
419
|
+
}
|
|
420
|
+
return {
|
|
421
|
+
partition: match.groups.partition,
|
|
422
|
+
region: match.groups.region,
|
|
423
|
+
account: match.groups.account,
|
|
424
|
+
applicationId: match.groups.applicationId,
|
|
425
|
+
experimentDefinitionId: match.groups.experimentDefinitionId,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Builds an ARN for the experimentrun resource.
|
|
430
|
+
*/
|
|
431
|
+
static experimentrun(props) {
|
|
432
|
+
return `arn:${props.partition ?? "aws"}:appconfig:${props.region ?? "*"}:${props.account ?? "*"}:application/${props.applicationId}/experimentdefinition/${props.experimentDefinitionId}/experimentrun/${props.experimentRunNumber}`;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Validates whether a string is a valid ARN for the experimentrun resource.
|
|
436
|
+
*/
|
|
437
|
+
static isValidExperimentrunArn(arn) {
|
|
438
|
+
return ExperimentrunArnRegex.test(arn);
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Parses a experimentrun ARN into its components.
|
|
442
|
+
* @throws Error if the ARN does not match the expected format.
|
|
443
|
+
*/
|
|
444
|
+
static parseExperimentrunArn(arn) {
|
|
445
|
+
const match = ExperimentrunArnRegex.exec(arn);
|
|
446
|
+
if (!match?.groups) {
|
|
447
|
+
throw new Error(`Invalid experimentrun ARN: ${arn}`);
|
|
448
|
+
}
|
|
449
|
+
return {
|
|
450
|
+
partition: match.groups.partition,
|
|
451
|
+
region: match.groups.region,
|
|
452
|
+
account: match.groups.account,
|
|
453
|
+
applicationId: match.groups.applicationId,
|
|
454
|
+
experimentDefinitionId: match.groups.experimentDefinitionId,
|
|
455
|
+
experimentRunNumber: match.groups.experimentRunNumber,
|
|
456
|
+
};
|
|
457
|
+
}
|
|
364
458
|
/**
|
|
365
459
|
* Builds an ARN for the extension resource.
|
|
366
460
|
*/
|
|
@@ -450,7 +544,7 @@ class AppconfigResources {
|
|
|
450
544
|
}
|
|
451
545
|
exports.AppconfigResources = AppconfigResources;
|
|
452
546
|
_b = JSII_RTTI_SYMBOL_1;
|
|
453
|
-
AppconfigResources[_b] = { fqn: "@cdk_utils/iam.appconfig.AppconfigResources", version: "1.
|
|
547
|
+
AppconfigResources[_b] = { fqn: "@cdk_utils/iam.appconfig.AppconfigResources", version: "1.4.0" };
|
|
454
548
|
/**
|
|
455
549
|
* API operation to required IAM actions mapping for appconfig.
|
|
456
550
|
*/
|
|
@@ -458,7 +552,7 @@ class AppconfigOperations {
|
|
|
458
552
|
}
|
|
459
553
|
exports.AppconfigOperations = AppconfigOperations;
|
|
460
554
|
_c = JSII_RTTI_SYMBOL_1;
|
|
461
|
-
AppconfigOperations[_c] = { fqn: "@cdk_utils/iam.appconfig.AppconfigOperations", version: "1.
|
|
555
|
+
AppconfigOperations[_c] = { fqn: "@cdk_utils/iam.appconfig.AppconfigOperations", version: "1.4.0" };
|
|
462
556
|
/** IAM actions required for the CreateApplication API call. */
|
|
463
557
|
AppconfigOperations.CreateApplication = [
|
|
464
558
|
"appconfig:CreateApplication",
|
|
@@ -483,6 +577,7 @@ AppconfigOperations.CreateEnvironment = [
|
|
|
483
577
|
];
|
|
484
578
|
/** IAM actions required for the CreateExperimentDefinition API call. */
|
|
485
579
|
AppconfigOperations.CreateExperimentDefinition = [
|
|
580
|
+
"appconfig:CreateExperimentDefinition",
|
|
486
581
|
"appconfig:TagResource",
|
|
487
582
|
];
|
|
488
583
|
/** IAM actions required for the CreateExtension API call. */
|
|
@@ -513,7 +608,9 @@ AppconfigOperations.DeleteDeploymentStrategy = [
|
|
|
513
608
|
/** IAM actions required for the DeleteEnvironment API call. */
|
|
514
609
|
AppconfigOperations.DeleteEnvironment = ["appconfig:DeleteEnvironment"];
|
|
515
610
|
/** IAM actions required for the DeleteExperimentDefinition API call. */
|
|
516
|
-
AppconfigOperations.DeleteExperimentDefinition = [
|
|
611
|
+
AppconfigOperations.DeleteExperimentDefinition = [
|
|
612
|
+
"appconfig:DeleteExperimentDefinition",
|
|
613
|
+
];
|
|
517
614
|
/** IAM actions required for the DeleteExtension API call. */
|
|
518
615
|
AppconfigOperations.DeleteExtension = ["appconfig:DeleteExtension"];
|
|
519
616
|
/** IAM actions required for the DeleteExtensionAssociation API call. */
|
|
@@ -545,9 +642,11 @@ AppconfigOperations.opGetDeploymentStrategy = [
|
|
|
545
642
|
/** IAM actions required for the GetEnvironment API call. */
|
|
546
643
|
AppconfigOperations.opGetEnvironment = ["appconfig:GetEnvironment"];
|
|
547
644
|
/** IAM actions required for the GetExperimentDefinition API call. */
|
|
548
|
-
AppconfigOperations.opGetExperimentDefinition = [
|
|
645
|
+
AppconfigOperations.opGetExperimentDefinition = [
|
|
646
|
+
"appconfig:GetExperimentDefinition",
|
|
647
|
+
];
|
|
549
648
|
/** IAM actions required for the GetExperimentRun API call. */
|
|
550
|
-
AppconfigOperations.opGetExperimentRun = [];
|
|
649
|
+
AppconfigOperations.opGetExperimentRun = ["appconfig:GetExperimentRun"];
|
|
551
650
|
/** IAM actions required for the GetExtension API call. */
|
|
552
651
|
AppconfigOperations.opGetExtension = ["appconfig:GetExtension"];
|
|
553
652
|
/** IAM actions required for the GetExtensionAssociation API call. */
|
|
@@ -577,11 +676,17 @@ AppconfigOperations.ListDeployments = ["appconfig:ListDeployments"];
|
|
|
577
676
|
/** IAM actions required for the ListEnvironments API call. */
|
|
578
677
|
AppconfigOperations.ListEnvironments = ["appconfig:ListEnvironments"];
|
|
579
678
|
/** IAM actions required for the ListExperimentDefinitions API call. */
|
|
580
|
-
AppconfigOperations.ListExperimentDefinitions = [
|
|
679
|
+
AppconfigOperations.ListExperimentDefinitions = [
|
|
680
|
+
"appconfig:ListExperimentDefinitions",
|
|
681
|
+
];
|
|
581
682
|
/** IAM actions required for the ListExperimentRunEvents API call. */
|
|
582
|
-
AppconfigOperations.ListExperimentRunEvents = [
|
|
683
|
+
AppconfigOperations.ListExperimentRunEvents = [
|
|
684
|
+
"appconfig:ListExperimentRunEvents",
|
|
685
|
+
];
|
|
583
686
|
/** IAM actions required for the ListExperimentRuns API call. */
|
|
584
|
-
AppconfigOperations.ListExperimentRuns = [
|
|
687
|
+
AppconfigOperations.ListExperimentRuns = [
|
|
688
|
+
"appconfig:ListExperimentRuns",
|
|
689
|
+
];
|
|
585
690
|
/** IAM actions required for the ListExtensionAssociations API call. */
|
|
586
691
|
AppconfigOperations.ListExtensionAssociations = [
|
|
587
692
|
"appconfig:ListExtensionAssociations",
|
|
@@ -606,11 +711,14 @@ AppconfigOperations.StartDeployment = [
|
|
|
606
711
|
"appconfig:TagResource",
|
|
607
712
|
];
|
|
608
713
|
/** IAM actions required for the StartExperimentRun API call. */
|
|
609
|
-
AppconfigOperations.StartExperimentRun = [
|
|
714
|
+
AppconfigOperations.StartExperimentRun = [
|
|
715
|
+
"appconfig:StartExperimentRun",
|
|
716
|
+
"appconfig:TagResource",
|
|
717
|
+
];
|
|
610
718
|
/** IAM actions required for the StopDeployment API call. */
|
|
611
719
|
AppconfigOperations.StopDeployment = ["appconfig:StopDeployment"];
|
|
612
720
|
/** IAM actions required for the StopExperimentRun API call. */
|
|
613
|
-
AppconfigOperations.StopExperimentRun = [];
|
|
721
|
+
AppconfigOperations.StopExperimentRun = ["appconfig:StopExperimentRun"];
|
|
614
722
|
/** IAM actions required for the TagResource API call. */
|
|
615
723
|
AppconfigOperations.TagResource = ["appconfig:TagResource"];
|
|
616
724
|
/** IAM actions required for the UntagResource API call. */
|
|
@@ -636,9 +744,13 @@ AppconfigOperations.UpdateEnvironment = [
|
|
|
636
744
|
"appconfig:UpdateEnvironment",
|
|
637
745
|
];
|
|
638
746
|
/** IAM actions required for the UpdateExperimentDefinition API call. */
|
|
639
|
-
AppconfigOperations.UpdateExperimentDefinition = [
|
|
747
|
+
AppconfigOperations.UpdateExperimentDefinition = [
|
|
748
|
+
"appconfig:UpdateExperimentDefinition",
|
|
749
|
+
];
|
|
640
750
|
/** IAM actions required for the UpdateExperimentRun API call. */
|
|
641
|
-
AppconfigOperations.UpdateExperimentRun = [
|
|
751
|
+
AppconfigOperations.UpdateExperimentRun = [
|
|
752
|
+
"appconfig:UpdateExperimentRun",
|
|
753
|
+
];
|
|
642
754
|
/** IAM actions required for the UpdateExtension API call. */
|
|
643
755
|
AppconfigOperations.UpdateExtension = [
|
|
644
756
|
"iam:PassRole",
|
|
@@ -677,7 +789,7 @@ class AppconfigConditions {
|
|
|
677
789
|
}
|
|
678
790
|
exports.AppconfigConditions = AppconfigConditions;
|
|
679
791
|
_d = JSII_RTTI_SYMBOL_1;
|
|
680
|
-
AppconfigConditions[_d] = { fqn: "@cdk_utils/iam.appconfig.AppconfigConditions", version: "1.
|
|
792
|
+
AppconfigConditions[_d] = { fqn: "@cdk_utils/iam.appconfig.AppconfigConditions", version: "1.4.0" };
|
|
681
793
|
/** Condition keys applicable to the CreateApplication action. */
|
|
682
794
|
AppconfigConditions.CreateApplicationConditionKeys = [
|
|
683
795
|
"aws:RequestTag/${TagKey}",
|
|
@@ -698,6 +810,11 @@ AppconfigConditions.CreateEnvironmentConditionKeys = [
|
|
|
698
810
|
"aws:RequestTag/${TagKey}",
|
|
699
811
|
"aws:TagKeys",
|
|
700
812
|
];
|
|
813
|
+
/** Condition keys applicable to the CreateExperimentDefinition action. */
|
|
814
|
+
AppconfigConditions.CreateExperimentDefinitionConditionKeys = [
|
|
815
|
+
"aws:RequestTag/${TagKey}",
|
|
816
|
+
"aws:TagKeys",
|
|
817
|
+
];
|
|
701
818
|
/** Condition keys applicable to the CreateExtension action. */
|
|
702
819
|
AppconfigConditions.CreateExtensionConditionKeys = [
|
|
703
820
|
"aws:RequestTag/${TagKey}",
|
|
@@ -732,6 +849,14 @@ AppconfigConditions.actionGetDeploymentStrategyConditionKeys = [
|
|
|
732
849
|
AppconfigConditions.actionGetEnvironmentConditionKeys = [
|
|
733
850
|
"aws:ResourceTag/${TagKey}",
|
|
734
851
|
];
|
|
852
|
+
/** Condition keys applicable to the GetExperimentDefinition action. */
|
|
853
|
+
AppconfigConditions.actionGetExperimentDefinitionConditionKeys = [
|
|
854
|
+
"aws:ResourceTag/${TagKey}",
|
|
855
|
+
];
|
|
856
|
+
/** Condition keys applicable to the GetExperimentRun action. */
|
|
857
|
+
AppconfigConditions.actionGetExperimentRunConditionKeys = [
|
|
858
|
+
"aws:ResourceTag/${TagKey}",
|
|
859
|
+
];
|
|
735
860
|
/** Condition keys applicable to the GetExtension action. */
|
|
736
861
|
AppconfigConditions.actionGetExtensionConditionKeys = [
|
|
737
862
|
"aws:ResourceTag/${TagKey}",
|
|
@@ -757,6 +882,15 @@ AppconfigConditions.StartDeploymentConditionKeys = [
|
|
|
757
882
|
"aws:RequestTag/${TagKey}",
|
|
758
883
|
"aws:TagKeys",
|
|
759
884
|
];
|
|
885
|
+
/** Condition keys applicable to the StartExperimentRun action. */
|
|
886
|
+
AppconfigConditions.StartExperimentRunConditionKeys = [
|
|
887
|
+
"aws:RequestTag/${TagKey}",
|
|
888
|
+
"aws:TagKeys",
|
|
889
|
+
];
|
|
890
|
+
/** Condition keys applicable to the StopExperimentRun action. */
|
|
891
|
+
AppconfigConditions.StopExperimentRunConditionKeys = [
|
|
892
|
+
"aws:ResourceTag/${TagKey}",
|
|
893
|
+
];
|
|
760
894
|
/** Condition keys applicable to the TagResource action. */
|
|
761
895
|
AppconfigConditions.TagResourceConditionKeys = [
|
|
762
896
|
"aws:RequestTag/${TagKey}",
|
|
@@ -781,6 +915,14 @@ AppconfigConditions.UpdateDeploymentStrategyConditionKeys = [
|
|
|
781
915
|
AppconfigConditions.UpdateEnvironmentConditionKeys = [
|
|
782
916
|
"aws:ResourceTag/${TagKey}",
|
|
783
917
|
];
|
|
918
|
+
/** Condition keys applicable to the UpdateExperimentDefinition action. */
|
|
919
|
+
AppconfigConditions.UpdateExperimentDefinitionConditionKeys = [
|
|
920
|
+
"aws:ResourceTag/${TagKey}",
|
|
921
|
+
];
|
|
922
|
+
/** Condition keys applicable to the UpdateExperimentRun action. */
|
|
923
|
+
AppconfigConditions.UpdateExperimentRunConditionKeys = [
|
|
924
|
+
"aws:ResourceTag/${TagKey}",
|
|
925
|
+
];
|
|
784
926
|
/** Condition keys applicable to the UpdateExtension action. */
|
|
785
927
|
AppconfigConditions.UpdateExtensionConditionKeys = [
|
|
786
928
|
"aws:ResourceTag/${TagKey}",
|
|
@@ -795,4 +937,4 @@ AppconfigConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
|
|
|
795
937
|
AppconfigConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
|
|
796
938
|
/** Condition key: aws:TagKeys (ArrayOfString) */
|
|
797
939
|
AppconfigConditions.AWS_TAG_KEYS = "aws:TagKeys";
|
|
798
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9hcHBjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxnREFBZ0Q7QUFDaEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCOztBQUE3Qiw0Q0FxTEM7OztBQXBMQSw4QkFBOEI7QUFDZCwrQkFBYyxHQUFHLFdBQVcsQ0FBQztBQUU3QywwQ0FBMEM7QUFDMUIsa0NBQWlCLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsbURBQW1EO0FBQ25DLDJDQUEwQixHQUN6QyxzQ0FBc0MsQ0FBQztBQUN4QyxpREFBaUQ7QUFDakMseUNBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLDBDQUEwQztBQUMxQixrQ0FBaUIsR0FBRyw2QkFBNkIsQ0FBQztBQUNsRSx3Q0FBd0M7QUFDeEIsZ0NBQWUsR0FBRywyQkFBMkIsQ0FBQztBQUM5RCxtREFBbUQ7QUFDbkMsMkNBQTBCLEdBQ3pDLHNDQUFzQyxDQUFDO0FBQ3hDLHlEQUF5RDtBQUN6QyxpREFBZ0MsR0FDL0MsNENBQTRDLENBQUM7QUFDOUMsMENBQTBDO0FBQzFCLGtDQUFpQixHQUFHLDZCQUE2QixDQUFDO0FBQ2xFLG1EQUFtRDtBQUNuQywyQ0FBMEIsR0FDekMsc0NBQXNDLENBQUM7QUFDeEMsaURBQWlEO0FBQ2pDLHlDQUF3QixHQUN2QyxvQ0FBb0MsQ0FBQztBQUN0QywwQ0FBMEM7QUFDMUIsa0NBQWlCLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsd0NBQXdDO0FBQ3hCLGdDQUFlLEdBQUcsMkJBQTJCLENBQUM7QUFDOUQsbURBQW1EO0FBQ25DLDJDQUEwQixHQUN6QyxzQ0FBc0MsQ0FBQztBQUN4Qyx5REFBeUQ7QUFDekMsaURBQWdDLEdBQy9DLDRDQUE0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O0NBQzNCLENBQUM7QUFDRix5RUFBeUU7QUFDekQsMERBQXNDLEdBQWE7SUFDbEUsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiwrREFBK0Q7QUFDL0MsZ0RBQTRCLEdBQWE7SUFDeEQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDRDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsOENBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2RSxpRUFBaUU7QUFDakQsa0RBQThCLEdBQWE7SUFDMUQsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQXVDLEdBQWE7SUFDbkUsMkJBQTJCO0NBQzNCLENBQUM7QUFDRix3RUFBd0U7QUFDeEQseURBQXFDLEdBQWE7SUFDakUsMkJBQTJCO0NBQzNCLENBQUM7QUFDRixpRUFBaUU7QUFDakQsa0RBQThCLEdBQWE7SUFDMUQsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiwrREFBK0Q7QUFDL0MsZ0RBQTRCLEdBQWE7SUFDeEQsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQXVDLEdBQWE7SUFDbkUsMkJBQTJCO0NBQzNCLENBQUM7QUFFRix1REFBdUQ7QUFDdkMsbUNBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsb0NBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLGdDQUFZLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvYXBwY29uZmlnLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBhcHBjb25maWcgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGNvbmZpZ0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJhcHBjb25maWdcIjtcblxuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6Q3JlYXRlQXBwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFwcGxpY2F0aW9uID0gXCJhcHBjb25maWc6Q3JlYXRlQXBwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25maWd1cmF0aW9uUHJvZmlsZSA9XG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlQ29uZmlndXJhdGlvblByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZURlcGxveW1lbnRTdHJhdGVneSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5ID1cblx0XHRcImFwcGNvbmZpZzpDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFbnZpcm9ubWVudCA9IFwiYXBwY29uZmlnOkNyZWF0ZUVudmlyb25tZW50XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpDcmVhdGVFeHRlbnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuc2lvbiA9IFwiYXBwY29uZmlnOkNyZWF0ZUV4dGVuc2lvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6Q3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uID1cblx0XHRcImFwcGNvbmZpZzpDcmVhdGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6Q3JlYXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uID1cblx0XHRcImFwcGNvbmZpZzpDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6RGVsZXRlQXBwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFwcGxpY2F0aW9uID0gXCJhcHBjb25maWc6RGVsZXRlQXBwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25maWd1cmF0aW9uUHJvZmlsZSA9XG5cdFx0XCJhcHBjb25maWc6RGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZURlcGxveW1lbnRTdHJhdGVneSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5ID1cblx0XHRcImFwcGNvbmZpZzpEZWxldGVEZXBsb3ltZW50U3RyYXRlZ3lcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFbnZpcm9ubWVudCA9IFwiYXBwY29uZmlnOkRlbGV0ZUVudmlyb25tZW50XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpEZWxldGVFeHRlbnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbiA9IFwiYXBwY29uZmlnOkRlbGV0ZUV4dGVuc2lvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6RGVsZXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uID1cblx0XHRcImFwcGNvbmZpZzpEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6RGVsZXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uID1cblx0XHRcImFwcGNvbmZpZzpEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFjY291bnRTZXR0aW5ncyA9IFwiYXBwY29uZmlnOkdldEFjY291bnRTZXR0aW5nc1wiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRBcHBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QXBwbGljYXRpb24gPSBcImFwcGNvbmZpZzpHZXRBcHBsaWNhdGlvblwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb25maWd1cmF0aW9uID0gXCJhcHBjb25maWc6R2V0Q29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRDb25maWd1cmF0aW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29uZmlndXJhdGlvblByb2ZpbGUgPVxuXHRcdFwiYXBwY29uZmlnOkdldENvbmZpZ3VyYXRpb25Qcm9maWxlXCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldERlcGxveW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnQgPSBcImFwcGNvbmZpZzpHZXREZXBsb3ltZW50XCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldERlcGxveW1lbnRTdHJhdGVneSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGVwbG95bWVudFN0cmF0ZWd5ID1cblx0XHRcImFwcGNvbmZpZzpHZXREZXBsb3ltZW50U3RyYXRlZ3lcIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RW52aXJvbm1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEVudmlyb25tZW50ID0gXCJhcHBjb25maWc6R2V0RW52aXJvbm1lbnRcIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RXh0ZW5zaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHRlbnNpb24gPSBcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RXh0ZW5zaW9uQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV4dGVuc2lvbkFzc29jaWF0aW9uID1cblx0XHRcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25Bc3NvY2lhdGlvblwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gPVxuXHRcdFwiYXBwY29uZmlnOkdldEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldExhdGVzdENvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExhdGVzdENvbmZpZ3VyYXRpb24gPVxuXHRcdFwiYXBwY29uZmlnOkdldExhdGVzdENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEFwcGxpY2F0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFwcGxpY2F0aW9ucyA9IFwiYXBwY29uZmlnOkxpc3RBcHBsaWNhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlcyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlc1wiO1xuXHQvKiogW0xpc3RdIGFwcGNvbmZpZzpMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXBsb3ltZW50U3RyYXRlZ2llcyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdERlcGxveW1lbnRTdHJhdGVnaWVzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3REZXBsb3ltZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERlcGxveW1lbnRzID0gXCJhcHBjb25maWc6TGlzdERlcGxveW1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3RFbnZpcm9ubWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFbnZpcm9ubWVudHMgPSBcImFwcGNvbmZpZzpMaXN0RW52aXJvbm1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnMgPVxuXHRcdFwiYXBwY29uZmlnOkxpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEV4dGVuc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHRlbnNpb25zID0gXCJhcHBjb25maWc6TGlzdEV4dGVuc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9ucyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uc1wiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJhcHBjb25maWc6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6U3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbiA9XG5cdFx0XCJhcHBjb25maWc6U3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6U3RhcnREZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydERlcGxveW1lbnQgPSBcImFwcGNvbmZpZzpTdGFydERlcGxveW1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlN0b3BEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRGVwbG95bWVudCA9IFwiYXBwY29uZmlnOlN0b3BEZXBsb3ltZW50XCI7XG5cdC8qKiBbVGFnZ2luZ10gYXBwY29uZmlnOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiYXBwY29uZmlnOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gYXBwY29uZmlnOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImFwcGNvbmZpZzpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY291bnRTZXR0aW5ncyA9IFwiYXBwY29uZmlnOlVwZGF0ZUFjY291bnRTZXR0aW5nc1wiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VXBkYXRlQXBwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFwcGxpY2F0aW9uID0gXCJhcHBjb25maWc6VXBkYXRlQXBwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25maWd1cmF0aW9uUHJvZmlsZSA9XG5cdFx0XCJhcHBjb25maWc6VXBkYXRlQ29uZmlndXJhdGlvblByb2ZpbGVcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlVwZGF0ZURlcGxveW1lbnRTdHJhdGVneSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5ID1cblx0XHRcImFwcGNvbmZpZzpVcGRhdGVEZXBsb3ltZW50U3RyYXRlZ3lcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlVwZGF0ZUVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFbnZpcm9ubWVudCA9IFwiYXBwY29uZmlnOlVwZGF0ZUVudmlyb25tZW50XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVFeHRlbnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4dGVuc2lvbiA9IFwiYXBwY29uZmlnOlVwZGF0ZUV4dGVuc2lvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uID1cblx0XHRcImFwcGNvbmZpZzpVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VmFsaWRhdGVDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZUNvbmZpZ3VyYXRpb24gPSBcImFwcGNvbmZpZzpWYWxpZGF0ZUNvbmZpZ3VyYXRpb25cIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldEFjY291bnRTZXR0aW5ncyxcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldEFwcGxpY2F0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0Q29uZmlndXJhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldENvbmZpZ3VyYXRpb25Qcm9maWxlLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0RGVwbG95bWVudCxcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldERlcGxveW1lbnRTdHJhdGVneSxcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldEVudmlyb25tZW50LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0RXh0ZW5zaW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0RXh0ZW5zaW9uQXNzb2NpYXRpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXRIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldExhdGVzdENvbmZpZ3VyYXRpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlQXBwbGljYXRpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5DcmVhdGVDb25maWd1cmF0aW9uUHJvZmlsZSxcblx0XHRBcHBjb25maWdBY3Rpb25zLkNyZWF0ZURlcGxveW1lbnRTdHJhdGVneSxcblx0XHRBcHBjb25maWdBY3Rpb25zLkNyZWF0ZUVudmlyb25tZW50LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlRXh0ZW5zaW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5DcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUFwcGxpY2F0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuRGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGUsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5EZWxldGVEZXBsb3ltZW50U3RyYXRlZ3ksXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5EZWxldGVFbnZpcm9ubWVudCxcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUV4dGVuc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuRGVsZXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5TdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuU3RhcnREZXBsb3ltZW50LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuU3RvcERlcGxveW1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVBY2NvdW50U2V0dGluZ3MsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVBcHBsaWNhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVXBkYXRlRW52aXJvbm1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVFeHRlbnNpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLlZhbGlkYXRlQ29uZmlndXJhdGlvbixcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0QXBwbGljYXRpb25zLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuTGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlcyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3REZXBsb3ltZW50U3RyYXRlZ2llcyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3REZXBsb3ltZW50cyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RFbnZpcm9ubWVudHMsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0RXh0ZW5zaW9uQXNzb2NpYXRpb25zLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuTGlzdEV4dGVuc2lvbnMsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBcHBjb25maWdBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFwcGxpY2F0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdBcHBsaWNhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYXBwbGljYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0FwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29uZmlndXJhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnQ29uZmlndXJhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xuXHQvKiogVGhlIENvbmZpZ3VyYXRpb25Qcm9maWxlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25Qcm9maWxlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjb25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEVudmlyb25tZW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlndXJhdGlvblByb2ZpbGVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25Qcm9maWxlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNvbmZpZ3VyYXRpb25wcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdDb25maWd1cmF0aW9ucHJvZmlsZUFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlndXJhdGlvblByb2ZpbGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbmZpZ3VyYXRpb25wcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdDb25maWd1cmF0aW9ucHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQXBwbGljYXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWd1cmF0aW9uUHJvZmlsZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGVwbG95bWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRGVwbG95bWVudEFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xuXHQvKiogVGhlIERlcGxveW1lbnROdW1iZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRlcGxveW1lbnROdW1iZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkZXBsb3ltZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdEZXBsb3ltZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEVudmlyb25tZW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGVwbG95bWVudE51bWJlciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRlcGxveW1lbnROdW1iZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRlcGxveW1lbnRzdHJhdGVneSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRGVwbG95bWVudHN0cmF0ZWd5QXJuUHJvcHMge1xuXHQvKiogVGhlIERlcGxveW1lbnRTdHJhdGVneUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXBsb3ltZW50U3RyYXRlZ3lJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRlcGxveW1lbnRzdHJhdGVneSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRGVwbG95bWVudHN0cmF0ZWd5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXBsb3ltZW50U3RyYXRlZ3lJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRlcGxveW1lbnRTdHJhdGVneUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBlbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRW52aXJvbm1lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQXBwbGljYXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEVudmlyb25tZW50SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGVudmlyb25tZW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBlbnZpcm9ubWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRW52aXJvbm1lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGVudmlyb25tZW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV4dGVuc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRXh0ZW5zaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEV4dGVuc2lvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleHRlbnNpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEV4dGVuc2lvblZlcnNpb25OdW1iZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGV4dGVuc2lvblZlcnNpb25OdW1iZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBleHRlbnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0V4dGVuc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBleHRlbnNpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEV4dGVuc2lvblZlcnNpb25OdW1iZXIgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBleHRlbnNpb25WZXJzaW9uTnVtYmVyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBleHRlbnNpb25hc3NvY2lhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRXh0ZW5zaW9uYXNzb2NpYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uQXNzb2NpYXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXh0ZW5zaW9uQXNzb2NpYXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGV4dGVuc2lvbmFzc29jaWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFeHRlbnNpb25hc3NvY2lhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uQXNzb2NpYXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV4dGVuc2lvbkFzc29jaWF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlndXJhdGlvblByb2ZpbGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQXBwbGljYXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWd1cmF0aW9uUHJvZmlsZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xufVxuXG5jb25zdCBBcHBsaWNhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphcHBsaWNhdGlvblxcLyg/PGFwcGxpY2F0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IENvbmZpZ3VyYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwbGljYXRpb25cXC8oPzxhcHBsaWNhdGlvbklkPlteOi8/XSspXFwvZW52aXJvbm1lbnRcXC8oPzxlbnZpcm9ubWVudElkPlteOi8/XSspXFwvY29uZmlndXJhdGlvblxcLyg/PGNvbmZpZ3VyYXRpb25Qcm9maWxlSWQ+W146Lz9dKykkLztcbmNvbnN0IENvbmZpZ3VyYXRpb25wcm9maWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKVxcL2NvbmZpZ3VyYXRpb25wcm9maWxlXFwvKD88Y29uZmlndXJhdGlvblByb2ZpbGVJZD5bXjovP10rKSQvO1xuY29uc3QgRGVwbG95bWVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphcHBsaWNhdGlvblxcLyg/PGFwcGxpY2F0aW9uSWQ+W146Lz9dKylcXC9lbnZpcm9ubWVudFxcLyg/PGVudmlyb25tZW50SWQ+W146Lz9dKylcXC9kZXBsb3ltZW50XFwvKD88ZGVwbG95bWVudE51bWJlcj5bXjovP10rKSQvO1xuY29uc3QgRGVwbG95bWVudHN0cmF0ZWd5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRlcGxveW1lbnRzdHJhdGVneVxcLyg/PGRlcGxveW1lbnRTdHJhdGVneUlkPlteOi8/XSspJC87XG5jb25zdCBFbnZpcm9ubWVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphcHBsaWNhdGlvblxcLyg/PGFwcGxpY2F0aW9uSWQ+W146Lz9dKylcXC9lbnZpcm9ubWVudFxcLyg/PGVudmlyb25tZW50SWQ+W146Lz9dKykkLztcbmNvbnN0IEV4dGVuc2lvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpleHRlbnNpb25cXC8oPzxleHRlbnNpb25JZD5bXjovP10rKVxcLyg/PGV4dGVuc2lvblZlcnNpb25OdW1iZXI+W146Lz9dKykkLztcbmNvbnN0IEV4dGVuc2lvbmFzc29jaWF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmV4dGVuc2lvbmFzc29jaWF0aW9uXFwvKD88ZXh0ZW5zaW9uQXNzb2NpYXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgSG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwbGljYXRpb25cXC8oPzxhcHBsaWNhdGlvbklkPlteOi8/XSspXFwvY29uZmlndXJhdGlvbnByb2ZpbGVcXC8oPzxjb25maWd1cmF0aW9uUHJvZmlsZUlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgYXBwY29uZmlnIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGNvbmZpZ1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXBwbGljYXRpb24ocHJvcHM6IEFwcGNvbmZpZ0FwcGxpY2F0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBcHBsaWNhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBcHBsaWNhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhcHBsaWNhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBcHBsaWNhdGlvbkFybihhcm46IHN0cmluZyk6IEFwcGNvbmZpZ0FwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBcHBsaWNhdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhcHBsaWNhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhcHBsaWNhdGlvbklkOiBtYXRjaC5ncm91cHMhLmFwcGxpY2F0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29uZmlndXJhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjb25maWd1cmF0aW9uKHByb3BzOiBBcHBjb25maWdDb25maWd1cmF0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9L2Vudmlyb25tZW50LyR7cHJvcHMuZW52aXJvbm1lbnRJZH0vY29uZmlndXJhdGlvbi8ke3Byb3BzLmNvbmZpZ3VyYXRpb25Qcm9maWxlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbmZpZ3VyYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjb25maWd1cmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbmZpZ3VyYXRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbmZpZ3VyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29uZmlndXJhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhcHBsaWNhdGlvbklkOiBtYXRjaC5ncm91cHMhLmFwcGxpY2F0aW9uSWQsXG5cdFx0XHRlbnZpcm9ubWVudElkOiBtYXRjaC5ncm91cHMhLmVudmlyb25tZW50SWQsXG5cdFx0XHRjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBtYXRjaC5ncm91cHMhLmNvbmZpZ3VyYXRpb25Qcm9maWxlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY29uZmlndXJhdGlvbnByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29uZmlndXJhdGlvbnByb2ZpbGUoXG5cdFx0cHJvcHM6IEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25wcm9maWxlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXBwY29uZmlnOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwcGxpY2F0aW9uLyR7cHJvcHMuYXBwbGljYXRpb25JZH0vY29uZmlndXJhdGlvbnByb2ZpbGUvJHtwcm9wcy5jb25maWd1cmF0aW9uUHJvZmlsZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25maWd1cmF0aW9ucHJvZmlsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29uZmlndXJhdGlvbnByb2ZpbGVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbnByb2ZpbGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29uZmlndXJhdGlvbnByb2ZpbGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29uZmlndXJhdGlvbnByb2ZpbGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25wcm9maWxlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25maWd1cmF0aW9ucHJvZmlsZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25maWd1cmF0aW9ucHJvZmlsZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhcHBsaWNhdGlvbklkOiBtYXRjaC5ncm91cHMhLmFwcGxpY2F0aW9uSWQsXG5cdFx0XHRjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBtYXRjaC5ncm91cHMhLmNvbmZpZ3VyYXRpb25Qcm9maWxlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGVwbG95bWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXBsb3ltZW50KHByb3BzOiBBcHBjb25maWdEZXBsb3ltZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9L2Vudmlyb25tZW50LyR7cHJvcHMuZW52aXJvbm1lbnRJZH0vZGVwbG95bWVudC8ke3Byb3BzLmRlcGxveW1lbnROdW1iZXJ9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRlcGxveW1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERlcGxveW1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGVwbG95bWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXBsb3ltZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURlcGxveW1lbnRBcm4oYXJuOiBzdHJpbmcpOiBBcHBjb25maWdEZXBsb3ltZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXBsb3ltZW50QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlcGxveW1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdFx0ZW52aXJvbm1lbnRJZDogbWF0Y2guZ3JvdXBzIS5lbnZpcm9ubWVudElkLFxuXHRcdFx0ZGVwbG95bWVudE51bWJlcjogbWF0Y2guZ3JvdXBzIS5kZXBsb3ltZW50TnVtYmVyLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRlcGxveW1lbnRzdHJhdGVneSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXBsb3ltZW50c3RyYXRlZ3koXG5cdFx0cHJvcHM6IEFwcGNvbmZpZ0RlcGxveW1lbnRzdHJhdGVneUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXBsb3ltZW50c3RyYXRlZ3kvJHtwcm9wcy5kZXBsb3ltZW50U3RyYXRlZ3lJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGVwbG95bWVudHN0cmF0ZWd5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXBsb3ltZW50c3RyYXRlZ3lBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGVwbG95bWVudHN0cmF0ZWd5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGRlcGxveW1lbnRzdHJhdGVneSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXBsb3ltZW50c3RyYXRlZ3lBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFwcGNvbmZpZ0RlcGxveW1lbnRzdHJhdGVneUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGVwbG95bWVudHN0cmF0ZWd5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlcGxveW1lbnRzdHJhdGVneSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXBsb3ltZW50U3RyYXRlZ3lJZDogbWF0Y2guZ3JvdXBzIS5kZXBsb3ltZW50U3RyYXRlZ3lJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBlbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBlbnZpcm9ubWVudChwcm9wczogQXBwY29uZmlnRW52aXJvbm1lbnRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXBwY29uZmlnOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwcGxpY2F0aW9uLyR7cHJvcHMuYXBwbGljYXRpb25JZH0vZW52aXJvbm1lbnQvJHtwcm9wcy5lbnZpcm9ubWVudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBlbnZpcm9ubWVudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRW52aXJvbm1lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRW52aXJvbm1lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZW52aXJvbm1lbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRW52aXJvbm1lbnRBcm4oYXJuOiBzdHJpbmcpOiBBcHBjb25maWdFbnZpcm9ubWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRW52aXJvbm1lbnRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW52aXJvbm1lbnQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdFx0ZW52aXJvbm1lbnRJZDogbWF0Y2guZ3JvdXBzIS5lbnZpcm9ubWVudElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGV4dGVuc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBleHRlbnNpb24ocHJvcHM6IEFwcGNvbmZpZ0V4dGVuc2lvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZXh0ZW5zaW9uLyR7cHJvcHMuZXh0ZW5zaW9uSWR9LyR7cHJvcHMuZXh0ZW5zaW9uVmVyc2lvbk51bWJlcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXh0ZW5zaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFeHRlbnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXh0ZW5zaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV4dGVuc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFeHRlbnNpb25Bcm4oYXJuOiBzdHJpbmcpOiBBcHBjb25maWdFeHRlbnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEV4dGVuc2lvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBleHRlbnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXh0ZW5zaW9uSWQ6IG1hdGNoLmdyb3VwcyEuZXh0ZW5zaW9uSWQsXG5cdFx0XHRleHRlbnNpb25WZXJzaW9uTnVtYmVyOiBtYXRjaC5ncm91cHMhLmV4dGVuc2lvblZlcnNpb25OdW1iZXIsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZXh0ZW5zaW9uYXNzb2NpYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXh0ZW5zaW9uYXNzb2NpYXRpb24oXG5cdFx0cHJvcHM6IEFwcGNvbmZpZ0V4dGVuc2lvbmFzc29jaWF0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXBwY29uZmlnOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV4dGVuc2lvbmFzc29jaWF0aW9uLyR7cHJvcHMuZXh0ZW5zaW9uQXNzb2NpYXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXh0ZW5zaW9uYXNzb2NpYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEV4dGVuc2lvbmFzc29jaWF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV4dGVuc2lvbmFzc29jaWF0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV4dGVuc2lvbmFzc29jaWF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUV4dGVuc2lvbmFzc29jaWF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBcHBjb25maWdFeHRlbnNpb25hc3NvY2lhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXh0ZW5zaW9uYXNzb2NpYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXh0ZW5zaW9uYXNzb2NpYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXh0ZW5zaW9uQXNzb2NpYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5leHRlbnNpb25Bc3NvY2lhdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uKFxuXHRcdHByb3BzOiBBcHBjb25maWdIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9L2NvbmZpZ3VyYXRpb25wcm9maWxlLyR7cHJvcHMuY29uZmlndXJhdGlvblByb2ZpbGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBcHBjb25maWdIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdFx0Y29uZmlndXJhdGlvblByb2ZpbGVJZDogbWF0Y2guZ3JvdXBzIS5jb25maWd1cmF0aW9uUHJvZmlsZUlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGFwcGNvbmZpZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGNvbmZpZ09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBcHBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFwcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVBcHBsaWNhdGlvblwiLFxuXHRcdFwiYXBwY29uZmlnOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uZmlndXJhdGlvblByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZURlcGxveW1lbnRTdHJhdGVneVwiLFxuXHRcdFwiYXBwY29uZmlnOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZUVudmlyb25tZW50XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4cGVyaW1lbnREZWZpbml0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHRlbnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZUV4dGVuc2lvblwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25cIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBcHBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFwcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpEZWxldGVBcHBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25maWd1cmF0aW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6RGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5OiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVEZXBsb3ltZW50U3RyYXRlZ3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRW52aXJvbm1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6RGVsZXRlRW52aXJvbm1lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4cGVyaW1lbnREZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXhwZXJpbWVudERlZmluaXRpb246IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4dGVuc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbjogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6RGVsZXRlRXh0ZW5zaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0QWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFwcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBcHBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6R2V0QXBwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkdldENvbmZpZ3VyYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbmZpZ3VyYXRpb25Qcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb25maWd1cmF0aW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0Q29uZmlndXJhdGlvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGVwbG95bWVudDogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6R2V0RGVwbG95bWVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGVwbG95bWVudFN0cmF0ZWd5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXBsb3ltZW50U3RyYXRlZ3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkdldERlcGxveW1lbnRTdHJhdGVneVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkdldEVudmlyb25tZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFeHBlcmltZW50RGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXhwZXJpbWVudERlZmluaXRpb246IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4cGVyaW1lbnRSdW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV4cGVyaW1lbnRSdW46IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4dGVuc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXh0ZW5zaW9uOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4dGVuc2lvbkFzc29jaWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFeHRlbnNpb25Bc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0RXh0ZW5zaW9uQXNzb2NpYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpHZXRIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXRlc3RDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMYXRlc3RDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpHZXRMYXRlc3RDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBcHBsaWNhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXBwbGljYXRpb25zOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpMaXN0QXBwbGljYXRpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29uZmlndXJhdGlvblByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkxpc3REZXBsb3ltZW50U3RyYXRlZ2llc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGVwbG95bWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3REZXBsb3ltZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEVudmlyb25tZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFbnZpcm9ubWVudHM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3RFbnZpcm9ubWVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHBlcmltZW50RGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhwZXJpbWVudERlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXhwZXJpbWVudFJ1bkV2ZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHBlcmltZW50UnVuRXZlbnRzOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXhwZXJpbWVudFJ1bnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhwZXJpbWVudFJ1bnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaW9uQXNzb2NpYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpMaXN0RXh0ZW5zaW9uQXNzb2NpYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHRlbnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3RFeHRlbnNpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6U3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydERlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydERlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOlN0YXJ0RGVwbG95bWVudFwiLFxuXHRcdFwiYXBwY29uZmlnOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0RXhwZXJpbWVudFJ1biBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RXhwZXJpbWVudFJ1bjogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BEZXBsb3ltZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcERlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlN0b3BEZXBsb3ltZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRXhwZXJpbWVudFJ1biBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BFeHBlcmltZW50UnVuOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFjY291bnRTZXR0aW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFwcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXBwbGljYXRpb246IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlVwZGF0ZUFwcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb25maWd1cmF0aW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXhwZXJpbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeHBlcmltZW50RGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXhwZXJpbWVudFJ1biBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4cGVyaW1lbnRSdW46IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUV4dGVuc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4dGVuc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImFwcGNvbmZpZzpVcGRhdGVFeHRlbnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVmFsaWRhdGVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVmFsaWRhdGVDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpWYWxpZGF0ZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGFwcGNvbmZpZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGNvbmZpZ0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQXBwbGljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXBwbGljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFbnZpcm9ubWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFbnZpcm9ubWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5zaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEFwcGxpY2F0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFwcGxpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldENvbmZpZ3VyYXRpb25Qcm9maWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZ3VyYXRpb25Qcm9maWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXREZXBsb3ltZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldERlcGxveW1lbnRTdHJhdGVneSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXBsb3ltZW50U3RyYXRlZ3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEVudmlyb25tZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEVudmlyb25tZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRFeHRlbnNpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RXh0ZW5zaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRFeHRlbnNpb25Bc3NvY2lhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHRlbnNpb25Bc3NvY2lhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0TGF0ZXN0Q29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMYXRlc3RDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0Q29uZmlndXJhdGlvblNlc3Npb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnREZXBsb3ltZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RGVwbG95bWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVBcHBsaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBcHBsaWNhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQ29uZmlndXJhdGlvblByb2ZpbGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29uZmlndXJhdGlvblByb2ZpbGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVEZXBsb3ltZW50U3RyYXRlZ3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUVudmlyb25tZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUVudmlyb25tZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVFeHRlbnNpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXh0ZW5zaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cbn1cbiJdfQ==
|
|
940
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9hcHBjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxnREFBZ0Q7QUFDaEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCOztBQUE3Qiw0Q0EyTkM7OztBQTFOQSw4QkFBOEI7QUFDZCwrQkFBYyxHQUFHLFdBQVcsQ0FBQztBQUU3QywwQ0FBMEM7QUFDMUIsa0NBQWlCLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsbURBQW1EO0FBQ25DLDJDQUEwQixHQUN6QyxzQ0FBc0MsQ0FBQztBQUN4QyxpREFBaUQ7QUFDakMseUNBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLDBDQUEwQztBQUMxQixrQ0FBaUIsR0FBRyw2QkFBNkIsQ0FBQztBQUNsRSxtREFBbUQ7QUFDbkMsMkNBQTBCLEdBQ3pDLHNDQUFzQyxDQUFDO0FBQ3hDLHdDQUF3QztBQUN4QixnQ0FBZSxHQUFHLDJCQUEyQixDQUFDO0FBQzlELG1EQUFtRDtBQUNuQywyQ0FBMEIsR0FDekMsc0NBQXNDLENBQUM7QUFDeEMseURBQXlEO0FBQ3pDLGlEQUFnQyxHQUMvQyw0Q0FBNEMsQ0FBQztBQUM5QywwQ0FBMEM7QUFDMUIsa0NBQWlCLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsbURBQW1EO0FBQ25DLDJDQUEwQixHQUN6QyxzQ0FBc0MsQ0FBQztBQUN4QyxpREFBaUQ7QUFDakMseUNBQXdCLEdBQ3ZDLG9DQUFvQyxDQUFDO0FBQ3RDLDBDQUEwQztBQUMxQixrQ0FBaUIsR0FBRyw2QkFBNkIsQ0FBQztBQUNsRSxtREFBbUQ7QUFDbkMsMkNBQTBCLEdBQ3pDLHNDQUFzQyxDQUFDO0FBQ3hDLHdDQUF3QztBQUN4QixnQ0FBZSxHQUFHLDJCQUEy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QixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyxnQ0FBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2FwcGNvbmZpZy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgYXBwY29uZmlnIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBjb25maWdBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiYXBwY29uZmlnXCI7XG5cblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZUFwcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBcHBsaWNhdGlvbiA9IFwiYXBwY29uZmlnOkNyZWF0ZUFwcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpDcmVhdGVDb25maWd1cmF0aW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uZmlndXJhdGlvblByb2ZpbGUgPVxuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURlcGxveW1lbnRTdHJhdGVneSA9XG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpDcmVhdGVFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRW52aXJvbm1lbnQgPSBcImFwcGNvbmZpZzpDcmVhdGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6Q3JlYXRlRXhwZXJpbWVudERlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4cGVyaW1lbnREZWZpbml0aW9uID1cblx0XHRcImFwcGNvbmZpZzpDcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6Q3JlYXRlRXh0ZW5zaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb24gPSBcImFwcGNvbmZpZzpDcmVhdGVFeHRlbnNpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbiA9XG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkNyZWF0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiA9XG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZUFwcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVBcHBsaWNhdGlvbiA9IFwiYXBwY29uZmlnOkRlbGV0ZUFwcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpEZWxldGVDb25maWd1cmF0aW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGUgPVxuXHRcdFwiYXBwY29uZmlnOkRlbGV0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpEZWxldGVEZXBsb3ltZW50U3RyYXRlZ3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURlcGxveW1lbnRTdHJhdGVneSA9XG5cdFx0XCJhcHBjb25maWc6RGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpEZWxldGVFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRW52aXJvbm1lbnQgPSBcImFwcGNvbmZpZzpEZWxldGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6RGVsZXRlRXhwZXJpbWVudERlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4cGVyaW1lbnREZWZpbml0aW9uID1cblx0XHRcImFwcGNvbmZpZzpEZWxldGVFeHBlcmltZW50RGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6RGVsZXRlRXh0ZW5zaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeHRlbnNpb24gPSBcImFwcGNvbmZpZzpEZWxldGVFeHRlbnNpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvbiA9XG5cdFx0XCJhcHBjb25maWc6RGVsZXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOkRlbGV0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiA9XG5cdFx0XCJhcHBjb25maWc6RGVsZXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0QWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBY2NvdW50U2V0dGluZ3MgPSBcImFwcGNvbmZpZzpHZXRBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0QXBwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFwcGxpY2F0aW9uID0gXCJhcHBjb25maWc6R2V0QXBwbGljYXRpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0Q29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q29uZmlndXJhdGlvbiA9IFwiYXBwY29uZmlnOkdldENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0Q29uZmlndXJhdGlvblByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZ3VyYXRpb25Qcm9maWxlID1cblx0XHRcImFwcGNvbmZpZzpHZXRDb25maWd1cmF0aW9uUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXREZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXBsb3ltZW50ID0gXCJhcHBjb25maWc6R2V0RGVwbG95bWVudFwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXREZXBsb3ltZW50U3RyYXRlZ3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnRTdHJhdGVneSA9XG5cdFx0XCJhcHBjb25maWc6R2V0RGVwbG95bWVudFN0cmF0ZWd5XCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldEVudmlyb25tZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFbnZpcm9ubWVudCA9IFwiYXBwY29uZmlnOkdldEVudmlyb25tZW50XCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldEV4cGVyaW1lbnREZWZpbml0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHBlcmltZW50RGVmaW5pdGlvbiA9XG5cdFx0XCJhcHBjb25maWc6R2V0RXhwZXJpbWVudERlZmluaXRpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RXhwZXJpbWVudFJ1biAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RXhwZXJpbWVudFJ1biA9IFwiYXBwY29uZmlnOkdldEV4cGVyaW1lbnRSdW5cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RXh0ZW5zaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHRlbnNpb24gPSBcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25cIjtcblx0LyoqIFtSZWFkXSBhcHBjb25maWc6R2V0RXh0ZW5zaW9uQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV4dGVuc2lvbkFzc29jaWF0aW9uID1cblx0XHRcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25Bc3NvY2lhdGlvblwiO1xuXHQvKiogW1JlYWRdIGFwcGNvbmZpZzpHZXRIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gPVxuXHRcdFwiYXBwY29uZmlnOkdldEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkdldExhdGVzdENvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExhdGVzdENvbmZpZ3VyYXRpb24gPVxuXHRcdFwiYXBwY29uZmlnOkdldExhdGVzdENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEFwcGxpY2F0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFwcGxpY2F0aW9ucyA9IFwiYXBwY29uZmlnOkxpc3RBcHBsaWNhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlcyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlc1wiO1xuXHQvKiogW0xpc3RdIGFwcGNvbmZpZzpMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REZXBsb3ltZW50U3RyYXRlZ2llcyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdERlcGxveW1lbnRTdHJhdGVnaWVzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3REZXBsb3ltZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERlcGxveW1lbnRzID0gXCJhcHBjb25maWc6TGlzdERlcGxveW1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3RFbnZpcm9ubWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFbnZpcm9ubWVudHMgPSBcImFwcGNvbmZpZzpMaXN0RW52aXJvbm1lbnRzXCI7XG5cdC8qKiBbTGlzdF0gYXBwY29uZmlnOkxpc3RFeHBlcmltZW50RGVmaW5pdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHBlcmltZW50RGVmaW5pdGlvbnMgPVxuXHRcdFwiYXBwY29uZmlnOkxpc3RFeHBlcmltZW50RGVmaW5pdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEV4cGVyaW1lbnRSdW5FdmVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHBlcmltZW50UnVuRXZlbnRzID0gXCJhcHBjb25maWc6TGlzdEV4cGVyaW1lbnRSdW5FdmVudHNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEV4cGVyaW1lbnRSdW5zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhwZXJpbWVudFJ1bnMgPSBcImFwcGNvbmZpZzpMaXN0RXhwZXJpbWVudFJ1bnNcIjtcblx0LyoqIFtMaXN0XSBhcHBjb25maWc6TGlzdEV4dGVuc2lvbkFzc29jaWF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2lvbkFzc29jaWF0aW9ucyA9XG5cdFx0XCJhcHBjb25maWc6TGlzdEV4dGVuc2lvbkFzc29jaWF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGFwcGNvbmZpZzpMaXN0RXh0ZW5zaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2lvbnMgPSBcImFwcGNvbmZpZzpMaXN0RXh0ZW5zaW9uc1wiO1xuXHQvKiogW0xpc3RdIGFwcGNvbmZpZzpMaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zID1cblx0XHRcImFwcGNvbmZpZzpMaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zXCI7XG5cdC8qKiBbUmVhZF0gYXBwY29uZmlnOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImFwcGNvbmZpZzpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpTdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uID1cblx0XHRcImFwcGNvbmZpZzpTdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpTdGFydERlcGxveW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RGVwbG95bWVudCA9IFwiYXBwY29uZmlnOlN0YXJ0RGVwbG95bWVudFwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6U3RhcnRFeHBlcmltZW50UnVuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEV4cGVyaW1lbnRSdW4gPSBcImFwcGNvbmZpZzpTdGFydEV4cGVyaW1lbnRSdW5cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlN0b3BEZXBsb3ltZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRGVwbG95bWVudCA9IFwiYXBwY29uZmlnOlN0b3BEZXBsb3ltZW50XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpTdG9wRXhwZXJpbWVudFJ1biAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEV4cGVyaW1lbnRSdW4gPSBcImFwcGNvbmZpZzpTdG9wRXhwZXJpbWVudFJ1blwiO1xuXHQvKiogW1RhZ2dpbmddIGFwcGNvbmZpZzpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGFwcGNvbmZpZzpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJhcHBjb25maWc6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VXBkYXRlQWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgPSBcImFwcGNvbmZpZzpVcGRhdGVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlVwZGF0ZUFwcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBcHBsaWNhdGlvbiA9IFwiYXBwY29uZmlnOlVwZGF0ZUFwcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVDb25maWd1cmF0aW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29uZmlndXJhdGlvblByb2ZpbGUgPVxuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVEZXBsb3ltZW50U3RyYXRlZ3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneSA9XG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5XCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVFbnZpcm9ubWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRW52aXJvbm1lbnQgPSBcImFwcGNvbmZpZzpVcGRhdGVFbnZpcm9ubWVudFwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VXBkYXRlRXhwZXJpbWVudERlZmluaXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4cGVyaW1lbnREZWZpbml0aW9uID1cblx0XHRcImFwcGNvbmZpZzpVcGRhdGVFeHBlcmltZW50RGVmaW5pdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhcHBjb25maWc6VXBkYXRlRXhwZXJpbWVudFJ1biAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhwZXJpbWVudFJ1biA9IFwiYXBwY29uZmlnOlVwZGF0ZUV4cGVyaW1lbnRSdW5cIjtcblx0LyoqIFtXcml0ZV0gYXBwY29uZmlnOlVwZGF0ZUV4dGVuc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXh0ZW5zaW9uID0gXCJhcHBjb25maWc6VXBkYXRlRXh0ZW5zaW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gPVxuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGFwcGNvbmZpZzpWYWxpZGF0ZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFZhbGlkYXRlQ29uZmlndXJhdGlvbiA9IFwiYXBwY29uZmlnOlZhbGlkYXRlQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0QWNjb3VudFNldHRpbmdzLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0QXBwbGljYXRpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXRDb25maWd1cmF0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0Q29uZmlndXJhdGlvblByb2ZpbGUsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXREZXBsb3ltZW50LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0RGVwbG95bWVudFN0cmF0ZWd5LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0RW52aXJvbm1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXRFeHBlcmltZW50RGVmaW5pdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldEV4cGVyaW1lbnRSdW4sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXRFeHRlbnNpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5hY3Rpb25HZXRFeHRlbnNpb25Bc3NvY2lhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLmFjdGlvbkdldEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuYWN0aW9uR2V0TGF0ZXN0Q29uZmlndXJhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5DcmVhdGVBcHBsaWNhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkNyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlRW52aXJvbm1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5DcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkNyZWF0ZUV4dGVuc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkNyZWF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuQ3JlYXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5EZWxldGVBcHBsaWNhdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuRGVsZXRlRW52aXJvbm1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5EZWxldGVFeHBlcmltZW50RGVmaW5pdGlvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUV4dGVuc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLkRlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuRGVsZXRlSG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24sXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5TdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuU3RhcnREZXBsb3ltZW50LFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuU3RhcnRFeHBlcmltZW50UnVuLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuU3RvcERlcGxveW1lbnQsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5TdG9wRXhwZXJpbWVudFJ1bixcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUFjY291bnRTZXR0aW5ncyxcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUFwcGxpY2F0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVXBkYXRlQ29uZmlndXJhdGlvblByb2ZpbGUsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVEZXBsb3ltZW50U3RyYXRlZ3ksXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VcGRhdGVFbnZpcm9ubWVudCxcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUV4cGVyaW1lbnREZWZpbml0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVXBkYXRlRXhwZXJpbWVudFJ1bixcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUV4dGVuc2lvbixcblx0XHRBcHBjb25maWdBY3Rpb25zLlVwZGF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVmFsaWRhdGVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RBcHBsaWNhdGlvbnMsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0Q29uZmlndXJhdGlvblByb2ZpbGVzLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuTGlzdERlcGxveW1lbnRTdHJhdGVnaWVzLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuTGlzdERlcGxveW1lbnRzLFxuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuTGlzdEVudmlyb25tZW50cyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RFeHBlcmltZW50RGVmaW5pdGlvbnMsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0RXhwZXJpbWVudFJ1bkV2ZW50cyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RFeHBlcmltZW50UnVucyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnMsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5MaXN0RXh0ZW5zaW9ucyxcblx0XHRBcHBjb25maWdBY3Rpb25zLkxpc3RIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbnMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEFwcGNvbmZpZ0FjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0QXBwY29uZmlnQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYXBwbGljYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0FwcGxpY2F0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcHBsaWNhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnQXBwbGljYXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25maWd1cmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdDb25maWd1cmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFbnZpcm9ubWVudElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlndXJhdGlvblByb2ZpbGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNvbmZpZ3VyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGVudmlyb25tZW50SWQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWd1cmF0aW9uUHJvZmlsZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29uZmlndXJhdGlvblByb2ZpbGVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY29uZmlndXJhdGlvbnByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25wcm9maWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWd1cmF0aW9uUHJvZmlsZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uZmlndXJhdGlvbnByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0NvbmZpZ3VyYXRpb25wcm9maWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIENvbmZpZ3VyYXRpb25Qcm9maWxlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkZXBsb3ltZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdEZXBsb3ltZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFbnZpcm9ubWVudElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGVwbG95bWVudE51bWJlciBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudE51bWJlcjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGRlcGxveW1lbnQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0RlcGxveW1lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGVudmlyb25tZW50SWQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXBsb3ltZW50TnVtYmVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudE51bWJlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGVwbG95bWVudHN0cmF0ZWd5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdEZXBsb3ltZW50c3RyYXRlZ3lBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGVwbG95bWVudFN0cmF0ZWd5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRlcGxveW1lbnRTdHJhdGVneUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGVwbG95bWVudHN0cmF0ZWd5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdEZXBsb3ltZW50c3RyYXRlZ3lBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERlcGxveW1lbnRTdHJhdGVneUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGVwbG95bWVudFN0cmF0ZWd5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGVudmlyb25tZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFbnZpcm9ubWVudEFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW52aXJvbm1lbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGVudmlyb25tZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFbnZpcm9ubWVudEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQXBwbGljYXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFbnZpcm9ubWVudElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXhwZXJpbWVudGRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0V4cGVyaW1lbnRkZWZpbml0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFeHBlcmltZW50RGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleHBlcmltZW50RGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXhwZXJpbWVudGRlZmluaXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0V4cGVyaW1lbnRkZWZpbml0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIEV4cGVyaW1lbnREZWZpbml0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBleHBlcmltZW50RGVmaW5pdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBleHBlcmltZW50cnVuIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFeHBlcmltZW50cnVuQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFeHBlcmltZW50RGVmaW5pdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleHBlcmltZW50RGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXhwZXJpbWVudFJ1bk51bWJlciBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXhwZXJpbWVudFJ1bk51bWJlcjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGV4cGVyaW1lbnRydW4gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0V4cGVyaW1lbnRydW5Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXhwZXJpbWVudERlZmluaXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV4cGVyaW1lbnREZWZpbml0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBFeHBlcmltZW50UnVuTnVtYmVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhwZXJpbWVudFJ1bk51bWJlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZXh0ZW5zaW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFeHRlbnNpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGV4dGVuc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uVmVyc2lvbk51bWJlciBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXh0ZW5zaW9uVmVyc2lvbk51bWJlcjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGV4dGVuc2lvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwY29uZmlnRXh0ZW5zaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBFeHRlbnNpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV4dGVuc2lvbklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRXh0ZW5zaW9uVmVyc2lvbk51bWJlciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV4dGVuc2lvblZlcnNpb25OdW1iZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV4dGVuc2lvbmFzc29jaWF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBjb25maWdFeHRlbnNpb25hc3NvY2lhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBFeHRlbnNpb25Bc3NvY2lhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleHRlbnNpb25Bc3NvY2lhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXh0ZW5zaW9uYXNzb2NpYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0V4dGVuc2lvbmFzc29jaWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBFeHRlbnNpb25Bc3NvY2lhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXh0ZW5zaW9uQXNzb2NpYXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0hvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIEFwcGxpY2F0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWd1cmF0aW9uUHJvZmlsZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGNvbmZpZ0hvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBsaWNhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBwbGljYXRpb25JZDogc3RyaW5nO1xuXHQvKiogVGhlIENvbmZpZ3VyYXRpb25Qcm9maWxlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25maWd1cmF0aW9uUHJvZmlsZUlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFwcGxpY2F0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgQ29uZmlndXJhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphcHBsaWNhdGlvblxcLyg/PGFwcGxpY2F0aW9uSWQ+W146Lz9dKylcXC9lbnZpcm9ubWVudFxcLyg/PGVudmlyb25tZW50SWQ+W146Lz9dKylcXC9jb25maWd1cmF0aW9uXFwvKD88Y29uZmlndXJhdGlvblByb2ZpbGVJZD5bXjovP10rKSQvO1xuY29uc3QgQ29uZmlndXJhdGlvbnByb2ZpbGVBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwbGljYXRpb25cXC8oPzxhcHBsaWNhdGlvbklkPlteOi8/XSspXFwvY29uZmlndXJhdGlvbnByb2ZpbGVcXC8oPzxjb25maWd1cmF0aW9uUHJvZmlsZUlkPlteOi8/XSspJC87XG5jb25zdCBEZXBsb3ltZW50QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKVxcL2Vudmlyb25tZW50XFwvKD88ZW52aXJvbm1lbnRJZD5bXjovP10rKVxcL2RlcGxveW1lbnRcXC8oPzxkZXBsb3ltZW50TnVtYmVyPlteOi8/XSspJC87XG5jb25zdCBEZXBsb3ltZW50c3RyYXRlZ3lBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGVwbG95bWVudHN0cmF0ZWd5XFwvKD88ZGVwbG95bWVudFN0cmF0ZWd5SWQ+W146Lz9dKykkLztcbmNvbnN0IEVudmlyb25tZW50QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKVxcL2Vudmlyb25tZW50XFwvKD88ZW52aXJvbm1lbnRJZD5bXjovP10rKSQvO1xuY29uc3QgRXhwZXJpbWVudGRlZmluaXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwbGljYXRpb25cXC8oPzxhcHBsaWNhdGlvbklkPlteOi8/XSspXFwvZXhwZXJpbWVudGRlZmluaXRpb25cXC8oPzxleHBlcmltZW50RGVmaW5pdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBFeHBlcmltZW50cnVuQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKVxcL2V4cGVyaW1lbnRkZWZpbml0aW9uXFwvKD88ZXhwZXJpbWVudERlZmluaXRpb25JZD5bXjovP10rKVxcL2V4cGVyaW1lbnRydW5cXC8oPzxleHBlcmltZW50UnVuTnVtYmVyPlteOi8/XSspJC87XG5jb25zdCBFeHRlbnNpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXBwY29uZmlnOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXh0ZW5zaW9uXFwvKD88ZXh0ZW5zaW9uSWQ+W146Lz9dKylcXC8oPzxleHRlbnNpb25WZXJzaW9uTnVtYmVyPlteOi8/XSspJC87XG5jb25zdCBFeHRlbnNpb25hc3NvY2lhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBjb25maWc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpleHRlbnNpb25hc3NvY2lhdGlvblxcLyg/PGV4dGVuc2lvbkFzc29jaWF0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IEhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcGNvbmZpZzooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFwcGxpY2F0aW9uXFwvKD88YXBwbGljYXRpb25JZD5bXjovP10rKVxcL2NvbmZpZ3VyYXRpb25wcm9maWxlXFwvKD88Y29uZmlndXJhdGlvblByb2ZpbGVJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGFwcGNvbmZpZyByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBjb25maWdSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFwcGxpY2F0aW9uKHByb3BzOiBBcHBjb25maWdBcHBsaWNhdGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXBwbGljYXRpb24vJHtwcm9wcy5hcHBsaWNhdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQXBwbGljYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXBwbGljYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXBwbGljYXRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQXBwbGljYXRpb25Bcm4oYXJuOiBzdHJpbmcpOiBBcHBjb25maWdBcHBsaWNhdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQXBwbGljYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXBwbGljYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29uZmlndXJhdGlvbihwcm9wczogQXBwY29uZmlnQ29uZmlndXJhdGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXBwbGljYXRpb24vJHtwcm9wcy5hcHBsaWNhdGlvbklkfS9lbnZpcm9ubWVudC8ke3Byb3BzLmVudmlyb25tZW50SWR9L2NvbmZpZ3VyYXRpb24vJHtwcm9wcy5jb25maWd1cmF0aW9uUHJvZmlsZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjb25maWd1cmF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25maWd1cmF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY29uZmlndXJhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25maWd1cmF0aW9uQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBcHBjb25maWdDb25maWd1cmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25maWd1cmF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdFx0ZW52aXJvbm1lbnRJZDogbWF0Y2guZ3JvdXBzIS5lbnZpcm9ubWVudElkLFxuXHRcdFx0Y29uZmlndXJhdGlvblByb2ZpbGVJZDogbWF0Y2guZ3JvdXBzIS5jb25maWd1cmF0aW9uUHJvZmlsZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbmZpZ3VyYXRpb25wcm9maWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbmZpZ3VyYXRpb25wcm9maWxlKFxuXHRcdHByb3BzOiBBcHBjb25maWdDb25maWd1cmF0aW9ucHJvZmlsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9L2NvbmZpZ3VyYXRpb25wcm9maWxlLyR7cHJvcHMuY29uZmlndXJhdGlvblByb2ZpbGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uZmlndXJhdGlvbnByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbmZpZ3VyYXRpb25wcm9maWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb25wcm9maWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbmZpZ3VyYXRpb25wcm9maWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbmZpZ3VyYXRpb25wcm9maWxlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBcHBjb25maWdDb25maWd1cmF0aW9ucHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29uZmlndXJhdGlvbnByb2ZpbGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29uZmlndXJhdGlvbnByb2ZpbGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBwbGljYXRpb25JZDogbWF0Y2guZ3JvdXBzIS5hcHBsaWNhdGlvbklkLFxuXHRcdFx0Y29uZmlndXJhdGlvblByb2ZpbGVJZDogbWF0Y2guZ3JvdXBzIS5jb25maWd1cmF0aW9uUHJvZmlsZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRlcGxveW1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGVwbG95bWVudChwcm9wczogQXBwY29uZmlnRGVwbG95bWVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXBwbGljYXRpb24vJHtwcm9wcy5hcHBsaWNhdGlvbklkfS9lbnZpcm9ubWVudC8ke3Byb3BzLmVudmlyb25tZW50SWR9L2RlcGxveW1lbnQvJHtwcm9wcy5kZXBsb3ltZW50TnVtYmVyfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBkZXBsb3ltZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXBsb3ltZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERlcGxveW1lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGVwbG95bWVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXBsb3ltZW50QXJuKGFybjogc3RyaW5nKTogQXBwY29uZmlnRGVwbG95bWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGVwbG95bWVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXBsb3ltZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuYXBwbGljYXRpb25JZCxcblx0XHRcdGVudmlyb25tZW50SWQ6IG1hdGNoLmdyb3VwcyEuZW52aXJvbm1lbnRJZCxcblx0XHRcdGRlcGxveW1lbnROdW1iZXI6IG1hdGNoLmdyb3VwcyEuZGVwbG95bWVudE51bWJlcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkZXBsb3ltZW50c3RyYXRlZ3kgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGVwbG95bWVudHN0cmF0ZWd5KFxuXHRcdHByb3BzOiBBcHBjb25maWdEZXBsb3ltZW50c3RyYXRlZ3lBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGVwbG95bWVudHN0cmF0ZWd5LyR7cHJvcHMuZGVwbG95bWVudFN0cmF0ZWd5SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRlcGxveW1lbnRzdHJhdGVneSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGVwbG95bWVudHN0cmF0ZWd5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERlcGxveW1lbnRzdHJhdGVneUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXBsb3ltZW50c3RyYXRlZ3kgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGVwbG95bWVudHN0cmF0ZWd5QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBcHBjb25maWdEZXBsb3ltZW50c3RyYXRlZ3lBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERlcGxveW1lbnRzdHJhdGVneUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXBsb3ltZW50c3RyYXRlZ3kgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGVwbG95bWVudFN0cmF0ZWd5SWQ6IG1hdGNoLmdyb3VwcyEuZGVwbG95bWVudFN0cmF0ZWd5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZW52aXJvbm1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZW52aXJvbm1lbnQocHJvcHM6IEFwcGNvbmZpZ0Vudmlyb25tZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphcHBsaWNhdGlvbi8ke3Byb3BzLmFwcGxpY2F0aW9uSWR9L2Vudmlyb25tZW50LyR7cHJvcHMuZW52aXJvbm1lbnRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZW52aXJvbm1lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEVudmlyb25tZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEVudmlyb25tZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGVudmlyb25tZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVudmlyb25tZW50QXJuKGFybjogc3RyaW5nKTogQXBwY29uZmlnRW52aXJvbm1lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEVudmlyb25tZW50QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGVudmlyb25tZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuYXBwbGljYXRpb25JZCxcblx0XHRcdGVudmlyb25tZW50SWQ6IG1hdGNoLmdyb3VwcyEuZW52aXJvbm1lbnRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBleHBlcmltZW50ZGVmaW5pdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBleHBlcmltZW50ZGVmaW5pdGlvbihcblx0XHRwcm9wczogQXBwY29uZmlnRXhwZXJpbWVudGRlZmluaXRpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXBwbGljYXRpb24vJHtwcm9wcy5hcHBsaWNhdGlvbklkfS9leHBlcmltZW50ZGVmaW5pdGlvbi8ke3Byb3BzLmV4cGVyaW1lbnREZWZpbml0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV4cGVyaW1lbnRkZWZpbml0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFeHBlcmltZW50ZGVmaW5pdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFeHBlcmltZW50ZGVmaW5pdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBleHBlcmltZW50ZGVmaW5pdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFeHBlcmltZW50ZGVmaW5pdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQXBwY29uZmlnRXhwZXJpbWVudGRlZmluaXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEV4cGVyaW1lbnRkZWZpbml0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV4cGVyaW1lbnRkZWZpbml0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuYXBwbGljYXRpb25JZCxcblx0XHRcdGV4cGVyaW1lbnREZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZXhwZXJpbWVudERlZmluaXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBleHBlcmltZW50cnVuIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV4cGVyaW1lbnRydW4ocHJvcHM6IEFwcGNvbmZpZ0V4cGVyaW1lbnRydW5Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXBwY29uZmlnOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwcGxpY2F0aW9uLyR7cHJvcHMuYXBwbGljYXRpb25JZH0vZXhwZXJpbWVudGRlZmluaXRpb24vJHtwcm9wcy5leHBlcmltZW50RGVmaW5pdGlvbklkfS9leHBlcmltZW50cnVuLyR7cHJvcHMuZXhwZXJpbWVudFJ1bk51bWJlcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXhwZXJpbWVudHJ1biByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXhwZXJpbWVudHJ1bkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFeHBlcmltZW50cnVuQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV4cGVyaW1lbnRydW4gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXhwZXJpbWVudHJ1bkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQXBwY29uZmlnRXhwZXJpbWVudHJ1bkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXhwZXJpbWVudHJ1bkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBleHBlcmltZW50cnVuIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuYXBwbGljYXRpb25JZCxcblx0XHRcdGV4cGVyaW1lbnREZWZpbml0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZXhwZXJpbWVudERlZmluaXRpb25JZCxcblx0XHRcdGV4cGVyaW1lbnRSdW5OdW1iZXI6IG1hdGNoLmdyb3VwcyEuZXhwZXJpbWVudFJ1bk51bWJlcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBleHRlbnNpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXh0ZW5zaW9uKHByb3BzOiBBcHBjb25maWdFeHRlbnNpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXBwY29uZmlnOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV4dGVuc2lvbi8ke3Byb3BzLmV4dGVuc2lvbklkfS8ke3Byb3BzLmV4dGVuc2lvblZlcnNpb25OdW1iZXJ9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV4dGVuc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXh0ZW5zaW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV4dGVuc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBleHRlbnNpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXh0ZW5zaW9uQXJuKGFybjogc3RyaW5nKTogQXBwY29uZmlnRXh0ZW5zaW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFeHRlbnNpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXh0ZW5zaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGV4dGVuc2lvbklkOiBtYXRjaC5ncm91cHMhLmV4dGVuc2lvbklkLFxuXHRcdFx0ZXh0ZW5zaW9uVmVyc2lvbk51bWJlcjogbWF0Y2guZ3JvdXBzIS5leHRlbnNpb25WZXJzaW9uTnVtYmVyLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGV4dGVuc2lvbmFzc29jaWF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV4dGVuc2lvbmFzc29jaWF0aW9uKFxuXHRcdHByb3BzOiBBcHBjb25maWdFeHRlbnNpb25hc3NvY2lhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcGNvbmZpZzoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpleHRlbnNpb25hc3NvY2lhdGlvbi8ke3Byb3BzLmV4dGVuc2lvbkFzc29jaWF0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGV4dGVuc2lvbmFzc29jaWF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFeHRlbnNpb25hc3NvY2lhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFeHRlbnNpb25hc3NvY2lhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBleHRlbnNpb25hc3NvY2lhdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFeHRlbnNpb25hc3NvY2lhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQXBwY29uZmlnRXh0ZW5zaW9uYXNzb2NpYXRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEV4dGVuc2lvbmFzc29jaWF0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV4dGVuc2lvbmFzc29jaWF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGV4dGVuc2lvbkFzc29jaWF0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZXh0ZW5zaW9uQXNzb2NpYXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBob3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBob3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbihcblx0XHRwcm9wczogQXBwY29uZmlnSG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb25Bcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBjb25maWc6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXBwbGljYXRpb24vJHtwcm9wcy5hcHBsaWNhdGlvbklkfS9jb25maWd1cmF0aW9ucHJvZmlsZS8ke3Byb3BzLmNvbmZpZ3VyYXRpb25Qcm9maWxlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBob3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VIb3N0ZWRjb25maWd1cmF0aW9udmVyc2lvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQXBwY29uZmlnSG9zdGVkY29uZmlndXJhdGlvbnZlcnNpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGhvc3RlZGNvbmZpZ3VyYXRpb252ZXJzaW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcGxpY2F0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuYXBwbGljYXRpb25JZCxcblx0XHRcdGNvbmZpZ3VyYXRpb25Qcm9maWxlSWQ6IG1hdGNoLmdyb3VwcyEuY29uZmlndXJhdGlvblByb2ZpbGVJZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBhcHBjb25maWcuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBjb25maWdPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQXBwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBcHBsaWNhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlQXBwbGljYXRpb25cIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDb25maWd1cmF0aW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVDb25maWd1cmF0aW9uUHJvZmlsZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5OiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lcIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVudmlyb25tZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVFbnZpcm9ubWVudFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXhwZXJpbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlRXhwZXJpbWVudERlZmluaXRpb25cIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHRlbnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkNyZWF0ZUV4dGVuc2lvblwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6Q3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25cIixcblx0XHRcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpDcmVhdGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVBcHBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFwcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpEZWxldGVBcHBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25maWd1cmF0aW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6RGVsZXRlQ29uZmlndXJhdGlvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGVwbG95bWVudFN0cmF0ZWd5OiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVEZXBsb3ltZW50U3RyYXRlZ3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRW52aXJvbm1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFbnZpcm9ubWVudDogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6RGVsZXRlRW52aXJvbm1lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4cGVyaW1lbnREZWZpbml0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXhwZXJpbWVudERlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkRlbGV0ZUV4cGVyaW1lbnREZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4dGVuc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbjogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6RGVsZXRlRXh0ZW5zaW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4dGVuc2lvbkFzc29jaWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpEZWxldGVIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0QWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFwcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBcHBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6R2V0QXBwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkdldENvbmZpZ3VyYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbmZpZ3VyYXRpb25Qcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb25maWd1cmF0aW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0Q29uZmlndXJhdGlvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGVwbG95bWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGVwbG95bWVudDogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6R2V0RGVwbG95bWVudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGVwbG95bWVudFN0cmF0ZWd5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXBsb3ltZW50U3RyYXRlZ3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkdldERlcGxveW1lbnRTdHJhdGVneVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFbnZpcm9ubWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkdldEVudmlyb25tZW50XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFeHBlcmltZW50RGVmaW5pdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXhwZXJpbWVudERlZmluaXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkdldEV4cGVyaW1lbnREZWZpbml0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4cGVyaW1lbnRSdW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV4cGVyaW1lbnRSdW46IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkdldEV4cGVyaW1lbnRSdW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4dGVuc2lvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXh0ZW5zaW9uOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpHZXRFeHRlbnNpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEV4dGVuc2lvbkFzc29jaWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFeHRlbnNpb25Bc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6R2V0RXh0ZW5zaW9uQXNzb2NpYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpHZXRIb3N0ZWRDb25maWd1cmF0aW9uVmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXRlc3RDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMYXRlc3RDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpHZXRMYXRlc3RDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBcHBsaWNhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXBwbGljYXRpb25zOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpMaXN0QXBwbGljYXRpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29uZmlndXJhdGlvblByb2ZpbGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdENvbmZpZ3VyYXRpb25Qcm9maWxlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGVwbG95bWVudFN0cmF0ZWdpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkxpc3REZXBsb3ltZW50U3RyYXRlZ2llc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGVwbG95bWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGVwbG95bWVudHM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3REZXBsb3ltZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEVudmlyb25tZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFbnZpcm9ubWVudHM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3RFbnZpcm9ubWVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHBlcmltZW50RGVmaW5pdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhwZXJpbWVudERlZmluaXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpMaXN0RXhwZXJpbWVudERlZmluaXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHBlcmltZW50UnVuRXZlbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4cGVyaW1lbnRSdW5FdmVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOkxpc3RFeHBlcmltZW50UnVuRXZlbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHBlcmltZW50UnVucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHBlcmltZW50UnVuczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdEV4cGVyaW1lbnRSdW5zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHRlbnNpb25Bc3NvY2lhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaW9uQXNzb2NpYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpMaXN0RXh0ZW5zaW9uQXNzb2NpYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeHRlbnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOkxpc3RFeHRlbnNpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SG9zdGVkQ29uZmlndXJhdGlvblZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdEhvc3RlZENvbmZpZ3VyYXRpb25WZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydENvbmZpZ3VyYXRpb25TZXNzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6U3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydERlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydERlcGxveW1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOlN0YXJ0RGVwbG95bWVudFwiLFxuXHRcdFwiYXBwY29uZmlnOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0RXhwZXJpbWVudFJ1biBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RXhwZXJpbWVudFJ1bjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6U3RhcnRFeHBlcmltZW50UnVuXCIsXG5cdFx0XCJhcHBjb25maWc6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcERlcGxveW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRGVwbG95bWVudDogc3RyaW5nW10gPSBbXCJhcHBjb25maWc6U3RvcERlcGxveW1lbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BFeHBlcmltZW50UnVuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEV4cGVyaW1lbnRSdW46IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlN0b3BFeHBlcmltZW50UnVuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImFwcGNvbmZpZzpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFjY291bnRTZXR0aW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFwcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXBwbGljYXRpb246IHN0cmluZ1tdID0gW1wiYXBwY29uZmlnOlVwZGF0ZUFwcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb25maWd1cmF0aW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURlcGxveW1lbnRTdHJhdGVneTogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUVudmlyb25tZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRW52aXJvbm1lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRW52aXJvbm1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXhwZXJpbWVudERlZmluaXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeHBlcmltZW50RGVmaW5pdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJhcHBjb25maWc6VXBkYXRlRXhwZXJpbWVudERlZmluaXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXhwZXJpbWVudFJ1biBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4cGVyaW1lbnRSdW46IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUV4cGVyaW1lbnRSdW5cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXh0ZW5zaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXh0ZW5zaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiYXBwY29uZmlnOlVwZGF0ZUV4dGVuc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4dGVuc2lvbkFzc29jaWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImFwcGNvbmZpZzpVcGRhdGVFeHRlbnNpb25Bc3NvY2lhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBWYWxpZGF0ZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwY29uZmlnOlZhbGlkYXRlQ29uZmlndXJhdGlvblwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgYXBwY29uZmlnLlxuICovXG5leHBvcnQgY2xhc3MgQXBwY29uZmlnQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBcHBsaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBcHBsaWNhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29uZmlndXJhdGlvblByb2ZpbGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uZmlndXJhdGlvblByb2ZpbGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURlcGxveW1lbnRTdHJhdGVneSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUVudmlyb25tZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVudmlyb25tZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHBlcmltZW50RGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5zaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEFwcGxpY2F0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFwcGxpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldENvbmZpZ3VyYXRpb25Qcm9maWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZ3VyYXRpb25Qcm9maWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXREZXBsb3ltZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlcGxveW1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldERlcGxveW1lbnRTdHJhdGVneSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREZXBsb3ltZW50U3RyYXRlZ3lDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEVudmlyb25tZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEVudmlyb25tZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRFeHBlcmltZW50RGVmaW5pdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHBlcmltZW50RGVmaW5pdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0RXhwZXJpbWVudFJ1biBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHBlcmltZW50UnVuQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRFeHRlbnNpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RXh0ZW5zaW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRFeHRlbnNpb25Bc3NvY2lhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeHRlbnNpb25Bc3NvY2lhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0TGF0ZXN0Q29uZmlndXJhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMYXRlc3RDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0Q29uZmlndXJhdGlvblNlc3Npb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDb25maWd1cmF0aW9uU2Vzc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnREZXBsb3ltZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RGVwbG95bWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRFeHBlcmltZW50UnVuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RXhwZXJpbWVudFJ1bkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RvcEV4cGVyaW1lbnRSdW4gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEV4cGVyaW1lbnRSdW5Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlQXBwbGljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXBwbGljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbmZpZ3VyYXRpb25Qcm9maWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVEZXBsb3ltZW50U3RyYXRlZ3kgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGVwbG95bWVudFN0cmF0ZWd5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVFbnZpcm9ubWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFbnZpcm9ubWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlRXhwZXJpbWVudERlZmluaXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhwZXJpbWVudERlZmluaXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUV4cGVyaW1lbnRSdW4gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhwZXJpbWVudFJ1bkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlRXh0ZW5zaW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4dGVuc2lvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXh0ZW5zaW9uQXNzb2NpYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
|