@jjrawlins/cdk-ami-builder 0.0.18 → 0.0.20
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 +3 -3
- package/cdk-ami-builder/jsii/jsii.go +2 -2
- package/cdk-ami-builder/version +1 -1
- package/lib/ImagePipeline/ImagePipeline.js +1 -1
- package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
- package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
- package/node_modules/cdk-iam-floyd/.claude/settings.local.json +30 -0
- package/node_modules/cdk-iam-floyd/CLAUDE.md +147 -0
- package/node_modules/cdk-iam-floyd/README.md +4 -4
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.d.ts +62 -14
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.js +124 -28
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.d.ts +62 -14
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.js +63 -15
- package/node_modules/cdk-iam-floyd/lib/generated/index.d.ts +8 -1
- package/node_modules/cdk-iam-floyd/lib/generated/index.js +26 -12
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/aioperations.d.ts +25 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/aioperations.js +39 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/amplify.d.ts +0 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/amplify.js +1 -7
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.d.ts +26 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.js +31 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagementv2.d.ts +169 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagementv2.js +203 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appintegrations.d.ts +60 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appintegrations.js +82 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.d.ts +12 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.js +13 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationrecoverycontroller-zonalshift.d.ts +35 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationrecoverycontroller-zonalshift.js +42 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appstream2-0.d.ts +15 -15
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appstream2-0.js +22 -22
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appsync.d.ts +1 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/appsync.js +5 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/arcregionswitch.d.ts +277 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/arcregionswitch.js +370 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/artifact.d.ts +10 -25
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/artifact.js +11 -34
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/auditmanager.d.ts +22 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/auditmanager.js +23 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/auroradsql.d.ts +96 -24
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/auroradsql.js +121 -30
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.d.ts +62 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.js +80 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backupsearch.d.ts +4 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backupsearch.js +5 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/batch.d.ts +106 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/batch.js +137 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.d.ts +471 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.js +595 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.d.ts +912 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.js +1203 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billing.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billing.js +10 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdashboards.d.ts +122 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdashboards.js +165 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementrecommendedactions.d.ts +25 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementrecommendedactions.js +36 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.d.ts +6 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.js +7 -10
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/budgetservice.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/budgetservice.js +7 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/certificatemanager.d.ts +30 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/certificatemanager.js +36 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/chatbot.d.ts +128 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/chatbot.js +134 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cleanrooms.d.ts +56 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cleanrooms.js +72 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cleanroomsml.d.ts +14 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cleanroomsml.js +18 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloud9.d.ts +6 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloud9.js +8 -13
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudmap.d.ts +57 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudmap.js +69 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.d.ts +20 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.js +27 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatch.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatch.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.d.ts +200 -9
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.js +258 -14
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/codebuild.d.ts +1909 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/codebuild.js +2131 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/codepipeline.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/codepipeline.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cognitouserpools.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cognitouserpools.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.d.ts +44 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.js +52 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectcases.d.ts +9 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectcases.js +13 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectcustomerprofiles.d.ts +106 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectcustomerprofiles.js +142 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectoutboundcampaigns.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connectoutboundcampaigns.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/controlcatalog.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/controlcatalog.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costandusagereport.d.ts +3 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costandusagereport.js +4 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.d.ts +24 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.js +31 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dataexchange.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dataexchange.js +17 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.d.ts +57 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.js +89 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deadlinecloud.d.ts +17 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deadlinecloud.js +18 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/directoryservice.d.ts +142 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/directoryservice.js +173 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2.d.ts +521 -17
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2.js +580 -29
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.d.ts +147 -62
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.js +155 -70
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticblockstore.d.ts +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticblockstore.js +4 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.d.ts +1 -30
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.js +2 -31
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.d.ts +47 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.js +62 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticloadbalancing.d.ts +1 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticloadbalancing.js +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticmapreduce.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticmapreduce.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.d.ts +55 -55
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.js +56 -56
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconvert.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconvert.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/emroneksemrcontainers.d.ts +2 -13
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/emroneksemrcontainers.js +3 -16
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/emrserverless.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/emrserverless.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/endusermessagingsocial.d.ts +64 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/endusermessagingsocial.js +91 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/entityresolution.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/entityresolution.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/eventbridge.d.ts +30 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/eventbridge.js +38 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/freetier.d.ts +32 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/freetier.js +48 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/fsx.d.ts +32 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/fsx.js +42 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.d.ts +249 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.js +264 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/gluedatabrew.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/gluedatabrew.js +17 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.d.ts +138 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.js +175 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthimaging.d.ts +56 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthimaging.js +78 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iamidentitycenter.d.ts +24 -51
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iamidentitycenter.js +31 -70
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.d.ts +40 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.js +45 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/inspector2.d.ts +179 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/inspector2.js +232 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/interactivevideoservice.d.ts +30 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/interactivevideoservice.js +40 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iot.d.ts +32 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iot.js +46 -9
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotfleetwise.d.ts +0 -32
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotfleetwise.js +1 -39
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotmanagedintegrations.d.ts +42 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotmanagedintegrations.js +47 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotsitewise.d.ts +133 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/iotsitewise.js +178 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/keymanagementservice.d.ts +1 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/keymanagementservice.js +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/keyspacesforapachecassandra.d.ts +51 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/keyspacesforapachecassandra.js +68 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisdatastreams.d.ts +4 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisdatastreams.js +5 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lexv2.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lexv2.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedserviceforprometheus.d.ts +129 -45
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedserviceforprometheus.js +151 -46
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplacecatalog.d.ts +0 -32
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplacecatalog.js +3 -47
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplacemeteringservice.d.ts +4 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplacemeteringservice.js +5 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/memorydb.d.ts +12 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/memorydb.js +16 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mq.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mq.js +10 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/multi-partyapproval.d.ts +6 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/multi-partyapproval.js +10 -10
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/neptuneanalytics.d.ts +28 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/neptuneanalytics.js +35 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/networkfirewall.d.ts +123 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/networkfirewall.js +163 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearchserverless.d.ts +38 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearchserverless.js +51 -7
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.d.ts +29 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.js +36 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/outposts.d.ts +14 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/outposts.js +18 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/parallelcomputingservice.d.ts +5 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/parallelcomputingservice.js +6 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.d.ts +18 -16
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.js +19 -17
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/qbusiness.d.ts +87 -52
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/qbusiness.js +114 -73
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/qbusinessqapps.d.ts +0 -50
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/qbusinessqapps.js +1 -60
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.d.ts +25 -20
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.js +35 -23
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/rds.d.ts +59 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/rds.js +65 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/redshift.d.ts +0 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/redshift.js +1 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/repostprivate.d.ts +48 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/repostprivate.js +67 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourceexplorer.d.ts +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourceexplorer.js +7 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.d.ts +187 -175
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.js +202 -176
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3express.d.ts +151 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3express.js +174 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3glacier.d.ts +2 -31
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3glacier.js +3 -36
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.d.ts +202 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.js +272 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.d.ts +197 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.js +241 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerwithmlflow.d.ts +54 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerwithmlflow.js +83 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/savingsplans.d.ts +1 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/savingsplans.js +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.d.ts +22 -22
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.js +23 -23
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.d.ts +295 -6
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.js +375 -7
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.d.ts +2 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.js +3 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securitylake.d.ts +4 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securitylake.js +5 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securitytokenservice.d.ts +10 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securitytokenservice.js +13 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.d.ts +548 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.js +718 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/serviceformanagingawsconsoleuserexperiencecapabilities-.d.ts +41 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/serviceformanagingawsconsoleuserexperiencecapabilities-.js +60 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicequotas.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicequotas.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/shield.d.ts +24 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/shield.js +34 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/shieldnetworksecuritydirector.d.ts +89 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/shieldnetworksecuritydirector.js +128 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/simpleemailservicev2.d.ts +211 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/simpleemailservicev2.js +256 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/snowdevicemanagement.d.ts +4 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/snowdevicemanagement.js +5 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/support.d.ts +24 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/support.js +35 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/systemsmanager.d.ts +27 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/systemsmanager.js +32 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/systemsmanagerforsap.d.ts +51 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/systemsmanagerforsap.js +76 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transcribe.d.ts +27 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transcribe.js +28 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.d.ts +93 -8
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.js +117 -9
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotifications.d.ts +34 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotifications.js +51 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/vpclattice.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/vpclattice.js +10 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspaces.d.ts +83 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspaces.js +113 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspacessecurebrowser.d.ts +77 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspacessecurebrowser.js +101 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspacesthinclient.d.ts +1 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/workspacesthinclient.js +2 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/x-ray.d.ts +35 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/x-ray.js +40 -2
- package/node_modules/cdk-iam-floyd/package.json +10 -10
- package/package.json +2 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/supportrecommendations.d.ts +0 -33
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/supportrecommendations.js +0 -47
|
@@ -13,6 +13,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
13
13
|
*
|
|
14
14
|
* Access Level: Write
|
|
15
15
|
*
|
|
16
|
+
* Possible conditions:
|
|
17
|
+
* - .ifAwsResourceTag()
|
|
18
|
+
*
|
|
16
19
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_AssociateToConfiguration.html
|
|
17
20
|
*/
|
|
18
21
|
toAssociateToConfiguration() {
|
|
@@ -23,6 +26,10 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
23
26
|
*
|
|
24
27
|
* Access Level: Write
|
|
25
28
|
*
|
|
29
|
+
* Possible conditions:
|
|
30
|
+
* - .ifAwsTagKeys()
|
|
31
|
+
* - .ifAwsRequestTag()
|
|
32
|
+
*
|
|
26
33
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_CreateChimeWebhookConfiguration.html
|
|
27
34
|
*/
|
|
28
35
|
toCreateChimeWebhookConfiguration() {
|
|
@@ -33,6 +40,10 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
33
40
|
*
|
|
34
41
|
* Access Level: Write
|
|
35
42
|
*
|
|
43
|
+
* Possible conditions:
|
|
44
|
+
* - .ifAwsTagKeys()
|
|
45
|
+
* - .ifAwsRequestTag()
|
|
46
|
+
*
|
|
36
47
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_CreateCustomAction.html
|
|
37
48
|
*/
|
|
38
49
|
toCreateCustomAction() {
|
|
@@ -43,6 +54,10 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
43
54
|
*
|
|
44
55
|
* Access Level: Write
|
|
45
56
|
*
|
|
57
|
+
* Possible conditions:
|
|
58
|
+
* - .ifAwsTagKeys()
|
|
59
|
+
* - .ifAwsRequestTag()
|
|
60
|
+
*
|
|
46
61
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_CreateMicrosoftTeamsChannelConfiguration.html
|
|
47
62
|
*/
|
|
48
63
|
toCreateMicrosoftTeamsChannelConfiguration() {
|
|
@@ -53,6 +68,10 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
53
68
|
*
|
|
54
69
|
* Access Level: Write
|
|
55
70
|
*
|
|
71
|
+
* Possible conditions:
|
|
72
|
+
* - .ifAwsTagKeys()
|
|
73
|
+
* - .ifAwsRequestTag()
|
|
74
|
+
*
|
|
56
75
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_CreateSlackChannelConfiguration.html
|
|
57
76
|
*/
|
|
58
77
|
toCreateSlackChannelConfiguration() {
|
|
@@ -63,6 +82,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
63
82
|
*
|
|
64
83
|
* Access Level: Write
|
|
65
84
|
*
|
|
85
|
+
* Possible conditions:
|
|
86
|
+
* - .ifAwsResourceTag()
|
|
87
|
+
*
|
|
66
88
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_DeleteChimeWebhookConfiguration.html
|
|
67
89
|
*/
|
|
68
90
|
toDeleteChimeWebhookConfiguration() {
|
|
@@ -73,6 +95,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
73
95
|
*
|
|
74
96
|
* Access Level: Write
|
|
75
97
|
*
|
|
98
|
+
* Possible conditions:
|
|
99
|
+
* - .ifAwsResourceTag()
|
|
100
|
+
*
|
|
76
101
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_DeleteCustomAction.html
|
|
77
102
|
*/
|
|
78
103
|
toDeleteCustomAction() {
|
|
@@ -83,6 +108,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
83
108
|
*
|
|
84
109
|
* Access Level: Write
|
|
85
110
|
*
|
|
111
|
+
* Possible conditions:
|
|
112
|
+
* - .ifAwsResourceTag()
|
|
113
|
+
*
|
|
86
114
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_DeleteMicrosoftTeamsChannelConfiguration.html
|
|
87
115
|
*/
|
|
88
116
|
toDeleteMicrosoftTeamsChannelConfiguration() {
|
|
@@ -113,6 +141,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
113
141
|
*
|
|
114
142
|
* Access Level: Write
|
|
115
143
|
*
|
|
144
|
+
* Possible conditions:
|
|
145
|
+
* - .ifAwsResourceTag()
|
|
146
|
+
*
|
|
116
147
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_DeleteSlackChannelConfiguration.html
|
|
117
148
|
*/
|
|
118
149
|
toDeleteSlackChannelConfiguration() {
|
|
@@ -193,6 +224,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
193
224
|
*
|
|
194
225
|
* Access Level: Write
|
|
195
226
|
*
|
|
227
|
+
* Possible conditions:
|
|
228
|
+
* - .ifAwsResourceTag()
|
|
229
|
+
*
|
|
196
230
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_DisassociateFromConfiguration.html
|
|
197
231
|
*/
|
|
198
232
|
toDisassociateFromConfiguration() {
|
|
@@ -213,6 +247,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
213
247
|
*
|
|
214
248
|
* Access Level: Read
|
|
215
249
|
*
|
|
250
|
+
* Possible conditions:
|
|
251
|
+
* - .ifAwsResourceTag()
|
|
252
|
+
*
|
|
216
253
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_GetCustomAction.html
|
|
217
254
|
*/
|
|
218
255
|
toGetCustomAction() {
|
|
@@ -223,6 +260,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
223
260
|
*
|
|
224
261
|
* Access Level: Read
|
|
225
262
|
*
|
|
263
|
+
* Possible conditions:
|
|
264
|
+
* - .ifAwsResourceTag()
|
|
265
|
+
*
|
|
226
266
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_GetMicrosoftTeamsChannelConfiguration.html
|
|
227
267
|
*/
|
|
228
268
|
toGetMicrosoftTeamsChannelConfiguration() {
|
|
@@ -333,6 +373,10 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
333
373
|
*
|
|
334
374
|
* Access Level: Tagging
|
|
335
375
|
*
|
|
376
|
+
* Possible conditions:
|
|
377
|
+
* - .ifAwsTagKeys()
|
|
378
|
+
* - .ifAwsRequestTag()
|
|
379
|
+
*
|
|
336
380
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_TagResource.html
|
|
337
381
|
*/
|
|
338
382
|
toTagResource() {
|
|
@@ -343,6 +387,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
343
387
|
*
|
|
344
388
|
* Access Level: Tagging
|
|
345
389
|
*
|
|
390
|
+
* Possible conditions:
|
|
391
|
+
* - .ifAwsTagKeys()
|
|
392
|
+
*
|
|
346
393
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_UntagResource.html
|
|
347
394
|
*/
|
|
348
395
|
toUntagResource() {
|
|
@@ -363,6 +410,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
363
410
|
*
|
|
364
411
|
* Access Level: Write
|
|
365
412
|
*
|
|
413
|
+
* Possible conditions:
|
|
414
|
+
* - .ifAwsResourceTag()
|
|
415
|
+
*
|
|
366
416
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_UpdateChimeWebhookConfiguration.html
|
|
367
417
|
*/
|
|
368
418
|
toUpdateChimeWebhookConfiguration() {
|
|
@@ -373,6 +423,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
373
423
|
*
|
|
374
424
|
* Access Level: Write
|
|
375
425
|
*
|
|
426
|
+
* Possible conditions:
|
|
427
|
+
* - .ifAwsResourceTag()
|
|
428
|
+
*
|
|
376
429
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_UpdateCustomAction.html
|
|
377
430
|
*/
|
|
378
431
|
toUpdateCustomAction() {
|
|
@@ -383,6 +436,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
383
436
|
*
|
|
384
437
|
* Access Level: Write
|
|
385
438
|
*
|
|
439
|
+
* Possible conditions:
|
|
440
|
+
* - .ifAwsResourceTag()
|
|
441
|
+
*
|
|
386
442
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_UpdateMicrosoftTeamsChannelConfiguration.html
|
|
387
443
|
*/
|
|
388
444
|
toUpdateMicrosoftTeamsChannelConfiguration() {
|
|
@@ -393,6 +449,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
393
449
|
*
|
|
394
450
|
* Access Level: Write
|
|
395
451
|
*
|
|
452
|
+
* Possible conditions:
|
|
453
|
+
* - .ifAwsResourceTag()
|
|
454
|
+
*
|
|
396
455
|
* https://docs.aws.amazon.com/chatbot/latest/APIReference/API_UpdateSlackChannelConfiguration.html
|
|
397
456
|
*/
|
|
398
457
|
toUpdateSlackChannelConfiguration() {
|
|
@@ -407,6 +466,9 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
407
466
|
* @param chatbotConfigurationName - Identifier for the chatbotConfigurationName.
|
|
408
467
|
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
409
468
|
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
469
|
+
*
|
|
470
|
+
* Possible conditions:
|
|
471
|
+
* - .ifAwsResourceTag()
|
|
410
472
|
*/
|
|
411
473
|
onChatbotConfiguration(configurationType, chatbotConfigurationName, account, partition) {
|
|
412
474
|
return this.on(`arn:${partition ?? this.defaultPartition}:chatbot::${account ?? this.defaultAccount}:chat-configuration/${configurationType}/${chatbotConfigurationName}`);
|
|
@@ -419,10 +481,81 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
419
481
|
* @param actionName - Identifier for the actionName.
|
|
420
482
|
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
421
483
|
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
484
|
+
*
|
|
485
|
+
* Possible conditions:
|
|
486
|
+
* - .ifAwsResourceTag()
|
|
422
487
|
*/
|
|
423
488
|
onCustomAction(actionName, account, partition) {
|
|
424
489
|
return this.on(`arn:${partition ?? this.defaultPartition}:chatbot::${account ?? this.defaultAccount}:custom-action/${actionName}`);
|
|
425
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Filters access by the tags that are passed in the request
|
|
493
|
+
*
|
|
494
|
+
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
|
|
495
|
+
*
|
|
496
|
+
* Applies to actions:
|
|
497
|
+
* - .toCreateChimeWebhookConfiguration()
|
|
498
|
+
* - .toCreateCustomAction()
|
|
499
|
+
* - .toCreateMicrosoftTeamsChannelConfiguration()
|
|
500
|
+
* - .toCreateSlackChannelConfiguration()
|
|
501
|
+
* - .toTagResource()
|
|
502
|
+
*
|
|
503
|
+
* @param tagKey The tag key to check
|
|
504
|
+
* @param value The value(s) to check
|
|
505
|
+
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
506
|
+
*/
|
|
507
|
+
ifAwsRequestTag(tagKey, value, operator) {
|
|
508
|
+
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Filters access by the tags associated with the resource
|
|
512
|
+
*
|
|
513
|
+
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
|
|
514
|
+
*
|
|
515
|
+
* Applies to actions:
|
|
516
|
+
* - .toAssociateToConfiguration()
|
|
517
|
+
* - .toDeleteChimeWebhookConfiguration()
|
|
518
|
+
* - .toDeleteCustomAction()
|
|
519
|
+
* - .toDeleteMicrosoftTeamsChannelConfiguration()
|
|
520
|
+
* - .toDeleteSlackChannelConfiguration()
|
|
521
|
+
* - .toDisassociateFromConfiguration()
|
|
522
|
+
* - .toGetCustomAction()
|
|
523
|
+
* - .toGetMicrosoftTeamsChannelConfiguration()
|
|
524
|
+
* - .toUpdateChimeWebhookConfiguration()
|
|
525
|
+
* - .toUpdateCustomAction()
|
|
526
|
+
* - .toUpdateMicrosoftTeamsChannelConfiguration()
|
|
527
|
+
* - .toUpdateSlackChannelConfiguration()
|
|
528
|
+
*
|
|
529
|
+
* Applies to resource types:
|
|
530
|
+
* - ChatbotConfiguration
|
|
531
|
+
* - custom-action
|
|
532
|
+
*
|
|
533
|
+
* @param tagKey The tag key to check
|
|
534
|
+
* @param value The value(s) to check
|
|
535
|
+
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
536
|
+
*/
|
|
537
|
+
ifAwsResourceTag(tagKey, value, operator) {
|
|
538
|
+
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Filters access by the tag keys that are passed in the request
|
|
542
|
+
*
|
|
543
|
+
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
|
|
544
|
+
*
|
|
545
|
+
* Applies to actions:
|
|
546
|
+
* - .toCreateChimeWebhookConfiguration()
|
|
547
|
+
* - .toCreateCustomAction()
|
|
548
|
+
* - .toCreateMicrosoftTeamsChannelConfiguration()
|
|
549
|
+
* - .toCreateSlackChannelConfiguration()
|
|
550
|
+
* - .toTagResource()
|
|
551
|
+
* - .toUntagResource()
|
|
552
|
+
*
|
|
553
|
+
* @param value The value(s) to check
|
|
554
|
+
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
555
|
+
*/
|
|
556
|
+
ifAwsTagKeys(value, operator) {
|
|
557
|
+
return this.if(`aws:TagKeys`, value, operator ?? 'StringLike');
|
|
558
|
+
}
|
|
426
559
|
/**
|
|
427
560
|
* Statement provider for service [chatbot](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awschatbot.html).
|
|
428
561
|
*
|
|
@@ -482,4 +615,4 @@ class Chatbot extends shared_1.PolicyStatement {
|
|
|
482
615
|
}
|
|
483
616
|
}
|
|
484
617
|
exports.Chatbot = Chatbot;
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYXRib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStDO0FBRy9DOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBZTtJQUcxQzs7Ozs7O09BTUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlDQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwwQ0FBMEM7UUFDL0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlDQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUNBQWlDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBDQUEwQztRQUMvQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0NBQW9DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxv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O2dCQUNsQix5Q0FBeUM7Z0JBQ3pDLG1DQUFtQztnQkFDbkMsa0NBQWtDO2dCQUNsQyxxQkFBcUI7YUFDdEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2FBQ3BCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsZUFBZTthQUNoQjtTQUNGLENBQUM7SUFtQ0YsQ0FBQztDQUNGO0FBcGdCRCwwQkFvZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2NoYXRib3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2NoYXRib3QuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBDaGF0Ym90IGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnY2hhdGJvdCc7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBhIHJlc291cmNlIHdpdGggYSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXNzb2NpYXRlVG9Db25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZVRvQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlVG9Db25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFXUyBDaGF0Ym90IENoaW1lIFdlYmhvb2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGN1c3RvbSBhY3Rpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVDdXN0b21BY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQ3VzdG9tQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDdXN0b21BY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gQVdTIENoYXRib3QgTWljcm9zb2Z0IFRlYW1zIENoYW5uZWwgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBV1MgQ2hhdGJvdCBTbGFjayBDaGFubmVsIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIENoYXRib3QgQ2hpbWUgV2ViaG9vayBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY3VzdG9tIGFjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUN1c3RvbUFjdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDdXN0b21BY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUN1c3RvbUFjdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBV1MgQ2hhdGJvdCBNaWNyb3NvZnQgVGVhbXMgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBNaWNyb3NvZnQgVGVhbXMgY29uZmlndXJlZCB3aXRoIEFXUyBDaGF0Ym90IGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlTWljcm9zb2Z0VGVhbXNDb25maWd1cmVkVGVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNaWNyb3NvZnRUZWFtc0NvbmZpZ3VyZWRUZWFtKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVNaWNyb3NvZnRUZWFtc0NvbmZpZ3VyZWRUZWFtJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFXUyBDaGF0Ym90IE1pY3Jvc29mdCBUZWFtcyBVc2VyIElkZW50aXR5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlTWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zVXNlcklkZW50aXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFXUyBDaGF0Ym90IFNsYWNrIENoYW5uZWwgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBV1MgQ2hhdGJvdCBTbGFjayBVc2VyIElkZW50aXR5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlU2xhY2tVc2VySWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tVc2VySWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVNsYWNrVXNlcklkZW50aXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBTbGFjayB3b3Jrc3BhY2UgYXV0aG9yaXphdGlvbiB3aXRoIEFXUyBDaGF0Ym90LCBhc3NvY2lhdGVkIHdpdGggYW4gQVdTIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVTbGFja1dvcmtzcGFjZUF1dGhvcml6YXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tXb3Jrc3BhY2VBdXRob3JpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVTbGFja1dvcmtzcGFjZUF1dGhvcml6YXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBBV1MgQ2hhdGJvdCBDaGltZSBXZWJob29rIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBBY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBBV1MgQ2hhdGJvdCBTbGFjayBDaGFubmVsIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBwdWJsaWMgU2xhY2sgY2hhbm5lbHMgaW4gdGhlIFNsYWNrIHdvcmtzcGFjZSBjb25uZWN0ZWQgdG8gdGhlIEFXUyBBY2NvdW50IG9uYm9hcmRlZCB3aXRoIEFXUyBDaGF0Ym90IHNlcnZpY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX09wZXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVTbGFja0NoYW5uZWxzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVNsYWNrQ2hhbm5lbHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBBV1MgQ2hhdGJvdCBTbGFjayBVc2VyIElkZW50aXRpZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlU2xhY2tVc2VySWRlbnRpdGllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVNsYWNrVXNlcklkZW50aXRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlU2xhY2tVc2VySWRlbnRpdGllcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIGF1dGhvcml6ZWQgU2xhY2sgd29ya3NwYWNlcyBjb25uZWN0ZWQgdG8gdGhlIEFXUyBBY2NvdW50IG9uYm9hcmRlZCB3aXRoIEFXUyBDaGF0Ym90IHNlcnZpY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlU2xhY2tXb3Jrc3BhY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlU2xhY2tXb3Jrc3BhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVNsYWNrV29ya3NwYWNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRpc2Fzc29jaWF0ZSBhIHJlc291cmNlIGZyb20gYSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGlzYXNzb2NpYXRlRnJvbUNvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGlzYXNzb2NpYXRlRnJvbUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rpc2Fzc29jaWF0ZUZyb21Db25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgQVdTIENoYXRib3QgYWNjb3VudCBwcmVmZXJlbmNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0QWNjb3VudFByZWZlcmVuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEFjY291bnRQcmVmZXJlbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QWNjb3VudFByZWZlcmVuY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGEgY3VzdG9tIGFjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0Q3VzdG9tQWN0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEN1c3RvbUFjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0Q3VzdG9tQWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGEgc2luZ2xlIEFXUyBDaGF0Ym90IE1pY3Jvc29mdCBUZWFtcyBDaGFubmVsIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZW5lcmF0ZSBPQXV0aCBwYXJhbWV0ZXJzIHRvIHJlcXVlc3QgTWljcm9zb2Z0IFRlYW1zIE9BdXRoIGNvZGUgdG8gYmUgdXNlZCBieSB0aGUgQVdTIENoYXRib3Qgc2VydmljZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfT3BlcmF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRNaWNyb3NvZnRUZWFtc09hdXRoUGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TWljcm9zb2Z0VGVhbXNPYXV0aFBhcmFtZXRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZW5lcmF0ZSBPQXV0aCBwYXJhbWV0ZXJzIHRvIHJlcXVlc3QgU2xhY2sgT0F1dGggY29kZSB0byBiZSB1c2VkIGJ5IHRoZSBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9PcGVyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFNsYWNrT2F1dGhQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRTbGFja09hdXRoUGFyYW1ldGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBc3NvY2lhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFzc29jaWF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFzc29jaWF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgY3VzdG9tIGFjdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RDdXN0b21BY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RDdXN0b21BY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0Q3VzdG9tQWN0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIEFXUyBDaGF0Ym90IE1pY3Jvc29mdCBUZWFtcyBDaGFubmVsIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBNaWNyb3NvZnQgVGVhbXMgY29ubmVjdGVkIHRvIHRoZSBBV1MgQWNjb3VudCBvbmJvYXJkZWQgd2l0aCBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNDb25maWd1cmVkVGVhbXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW1zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWljcm9zb2Z0VGVhbXNDb25maWd1cmVkVGVhbXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBBV1MgQ2hhdGJvdCBNaWNyb3NvZnQgVGVhbXMgVXNlciBJZGVudGl0aWVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdGllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdGllcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE1pY3Jvc29mdFRlYW1zVXNlcklkZW50aXRpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBMaXN0IGFsbCB0YWdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVdTIENoYXRib3QgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VGFnc0ZvclJlc291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RUYWdzRm9yUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUYWdzRm9yUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWRlZW0gcHJldmlvdXNseSBnZW5lcmF0ZWQgcGFyYW1ldGVycyB3aXRoIE1pY3Jvc29mdCBBUElzLCB0byBhY3F1aXJlIE9BdXRoIHRva2VucyB0byBiZSB1c2VkIGJ5IHRoZSBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfT3BlcmF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWRlZW1NaWNyb3NvZnRUZWFtc09hdXRoQ29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVkZWVtTWljcm9zb2Z0VGVhbXNPYXV0aENvZGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWRlZW0gcHJldmlvdXNseSBnZW5lcmF0ZWQgcGFyYW1ldGVycyB3aXRoIFNsYWNrIEFQSSwgdG8gYWNxdWlyZSBPQXV0aCB0b2tlbnMgdG8gYmUgdXNlZCBieSB0aGUgQVdTIENoYXRib3Qgc2VydmljZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX09wZXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVkZWVtU2xhY2tPYXV0aENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlZGVlbVNsYWNrT2F1dGhDb2RlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIHRhZ3Mgb24gQVdTIENoYXRib3QgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogVGFnZ2luZ1xuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UYWdSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9UYWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVGFnUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZW1vdmUgdGFncyBvbiBBV1MgQ2hhdGJvdCBDaGFubmVsIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBUYWdnaW5nXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VudGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVW50YWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVW50YWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBBV1MgQ2hhdGJvdCBhY2NvdW50IHByZWZlcmVuY2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWNjb3VudFByZWZlcmVuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFjY291bnRQcmVmZXJlbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQWNjb3VudFByZWZlcmVuY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIEFXUyBDaGF0Ym90IENoaW1lIFdlYmhvb2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIGN1c3RvbSBhY3Rpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVDdXN0b21BY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQ3VzdG9tQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVDdXN0b21BY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYW4gQVdTIENoYXRib3QgTWljcm9zb2Z0IFRlYW1zIENoYW5uZWwgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBBV1MgQ2hhdGJvdCBTbGFjayBDaGFubmVsIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0Fzc29jaWF0ZVRvQ29uZmlndXJhdGlvbicsXG4gICAgICAnQ3JlYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbicsXG4gICAgICAnQ3JlYXRlQ3VzdG9tQWN0aW9uJyxcbiAgICAgICdDcmVhdGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uJyxcbiAgICAgICdDcmVhdGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uJyxcbiAgICAgICdEZWxldGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uJyxcbiAgICAgICdEZWxldGVDdXN0b21BY3Rpb24nLFxuICAgICAgJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24nLFxuICAgICAgJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW0nLFxuICAgICAgJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zVXNlcklkZW50aXR5JyxcbiAgICAgICdEZWxldGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uJyxcbiAgICAgICdEZWxldGVTbGFja1VzZXJJZGVudGl0eScsXG4gICAgICAnRGVsZXRlU2xhY2tXb3Jrc3BhY2VBdXRob3JpemF0aW9uJyxcbiAgICAgICdEaXNhc3NvY2lhdGVGcm9tQ29uZmlndXJhdGlvbicsXG4gICAgICAnUmVkZWVtTWljcm9zb2Z0VGVhbXNPYXV0aENvZGUnLFxuICAgICAgJ1JlZGVlbVNsYWNrT2F1dGhDb2RlJyxcbiAgICAgICdVcGRhdGVBY2NvdW50UHJlZmVyZW5jZXMnLFxuICAgICAgJ1VwZGF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24nLFxuICAgICAgJ1VwZGF0ZUN1c3RvbUFjdGlvbicsXG4gICAgICAnVXBkYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicsXG4gICAgICAnVXBkYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbidcbiAgICBdLFxuICAgIFJlYWQ6IFtcbiAgICAgICdEZXNjcmliZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb25zJyxcbiAgICAgICdEZXNjcmliZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25zJyxcbiAgICAgICdEZXNjcmliZVNsYWNrQ2hhbm5lbHMnLFxuICAgICAgJ0Rlc2NyaWJlU2xhY2tVc2VySWRlbnRpdGllcycsXG4gICAgICAnRGVzY3JpYmVTbGFja1dvcmtzcGFjZXMnLFxuICAgICAgJ0dldEFjY291bnRQcmVmZXJlbmNlcycsXG4gICAgICAnR2V0Q3VzdG9tQWN0aW9uJyxcbiAgICAgICdHZXRNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uJyxcbiAgICAgICdHZXRNaWNyb3NvZnRUZWFtc09hdXRoUGFyYW1ldGVycycsXG4gICAgICAnR2V0U2xhY2tPYXV0aFBhcmFtZXRlcnMnLFxuICAgICAgJ0xpc3RBc3NvY2lhdGlvbnMnLFxuICAgICAgJ0xpc3RNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9ucycsXG4gICAgICAnTGlzdE1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW1zJyxcbiAgICAgICdMaXN0TWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdGllcycsXG4gICAgICAnTGlzdFRhZ3NGb3JSZXNvdXJjZSdcbiAgICBdLFxuICAgIExpc3Q6IFtcbiAgICAgICdMaXN0Q3VzdG9tQWN0aW9ucydcbiAgICBdLFxuICAgIFRhZ2dpbmc6IFtcbiAgICAgICdUYWdSZXNvdXJjZScsXG4gICAgICAnVW50YWdSZXNvdXJjZSdcbiAgICBdXG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIENoYXRib3RDb25maWd1cmF0aW9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L2FkbWluZ3VpZGUvd2hhdC1pcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWd1cmF0aW9uVHlwZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjb25maWd1cmF0aW9uVHlwZS5cbiAgICogQHBhcmFtIGNoYXRib3RDb25maWd1cmF0aW9uTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjaGF0Ym90Q29uZmlndXJhdGlvbk5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbkNoYXRib3RDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25UeXBlOiBzdHJpbmcsIGNoYXRib3RDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpjaGF0Ym90OjokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpjaGF0LWNvbmZpZ3VyYXRpb24vJHsgY29uZmlndXJhdGlvblR5cGUgfS8keyBjaGF0Ym90Q29uZmlndXJhdGlvbk5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGN1c3RvbS1hY3Rpb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvYWRtaW5ndWlkZS93aGF0LWlzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbk5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgYWN0aW9uTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tQWN0aW9uKGFjdGlvbk5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06Y2hhdGJvdDo6JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Y3VzdG9tLWFjdGlvbi8keyBhY3Rpb25OYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2NoYXRib3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2NoYXRib3QuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19
|
|
618
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYXRib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBZTtJQUcxQzs7Ozs7Ozs7O09BU0c7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSwwQ0FBMEM7UUFDL0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGlDQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSwwQ0FBMEM7UUFDL0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG9DQUFvQztRQUN6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QUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQXpvQlIsa0JBQWEsR0FBRyxTQUFTLENBQUM7UUEwZXZCLG9CQUFlLEdBQW9CO1lBQzNDLEtBQUssRUFBRTtnQkFDTCwwQkFBMEI7Z0JBQzFCLGlDQUFpQztnQkFDakMsb0JBQW9CO2dCQUNwQiwwQ0FBMEM7Z0JBQzFDLGlDQUFpQztnQkFDakMsaUNBQWlDO2dCQUNqQyxvQkFBb0I7Z0JBQ3BCLDBDQUEwQztnQkFDMUMsb0NBQW9DO2dCQUNwQyxrQ0FBa0M7Z0JBQ2xDLGlDQUFpQztnQkFDakMseUJBQXlCO2dCQUN6QixtQ0FBbUM7Z0JBQ25DLCtCQUErQjtnQkFDL0IsK0JBQStCO2dCQUMvQixzQkFBc0I7Z0JBQ3RCLDBCQUEwQjtnQkFDMUIsaUNBQWlDO2dCQUNqQyxvQkFBb0I7Z0JBQ3BCLDBDQUEwQztnQkFDMUMsaUNBQWlDO2FBQ2xDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLG9DQUFvQztnQkFDcEMsb0NBQW9DO2dCQUNwQyx1QkFBdUI7Z0JBQ3ZCLDZCQUE2QjtnQkFDN0IseUJBQXlCO2dCQUN6Qix1QkFBdUI7Z0JBQ3ZCLGlCQUFpQjtnQkFDakIsdUNBQXVDO2dCQUN2QyxrQ0FBa0M7Z0JBQ2xDLHlCQUF5QjtnQkFDekIsa0JBQWtCO2dCQUNsQix5Q0FBeUM7Z0JBQ3pDLG1DQUFtQztnQkFDbkMsa0NBQWtDO2dCQUNsQyxxQkFBcUI7YUFDdEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2FBQ3BCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsZUFBZTthQUNoQjtTQUNGLENBQUM7SUFnSEYsQ0FBQztDQUNGO0FBNW9CRCwwQkE0b0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtjaGF0Ym90XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NjaGF0Ym90Lmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgQ2hhdGJvdCBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2NoYXRib3QnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhc3NvY2lhdGUgYSByZXNvdXJjZSB3aXRoIGEgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3NvY2lhdGVUb0NvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQXNzb2NpYXRlVG9Db25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBc3NvY2lhdGVUb0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gQVdTIENoYXRib3QgQ2hpbWUgV2ViaG9vayBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgY3VzdG9tIGFjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUN1c3RvbUFjdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVDdXN0b21BY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUN1c3RvbUFjdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBV1MgQ2hhdGJvdCBNaWNyb3NvZnQgVGVhbXMgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFXUyBDaGF0Ym90IFNsYWNrIENoYW5uZWwgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBV1MgQ2hhdGJvdCBDaGltZSBXZWJob29rIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY3VzdG9tIGFjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVDdXN0b21BY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQ3VzdG9tQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDdXN0b21BY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIENoYXRib3QgTWljcm9zb2Z0IFRlYW1zIENoYW5uZWwgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIE1pY3Jvc29mdCBUZWFtcyBjb25maWd1cmVkIHdpdGggQVdTIENoYXRib3QgaW4gYW4gQVdTIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVNaWNyb3NvZnRUZWFtc0NvbmZpZ3VyZWRUZWFtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIENoYXRib3QgTWljcm9zb2Z0IFRlYW1zIFVzZXIgSWRlbnRpdHlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVNaWNyb3NvZnRUZWFtc1VzZXJJZGVudGl0eS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNaWNyb3NvZnRUZWFtc1VzZXJJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIENoYXRib3QgU2xhY2sgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBV1MgQ2hhdGJvdCBTbGFjayBVc2VyIElkZW50aXR5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlU2xhY2tVc2VySWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tVc2VySWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVNsYWNrVXNlcklkZW50aXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBTbGFjayB3b3Jrc3BhY2UgYXV0aG9yaXphdGlvbiB3aXRoIEFXUyBDaGF0Ym90LCBhc3NvY2lhdGVkIHdpdGggYW4gQVdTIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVTbGFja1dvcmtzcGFjZUF1dGhvcml6YXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlU2xhY2tXb3Jrc3BhY2VBdXRob3JpemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVTbGFja1dvcmtzcGFjZUF1dGhvcml6YXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBBV1MgQ2hhdGJvdCBDaGltZSBXZWJob29rIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBBY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBBV1MgQ2hhdGJvdCBTbGFjayBDaGFubmVsIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBwdWJsaWMgU2xhY2sgY2hhbm5lbHMgaW4gdGhlIFNsYWNrIHdvcmtzcGFjZSBjb25uZWN0ZWQgdG8gdGhlIEFXUyBBY2NvdW50IG9uYm9hcmRlZCB3aXRoIEFXUyBDaGF0Ym90IHNlcnZpY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX09wZXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVTbGFja0NoYW5uZWxzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVNsYWNrQ2hhbm5lbHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBBV1MgQ2hhdGJvdCBTbGFjayBVc2VyIElkZW50aXRpZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlU2xhY2tVc2VySWRlbnRpdGllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVNsYWNrVXNlcklkZW50aXRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlU2xhY2tVc2VySWRlbnRpdGllcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIGF1dGhvcml6ZWQgU2xhY2sgd29ya3NwYWNlcyBjb25uZWN0ZWQgdG8gdGhlIEFXUyBBY2NvdW50IG9uYm9hcmRlZCB3aXRoIEFXUyBDaGF0Ym90IHNlcnZpY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlU2xhY2tXb3Jrc3BhY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlU2xhY2tXb3Jrc3BhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVNsYWNrV29ya3NwYWNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRpc2Fzc29jaWF0ZSBhIHJlc291cmNlIGZyb20gYSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rpc2Fzc29jaWF0ZUZyb21Db25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rpc2Fzc29jaWF0ZUZyb21Db25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEaXNhc3NvY2lhdGVGcm9tQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIEFXUyBDaGF0Ym90IGFjY291bnQgcHJlZmVyZW5jZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEFjY291bnRQcmVmZXJlbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBY2NvdW50UHJlZmVyZW5jZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEFjY291bnRQcmVmZXJlbmNlcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBhIGN1c3RvbSBhY3Rpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRDdXN0b21BY3Rpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0Q3VzdG9tQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRDdXN0b21BY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgYSBzaW5nbGUgQVdTIENoYXRib3QgTWljcm9zb2Z0IFRlYW1zIENoYW5uZWwgQ29uZmlndXJhdGlvbnMgaW4gYW4gQVdTIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZW5lcmF0ZSBPQXV0aCBwYXJhbWV0ZXJzIHRvIHJlcXVlc3QgTWljcm9zb2Z0IFRlYW1zIE9BdXRoIGNvZGUgdG8gYmUgdXNlZCBieSB0aGUgQVdTIENoYXRib3Qgc2VydmljZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfT3BlcmF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRNaWNyb3NvZnRUZWFtc09hdXRoUGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TWljcm9zb2Z0VGVhbXNPYXV0aFBhcmFtZXRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZW5lcmF0ZSBPQXV0aCBwYXJhbWV0ZXJzIHRvIHJlcXVlc3QgU2xhY2sgT0F1dGggY29kZSB0byBiZSB1c2VkIGJ5IHRoZSBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9PcGVyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFNsYWNrT2F1dGhQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRTbGFja09hdXRoUGFyYW1ldGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBc3NvY2lhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFzc29jaWF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFzc29jaWF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgY3VzdG9tIGFjdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RDdXN0b21BY3Rpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RDdXN0b21BY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0Q3VzdG9tQWN0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIEFXUyBDaGF0Ym90IE1pY3Jvc29mdCBUZWFtcyBDaGFubmVsIENvbmZpZ3VyYXRpb25zIGluIGFuIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBNaWNyb3NvZnQgVGVhbXMgY29ubmVjdGVkIHRvIHRoZSBBV1MgQWNjb3VudCBvbmJvYXJkZWQgd2l0aCBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNDb25maWd1cmVkVGVhbXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1pY3Jvc29mdFRlYW1zQ29uZmlndXJlZFRlYW1zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWljcm9zb2Z0VGVhbXNDb25maWd1cmVkVGVhbXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBBV1MgQ2hhdGJvdCBNaWNyb3NvZnQgVGVhbXMgVXNlciBJZGVudGl0aWVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdGllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWljcm9zb2Z0VGVhbXNVc2VySWRlbnRpdGllcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE1pY3Jvc29mdFRlYW1zVXNlcklkZW50aXRpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBMaXN0IGFsbCB0YWdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVdTIENoYXRib3QgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VGFnc0ZvclJlc291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RUYWdzRm9yUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUYWdzRm9yUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWRlZW0gcHJldmlvdXNseSBnZW5lcmF0ZWQgcGFyYW1ldGVycyB3aXRoIE1pY3Jvc29mdCBBUElzLCB0byBhY3F1aXJlIE9BdXRoIHRva2VucyB0byBiZSB1c2VkIGJ5IHRoZSBBV1MgQ2hhdGJvdCBzZXJ2aWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfT3BlcmF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZWRlZW1NaWNyb3NvZnRUZWFtc09hdXRoQ29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmVkZWVtTWljcm9zb2Z0VGVhbXNPYXV0aENvZGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWRlZW0gcHJldmlvdXNseSBnZW5lcmF0ZWQgcGFyYW1ldGVycyB3aXRoIFNsYWNrIEFQSSwgdG8gYWNxdWlyZSBPQXV0aCB0b2tlbnMgdG8gYmUgdXNlZCBieSB0aGUgQVdTIENoYXRib3Qgc2VydmljZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX09wZXJhdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVkZWVtU2xhY2tPYXV0aENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlZGVlbVNsYWNrT2F1dGhDb2RlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIHRhZ3Mgb24gQVdTIENoYXRib3QgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogVGFnZ2luZ1xuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UYWdSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9UYWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVGFnUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZW1vdmUgdGFncyBvbiBBV1MgQ2hhdGJvdCBDaGFubmVsIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBUYWdnaW5nXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VudGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVW50YWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVW50YWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBBV1MgQ2hhdGJvdCBhY2NvdW50IHByZWZlcmVuY2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWNjb3VudFByZWZlcmVuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFjY291bnRQcmVmZXJlbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQWNjb3VudFByZWZlcmVuY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIEFXUyBDaGF0Ym90IENoaW1lIFdlYmhvb2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2hhdGJvdC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBjdXN0b20gYWN0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUN1c3RvbUFjdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVDdXN0b21BY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUN1c3RvbUFjdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBBV1MgQ2hhdGJvdCBNaWNyb3NvZnQgVGVhbXMgQ2hhbm5lbCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBBV1MgQ2hhdGJvdCBTbGFjayBDaGFubmVsIENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NoYXRib3QvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWNjZXNzTGV2ZWxMaXN0OiBBY2Nlc3NMZXZlbExpc3QgPSB7XG4gICAgV3JpdGU6IFtcbiAgICAgICdBc3NvY2lhdGVUb0NvbmZpZ3VyYXRpb24nLFxuICAgICAgJ0NyZWF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24nLFxuICAgICAgJ0NyZWF0ZUN1c3RvbUFjdGlvbicsXG4gICAgICAnQ3JlYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicsXG4gICAgICAnQ3JlYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbicsXG4gICAgICAnRGVsZXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbicsXG4gICAgICAnRGVsZXRlQ3VzdG9tQWN0aW9uJyxcbiAgICAgICdEZWxldGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uJyxcbiAgICAgICdEZWxldGVNaWNyb3NvZnRUZWFtc0NvbmZpZ3VyZWRUZWFtJyxcbiAgICAgICdEZWxldGVNaWNyb3NvZnRUZWFtc1VzZXJJZGVudGl0eScsXG4gICAgICAnRGVsZXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbicsXG4gICAgICAnRGVsZXRlU2xhY2tVc2VySWRlbnRpdHknLFxuICAgICAgJ0RlbGV0ZVNsYWNrV29ya3NwYWNlQXV0aG9yaXphdGlvbicsXG4gICAgICAnRGlzYXNzb2NpYXRlRnJvbUNvbmZpZ3VyYXRpb24nLFxuICAgICAgJ1JlZGVlbU1pY3Jvc29mdFRlYW1zT2F1dGhDb2RlJyxcbiAgICAgICdSZWRlZW1TbGFja09hdXRoQ29kZScsXG4gICAgICAnVXBkYXRlQWNjb3VudFByZWZlcmVuY2VzJyxcbiAgICAgICdVcGRhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uJyxcbiAgICAgICdVcGRhdGVDdXN0b21BY3Rpb24nLFxuICAgICAgJ1VwZGF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24nLFxuICAgICAgJ1VwZGF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24nXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnRGVzY3JpYmVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9ucycsXG4gICAgICAnRGVzY3JpYmVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9ucycsXG4gICAgICAnRGVzY3JpYmVTbGFja0NoYW5uZWxzJyxcbiAgICAgICdEZXNjcmliZVNsYWNrVXNlcklkZW50aXRpZXMnLFxuICAgICAgJ0Rlc2NyaWJlU2xhY2tXb3Jrc3BhY2VzJyxcbiAgICAgICdHZXRBY2NvdW50UHJlZmVyZW5jZXMnLFxuICAgICAgJ0dldEN1c3RvbUFjdGlvbicsXG4gICAgICAnR2V0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbicsXG4gICAgICAnR2V0TWljcm9zb2Z0VGVhbXNPYXV0aFBhcmFtZXRlcnMnLFxuICAgICAgJ0dldFNsYWNrT2F1dGhQYXJhbWV0ZXJzJyxcbiAgICAgICdMaXN0QXNzb2NpYXRpb25zJyxcbiAgICAgICdMaXN0TWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbnMnLFxuICAgICAgJ0xpc3RNaWNyb3NvZnRUZWFtc0NvbmZpZ3VyZWRUZWFtcycsXG4gICAgICAnTGlzdE1pY3Jvc29mdFRlYW1zVXNlcklkZW50aXRpZXMnLFxuICAgICAgJ0xpc3RUYWdzRm9yUmVzb3VyY2UnXG4gICAgXSxcbiAgICBMaXN0OiBbXG4gICAgICAnTGlzdEN1c3RvbUFjdGlvbnMnXG4gICAgXSxcbiAgICBUYWdnaW5nOiBbXG4gICAgICAnVGFnUmVzb3VyY2UnLFxuICAgICAgJ1VudGFnUmVzb3VyY2UnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBDaGF0Ym90Q29uZmlndXJhdGlvbiB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9hZG1pbmd1aWRlL3doYXQtaXMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlndXJhdGlvblR5cGUgLSBJZGVudGlmaWVyIGZvciB0aGUgY29uZmlndXJhdGlvblR5cGUuXG4gICAqIEBwYXJhbSBjaGF0Ym90Q29uZmlndXJhdGlvbk5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2hhdGJvdENvbmZpZ3VyYXRpb25OYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uQ2hhdGJvdENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvblR5cGU6IHN0cmluZywgY2hhdGJvdENvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmNoYXRib3Q6OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmNoYXQtY29uZmlndXJhdGlvbi8keyBjb25maWd1cmF0aW9uVHlwZSB9LyR7IGNoYXRib3RDb25maWd1cmF0aW9uTmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgY3VzdG9tLWFjdGlvbiB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jaGF0Ym90L2xhdGVzdC9hZG1pbmd1aWRlL3doYXQtaXMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBhY3Rpb25OYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uQ3VzdG9tQWN0aW9uKGFjdGlvbk5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06Y2hhdGJvdDo6JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Y3VzdG9tLWFjdGlvbi8keyBhY3Rpb25OYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgdGFncyB0aGF0IGFyZSBwYXNzZWQgaW4gdGhlIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19jb25kaXRpb24ta2V5cy5odG1sI2NvbmRpdGlvbi1rZXlzLXJlcXVlc3R0YWdcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNoaW1lV2ViaG9va0NvbmZpZ3VyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZUN1c3RvbUFjdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlTWljcm9zb2Z0VGVhbXNDaGFubmVsQ29uZmlndXJhdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbigpXG4gICAqIC0gLnRvVGFnUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzUmVxdWVzdFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXF1ZXN0VGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHRhZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtcmVzb3VyY2V0YWdcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZVRvQ29uZmlndXJhdGlvbigpXG4gICAqIC0gLnRvRGVsZXRlQ2hpbWVXZWJob29rQ29uZmlndXJhdGlvbigpXG4gICAqIC0gLnRvRGVsZXRlQ3VzdG9tQWN0aW9uKClcbiAgICogLSAudG9EZWxldGVNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uKClcbiAgICogLSAudG9EZWxldGVTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uKClcbiAgICogLSAudG9EaXNhc3NvY2lhdGVGcm9tQ29uZmlndXJhdGlvbigpXG4gICAqIC0gLnRvR2V0Q3VzdG9tQWN0aW9uKClcbiAgICogLSAudG9HZXRNaWNyb3NvZnRUZWFtc0NoYW5uZWxDb25maWd1cmF0aW9uKClcbiAgICogLSAudG9VcGRhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uKClcbiAgICogLSAudG9VcGRhdGVDdXN0b21BY3Rpb24oKVxuICAgKiAtIC50b1VwZGF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24oKVxuICAgKiAtIC50b1VwZGF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24oKVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIENoYXRib3RDb25maWd1cmF0aW9uXG4gICAqIC0gY3VzdG9tLWFjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzUmVzb3VyY2VUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6UmVzb3VyY2VUYWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgdGFnIGtleXMgdGhhdCBhcmUgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfY29uZGl0aW9uLWtleXMuaHRtbCNjb25kaXRpb24ta2V5cy10YWdrZXlzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDaGltZVdlYmhvb2tDb25maWd1cmF0aW9uKClcbiAgICogLSAudG9DcmVhdGVDdXN0b21BY3Rpb24oKVxuICAgKiAtIC50b0NyZWF0ZU1pY3Jvc29mdFRlYW1zQ2hhbm5lbENvbmZpZ3VyYXRpb24oKVxuICAgKiAtIC50b0NyZWF0ZVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24oKVxuICAgKiAtIC50b1RhZ1Jlc291cmNlKClcbiAgICogLSAudG9VbnRhZ1Jlc291cmNlKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NUYWdLZXlzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6VGFnS2V5c2AsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbY2hhdGJvdF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzY2hhdGJvdC5odG1sKS5cbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogaWFtLlBvbGljeVN0YXRlbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -57,6 +57,14 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
57
57
|
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaboration.html
|
|
58
58
|
*/
|
|
59
59
|
toCreateCollaboration(): this;
|
|
60
|
+
/**
|
|
61
|
+
* Grants permission to create a change request in a collaboration
|
|
62
|
+
*
|
|
63
|
+
* Access Level: Write
|
|
64
|
+
*
|
|
65
|
+
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_CreateCollaborationChangeRequest.html
|
|
66
|
+
*/
|
|
67
|
+
toCreateCollaborationChangeRequest(): this;
|
|
60
68
|
/**
|
|
61
69
|
* Grants permission to link a Cleanrooms ML configured audience model with a collaboration by creating a new association
|
|
62
70
|
*
|
|
@@ -310,6 +318,14 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
310
318
|
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaborationAnalysisTemplate.html
|
|
311
319
|
*/
|
|
312
320
|
toGetCollaborationAnalysisTemplate(): this;
|
|
321
|
+
/**
|
|
322
|
+
* Grants permission to get a change request in a collaboration
|
|
323
|
+
*
|
|
324
|
+
* Access Level: Read
|
|
325
|
+
*
|
|
326
|
+
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_GetCollaborationChangeRequest.html
|
|
327
|
+
*/
|
|
328
|
+
toGetCollaborationChangeRequest(): this;
|
|
313
329
|
/**
|
|
314
330
|
* Grants permission to view details for a configured audience model association within a collaboration
|
|
315
331
|
*
|
|
@@ -460,6 +476,14 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
460
476
|
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationAnalysisTemplates.html
|
|
461
477
|
*/
|
|
462
478
|
toListCollaborationAnalysisTemplates(): this;
|
|
479
|
+
/**
|
|
480
|
+
* Grants permission to list change requests in a collaboration
|
|
481
|
+
*
|
|
482
|
+
* Access Level: List
|
|
483
|
+
*
|
|
484
|
+
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_ListCollaborationChangeRequests.html
|
|
485
|
+
*/
|
|
486
|
+
toListCollaborationChangeRequests(): this;
|
|
463
487
|
/**
|
|
464
488
|
* Grants permission to list available configured audience model association within a collaboration
|
|
465
489
|
*
|
|
@@ -718,9 +742,30 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
718
742
|
*
|
|
719
743
|
* Access Level: Write
|
|
720
744
|
*
|
|
745
|
+
* Dependent actions:
|
|
746
|
+
* - athena:GetTableMetadata
|
|
747
|
+
* - cleanrooms:UpdateConfiguredTableAllowedColumns
|
|
748
|
+
* - cleanrooms:UpdateConfiguredTableReference
|
|
749
|
+
* - glue:BatchGetPartition
|
|
750
|
+
* - glue:GetDatabase
|
|
751
|
+
* - glue:GetDatabases
|
|
752
|
+
* - glue:GetPartition
|
|
753
|
+
* - glue:GetPartitions
|
|
754
|
+
* - glue:GetSchemaVersion
|
|
755
|
+
* - glue:GetTable
|
|
756
|
+
* - glue:GetTables
|
|
757
|
+
*
|
|
721
758
|
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTable.html
|
|
722
759
|
*/
|
|
723
760
|
toUpdateConfiguredTable(): this;
|
|
761
|
+
/**
|
|
762
|
+
* Grants permission to update the allowed columns of an existing configured table
|
|
763
|
+
*
|
|
764
|
+
* Access Level: Write
|
|
765
|
+
*
|
|
766
|
+
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTable.html
|
|
767
|
+
*/
|
|
768
|
+
toUpdateConfiguredTableAllowedColumns(): this;
|
|
724
769
|
/**
|
|
725
770
|
* Grants permission to update analysis rules for a configured table
|
|
726
771
|
*
|
|
@@ -748,6 +793,14 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
748
793
|
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTableAssociationAnalysisRule.html
|
|
749
794
|
*/
|
|
750
795
|
toUpdateConfiguredTableAssociationAnalysisRule(): this;
|
|
796
|
+
/**
|
|
797
|
+
* Grants permission to update the table reference of an existing configured table
|
|
798
|
+
*
|
|
799
|
+
* Access Level: Write
|
|
800
|
+
*
|
|
801
|
+
* https://docs.aws.amazon.com/clean-rooms/latest/apireference/API_UpdateConfiguredTable.html
|
|
802
|
+
*/
|
|
803
|
+
toUpdateConfiguredTableReference(): this;
|
|
751
804
|
/**
|
|
752
805
|
* Grants permission to update an id mapping table
|
|
753
806
|
*
|
|
@@ -953,6 +1006,7 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
953
1006
|
* Applies to actions:
|
|
954
1007
|
* - .toCreateAnalysisTemplate()
|
|
955
1008
|
* - .toCreateCollaboration()
|
|
1009
|
+
* - .toCreateCollaborationChangeRequest()
|
|
956
1010
|
* - .toCreateConfiguredAudienceModelAssociation()
|
|
957
1011
|
* - .toCreateConfiguredTable()
|
|
958
1012
|
* - .toCreateConfiguredTableAssociation()
|
|
@@ -976,6 +1030,7 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
976
1030
|
* Applies to actions:
|
|
977
1031
|
* - .toCreateAnalysisTemplate()
|
|
978
1032
|
* - .toCreateCollaboration()
|
|
1033
|
+
* - .toCreateCollaborationChangeRequest()
|
|
979
1034
|
* - .toCreateConfiguredAudienceModelAssociation()
|
|
980
1035
|
* - .toCreateConfiguredTable()
|
|
981
1036
|
* - .toCreateConfiguredTableAssociation()
|
|
@@ -1009,6 +1064,7 @@ export declare class Cleanrooms extends PolicyStatement {
|
|
|
1009
1064
|
* Applies to actions:
|
|
1010
1065
|
* - .toCreateAnalysisTemplate()
|
|
1011
1066
|
* - .toCreateCollaboration()
|
|
1067
|
+
* - .toCreateCollaborationChangeRequest()
|
|
1012
1068
|
* - .toCreateConfiguredAudienceModelAssociation()
|
|
1013
1069
|
* - .toCreateConfiguredTable()
|
|
1014
1070
|
* - .toCreateConfiguredTableAssociation()
|