@cdk_utils/iam 1.27.0 → 1.29.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 +2 -2
- 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.js +4 -4
- 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.js +5 -6
- package/lib/generated/services/billing.js +4 -4
- package/lib/generated/services/billingconductor.d.ts +16 -0
- package/lib/generated/services/billingconductor.js +31 -5
- 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.d.ts +859 -0
- package/lib/generated/services/cloudwatch.js +1054 -7
- 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 +9 -6
- 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.d.ts +43 -0
- package/lib/generated/services/connect.js +45 -6
- 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.d.ts +4 -0
- package/lib/generated/services/ec2.js +11 -5
- 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 +6 -5
- 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.d.ts +2 -0
- package/lib/generated/services/logs.js +8 -5
- 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.d.ts +61 -0
- package/lib/generated/services/observabilityadmin.js +77 -5
- package/lib/generated/services/odb.js +4 -4
- package/lib/generated/services/omics.d.ts +6 -0
- package/lib/generated/services/omics.js +20 -5
- 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 +4 -4
- 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 +4 -4
- 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.d.ts +4 -0
- package/lib/generated/services/wafv2.js +11 -5
- 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,11 +16,13 @@ class ObservabilityadminActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.ObservabilityadminActions = ObservabilityadminActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.
|
|
19
|
+
ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.29.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
ObservabilityadminActions.SERVICE_PREFIX = "observabilityadmin";
|
|
22
22
|
/** [Write] observabilityadmin:CreateCentralizationRuleForOrganization */
|
|
23
23
|
ObservabilityadminActions.CreateCentralizationRuleForOrganization = "observabilityadmin:CreateCentralizationRuleForOrganization";
|
|
24
|
+
/** [Write] observabilityadmin:CreateDatasetIntegration */
|
|
25
|
+
ObservabilityadminActions.CreateDatasetIntegration = "observabilityadmin:CreateDatasetIntegration";
|
|
24
26
|
/** [Write] observabilityadmin:CreateS3TableIntegration */
|
|
25
27
|
ObservabilityadminActions.CreateS3TableIntegration = "observabilityadmin:CreateS3TableIntegration";
|
|
26
28
|
/** [Write] observabilityadmin:CreateTelemetryPipeline */
|
|
@@ -31,6 +33,8 @@ ObservabilityadminActions.CreateTelemetryRule = "observabilityadmin:CreateTeleme
|
|
|
31
33
|
ObservabilityadminActions.CreateTelemetryRuleForOrganization = "observabilityadmin:CreateTelemetryRuleForOrganization";
|
|
32
34
|
/** [Write] observabilityadmin:DeleteCentralizationRuleForOrganization */
|
|
33
35
|
ObservabilityadminActions.DeleteCentralizationRuleForOrganization = "observabilityadmin:DeleteCentralizationRuleForOrganization";
|
|
36
|
+
/** [Write] observabilityadmin:DeleteDatasetIntegration */
|
|
37
|
+
ObservabilityadminActions.DeleteDatasetIntegration = "observabilityadmin:DeleteDatasetIntegration";
|
|
34
38
|
/** [Write] observabilityadmin:DeleteS3TableIntegration */
|
|
35
39
|
ObservabilityadminActions.DeleteS3TableIntegration = "observabilityadmin:DeleteS3TableIntegration";
|
|
36
40
|
/** [Write] observabilityadmin:DeleteTelemetryPipeline */
|
|
@@ -41,6 +45,8 @@ ObservabilityadminActions.DeleteTelemetryRule = "observabilityadmin:DeleteTeleme
|
|
|
41
45
|
ObservabilityadminActions.DeleteTelemetryRuleForOrganization = "observabilityadmin:DeleteTelemetryRuleForOrganization";
|
|
42
46
|
/** [Read] observabilityadmin:GetCentralizationRuleForOrganization */
|
|
43
47
|
ObservabilityadminActions.actionGetCentralizationRuleForOrganization = "observabilityadmin:GetCentralizationRuleForOrganization";
|
|
48
|
+
/** [Read] observabilityadmin:GetDatasetIntegration */
|
|
49
|
+
ObservabilityadminActions.actionGetDatasetIntegration = "observabilityadmin:GetDatasetIntegration";
|
|
44
50
|
/** [Read] observabilityadmin:GetS3TableIntegration */
|
|
45
51
|
ObservabilityadminActions.actionGetS3TableIntegration = "observabilityadmin:GetS3TableIntegration";
|
|
46
52
|
/** [Read] observabilityadmin:GetTelemetryEnrichmentStatus */
|
|
@@ -57,6 +63,8 @@ ObservabilityadminActions.actionGetTelemetryRule = "observabilityadmin:GetTeleme
|
|
|
57
63
|
ObservabilityadminActions.actionGetTelemetryRuleForOrganization = "observabilityadmin:GetTelemetryRuleForOrganization";
|
|
58
64
|
/** [List] observabilityadmin:ListCentralizationRulesForOrganization */
|
|
59
65
|
ObservabilityadminActions.ListCentralizationRulesForOrganization = "observabilityadmin:ListCentralizationRulesForOrganization";
|
|
66
|
+
/** [List] observabilityadmin:ListDatasetIntegrations */
|
|
67
|
+
ObservabilityadminActions.ListDatasetIntegrations = "observabilityadmin:ListDatasetIntegrations";
|
|
60
68
|
/** [Read] observabilityadmin:ListResourceTelemetry */
|
|
61
69
|
ObservabilityadminActions.ListResourceTelemetry = "observabilityadmin:ListResourceTelemetry";
|
|
62
70
|
/** [Read] observabilityadmin:ListResourceTelemetryForOrganization */
|
|
@@ -91,6 +99,8 @@ ObservabilityadminActions.TestTelemetryPipeline = "observabilityadmin:TestTeleme
|
|
|
91
99
|
ObservabilityadminActions.UntagResource = "observabilityadmin:UntagResource";
|
|
92
100
|
/** [Write] observabilityadmin:UpdateCentralizationRuleForOrganization */
|
|
93
101
|
ObservabilityadminActions.UpdateCentralizationRuleForOrganization = "observabilityadmin:UpdateCentralizationRuleForOrganization";
|
|
102
|
+
/** [Write] observabilityadmin:UpdateDatasetIntegration */
|
|
103
|
+
ObservabilityadminActions.UpdateDatasetIntegration = "observabilityadmin:UpdateDatasetIntegration";
|
|
94
104
|
/** [Write] observabilityadmin:UpdateTelemetryPipeline */
|
|
95
105
|
ObservabilityadminActions.UpdateTelemetryPipeline = "observabilityadmin:UpdateTelemetryPipeline";
|
|
96
106
|
/** [Write] observabilityadmin:UpdateTelemetryRule */
|
|
@@ -102,6 +112,7 @@ ObservabilityadminActions.ValidateTelemetryPipelineConfiguration = "observabilit
|
|
|
102
112
|
/** All read-level actions. */
|
|
103
113
|
ObservabilityadminActions.AllReadActions = [
|
|
104
114
|
ObservabilityadminActions.actionGetCentralizationRuleForOrganization,
|
|
115
|
+
ObservabilityadminActions.actionGetDatasetIntegration,
|
|
105
116
|
ObservabilityadminActions.actionGetS3TableIntegration,
|
|
106
117
|
ObservabilityadminActions.actionGetTelemetryEnrichmentStatus,
|
|
107
118
|
ObservabilityadminActions.actionGetTelemetryEvaluationStatus,
|
|
@@ -117,11 +128,13 @@ ObservabilityadminActions.AllReadActions = [
|
|
|
117
128
|
/** All write-level actions. */
|
|
118
129
|
ObservabilityadminActions.AllWriteActions = [
|
|
119
130
|
ObservabilityadminActions.CreateCentralizationRuleForOrganization,
|
|
131
|
+
ObservabilityadminActions.CreateDatasetIntegration,
|
|
120
132
|
ObservabilityadminActions.CreateS3TableIntegration,
|
|
121
133
|
ObservabilityadminActions.CreateTelemetryPipeline,
|
|
122
134
|
ObservabilityadminActions.CreateTelemetryRule,
|
|
123
135
|
ObservabilityadminActions.CreateTelemetryRuleForOrganization,
|
|
124
136
|
ObservabilityadminActions.DeleteCentralizationRuleForOrganization,
|
|
137
|
+
ObservabilityadminActions.DeleteDatasetIntegration,
|
|
125
138
|
ObservabilityadminActions.DeleteS3TableIntegration,
|
|
126
139
|
ObservabilityadminActions.DeleteTelemetryPipeline,
|
|
127
140
|
ObservabilityadminActions.DeleteTelemetryRule,
|
|
@@ -133,6 +146,7 @@ ObservabilityadminActions.AllWriteActions = [
|
|
|
133
146
|
ObservabilityadminActions.StopTelemetryEvaluation,
|
|
134
147
|
ObservabilityadminActions.StopTelemetryEvaluationForOrganization,
|
|
135
148
|
ObservabilityadminActions.UpdateCentralizationRuleForOrganization,
|
|
149
|
+
ObservabilityadminActions.UpdateDatasetIntegration,
|
|
136
150
|
ObservabilityadminActions.UpdateTelemetryPipeline,
|
|
137
151
|
ObservabilityadminActions.UpdateTelemetryRule,
|
|
138
152
|
ObservabilityadminActions.UpdateTelemetryRuleForOrganization,
|
|
@@ -140,6 +154,7 @@ ObservabilityadminActions.AllWriteActions = [
|
|
|
140
154
|
/** All list-level actions. */
|
|
141
155
|
ObservabilityadminActions.AllListActions = [
|
|
142
156
|
ObservabilityadminActions.ListCentralizationRulesForOrganization,
|
|
157
|
+
ObservabilityadminActions.ListDatasetIntegrations,
|
|
143
158
|
ObservabilityadminActions.ListS3TableIntegrations,
|
|
144
159
|
ObservabilityadminActions.ListTagsForResource,
|
|
145
160
|
ObservabilityadminActions.ListTelemetryPipelines,
|
|
@@ -153,6 +168,7 @@ ObservabilityadminActions.AllTaggingActions = [
|
|
|
153
168
|
ObservabilityadminActions.TagResource,
|
|
154
169
|
ObservabilityadminActions.UntagResource,
|
|
155
170
|
];
|
|
171
|
+
const DatasetIntegrationArnRegex = /^arn:(?<partition>[^:]+):observabilityadmin:(?<region>[^:]*):(?<account>[^:]*):dataset-integration\/(?<datasetIntegrationIdentifier>[^:/?]+)$/;
|
|
156
172
|
const OrganizationCentralizationRuleArnRegex = /^arn:(?<partition>[^:]+):observabilityadmin:(?<region>[^:]*):(?<account>[^:]*):organization-centralization-rule\/(?<centralizationRuleName>[^:/?]+)$/;
|
|
157
173
|
const OrganizationTelemetryRuleArnRegex = /^arn:(?<partition>[^:]+):observabilityadmin:(?<region>[^:]*):(?<account>[^:]*):organization-telemetry-rule\/(?<telemetryRuleName>[^:/?]+)$/;
|
|
158
174
|
const S3tableintegrationArnRegex = /^arn:(?<partition>[^:]+):observabilityadmin:(?<region>[^:]*):(?<account>[^:]*):s3tableintegration\/(?<s3TableIntegrationIdentifier>[^:/?]+)$/;
|
|
@@ -162,6 +178,34 @@ const TelemetryRuleArnRegex = /^arn:(?<partition>[^:]+):observabilityadmin:(?<re
|
|
|
162
178
|
* ARN builders, validators, and parsers for observabilityadmin resources.
|
|
163
179
|
*/
|
|
164
180
|
class ObservabilityadminResources {
|
|
181
|
+
/**
|
|
182
|
+
* Builds an ARN for the dataset-integration resource.
|
|
183
|
+
*/
|
|
184
|
+
static datasetIntegration(props) {
|
|
185
|
+
return `arn:${props.partition ?? "aws"}:observabilityadmin:${props.region ?? "*"}:${props.account ?? "*"}:dataset-integration/${props.datasetIntegrationIdentifier}`;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Validates whether a string is a valid ARN for the dataset-integration resource.
|
|
189
|
+
*/
|
|
190
|
+
static isValidDatasetIntegrationArn(arn) {
|
|
191
|
+
return DatasetIntegrationArnRegex.test(arn);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Parses a dataset-integration ARN into its components.
|
|
195
|
+
* @throws Error if the ARN does not match the expected format.
|
|
196
|
+
*/
|
|
197
|
+
static parseDatasetIntegrationArn(arn) {
|
|
198
|
+
const match = DatasetIntegrationArnRegex.exec(arn);
|
|
199
|
+
if (!match?.groups) {
|
|
200
|
+
throw new Error(`Invalid dataset-integration ARN: ${arn}`);
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
partition: match.groups.partition,
|
|
204
|
+
region: match.groups.region,
|
|
205
|
+
account: match.groups.account,
|
|
206
|
+
datasetIntegrationIdentifier: match.groups.datasetIntegrationIdentifier,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
165
209
|
/**
|
|
166
210
|
* Builds an ARN for the organization-centralization-rule resource.
|
|
167
211
|
*/
|
|
@@ -305,7 +349,7 @@ class ObservabilityadminResources {
|
|
|
305
349
|
}
|
|
306
350
|
exports.ObservabilityadminResources = ObservabilityadminResources;
|
|
307
351
|
_b = JSII_RTTI_SYMBOL_1;
|
|
308
|
-
ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.
|
|
352
|
+
ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.29.0" };
|
|
309
353
|
/**
|
|
310
354
|
* API operation to required IAM actions mapping for observabilityadmin.
|
|
311
355
|
*/
|
|
@@ -313,12 +357,18 @@ class ObservabilityadminOperations {
|
|
|
313
357
|
}
|
|
314
358
|
exports.ObservabilityadminOperations = ObservabilityadminOperations;
|
|
315
359
|
_c = JSII_RTTI_SYMBOL_1;
|
|
316
|
-
ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.
|
|
360
|
+
ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.29.0" };
|
|
317
361
|
/** IAM actions required for the CreateCentralizationRuleForOrganization API call. */
|
|
318
362
|
ObservabilityadminOperations.CreateCentralizationRuleForOrganization = [
|
|
319
363
|
"observabilityadmin:CreateCentralizationRuleForOrganization",
|
|
320
364
|
"observabilityadmin:TagResource",
|
|
321
365
|
];
|
|
366
|
+
/** IAM actions required for the CreateDatasetIntegration API call. */
|
|
367
|
+
ObservabilityadminOperations.CreateDatasetIntegration = [
|
|
368
|
+
"observabilityadmin:CreateDatasetIntegration",
|
|
369
|
+
"iam:PassRole",
|
|
370
|
+
"observabilityadmin:TagResource",
|
|
371
|
+
];
|
|
322
372
|
/** IAM actions required for the CreateS3TableIntegration API call. */
|
|
323
373
|
ObservabilityadminOperations.CreateS3TableIntegration = [
|
|
324
374
|
"observabilityadmin:CreateS3TableIntegration",
|
|
@@ -346,6 +396,10 @@ ObservabilityadminOperations.CreateTelemetryRuleForOrganization = [
|
|
|
346
396
|
ObservabilityadminOperations.DeleteCentralizationRuleForOrganization = [
|
|
347
397
|
"observabilityadmin:DeleteCentralizationRuleForOrganization",
|
|
348
398
|
];
|
|
399
|
+
/** IAM actions required for the DeleteDatasetIntegration API call. */
|
|
400
|
+
ObservabilityadminOperations.DeleteDatasetIntegration = [
|
|
401
|
+
"observabilityadmin:DeleteDatasetIntegration",
|
|
402
|
+
];
|
|
349
403
|
/** IAM actions required for the DeleteS3TableIntegration API call. */
|
|
350
404
|
ObservabilityadminOperations.DeleteS3TableIntegration = [
|
|
351
405
|
"observabilityadmin:DeleteS3TableIntegration",
|
|
@@ -367,6 +421,10 @@ ObservabilityadminOperations.DeleteTelemetryRuleForOrganization = [
|
|
|
367
421
|
ObservabilityadminOperations.opGetCentralizationRuleForOrganization = [
|
|
368
422
|
"observabilityadmin:GetCentralizationRuleForOrganization",
|
|
369
423
|
];
|
|
424
|
+
/** IAM actions required for the GetDatasetIntegration API call. */
|
|
425
|
+
ObservabilityadminOperations.opGetDatasetIntegration = [
|
|
426
|
+
"observabilityadmin:GetDatasetIntegration",
|
|
427
|
+
];
|
|
370
428
|
/** IAM actions required for the GetS3TableIntegration API call. */
|
|
371
429
|
ObservabilityadminOperations.opGetS3TableIntegration = [
|
|
372
430
|
"observabilityadmin:GetS3TableIntegration",
|
|
@@ -399,6 +457,10 @@ ObservabilityadminOperations.opGetTelemetryRuleForOrganization = [
|
|
|
399
457
|
ObservabilityadminOperations.ListCentralizationRulesForOrganization = [
|
|
400
458
|
"observabilityadmin:ListCentralizationRulesForOrganization",
|
|
401
459
|
];
|
|
460
|
+
/** IAM actions required for the ListDatasetIntegrations API call. */
|
|
461
|
+
ObservabilityadminOperations.ListDatasetIntegrations = [
|
|
462
|
+
"observabilityadmin:ListDatasetIntegrations",
|
|
463
|
+
];
|
|
402
464
|
/** IAM actions required for the ListResourceTelemetry API call. */
|
|
403
465
|
ObservabilityadminOperations.ListResourceTelemetry = [
|
|
404
466
|
"observabilityadmin:ListResourceTelemetry",
|
|
@@ -465,6 +527,11 @@ ObservabilityadminOperations.UntagResource = [
|
|
|
465
527
|
ObservabilityadminOperations.UpdateCentralizationRuleForOrganization = [
|
|
466
528
|
"observabilityadmin:UpdateCentralizationRuleForOrganization",
|
|
467
529
|
];
|
|
530
|
+
/** IAM actions required for the UpdateDatasetIntegration API call. */
|
|
531
|
+
ObservabilityadminOperations.UpdateDatasetIntegration = [
|
|
532
|
+
"iam:PassRole",
|
|
533
|
+
"observabilityadmin:UpdateDatasetIntegration",
|
|
534
|
+
];
|
|
468
535
|
/** IAM actions required for the UpdateTelemetryPipeline API call. */
|
|
469
536
|
ObservabilityadminOperations.UpdateTelemetryPipeline = [
|
|
470
537
|
"iam:PassRole",
|
|
@@ -576,7 +643,7 @@ class ObservabilityadminConditions {
|
|
|
576
643
|
}
|
|
577
644
|
exports.ObservabilityadminConditions = ObservabilityadminConditions;
|
|
578
645
|
_d = JSII_RTTI_SYMBOL_1;
|
|
579
|
-
ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.
|
|
646
|
+
ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.29.0" };
|
|
580
647
|
/** Condition keys applicable to the CreateCentralizationRuleForOrganization action. */
|
|
581
648
|
ObservabilityadminConditions.CreateCentralizationRuleForOrganizationConditionKeys = [
|
|
582
649
|
"aws:RequestTag/${TagKey}",
|
|
@@ -588,6 +655,11 @@ ObservabilityadminConditions.CreateCentralizationRuleForOrganizationConditionKey
|
|
|
588
655
|
"observabilityadmin:CentralizationSourceId",
|
|
589
656
|
"observabilityadmin:CentralizationSourceRegions",
|
|
590
657
|
];
|
|
658
|
+
/** Condition keys applicable to the CreateDatasetIntegration action. */
|
|
659
|
+
ObservabilityadminConditions.CreateDatasetIntegrationConditionKeys = [
|
|
660
|
+
"aws:RequestTag/${TagKey}",
|
|
661
|
+
"aws:TagKeys",
|
|
662
|
+
];
|
|
591
663
|
/** Condition keys applicable to the CreateS3TableIntegration action. */
|
|
592
664
|
ObservabilityadminConditions.CreateS3TableIntegrationConditionKeys = [
|
|
593
665
|
"aws:RequestTag/${TagKey}",
|
|
@@ -673,4 +745,4 @@ ObservabilityadminConditions.CENTRALIZATION_SOURCE_REGIONS = "observabilityadmin
|
|
|
673
745
|
ObservabilityadminConditions.SOURCE_TYPE = "observabilityadmin:SourceType";
|
|
674
746
|
/** Condition key: observabilityadmin:TargetRegions (String) */
|
|
675
747
|
ObservabilityadminConditions.TARGET_REGIONS = "observabilityadmin:TargetRegions";
|
|
676
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eWFkbWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vYnNlcnZhYmlsaXR5YWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEseUJBQXlCOztBQUF0Qyw4REFnTEM7OztBQS9LQSw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFHLG9CQUFvQixDQUFDO0FBRXRELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQyx5REFBeUQ7QUFDekMsaURBQXVCLEdBQ3RDLDRDQUE0QyxDQUFDO0FBQzlDLHFEQUFxRDtBQUNyQyw2Q0FBbUIsR0FDbEMsd0NBQXdDLENBQUM7QUFDMUMsb0VBQW9FO0FBQ3BELDREQUFrQyxHQUNqRCx1REFBdUQsQ0FBQztBQUN6RCx5RUFBeUU7QUFDekQsaUVBQXVDLEdBQ3RELDREQUE0RCxDQUFDO0FBQzlELDBEQUEwRDtBQUMxQyxrREFBd0IsR0FDdkMsNkNBQTZDLENBQUM7QUFDL0MseURBQXlEO0FBQ3pDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5QyxxREFBcUQ7QUFDckMsNkNBQW1CLEdBQ2xDLHdDQUF3QyxDQUFDO0FBQzFDLG9FQUFvRTtBQUNwRCw0REFBa0MsR0FDakQsdURBQXVELENBQUM7QUFDekQscUVBQXFFO0FBQ3JELG9FQUEwQyxHQUN6RCx5REFBeUQsQ0FBQztBQUMzRCxzREFBc0Q7QUFDdEMscURBQTJCLEdBQzFDLDBDQUEwQyxDQUFDO0FBQzVDLDZEQUE2RDtBQUM3Qyw0REFBa0MsR0FDakQsaURBQWlELENBQUM7QUFDbkQsNkRBQTZEO0FBQzdDLDREQUFrQyxHQUNqRCxpREFBaUQsQ0FBQztBQUNuRCw0RUFBNEU7QUFDNUQsMkVBQWlELEdBQ2hFLGdFQUFnRSxDQUFDO0FBQ2xFLHFEQUFxRDtBQUNyQyxvREFBMEIsR0FDekMseUNBQXlDLENBQUM7QUFDM0MsaURBQWlEO0FBQ2pDLGdEQUFzQixHQUNyQyxxQ0FBcUMsQ0FBQztBQUN2QyxnRUFBZ0U7QUFDaEQsK0RBQXFDLEdBQ3BELG9EQUFvRCxDQUFDO0FBQ3RELHVFQUF1RTtBQUN2RCxnRUFBc0MsR0FDckQsMkRBQTJELENBQUM7QUFDN0Qsc0RBQXNEO0FBQ3RDLCtDQUFxQixHQUNwQywwQ0FBMEMsQ0FBQztBQUM1QyxxRUFBcUU7QUFDckQsOERBQW9DLEdBQ25ELHlEQUF5RCxDQUFDO0FBQzNELHdEQUF3RDtBQUN4QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMsb0RBQW9EO0FBQ3BDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyx1REFBdUQ7QUFDdkMsZ0RBQXNCLEdBQ3JDLDJDQUEyQyxDQUFDO0FBQzdDLG1EQUFtRDtBQUNuQyw0Q0FBa0IsR0FBRyx1Q0FBdUMsQ0FBQztBQUM3RSxrRUFBa0U7QUFDbEQsMkRBQWlDLEdBQ2hELHNEQUFzRCxDQUFDO0FBQ3hELDBEQUEwRDtBQUMxQyxrREFBd0IsR0FDdkMsNkNBQTZDLENBQUM7QUFDL0MsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQyx5RUFBeUU7QUFDekQsaUVBQXVDLEdBQ3RELDREQUE0RCxDQUFDO0FBQzlELHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMseURBQXlEO0FBQ3pDLGlEQUF1QixHQUN0Qyw0Q0FBNEMsQ0FBQztBQUM5Qyx3RUFBd0U7QUFDeEQsZ0VBQXNDLEdBQ3JELDJEQUEyRCxDQUFDO0FBQzdELCtDQUErQztBQUMvQixxQ0FBVyxHQUFHLGdDQUFnQyxDQUFDO0FBQy9ELHNEQUFzRDtBQUN0QywrQ0FBcUIsR0FDcEMsMENBQTBDLENBQUM7QUFDNUMsaURBQWlEO0FBQ2pDLHVDQUFhLEdBQUcsa0NBQWtDLENBQUM7QUFDbkUseUVBQXlFO0FBQ3pELGlFQUF1QyxHQUN0RCw0REFBNEQsQ0FBQztBQUM5RCx5REFBeUQ7QUFDekMsaURBQXVCLEdBQ3RDLDRDQUE0QyxDQUFDO0FBQzlDLHFEQUFxRDtBQUNyQyw2Q0FBbUIsR0FDbEMsd0NBQXdDLENBQUM7QUFDMUMsb0VBQW9FO0FBQ3BELDREQUFrQyxHQUNqRCx1REFBdUQsQ0FBQztBQUN6RCx1RUFBdUU7QUFDdkQsZ0VBQXNDLEdBQ3JELDJEQUEyRCxDQUFDO0FBRTdELDhCQUE4QjtBQUNkLHdDQUFjLEdBQWE7SUFDMUMseUJBQXlCLENBQUMsMENBQTBDO0lBQ3BFLHlCQUF5QixDQUFDLDJCQUEyQjtJQUNyRCx5QkFBeUIsQ0FBQyxrQ0FBa0M7SUFDNUQseUJBQXlCLENBQUMsa0NBQWtDO0lBQzVELHlCQUF5QixDQUFDLGlEQUFpRDtJQUMzRSx5QkFBeUIsQ0FBQywwQkFBMEI7SUFDcEQseUJBQXlCLENBQUMsc0JBQXNCO0lBQ2hELHlCQUF5QixDQUFDLHFDQUFxQztJQUMvRCx5QkFBeUIsQ0FBQyxxQkFBcUI7SUFDL0MseUJBQXlCLENBQUMsb0NBQW9DO0lBQzlELHlCQUF5QixDQUFDLHFCQUFxQjtJQUMvQyx5QkFBeUIsQ0FBQyxzQ0FBc0M7Q0FDaEUsQ0FBQztBQUNGLCtCQUErQjtBQUNmLHlDQUFlLEdBQWE7SUFDM0MseUJBQXlCLENBQUMsdUNBQXVDO0lBQ2pFLHlCQUF5QixDQUFDLHdCQUF3QjtJQUNsRCx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsbUJBQW1CO0lBQzdDLHlCQUF5QixDQUFDLGtDQUFrQztJQUM1RCx5QkFBeUIsQ0FBQyx1Q0FBdUM7SUFDakUseUJBQXlCLENBQUMsd0JBQXdCO0lBQ2xELHlCQUF5QixDQUFDLHVCQUF1QjtJQUNqRCx5QkFBeUIsQ0FBQyxtQkFBbUI7SUFDN0MseUJBQXlCLENBQUMsa0NBQWtDO0lBQzVELHlCQUF5QixDQUFDLHdCQUF3QjtJQUNsRCx5QkFBeUIsQ0FBQyx3QkFBd0I7SUFDbEQseUJBQXlCLENBQUMsdUNBQXVDO0lBQ2pFLHlCQUF5QixDQUFDLHVCQUF1QjtJQUNqRCx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsc0NBQXNDO0lBQ2hFLHlCQUF5QixDQUFDLHVDQUF1QztJQUNqRSx5QkFBeUIsQ0FBQyx1QkFBdUI7SUFDakQseUJBQXlCLENBQUMsbUJBQW1CO0lBQzdDLHlCQUF5QixDQUFDLGtDQUFrQztDQUM1RCxDQUFDO0FBQ0YsOEJBQThCO0FBQ2Qsd0NBQWMsR0FBYTtJQUMxQyx5QkFBeUIsQ0FBQyxzQ0FBc0M7SUFDaEUseUJBQXlCLENBQUMsdUJBQXVCO0lBQ2pELHlCQUF5QixDQUFDLG1CQUFtQjtJQUM3Qyx5QkFBeUIsQ0FBQyxzQkFBc0I7SUFDaEQseUJBQXlCLENBQUMsa0JBQWtCO0lBQzVDLHlCQUF5QixDQUFDLGlDQUFpQztDQUMzRCxDQUFDO0FBQ0YsK0NBQStDO0FBQy9CLHdEQUE4QixHQUFhLEVBQUUsQ0FBQztBQUM5RCxpQ0FBaUM7QUFDakIsMkNBQWlCLEdBQWE7SUFDN0MseUJBQXlCLENBQUMsV0FBVztJQUNyQyx5QkFBeUIsQ0FBQyxhQUFhO0NBQ3ZDLENBQUM7QUErSUgsTUFBTSxzQ0FBc0MsR0FDM0Msc0pBQXNKLENBQUM7QUFDeEosTUFBTSxpQ0FBaUMsR0FDdEMsNElBQTRJLENBQUM7QUFDOUksTUFBTSwwQkFBMEIsR0FDL0IsOElBQThJLENBQUM7QUFDaEosTUFBTSx5QkFBeUIsR0FDOUIsNklBQTZJLENBQUM7QUFDL0ksTUFBTSxxQkFBcUIsR0FDMUIsK0hBQStILENBQUM7QUFFakk7O0dBRUc7QUFDSCxNQUFhLDJCQUEyQjtJQUN2Qzs7T0FFRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FDcEMsS0FBK0Q7UUFFL0QsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHFDQUFxQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUM3SyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsd0NBQXdDLENBQUMsR0FBVztRQUMxRCxPQUFPLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHNDQUFzQyxDQUM1QyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsc0NBQXNDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsc0JBQXNCO1NBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMseUJBQXlCLENBQy9CLEtBQTBEO1FBRTFELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssdUJBQXVCLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxnQ0FBZ0MsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDbkssQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQVc7UUFDckQsT0FBTyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxpQ0FBaUMsQ0FDdkMsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixpQkFBaUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGlCQUFpQjtTQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN4QixLQUFtRDtRQUVuRCxPQUFPLE9BQU8sS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLHVCQUF1QixLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3JLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFXO1FBQzlDLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsMEJBQTBCLENBQ2hDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyw0QkFBNEI7U0FDeEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdkIsS0FBa0Q7UUFFbEQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLHVCQUF1QixLQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNwSyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsMkJBQTJCLENBQUMsR0FBVztRQUM3QyxPQUFPLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUMvQixHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsMkJBQTJCO1NBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQThDO1FBQ2xFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssdUJBQXVCLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQkFBbUIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEosQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQVc7UUFDekMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDM0IsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixpQkFBaUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGlCQUFpQjtTQUNsRCxDQUFDO0lBQ0gsQ0FBQzs7QUE1S0Ysa0VBNktDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsNEJBQTRCOztBQUF6QyxvRUEwS0M7OztBQXpLQSxxRkFBcUY7QUFDckUsb0VBQXVDLEdBQWE7SUFDbkUsNERBQTREO0lBQzVELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysc0VBQXNFO0FBQ3RELHFEQUF3QixHQUFhO0lBQ3BELDZDQUE2QztJQUM3QyxjQUFjO0lBQ2QsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0lBQzVDLGNBQWM7SUFDZCw0QkFBNEI7SUFDNUIsZ0NBQWdDO0NBQ2hDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0lBQ3hDLGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsZ0ZBQWdGO0FBQ2hFLCtEQUFrQyxHQUFhO0lBQzlELHVEQUF1RDtJQUN2RCxnQ0FBZ0M7Q0FDaEMsQ0FBQztBQUNGLHFGQUFxRjtBQUNyRSxvRUFBdUMsR0FBYTtJQUNuRSw0REFBNEQ7Q0FDNUQsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCxxREFBd0IsR0FBYTtJQUNwRCw2Q0FBNkM7Q0FDN0MsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCxvREFBdUIsR0FBYTtJQUNuRCwrQkFBK0I7SUFDL0IsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0NBQ3hDLENBQUM7QUFDRixnRkFBZ0Y7QUFDaEUsK0RBQWtDLEdBQWE7SUFDOUQsdURBQXVEO0NBQ3ZELENBQUM7QUFDRixrRkFBa0Y7QUFDbEUsbUVBQXNDLEdBQWE7SUFDbEUseURBQXlEO0NBQ3pELENBQUM7QUFDRixtRUFBbUU7QUFDbkQsb0RBQXVCLEdBQWE7SUFDbkQsMENBQTBDO0NBQzFDLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQThCLEdBQWE7SUFDMUQsaURBQWlEO0NBQ2pELENBQUM7QUFDRiwwRUFBMEU7QUFDMUQsMkRBQThCLEdBQWE7SUFDMUQsaURBQWlEO0NBQ2pELENBQUM7QUFDRix5RkFBeUY7QUFDekUsMEVBQTZDLEdBQWE7SUFDekUsZ0VBQWdFO0NBQ2hFLENBQUM7QUFDRixrRUFBa0U7QUFDbEQsbURBQXNCLEdBQWE7SUFDbEQseUNBQXlDO0NBQ3pDLENBQUM7QUFDRiw4REFBOEQ7QUFDOUMsK0NBQWtCLEdBQWE7SUFDOUMscUNBQXFDO0NBQ3JDLENBQUM7QUFDRiw2RUFBNkU7QUFDN0QsOERBQWlDLEdBQWE7SUFDN0Qsb0RBQW9EO0NBQ3BELENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsbUVBQXNDLEdBQWE7SUFDbEUsMkRBQTJEO0NBQzNELENBQUM7QUFDRixtRUFBbUU7QUFDbkQsa0RBQXFCLEdBQWE7SUFDakQsMENBQTBDO0NBQzFDLENBQUM7QUFDRixrRkFBa0Y7QUFDbEUsaUVBQW9DLEdBQWE7SUFDaEUseURBQXlEO0NBQ3pELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsZ0RBQW1CLEdBQWE7SUFDL0Msd0NBQXdDO0NBQ3hDLENBQUM7QUFDRixvRUFBb0U7QUFDcEQsbURBQXNCLEdBQWE7SUFDbEQsMkNBQTJDO0NBQzNDLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsK0NBQWtCLEdBQWE7SUFDOUMsdUNBQXVDO0NBQ3ZDLENBQUM7QUFDRiwrRUFBK0U7QUFDL0QsOERBQWlDLEdBQWE7SUFDN0Qsc0RBQXNEO0NBQ3RELENBQUM7QUFDRixzRUFBc0U7QUFDdEQscURBQXdCLEdBQWE7SUFDcEQsNkNBQTZDO0NBQzdDLENBQUM7QUFDRixzRUFBc0U7QUFDdEQscURBQXdCLEdBQWE7SUFDcEQsNkNBQTZDO0NBQzdDLENBQUM7QUFDRixxRkFBcUY7QUFDckUsb0VBQXVDLEdBQWE7SUFDbkUsNERBQTREO0NBQzVELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsNENBQTRDO0NBQzVDLENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsbUVBQXNDLEdBQWE7SUFDbEUsMkRBQTJEO0NBQzNELENBQUM7QUFDRix5REFBeUQ7QUFDekMsd0NBQVcsR0FBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFDM0UsbUVBQW1FO0FBQ25ELGtEQUFxQixHQUFhO0lBQ2pELDBDQUEwQztDQUMxQyxDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDBDQUFhLEdBQWE7SUFDekMsa0NBQWtDO0NBQ2xDLENBQUM7QUFDRixxRkFBcUY7QUFDckUsb0VBQXVDLEdBQWE7SUFDbkUsNERBQTREO0NBQzVELENBQUM7QUFDRixxRUFBcUU7QUFDckQsb0RBQXVCLEdBQWE7SUFDbkQsY0FBYztJQUNkLDRCQUE0QjtJQUM1Qiw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCxnREFBbUIsR0FBYTtJQUMvQyx3Q0FBd0M7Q0FDeEMsQ0FBQztBQUNGLGdGQUFnRjtBQUNoRSwrREFBa0MsR0FBYTtJQUM5RCx1REFBdUQ7Q0FDdkQsQ0FBQztBQUNGLG9GQUFvRjtBQUNwRSxtRUFBc0MsR0FBYTtJQUNsRSwyREFBMkQ7Q0FDM0QsQ0FBQztBQUdIOztHQUVHO0FBQ0gsTUFBYSw0QkFBNEI7SUErR3hDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWdCO1FBQzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywwQkFBMEIsQ0FDaEMsS0FBYTtRQUViLE9BQU87WUFDTixZQUFZLEVBQUUsRUFBRSwrQ0FBK0MsRUFBRSxLQUFLLEVBQUU7U0FDeEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDdEMsS0FBYTtRQUViLE9BQU87WUFDTixZQUFZLEVBQUU7Z0JBQ2IscURBQXFELEVBQUUsS0FBSzthQUM1RDtTQUNELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsK0JBQStCLENBQ3JDLEtBQWE7UUFFYixPQUFPO1lBQ04sWUFBWSxFQUFFO2dCQUNiLG9EQUFvRCxFQUFFLEtBQUs7YUFDM0Q7U0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUM1QixLQUFhO1FBRWIsT0FBTztZQUNOLFlBQVksRUFBRSxFQUFFLDJDQUEyQyxFQUFFLEtBQUssRUFBRTtTQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUM1QixNQUFnQjtRQUVoQixPQUFPO1lBQ04sMkJBQTJCLEVBQUU7Z0JBQzVCLDJDQUEyQyxFQUFFLE1BQU07YUFDbkQ7U0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUNqQyxNQUFnQjtRQUVoQixPQUFPO1lBQ04sMkJBQTJCLEVBQUU7Z0JBQzVCLGdEQUFnRCxFQUFFLE1BQU07YUFDeEQ7U0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwrQkFBK0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYTtRQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsa0NBQWtDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUN4RSxDQUFDOztBQTFORixvRUEyTkM7OztBQTFOQSx1RkFBdUY7QUFDdkUsaUZBQW9ELEdBQ25FO0lBQ0MsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYiwrQ0FBK0M7SUFDL0MscURBQXFEO0lBQ3JELG9EQUFvRDtJQUNwRCwyQ0FBMkM7SUFDM0MsMkNBQTJDO0lBQzNDLGdEQUFnRDtDQUNoRCxDQUFDO0FBQ0gsd0VBQXdFO0FBQ3hELGtFQUFxQyxHQUFhO0lBQ2pFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLHVFQUF1RTtBQUN2RCxpRUFBb0MsR0FBYTtJQUNoRSwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDZEQUFnQyxHQUFhO0lBQzVELDBCQUEwQjtJQUMxQixhQUFhO0lBQ2Isa0NBQWtDO0NBQ2xDLENBQUM7QUFDRixrRkFBa0Y7QUFDbEUsNEVBQStDLEdBQWE7SUFDM0UsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYixrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLHVGQUF1RjtBQUN2RSxpRkFBb0QsR0FDbkUsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBQy9DLG9GQUFvRjtBQUNwRSxvRkFBdUQsR0FDdEUsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBQy9DLHFFQUFxRTtBQUNyRCwrREFBa0MsR0FBYTtJQUM5RCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLG9GQUFvRjtBQUNwRSw4RUFBaUQsR0FDaEUsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBQ3RDLHdFQUF3RTtBQUN4RCxrRUFBcUMsR0FBYTtJQUNqRSxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLHVGQUF1RjtBQUN2RSxpRkFBb0QsR0FDbkUsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBQ3RDLDJEQUEyRDtBQUMzQyxxREFBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsdURBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN2RSx1RkFBdUY7QUFDdkUsaUZBQW9ELEdBQ25FO0lBQ0MsK0NBQStDO0lBQy9DLHFEQUFxRDtJQUNyRCxvREFBb0Q7SUFDcEQsMkNBQTJDO0lBQzNDLDJDQUEyQztJQUMzQyxnREFBZ0Q7Q0FDaEQsQ0FBQztBQUNILG1FQUFtRTtBQUNuRCw2REFBZ0MsR0FBYTtJQUM1RCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLGtGQUFrRjtBQUNsRSw0RUFBK0MsR0FBYTtJQUMzRSxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUVGLHVEQUF1RDtBQUN2Qyw0Q0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4Qyw2Q0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMseUNBQVksR0FBRyxhQUFhLENBQUM7QUFDN0MsNEVBQTRFO0FBQzVELHlEQUE0QixHQUMzQywrQ0FBK0MsQ0FBQztBQUNqRCxrRkFBa0Y7QUFDbEUsK0RBQWtDLEdBQ2pELHFEQUFxRCxDQUFDO0FBQ3ZELGlGQUFpRjtBQUNqRSw4REFBaUMsR0FDaEQsb0RBQW9ELENBQUM7QUFDdEQsd0VBQXdFO0FBQ3hELHFEQUF3QixHQUN2QywyQ0FBMkMsQ0FBQztBQUM3QywrRUFBK0U7QUFDL0QscURBQXdCLEdBQ3ZDLDJDQUEyQyxDQUFDO0FBQzdDLG9GQUFvRjtBQUNwRSwwREFBNkIsR0FDNUMsZ0RBQWdELENBQUM7QUFDbEQsNERBQTREO0FBQzVDLHdDQUFXLEdBQUcsK0JBQStCLENBQUM7QUFDOUQsK0RBQStEO0FBQy9DLDJDQUFjLEdBQUcsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9vYnNlcnZhYmlsaXR5YWRtaW4uanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIG9ic2VydmFiaWxpdHlhZG1pbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcIm9ic2VydmFiaWxpdHlhZG1pblwiO1xuXG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlUzNUYWJsZUludGVncmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVTM1RhYmxlSW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlUzNUYWJsZUludGVncmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlSdWxlID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0UzNUYWJsZUludGVncmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTM1RhYmxlSW50ZWdyYXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFMzVGFibGVJbnRlZ3JhdGlvblwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFbnJpY2htZW50U3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlFbnJpY2htZW50U3RhdHVzID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFbnJpY2htZW50U3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1c0Zvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1c0Zvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RXZhbHVhdGlvblN0YXR1c0Zvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5UGlwZWxpbmUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVBpcGVsaW5lXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5ID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UzNUYWJsZUludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RTM1RhYmxlSW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlcyA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlSdWxlc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RW5yaWNobWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOlRlc3RUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVzdFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUZXN0VGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtUYWdnaW5nXSBvYnNlcnZhYmlsaXR5YWRtaW46VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLmFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRlc3RUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5DcmVhdGVUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuRGVsZXRlVGVsZW1ldHJ5UnVsZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUVucmljaG1lbnQsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdG9wVGVsZW1ldHJ5RW5yaWNobWVudCxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlVwZGF0ZVRlbGVtZXRyeVJ1bGUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RUZWxlbWV0cnlSdWxlcyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbixcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIENlbnRyYWxpemF0aW9uUnVsZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDZW50cmFsaXphdGlvblJ1bGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2VudHJhbGl6YXRpb25SdWxlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5Pcmdhbml6YXRpb25UZWxlbWV0cnlSdWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlSdWxlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIG9yZ2FuaXphdGlvbi10ZWxlbWV0cnktcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVGVsZW1ldHJ5UnVsZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlSdWxlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgczN0YWJsZWludGVncmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5TM3RhYmxlaW50ZWdyYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUzNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllciBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHMzdGFibGVpbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTM1RhYmxlSW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdGVsZW1ldHJ5LXBpcGVsaW5lIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlQaXBlbGluZUFyblByb3BzIHtcblx0LyoqIFRoZSBUZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRlbGVtZXRyeS1waXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluVGVsZW1ldHJ5UGlwZWxpbmVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdGVsZW1ldHJ5LXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGVsZW1ldHJ5UnVsZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVJ1bGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgdGVsZW1ldHJ5LXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlXFwvKD88Y2VudHJhbGl6YXRpb25SdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGVcXC8oPzx0ZWxlbWV0cnlSdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUzN0YWJsZWludGVncmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnMzdGFibGVpbnRlZ3JhdGlvblxcLyg/PHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI+W146Lz9dKykkLztcbmNvbnN0IFRlbGVtZXRyeVBpcGVsaW5lQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRlbGVtZXRyeS1waXBlbGluZVxcLyg/PHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0ZWxlbWV0cnktcnVsZVxcLyg/PHRlbGVtZXRyeVJ1bGVOYW1lPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pblJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlKFxuXHRcdHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5Pcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvYnNlcnZhYmlsaXR5YWRtaW46JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUvJHtwcm9wcy5jZW50cmFsaXphdGlvblJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEuY2VudHJhbGl6YXRpb25SdWxlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZShcblx0XHRwcm9wczogT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUvJHtwcm9wcy50ZWxlbWV0cnlSdWxlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPcmdhbml6YXRpb25UZWxlbWV0cnlSdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRlbGVtZXRyeVJ1bGVOYW1lOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVJ1bGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHMzdGFibGVpbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzM3RhYmxlaW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzM3RhYmxlaW50ZWdyYXRpb24vJHtwcm9wcy5zM1RhYmxlSW50ZWdyYXRpb25JZGVudGlmaWVyfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzM3RhYmxlaW50ZWdyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFMzdGFibGVpbnRlZ3JhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgczN0YWJsZWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVMzdGFibGVpbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgczN0YWJsZWludGVncmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IG1hdGNoLmdyb3VwcyEuczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGVsZW1ldHJ5UGlwZWxpbmUoXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2JzZXJ2YWJpbGl0eWFkbWluOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRlbGVtZXRyeS1waXBlbGluZS8ke3Byb3BzLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGVsZW1ldHJ5LXBpcGVsaW5lIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUZWxlbWV0cnlQaXBlbGluZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGVsZW1ldHJ5UGlwZWxpbmVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0ZWxlbWV0cnlSdWxlKHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0ZWxlbWV0cnktcnVsZS8ke3Byb3BzLnRlbGVtZXRyeVJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGVsZW1ldHJ5UnVsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlSdWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGVsZW1ldHJ5LXJ1bGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEudGVsZW1ldHJ5UnVsZU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJpbGl0eWFkbWluT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImNsb3Vkd2F0Y2g6UHV0UGlwZWxpbmVSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlUzNUYWJsZUludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiY2xvdWR3YXRjaDpEZWxldGVQaXBlbGluZVJ1bGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVUZWxlbWV0cnlSdWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGVsZW1ldHJ5UnVsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UnVsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UzNUYWJsZUludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlSdWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UzNUYWJsZUludGVncmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFMzVGFibGVJbnRlZ3JhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlQaXBlbGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlQaXBlbGluZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RW5yaWNobWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlc3RUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlc3RUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGVzdFRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVbnRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmU6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJjbG91ZHdhdGNoOlB1dFBpcGVsaW5lUnVsZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRlbGVtZXRyeVJ1bGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVUZWxlbWV0cnlSdWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uXCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBvYnNlcnZhYmlsaXR5YWRtaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmlsaXR5YWRtaW5Db25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1xuXHRcdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudFwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvblJlZ2lvblwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VJZFwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zXCIsXG5cdFx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0UmVzb3VyY2VUZWxlbWV0cnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudFwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvblJlZ2lvblwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VJZFwiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zXCIsXG5cdFx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZVRlbGVtZXRyeVJ1bGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGVsZW1ldHJ5UnVsZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb24gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENFTlRSQUxJWkFUSU9OX0JBQ0tVUF9SRUdJT04gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENFTlRSQUxJWkFUSU9OX0RFU1RJTkFUSU9OX0FDQ09VTlQgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvblJlZ2lvbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fREVTVElOQVRJT05fUkVHSU9OID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fUlVMRV9OQU1FID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VJZCAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENFTlRSQUxJWkFUSU9OX1NPVVJDRV9JRCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9ucyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENFTlRSQUxJWkFUSU9OX1NPVVJDRV9SRUdJT05TID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBTT1VSQ0VfVFlQRSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlNvdXJjZVR5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBUQVJHRVRfUkVHSU9OUyA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvbkJhY2t1cFJlZ2lvbihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkJhY2t1cFJlZ2lvblwiOiB2YWx1ZSB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50YC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczoge1xuXHRcdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudFwiOiB2YWx1ZSxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvblJlZ2lvbmAuXG5cdCAqL1xuXHRzdGF0aWMgY2VudHJhbGl6YXRpb25EZXN0aW5hdGlvblJlZ2lvbihcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFN0cmluZ0VxdWFsczoge1xuXHRcdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCI6IHZhbHVlLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvblJ1bGVOYW1lKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7IFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVcIjogdmFsdWUgfSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvblNvdXJjZUlkKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjoge1xuXHRcdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnMoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9uc1wiOiB2YWx1ZXMsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOlNvdXJjZVR5cGVgLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZVR5cGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNgLlxuXHQgKi9cblx0c3RhdGljIHRhcmdldFJlZ2lvbnModmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
|
|
748
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eWFkbWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vYnNlcnZhYmlsaXR5YWRtaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEseUJBQXlCOztBQUF0Qyw4REFvTUM7OztBQW5NQSw4QkFBOEI7QUFDZCx3Q0FBYyxHQUFHLG9CQUFvQixDQUFDO0FBRXRELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHlFQUF5RTtBQUN6RCxpRUFBdUMsR0FDdEQsNERBQTRELENBQUM7QUFDOUQsMERBQTBEO0FBQzFDLGtEQUF3QixHQUN2Qyw2Q0FBNkMsQ0FBQztBQUMvQywwREFBMEQ7QUFDMUMsa0RBQXdCLEdBQ3ZDLDZDQUE2QyxDQUFDO0FBQy9DLHlEQUF5RDtBQUN6QyxpREFBdUIsR0FDdEMsNENBQTRDLENBQUM7QUFDOUMscURBQXFEO0FBQ3JDLDZDQUFtQixHQUNsQyx3Q0FBd0MsQ0FBQztBQUMxQyxvRUFBb0U7QUFDcEQsNERBQWtDLEdBQ2pELHVEQUF1RCxDQUFDO0FBQ3pELHFFQUFxRTtBQUNyRCxvRUFBMEMsR0FDekQseURBQXlELENBQUM7QUFDM0Qsc0RB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LEdBQ3ZDLDJDQUEyQyxDQUFDO0FBQzdDLCtFQUErRTtBQUMvRCxxREFBd0IsR0FDdkMsMkNBQTJDLENBQUM7QUFDN0Msb0ZBQW9GO0FBQ3BFLDBEQUE2QixHQUM1QyxnREFBZ0QsQ0FBQztBQUNsRCw0REFBNEQ7QUFDNUMsd0NBQVcsR0FBRywrQkFBK0IsQ0FBQztBQUM5RCwrREFBK0Q7QUFDL0MsMkNBQWMsR0FBRyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL29ic2VydmFiaWxpdHlhZG1pbi5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgb2JzZXJ2YWJpbGl0eWFkbWluIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwib2JzZXJ2YWJpbGl0eWFkbWluXCI7XG5cblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpEZWxldGVTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXREYXRhc2V0SW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFzZXRJbnRlZ3JhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0RGF0YXNldEludGVncmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFMzVGFibGVJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5UGlwZWxpbmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiO1xuXHQvKiogW1JlYWRdIG9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUZWxlbWV0cnlSdWxlID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0RGF0YXNldEludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3REYXRhc2V0SW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5ID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvblwiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UzNUYWJsZUludGVncmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RTM1RhYmxlSW50ZWdyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtMaXN0XSBvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVBpcGVsaW5lc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlcyA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlSdWxlc1wiO1xuXHQvKiogW0xpc3RdIG9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlSdWxlc0Zvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RW5yaWNobWVudCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RW5yaWNobWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFbnJpY2htZW50XCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9ic2VydmFiaWxpdHlhZG1pbjpTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbUmVhZF0gb2JzZXJ2YWJpbGl0eWFkbWluOlRlc3RUZWxlbWV0cnlQaXBlbGluZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVzdFRlbGVtZXRyeVBpcGVsaW5lID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUZXN0VGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtUYWdnaW5nXSBvYnNlcnZhYmlsaXR5YWRtaW46VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwib2JzZXJ2YWJpbGl0eWFkbWluOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGF0YXNldEludGVncmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVBpcGVsaW5lICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZSA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIjtcblx0LyoqIFtXcml0ZV0gb2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIjtcblx0LyoqIFtSZWFkXSBvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvblwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0RGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0UzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLmFjdGlvbkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5hY3Rpb25HZXRUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuYWN0aW9uR2V0VGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RSZXNvdXJjZVRlbGVtZXRyeUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRlc3RUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlZhbGlkYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25maWd1cmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlRGF0YXNldEludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5DcmVhdGVUZWxlbWV0cnlSdWxlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvbixcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuRGVsZXRlVGVsZW1ldHJ5UnVsZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUVucmljaG1lbnQsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5TdG9wVGVsZW1ldHJ5RW5yaWNobWVudCxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlN0b3BUZWxlbWV0cnlFdmFsdWF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVEYXRhc2V0SW50ZWdyYXRpb24sXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlQaXBlbGluZSxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlVwZGF0ZVRlbGVtZXRyeVJ1bGUsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5VcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RDZW50cmFsaXphdGlvblJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0UzNUYWJsZUludGVncmF0aW9ucyxcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0T2JzZXJ2YWJpbGl0eWFkbWluQWN0aW9ucy5MaXN0VGVsZW1ldHJ5UGlwZWxpbmVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPYnNlcnZhYmlsaXR5YWRtaW5BY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdE9ic2VydmFiaWxpdHlhZG1pbkFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRhdGFzZXQtaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBDZW50cmFsaXphdGlvblJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjZW50cmFsaXphdGlvblJ1bGVOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2VudHJhbGl6YXRpb25SdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9yZ2FuaXphdGlvbi10ZWxlbWV0cnktcnVsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzIHtcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGVsZW1ldHJ5UnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHMzdGFibGVpbnRlZ3JhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXIgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBzM3RhYmxlaW50ZWdyYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUzNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllciBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1waXBlbGluZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJpbGl0eWFkbWluVGVsZW1ldHJ5UGlwZWxpbmVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgVGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXIgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlQaXBlbGluZUlkZW50aWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIFRlbGVtZXRyeVJ1bGVOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0ZWxlbWV0cnlSdWxlTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRlbGVtZXRyeS1ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBUZWxlbWV0cnlSdWxlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRlbGVtZXRyeVJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYXRhc2V0LWludGVncmF0aW9uXFwvKD88ZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlXFwvKD88Y2VudHJhbGl6YXRpb25SdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGVcXC8oPzx0ZWxlbWV0cnlSdWxlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgUzN0YWJsZWludGVncmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnMzdGFibGVpbnRlZ3JhdGlvblxcLyg/PHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI+W146Lz9dKykkLztcbmNvbnN0IFRlbGVtZXRyeVBpcGVsaW5lQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9ic2VydmFiaWxpdHlhZG1pbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRlbGVtZXRyeS1waXBlbGluZVxcLyg/PHRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcj5bXjovP10rKSQvO1xuY29uc3QgVGVsZW1ldHJ5UnVsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvYnNlcnZhYmlsaXR5YWRtaW46KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0ZWxlbWV0cnktcnVsZVxcLyg/PHRlbGVtZXRyeVJ1bGVOYW1lPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pblJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhc2V0SW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pbkRhdGFzZXRJbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhc2V0LWludGVncmF0aW9uLyR7cHJvcHMuZGF0YXNldEludGVncmF0aW9uSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGF0YXNldC1pbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YXNldEludGVncmF0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFzZXRJbnRlZ3JhdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYXRhc2V0LWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFzZXRJbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluRGF0YXNldEludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhc2V0SW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGF0YXNldC1pbnRlZ3JhdGlvbiBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhc2V0SW50ZWdyYXRpb25JZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLmRhdGFzZXRJbnRlZ3JhdGlvbklkZW50aWZpZXIsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlKFxuXHRcdHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5Pcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvYnNlcnZhYmlsaXR5YWRtaW46JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b3JnYW5pemF0aW9uLWNlbnRyYWxpemF0aW9uLXJ1bGUvJHtwcm9wcy5jZW50cmFsaXphdGlvblJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBvcmdhbml6YXRpb24tY2VudHJhbGl6YXRpb24tcnVsZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPcmdhbml6YXRpb25DZW50cmFsaXphdGlvblJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvbkNlbnRyYWxpemF0aW9uUnVsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT3JnYW5pemF0aW9uQ2VudHJhbGl6YXRpb25SdWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9yZ2FuaXphdGlvbi1jZW50cmFsaXphdGlvbi1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNlbnRyYWxpemF0aW9uUnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEuY2VudHJhbGl6YXRpb25SdWxlTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZShcblx0XHRwcm9wczogT2JzZXJ2YWJpbGl0eWFkbWluT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvcmdhbml6YXRpb24tdGVsZW1ldHJ5LXJ1bGUvJHtwcm9wcy50ZWxlbWV0cnlSdWxlTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPcmdhbml6YXRpb25UZWxlbWV0cnlSdWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pbk9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9yZ2FuaXphdGlvblRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3JnYW5pemF0aW9uLXRlbGVtZXRyeS1ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHRlbGVtZXRyeVJ1bGVOYW1lOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVJ1bGVOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHMzdGFibGVpbnRlZ3JhdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzM3RhYmxlaW50ZWdyYXRpb24oXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblMzdGFibGVpbnRlZ3JhdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzM3RhYmxlaW50ZWdyYXRpb24vJHtwcm9wcy5zM1RhYmxlSW50ZWdyYXRpb25JZGVudGlmaWVyfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBzM3RhYmxlaW50ZWdyYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFMzdGFibGVpbnRlZ3JhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgczN0YWJsZWludGVncmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVMzdGFibGVpbnRlZ3JhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2JzZXJ2YWJpbGl0eWFkbWluUzN0YWJsZWludGVncmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTM3RhYmxlaW50ZWdyYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgczN0YWJsZWludGVncmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHMzVGFibGVJbnRlZ3JhdGlvbklkZW50aWZpZXI6IG1hdGNoLmdyb3VwcyEuczNUYWJsZUludGVncmF0aW9uSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcGlwZWxpbmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGVsZW1ldHJ5UGlwZWxpbmUoXG5cdFx0cHJvcHM6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2JzZXJ2YWJpbGl0eWFkbWluOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRlbGVtZXRyeS1waXBlbGluZS8ke3Byb3BzLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcn1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGVsZW1ldHJ5LXBpcGVsaW5lIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUZWxlbWV0cnlQaXBlbGluZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGVsZW1ldHJ5UGlwZWxpbmVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVBpcGVsaW5lQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUZWxlbWV0cnlQaXBlbGluZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZWxlbWV0cnktcGlwZWxpbmUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UGlwZWxpbmVJZGVudGlmaWVyOiBtYXRjaC5ncm91cHMhLnRlbGVtZXRyeVBpcGVsaW5lSWRlbnRpZmllcixcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0ZWxlbWV0cnlSdWxlKHByb3BzOiBPYnNlcnZhYmlsaXR5YWRtaW5UZWxlbWV0cnlSdWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9ic2VydmFiaWxpdHlhZG1pbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0ZWxlbWV0cnktcnVsZS8ke3Byb3BzLnRlbGVtZXRyeVJ1bGVOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0ZWxlbWV0cnktcnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGVsZW1ldHJ5UnVsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUZWxlbWV0cnlSdWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRlbGVtZXRyeS1ydWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRlbGVtZXRyeVJ1bGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9ic2VydmFiaWxpdHlhZG1pblRlbGVtZXRyeVJ1bGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRlbGVtZXRyeVJ1bGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGVsZW1ldHJ5LXJ1bGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dGVsZW1ldHJ5UnVsZU5hbWU6IG1hdGNoLmdyb3VwcyEudGVsZW1ldHJ5UnVsZU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igb2JzZXJ2YWJpbGl0eWFkbWluLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJpbGl0eWFkbWluT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVEYXRhc2V0SW50ZWdyYXRpb25cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q3JlYXRlUzNUYWJsZUludGVncmF0aW9uXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJjbG91ZHdhdGNoOlB1dFBpcGVsaW5lUnVsZVwiLFxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVRlbGVtZXRyeVJ1bGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDcmVhdGVUZWxlbWV0cnlSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEYXRhc2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhc2V0SW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZURhdGFzZXRJbnRlZ3JhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTM1RhYmxlSW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTM1RhYmxlSW50ZWdyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVMzVGFibGVJbnRlZ3JhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcImNsb3Vkd2F0Y2g6RGVsZXRlUGlwZWxpbmVSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46RGVsZXRlVGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkRlbGV0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREYXRhc2V0SW50ZWdyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERhdGFzZXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0RGF0YXNldEludGVncmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFMzVGFibGVJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UzNUYWJsZUludGVncmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRTM1RhYmxlSW50ZWdyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46R2V0VGVsZW1ldHJ5RW5yaWNobWVudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlFdmFsdWF0aW9uU3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeUV2YWx1YXRpb25TdGF0dXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVBpcGVsaW5lOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlQaXBlbGluZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUZWxlbWV0cnlSdWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUZWxlbWV0cnlSdWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpHZXRUZWxlbWV0cnlSdWxlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkdldFRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2VudHJhbGl6YXRpb25SdWxlc0Zvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdENlbnRyYWxpemF0aW9uUnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERhdGFzZXRJbnRlZ3JhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YXNldEludGVncmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdERhdGFzZXRJbnRlZ3JhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFMzVGFibGVJbnRlZ3JhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UzNUYWJsZUludGVncmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46TGlzdFMzVGFibGVJbnRlZ3JhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVBpcGVsaW5lcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUZWxlbWV0cnlQaXBlbGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkxpc3RUZWxlbWV0cnlQaXBlbGluZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRlbGVtZXRyeVJ1bGVzRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpMaXN0VGVsZW1ldHJ5UnVsZXNGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFbnJpY2htZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uRm9yT3JnYW5pemF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUVucmljaG1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RW5yaWNobWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUVucmljaG1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wVGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46U3RvcFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRlc3RUZWxlbWV0cnlQaXBlbGluZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlc3RUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGVzdFRlbGVtZXRyeVBpcGVsaW5lXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVbnRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURhdGFzZXRJbnRlZ3JhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpVcGRhdGVEYXRhc2V0SW50ZWdyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlQaXBlbGluZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImNsb3Vkd2F0Y2g6UHV0UGlwZWxpbmVSdWxlXCIsXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VXBkYXRlVGVsZW1ldHJ5UGlwZWxpbmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlVwZGF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZVRlbGVtZXRyeVBpcGVsaW5lQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VmFsaWRhdGVUZWxlbWV0cnlQaXBlbGluZUNvbmZpZ3VyYXRpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIG9ic2VydmFiaWxpdHlhZG1pbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFiaWxpdHlhZG1pbkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXG5cdFx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRGF0YXNldEludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFzZXRJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUzNUYWJsZUludGVncmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVMzVGFibGVJbnRlZ3JhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGVsZW1ldHJ5UGlwZWxpbmVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRlbGVtZXRyeVJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEZWxldGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0Q2VudHJhbGl6YXRpb25SdWxlRm9yT3JnYW5pemF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RSZXNvdXJjZVRlbGVtZXRyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0UmVzb3VyY2VUZWxlbWV0cnlGb3JPcmdhbml6YXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlVGVsZW1ldHJ5Rm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRUZWxlbWV0cnlFdmFsdWF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VGVsZW1ldHJ5RXZhbHVhdGlvbkZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFRlbGVtZXRyeUV2YWx1YXRpb25Gb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wib2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUNlbnRyYWxpemF0aW9uUnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDZW50cmFsaXphdGlvblJ1bGVGb3JPcmdhbml6YXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1xuXHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIixcblx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCIsXG5cdFx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNcIixcblx0XHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVXBkYXRlVGVsZW1ldHJ5UnVsZUZvck9yZ2FuaXphdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUZWxlbWV0cnlSdWxlRm9yT3JnYW5pemF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkJhY2t1cFJlZ2lvbiAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fQkFDS1VQX1JFR0lPTiA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uQWNjb3VudCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fREVTVElOQVRJT05fQUNDT1VOVCA9XG5cdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9ERVNUSU5BVElPTl9SRUdJT04gPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblJ1bGVOYW1lIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDRU5UUkFMSVpBVElPTl9SVUxFX05BTUUgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX0lEID1cblx0XHRcIm9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ0VOVFJBTElaQVRJT05fU09VUkNFX1JFR0lPTlMgPVxuXHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9uc1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlNvdXJjZVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNPVVJDRV9UWVBFID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogb2JzZXJ2YWJpbGl0eWFkbWluOlRhcmdldFJlZ2lvbnMgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRBUkdFVF9SRUdJT05TID0gXCJvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25CYWNrdXBSZWdpb25gLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7IFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uQmFja3VwUmVnaW9uXCI6IHZhbHVlIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25EZXN0aW5hdGlvbkFjY291bnRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50KFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25BY2NvdW50XCI6IHZhbHVlLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uYC5cblx0ICovXG5cdHN0YXRpYyBjZW50cmFsaXphdGlvbkRlc3RpbmF0aW9uUmVnaW9uKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0U3RyaW5nRXF1YWxzOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uRGVzdGluYXRpb25SZWdpb25cIjogdmFsdWUsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uUnVsZU5hbWVgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uUnVsZU5hbWUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRTdHJpbmdFcXVhbHM6IHsgXCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25SdWxlTmFtZVwiOiB2YWx1ZSB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgb2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlSWQoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7XG5cdFx0XHRcdFwib2JzZXJ2YWJpbGl0eWFkbWluOkNlbnRyYWxpemF0aW9uU291cmNlSWRcIjogdmFsdWVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYG9ic2VydmFiaWxpdHlhZG1pbjpDZW50cmFsaXphdGlvblNvdXJjZVJlZ2lvbnNgLlxuXHQgKi9cblx0c3RhdGljIGNlbnRyYWxpemF0aW9uU291cmNlUmVnaW9ucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHtcblx0XHRcdFx0XCJvYnNlcnZhYmlsaXR5YWRtaW46Q2VudHJhbGl6YXRpb25Tb3VyY2VSZWdpb25zXCI6IHZhbHVlcyxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46U291cmNlVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpTb3VyY2VUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBvYnNlcnZhYmlsaXR5YWRtaW46VGFyZ2V0UmVnaW9uc2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFyZ2V0UmVnaW9ucyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcIm9ic2VydmFiaWxpdHlhZG1pbjpUYXJnZXRSZWdpb25zXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
|
|
@@ -16,7 +16,7 @@ class OdbActions {
|
|
|
16
16
|
}
|
|
17
17
|
exports.OdbActions = OdbActions;
|
|
18
18
|
_a = JSII_RTTI_SYMBOL_1;
|
|
19
|
-
OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.
|
|
19
|
+
OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.29.0" };
|
|
20
20
|
/** The IAM service prefix. */
|
|
21
21
|
OdbActions.SERVICE_PREFIX = "odb";
|
|
22
22
|
/** [Write] odb:AcceptMarketplaceRegistration */
|
|
@@ -600,7 +600,7 @@ class OdbResources {
|
|
|
600
600
|
}
|
|
601
601
|
exports.OdbResources = OdbResources;
|
|
602
602
|
_b = JSII_RTTI_SYMBOL_1;
|
|
603
|
-
OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.
|
|
603
|
+
OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.29.0" };
|
|
604
604
|
/**
|
|
605
605
|
* API operation to required IAM actions mapping for odb.
|
|
606
606
|
*/
|
|
@@ -608,7 +608,7 @@ class OdbOperations {
|
|
|
608
608
|
}
|
|
609
609
|
exports.OdbOperations = OdbOperations;
|
|
610
610
|
_c = JSII_RTTI_SYMBOL_1;
|
|
611
|
-
OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.
|
|
611
|
+
OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.29.0" };
|
|
612
612
|
/** IAM actions required for the AcceptMarketplaceRegistration API call. */
|
|
613
613
|
OdbOperations.AcceptMarketplaceRegistration = [
|
|
614
614
|
"odb:AcceptMarketplaceRegistration",
|
|
@@ -912,7 +912,7 @@ class OdbConditions {
|
|
|
912
912
|
}
|
|
913
913
|
exports.OdbConditions = OdbConditions;
|
|
914
914
|
_d = JSII_RTTI_SYMBOL_1;
|
|
915
|
-
OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.
|
|
915
|
+
OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.29.0" };
|
|
916
916
|
/** Condition keys applicable to the CreateAutonomousDatabase action. */
|
|
917
917
|
OdbConditions.CreateAutonomousDatabaseConditionKeys = [
|
|
918
918
|
"aws:RequestTag/${TagKey}",
|
|
@@ -1064,6 +1064,8 @@ export declare class OmicsConditions {
|
|
|
1064
1064
|
static readonly CreateAnnotationStoreVersionConditionKeys: string[];
|
|
1065
1065
|
/** Condition keys applicable to the CreateConfiguration action. */
|
|
1066
1066
|
static readonly CreateConfigurationConditionKeys: string[];
|
|
1067
|
+
/** Condition keys applicable to the CreateMultipartReadSetUpload action. */
|
|
1068
|
+
static readonly CreateMultipartReadSetUploadConditionKeys: string[];
|
|
1067
1069
|
/** Condition keys applicable to the CreateReferenceStore action. */
|
|
1068
1070
|
static readonly CreateReferenceStoreConditionKeys: string[];
|
|
1069
1071
|
/** Condition keys applicable to the CreateRunCache action. */
|
|
@@ -1078,6 +1080,10 @@ export declare class OmicsConditions {
|
|
|
1078
1080
|
static readonly CreateWorkflowConditionKeys: string[];
|
|
1079
1081
|
/** Condition keys applicable to the CreateWorkflowVersion action. */
|
|
1080
1082
|
static readonly CreateWorkflowVersionConditionKeys: string[];
|
|
1083
|
+
/** Condition keys applicable to the StartReadSetImportJob action. */
|
|
1084
|
+
static readonly StartReadSetImportJobConditionKeys: string[];
|
|
1085
|
+
/** Condition keys applicable to the StartReferenceImportJob action. */
|
|
1086
|
+
static readonly StartReferenceImportJobConditionKeys: string[];
|
|
1081
1087
|
/** Condition keys applicable to the StartRun action. */
|
|
1082
1088
|
static readonly StartRunConditionKeys: string[];
|
|
1083
1089
|
/** Condition keys applicable to the StartRunBatch action. */
|