terraconstructs 0.2.4 → 0.2.6
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 +3099 -2917
- package/CLAUDE.md +6 -6
- package/README.md +1 -1
- package/lib/asset-staging.js +3 -3
- package/lib/aws/arn.js +5 -5
- package/lib/aws/aws-asset-manager.js +9 -9
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +19 -4
- package/lib/aws/aws-stack.js +43 -18
- package/lib/aws/aws-tags.d.ts +1 -1
- package/lib/aws/aws-tags.js +5 -5
- package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +2 -2
- package/lib/aws/cloudwatch/actions/sns.js +1 -1
- package/lib/aws/cloudwatch/actions/ssm.js +2 -2
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.d.ts +1 -1
- package/lib/aws/cloudwatch/alarm.js +10 -10
- package/lib/aws/cloudwatch/composite-alarm.d.ts +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +7 -7
- package/lib/aws/cloudwatch/dashboard.d.ts +1 -1
- package/lib/aws/cloudwatch/dashboard.js +7 -7
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.d.ts +1 -1
- package/lib/aws/cloudwatch/log-group.js +7 -7
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.d.ts +1 -1
- package/lib/aws/cloudwatch/log-stream.js +3 -3
- package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +3 -3
- package/lib/aws/cloudwatch/metric.js +6 -6
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.d.ts +1 -1
- package/lib/aws/cloudwatch/policy.js +3 -3
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +1 -1
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +1 -1
- package/lib/aws/cloudwatch/private/env-tokens.js +6 -6
- package/lib/aws/cloudwatch/query-definition.d.ts +1 -1
- package/lib/aws/cloudwatch/query-definition.js +4 -4
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +6 -6
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/access-log.d.ts +1 -1
- package/lib/aws/compute/access-log.js +5 -5
- package/lib/aws/compute/activity.d.ts +1 -1
- package/lib/aws/compute/activity.js +5 -5
- package/lib/aws/compute/alb/application-listener-action.d.ts +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +5 -5
- package/lib/aws/compute/alb/application-listener-certificate.js +3 -3
- package/lib/aws/compute/alb/application-listener-rule.js +9 -9
- package/lib/aws/compute/alb/application-listener.js +5 -5
- package/lib/aws/compute/alb/application-load-balancer.js +8 -8
- package/lib/aws/compute/alb/application-target-group.js +7 -7
- package/lib/aws/compute/alb/conditions.js +3 -3
- package/lib/aws/compute/alb/trust-store-revocation.js +3 -3
- package/lib/aws/compute/alb/trust-store.js +7 -7
- package/lib/aws/compute/api-definition.js +9 -9
- package/lib/aws/compute/api-key.js +6 -6
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +6 -6
- package/lib/aws/compute/authorizer.js +1 -1
- package/lib/aws/compute/authorizers/identity-source.js +1 -1
- package/lib/aws/compute/authorizers/lambda.d.ts +1 -1
- package/lib/aws/compute/authorizers/lambda.js +6 -6
- package/lib/aws/compute/base-path-mapping.js +5 -5
- package/lib/aws/compute/base-scalable-attribute.js +1 -1
- package/lib/aws/compute/bastion-host.js +4 -4
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +3 -3
- package/lib/aws/compute/client-vpn-endpoint.d.ts +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +9 -9
- package/lib/aws/compute/client-vpn-route.d.ts +1 -1
- package/lib/aws/compute/client-vpn-route.js +4 -4
- package/lib/aws/compute/code.d.ts +3 -3
- package/lib/aws/compute/code.js +15 -15
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.js +1 -1
- package/lib/aws/compute/deployment.js +5 -5
- package/lib/aws/compute/domain-name.js +5 -5
- package/lib/aws/compute/event-invoke-config.d.ts +1 -1
- package/lib/aws/compute/event-invoke-config.js +3 -3
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +7 -7
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +5 -5
- package/lib/aws/compute/fields.d.ts +1 -1
- package/lib/aws/compute/fields.js +12 -12
- package/lib/aws/compute/function-alias.d.ts +1 -1
- package/lib/aws/compute/function-alias.js +3 -3
- package/lib/aws/compute/function-base.d.ts +1 -1
- package/lib/aws/compute/function-base.js +10 -9
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs/bundling.js +6 -6
- package/lib/aws/compute/function-nodejs/function.js +4 -4
- package/lib/aws/compute/function-url.d.ts +1 -1
- package/lib/aws/compute/function-url.js +3 -3
- package/lib/aws/compute/function-vpc-config.generated.d.ts +5 -5
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +2 -2
- package/lib/aws/compute/function.js +9 -9
- package/lib/aws/compute/gateway-response.d.ts +1 -1
- package/lib/aws/compute/gateway-response.js +4 -4
- package/lib/aws/compute/handler.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.d.ts +1 -1
- package/lib/aws/compute/instance.js +9 -9
- package/lib/aws/compute/integration.js +4 -4
- package/lib/aws/compute/integrations/aws.js +3 -3
- package/lib/aws/compute/integrations/http.js +1 -1
- package/lib/aws/compute/integrations/lambda.js +5 -5
- package/lib/aws/compute/integrations/mock.js +1 -1
- package/lib/aws/compute/integrations/stepfunctions.js +4 -4
- package/lib/aws/compute/ip-addresses.d.ts +1 -1
- package/lib/aws/compute/ip-addresses.js +10 -10
- package/lib/aws/compute/ipam.d.ts +1 -1
- package/lib/aws/compute/ipam.js +5 -5
- package/lib/aws/compute/key-pair.d.ts +1 -1
- package/lib/aws/compute/key-pair.js +6 -6
- package/lib/aws/compute/lambda-api.js +1 -1
- package/lib/aws/compute/launch-template.d.ts +1 -1
- package/lib/aws/compute/launch-template.js +12 -12
- package/lib/aws/compute/lb-shared/base-listener.js +9 -9
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +2 -2
- package/lib/aws/compute/lb-shared/base-load-balancer.js +12 -12
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.js +15 -15
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +34 -34
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +11 -6
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/listener-action.d.ts +1 -1
- package/lib/aws/compute/lb-shared/listener-action.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-shared/util.js +5 -5
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.d.ts +1 -1
- package/lib/aws/compute/load-balancer.js +8 -8
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +10 -10
- package/lib/aws/compute/method.js +6 -6
- package/lib/aws/compute/model.js +5 -5
- package/lib/aws/compute/nat.js +10 -10
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.d.ts +1 -1
- package/lib/aws/compute/network-acl.js +5 -5
- package/lib/aws/compute/nlb/network-listener-action.d.ts +1 -1
- package/lib/aws/compute/nlb/network-listener-action.js +2 -2
- package/lib/aws/compute/nlb/network-listener-certificate.js +2 -2
- package/lib/aws/compute/nlb/network-listener.js +5 -5
- package/lib/aws/compute/nlb/network-load-balancer.js +6 -6
- package/lib/aws/compute/nlb/network-target-group.js +4 -4
- package/lib/aws/compute/peer.js +7 -7
- package/lib/aws/compute/placement-group.d.ts +1 -1
- package/lib/aws/compute/placement-group.js +3 -3
- package/lib/aws/compute/port.js +5 -5
- package/lib/aws/compute/prefix-list.d.ts +1 -1
- package/lib/aws/compute/prefix-list.js +5 -5
- package/lib/aws/compute/private/context-stub.js +7 -7
- package/lib/aws/compute/private/ebs-util.d.ts +1 -1
- package/lib/aws/compute/private/ebs-util.js +3 -3
- package/lib/aws/compute/private/json-path.d.ts +1 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/requestvalidator.js +3 -3
- package/lib/aws/compute/resource.js +5 -5
- package/lib/aws/compute/restapi.d.ts +1 -1
- package/lib/aws/compute/restapi.js +11 -11
- package/lib/aws/compute/route.d.ts +1 -1
- package/lib/aws/compute/route.js +12 -12
- package/lib/aws/compute/runtime.js +3 -3
- package/lib/aws/compute/scalable-target.d.ts +1 -1
- package/lib/aws/compute/scalable-target.js +3 -3
- package/lib/aws/compute/schedule.js +4 -4
- package/lib/aws/compute/security-group.js +12 -12
- package/lib/aws/compute/stage.d.ts +1 -1
- package/lib/aws/compute/stage.js +6 -6
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.d.ts +2 -2
- package/lib/aws/compute/state-machine.js +8 -8
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +5 -5
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +4 -4
- package/lib/aws/compute/states/fail.js +4 -4
- package/lib/aws/compute/states/map-base.js +4 -4
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +4 -4
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.js +5 -5
- package/lib/aws/compute/step-scaling-policy.js +7 -7
- package/lib/aws/compute/stepfunctions-api.js +2 -2
- package/lib/aws/compute/subnet-v2.d.ts +1 -1
- package/lib/aws/compute/subnet-v2.js +5 -5
- package/lib/aws/compute/subnet.js +4 -4
- package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +5 -5
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/usage-plan.js +5 -5
- package/lib/aws/compute/user-data.d.ts +2 -2
- package/lib/aws/compute/user-data.js +10 -10
- package/lib/aws/compute/volume.d.ts +1 -1
- package/lib/aws/compute/volume.js +7 -7
- package/lib/aws/compute/vpc-endpoint-service.js +3 -3
- package/lib/aws/compute/vpc-endpoint.d.ts +1 -1
- package/lib/aws/compute/vpc-endpoint.js +13 -13
- package/lib/aws/compute/vpc-flow-logs.d.ts +1 -1
- package/lib/aws/compute/vpc-flow-logs.js +8 -8
- package/lib/aws/compute/vpc-link.js +5 -5
- package/lib/aws/compute/vpc-v2-base.js +6 -6
- package/lib/aws/compute/vpc-v2.d.ts +2 -2
- package/lib/aws/compute/vpc-v2.js +4 -4
- package/lib/aws/compute/vpc.d.ts +1 -1
- package/lib/aws/compute/vpc.js +24 -22
- package/lib/aws/compute/vpn.js +8 -8
- package/lib/aws/context-provider.js +4 -4
- package/lib/aws/edge/certificate.d.ts +1 -1
- package/lib/aws/edge/certificate.js +6 -6
- package/lib/aws/edge/distribution.d.ts +1 -1
- package/lib/aws/edge/distribution.js +9 -9
- package/lib/aws/edge/dns-alias-record-targets.d.ts +1 -1
- package/lib/aws/edge/dns-alias-record-targets.js +7 -7
- package/lib/aws/edge/dns-record.d.ts +1 -1
- package/lib/aws/edge/dns-record.js +19 -19
- package/lib/aws/edge/dns-zone.d.ts +2 -2
- package/lib/aws/edge/dns-zone.js +5 -5
- package/lib/aws/edge/function.d.ts +1 -1
- package/lib/aws/edge/function.js +4 -4
- package/lib/aws/edge/key-value-store.d.ts +1 -1
- package/lib/aws/edge/key-value-store.js +6 -6
- package/lib/aws/edge/origin.d.ts +1 -1
- package/lib/aws/edge/origin.js +6 -6
- package/lib/aws/edge/response-headers-policy.d.ts +1 -1
- package/lib/aws/edge/response-headers-policy.js +6 -6
- package/lib/aws/encryption/alias.d.ts +1 -1
- package/lib/aws/encryption/alias.js +8 -8
- package/lib/aws/encryption/key.d.ts +1 -1
- package/lib/aws/encryption/key.js +6 -6
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +3 -3
- package/lib/aws/iam/group.js +5 -5
- package/lib/aws/iam/instance-profile.d.ts +1 -1
- package/lib/aws/iam/instance-profile.js +3 -3
- package/lib/aws/iam/managed-policy.d.ts +1 -1
- package/lib/aws/iam/managed-policy.js +3 -3
- package/lib/aws/iam/oidc-provider.d.ts +1 -1
- package/lib/aws/iam/oidc-provider.js +3 -3
- package/lib/aws/iam/policy-document-config.generated.d.ts +9 -9
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.d.ts +1 -1
- package/lib/aws/iam/policy-document.js +5 -5
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.d.ts +1 -1
- package/lib/aws/iam/policy-statement.js +8 -8
- package/lib/aws/iam/policy.js +3 -3
- package/lib/aws/iam/principals.js +25 -25
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +1 -1
- package/lib/aws/iam/private/postprocess-policy-document.js +1 -1
- package/lib/aws/iam/private/util.d.ts +1 -1
- package/lib/aws/iam/private/util.js +5 -5
- package/lib/aws/iam/role.d.ts +1 -1
- package/lib/aws/iam/role.js +6 -6
- package/lib/aws/iam/saml-provider.d.ts +1 -1
- package/lib/aws/iam/saml-provider.js +6 -6
- package/lib/aws/iam/unknown-principal.js +4 -4
- package/lib/aws/iam/user.js +3 -3
- package/lib/aws/network/network.d.ts +1 -1
- package/lib/aws/network/network.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +12 -12
- package/lib/aws/network/subnet-group.d.ts +1 -1
- package/lib/aws/network/subnet-group.js +5 -5
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +6 -6
- package/lib/aws/notify/archive.d.ts +1 -1
- package/lib/aws/notify/archive.js +3 -3
- package/lib/aws/notify/connection.d.ts +1 -1
- package/lib/aws/notify/connection.js +5 -5
- package/lib/aws/notify/event-bus.d.ts +1 -1
- package/lib/aws/notify/event-bus.js +10 -10
- package/lib/aws/notify/event-pattern.d.ts +1 -1
- package/lib/aws/notify/event-pattern.js +5 -5
- package/lib/aws/notify/input.d.ts +1 -1
- package/lib/aws/notify/input.js +12 -12
- package/lib/aws/notify/kinesis-stream.d.ts +1 -1
- package/lib/aws/notify/kinesis-stream.js +7 -7
- package/lib/aws/notify/notification-rule.js +8 -8
- package/lib/aws/notify/policy.js +3 -3
- package/lib/aws/notify/queue-base.js +1 -1
- package/lib/aws/notify/queue-policy.js +3 -3
- package/lib/aws/notify/queue.d.ts +1 -1
- package/lib/aws/notify/queue.js +8 -8
- package/lib/aws/notify/resource-policy.js +3 -3
- package/lib/aws/notify/rule.d.ts +1 -1
- package/lib/aws/notify/rule.js +6 -6
- package/lib/aws/notify/schedule.js +4 -4
- package/lib/aws/notify/sns-grants.generated.js +1 -1
- package/lib/aws/notify/sqs-grants.generated.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +6 -6
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +4 -4
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +4 -4
- package/lib/aws/notify/subscriptions/url.js +4 -4
- package/lib/aws/notify/target.d.ts +1 -1
- package/lib/aws/notify/target.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.js +3 -3
- package/lib/aws/notify/topic-base.js +4 -4
- package/lib/aws/notify/topic.js +7 -7
- package/lib/aws/provider-config.generated.d.ts +42 -36
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/region-lookup.js +4 -4
- package/lib/aws/storage/assets/image-asset.js +8 -8
- package/lib/aws/storage/assets/s3.js +1 -1
- package/lib/aws/storage/auth-token.js +2 -2
- package/lib/aws/storage/billing.js +1 -1
- package/lib/aws/storage/bucket-notifications.d.ts +1 -1
- package/lib/aws/storage/bucket-notifications.js +8 -8
- package/lib/aws/storage/bucket-policy.d.ts +1 -1
- package/lib/aws/storage/bucket-policy.js +3 -3
- package/lib/aws/storage/bucket-source.d.ts +1 -1
- package/lib/aws/storage/bucket-source.js +7 -7
- package/lib/aws/storage/bucket.d.ts +1 -1
- package/lib/aws/storage/bucket.js +8 -8
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/cors-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/ecr-repository.js +11 -11
- package/lib/aws/storage/encryption.d.ts +1 -1
- package/lib/aws/storage/encryption.js +5 -5
- package/lib/aws/storage/lifecycle-config.generated.d.ts +9 -9
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +2 -2
- package/lib/aws/storage/notification-targets/queue.js +4 -4
- package/lib/aws/storage/origin-access-identity.d.ts +2 -2
- package/lib/aws/storage/origin-access-identity.js +3 -3
- package/lib/aws/storage/parameter-util.js +5 -5
- package/lib/aws/storage/parameter.d.ts +2 -2
- package/lib/aws/storage/parameter.js +16 -16
- package/lib/aws/storage/stream-grants.js +1 -1
- package/lib/aws/storage/table-grants.js +1 -1
- package/lib/aws/storage/table.d.ts +1 -1
- package/lib/aws/storage/table.js +10 -10
- package/lib/aws/storage/website-config.generated.d.ts +8 -8
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/bundling.js +5 -5
- package/lib/construct-base.d.ts +1 -1
- package/lib/construct-base.js +10 -10
- package/lib/duration.js +9 -9
- package/lib/errors.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/fs/ignore.js +4 -4
- package/lib/fs/index.js +1 -1
- package/lib/private/terraform-dependables-aspect.d.ts +1 -1
- package/lib/private/terraform-dependables-aspect.js +6 -6
- package/lib/private/unique-resource-name.js +3 -3
- package/lib/size.js +6 -6
- package/lib/stack-base.d.ts +2 -2
- package/lib/stack-base.js +16 -16
- package/lib/terra-func.d.ts +1 -1
- package/lib/terra-func.js +18 -18
- package/lib/time-zone.js +1 -1
- package/lib/token.js +5 -5
- package/package.json +17 -17
- package/setup.js +2 -2
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.FlowLog = exports.LogFormat = exports.FlowLogMaxAggregationInterval = exports.FlowLogDestination = exports.FlowLogFileFormat = exports.FlowLogResourceType = exports.FlowLogDestinationType = exports.FlowLogTrafficType = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
// https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/vpc-flow-logs.ts
|
|
7
|
-
const provider_aws_1 = require("@
|
|
8
|
-
const
|
|
7
|
+
const provider_aws_1 = require("@cdktn/provider-aws");
|
|
8
|
+
const cdktn_1 = require("cdktn");
|
|
9
9
|
const aws_construct_1 = require("../aws-construct");
|
|
10
10
|
const aws_stack_1 = require("../aws-stack");
|
|
11
11
|
// TODO: Use TagManager and tag-aspect instead
|
|
@@ -106,7 +106,7 @@ class FlowLogResourceType {
|
|
|
106
106
|
}
|
|
107
107
|
exports.FlowLogResourceType = FlowLogResourceType;
|
|
108
108
|
_a = JSII_RTTI_SYMBOL_1;
|
|
109
|
-
FlowLogResourceType[_a] = { fqn: "terraconstructs.aws.compute.FlowLogResourceType", version: "0.2.
|
|
109
|
+
FlowLogResourceType[_a] = { fqn: "terraconstructs.aws.compute.FlowLogResourceType", version: "0.2.6" };
|
|
110
110
|
/**
|
|
111
111
|
* The file format for flow logs written to an S3 bucket destination
|
|
112
112
|
*/
|
|
@@ -167,7 +167,7 @@ class FlowLogDestination {
|
|
|
167
167
|
}
|
|
168
168
|
exports.FlowLogDestination = FlowLogDestination;
|
|
169
169
|
_b = JSII_RTTI_SYMBOL_1;
|
|
170
|
-
FlowLogDestination[_b] = { fqn: "terraconstructs.aws.compute.FlowLogDestination", version: "0.2.
|
|
170
|
+
FlowLogDestination[_b] = { fqn: "terraconstructs.aws.compute.FlowLogDestination", version: "0.2.6" };
|
|
171
171
|
/**
|
|
172
172
|
*
|
|
173
173
|
*/
|
|
@@ -373,7 +373,7 @@ class LogFormat {
|
|
|
373
373
|
}
|
|
374
374
|
exports.LogFormat = LogFormat;
|
|
375
375
|
_c = JSII_RTTI_SYMBOL_1;
|
|
376
|
-
LogFormat[_c] = { fqn: "terraconstructs.aws.compute.LogFormat", version: "0.2.
|
|
376
|
+
LogFormat[_c] = { fqn: "terraconstructs.aws.compute.LogFormat", version: "0.2.6" };
|
|
377
377
|
/**
|
|
378
378
|
* The VPC Flow Logs version.
|
|
379
379
|
*/
|
|
@@ -675,7 +675,7 @@ class FlowLog extends FlowLogBase {
|
|
|
675
675
|
});
|
|
676
676
|
// VPC service implicitly tries to create a bucket policy when adding a vpc flow log.
|
|
677
677
|
// To avoid the race condition, we add an explicit dependency here.
|
|
678
|
-
if (this.bucket?.policy?.node.defaultChild instanceof
|
|
678
|
+
if (this.bucket?.policy?.node.defaultChild instanceof cdktn_1.TerraformResource) {
|
|
679
679
|
this.resource.node.addDependency(this.bucket?.policy.node.defaultChild);
|
|
680
680
|
}
|
|
681
681
|
// TODO: we must remove a flow log configuration first before deleting objects.
|
|
@@ -691,5 +691,5 @@ class FlowLog extends FlowLogBase {
|
|
|
691
691
|
}
|
|
692
692
|
exports.FlowLog = FlowLog;
|
|
693
693
|
_d = JSII_RTTI_SYMBOL_1;
|
|
694
|
-
FlowLog[_d] = { fqn: "terraconstructs.aws.compute.FlowLog", version: "0.2.
|
|
695
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWZsb3ctbG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS92cGMtZmxvdy1sb2dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUdBQWlHO0FBRWpHLHNEQUE4QztBQUM5QyxpQ0FBMEM7QUFHMUMsb0RBQW1FO0FBQ25FLDRDQUF3QztBQUN4Qyw4Q0FBOEM7QUFDOUMsMENBQW1DO0FBQ25DLHdDQUF3QztBQUN4QyxzQ0FBc0M7QUFDdEMsOEJBQThCO0FBQzlCLHNDQUFzQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFXLE1BQU0sQ0FBQztBQTZCaEM7O0dBRUc7QUFDSCxJQUFZLGtCQWVYO0FBZkQsV0FBWSxrQkFBa0I7SUFDNUI7O09BRUc7SUFDSCx1Q0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHVDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQWU3QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxzQkFlWDtBQWZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsK0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxtQ0FBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCx5RUFBK0MsQ0FBQTtBQUNqRCxDQUFDLEVBZlcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFlakM7QUFFRDs7R0FFRztBQUNILE1BQXNCLG1CQUFtQjtJQUN2Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBZTtRQUN0QyxPQUFPO1lBQ0wsWUFBWSxFQUFFLFFBQVE7WUFDdEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVM7UUFDN0IsT0FBTztZQUNMLFlBQVksRUFBRSxLQUFLO1lBQ25C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UUFDbEQsd0RBQXdEO1FBQ3hELHVDQUF1QztRQUN2Qyx3QkFBd0I7UUFDeEIsb0RBQW9EO1FBQ3BELGdEQUFnRDtRQUNoRCxJQUFJO1FBRUosSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztBQXZLSCwwQkF3S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi92cGMtZmxvdy1sb2dzLnRzXG5cbmltcG9ydCB7IGZsb3dMb2cgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVzb3VyY2UgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJU3VibmV0LCBJVnBjIH0gZnJvbSBcIi4vdnBjXCI7XG5pbXBvcnQgeyBJQXdzQ29uc3RydWN0LCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuLy8gVE9ETzogVXNlIFRhZ01hbmFnZXIgYW5kIHRhZy1hc3BlY3QgaW5zdGVhZFxuaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi9hd3MtdGFnc1wiO1xuLy8gaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi90YWctYXNwZWN0XCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCIuLi9jbG91ZHdhdGNoXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0ICogYXMgc3RvcmFnZSBmcm9tIFwiLi4vc3RvcmFnZVwiO1xuXG4vKipcbiAqIE5hbWUgdGFnIGNvbnN0YW50XG4gKi9cbmNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSBcIk5hbWVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dMb2dPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBJZCBvZiB0aGUgVlBDIEZsb3cgTG9nXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZsb3dMb2dJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgRmxvd0xvZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElGbG93TG9nIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGZsb3dMb2dPdXRwdXRzOiBGbG93TG9nT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIElkIG9mIHRoZSBWUEMgRmxvdyBMb2dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxvd0xvZ0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgVlBDIHRyYWZmaWMgdG8gbG9nXG4gKi9cbmV4cG9ydCBlbnVtIEZsb3dMb2dUcmFmZmljVHlwZSB7XG4gIC8qKlxuICAgKiBPbmx5IGxvZyBhY2NlcHRzXG4gICAqL1xuICBBQ0NFUFQgPSBcIkFDQ0VQVFwiLFxuXG4gIC8qKlxuICAgKiBMb2cgYWxsIHJlcXVlc3RzXG4gICAqL1xuICBBTEwgPSBcIkFMTFwiLFxuXG4gIC8qKlxuICAgKiBPbmx5IGxvZyByZWplY3RzXG4gICAqL1xuICBSRUpFQ1QgPSBcIlJFSkVDVFwiLFxufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgZGVzdGluYXRpb24gdHlwZXMgZm9yIEZsb3cgTG9nc1xuICovXG5leHBvcnQgZW51bSBGbG93TG9nRGVzdGluYXRpb25UeXBlIHtcbiAgLyoqXG4gICAqIFNlbmQgZmxvdyBsb2dzIHRvIENsb3VkV2F0Y2ggTG9ncyBHcm91cFxuICAgKi9cbiAgQ0xPVURfV0FUQ0hfTE9HUyA9IFwiY2xvdWQtd2F0Y2gtbG9nc1wiLFxuXG4gIC8qKlxuICAgKiBTZW5kIGZsb3cgbG9ncyB0byBTMyBCdWNrZXRcbiAgICovXG4gIFMzID0gXCJzM1wiLFxuXG4gIC8qKlxuICAgKiBTZW5kIGZsb3cgbG9ncyB0byBLaW5lc2lzIERhdGEgRmlyZWhvc2VcbiAgICovXG4gIEtJTkVTSVNfREFUQV9GSVJFSE9TRSA9IFwia2luZXNpcy1kYXRhLWZpcmVob3NlXCIsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UgdG8gY3JlYXRlIHRoZSBmbG93IGxvZyBmb3JcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb3dMb2dSZXNvdXJjZVR5cGUge1xuICAvKipcbiAgICogVGhlIHN1Ym5ldCB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdWJuZXQoc3VibmV0OiBJU3VibmV0KTogRmxvd0xvZ1Jlc291cmNlVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc291cmNlVHlwZTogXCJTdWJuZXRcIixcbiAgICAgIHJlc291cmNlSWQ6IHN1Ym5ldC5zdWJuZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgdG8gYXR0YWNoIHRoZSBGbG93IExvZyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVnBjKHZwYzogSVZwYyk6IEZsb3dMb2dSZXNvdXJjZVR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICByZXNvdXJjZVR5cGU6IFwiVlBDXCIsXG4gICAgICByZXNvdXJjZUlkOiB2cGMudnBjSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgTmV0d29yayBJbnRlcmZhY2UgdG8gYXR0YWNoIHRoZSBGbG93IExvZyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTmV0d29ya0ludGVyZmFjZUlkKGlkOiBzdHJpbmcpOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIFRyYW5zaXQgR2F0ZXdheSB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UcmFuc2l0R2F0ZXdheUlkKGlkOiBzdHJpbmcpOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIlRyYW5zaXRHYXRld2F5XCIsXG4gICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBUcmFuc2l0IEdhdGV3YXkgQXR0YWNobWVudCB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRJZChcbiAgICBpZDogc3RyaW5nLFxuICApOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIlRyYW5zaXRHYXRld2F5QXR0YWNobWVudFwiLFxuICAgICAgcmVzb3VyY2VJZDogaWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByZXNvdXJjZSB0byBhdHRhY2ggYSBmbG93IGxvZyB0by5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElkIG9mIHRoZSByZXNvdXJjZSB0aGF0IHRoZSBmbG93IGxvZyBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBmaWxlIGZvcm1hdCBmb3IgZmxvdyBsb2dzIHdyaXR0ZW4gdG8gYW4gUzMgYnVja2V0IGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEZsb3dMb2dGaWxlRm9ybWF0IHtcbiAgLyoqXG4gICAqIEZpbGUgd2lsbCBiZSB3cml0dGVuIGFzIHBsYWluIHRleHRcbiAgICpcbiAgICogVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgKi9cbiAgUExBSU5fVEVYVCA9IFwicGxhaW4tdGV4dFwiLFxuXG4gIC8qKlxuICAgKiBGaWxlIHdpbGwgYmUgd3JpdHRlbiBpbiBwYXJxdWV0IGZvcm1hdFxuICAgKi9cbiAgUEFSUVVFVCA9IFwicGFycXVldFwiLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHdyaXRpbmcgbG9ncyB0byBhIFMzIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNEZXN0aW5hdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVXNlIEhpdmUtY29tcGF0aWJsZSBwcmVmaXhlcyBmb3IgZmxvdyBsb2dzXG4gICAqIHN0b3JlZCBpbiBBbWF6b24gUzNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGhpdmVDb21wYXRpYmxlUGFydGl0aW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXQgZm9yIHRoZSBmbG93IGxvZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBGbG93TG9nRmlsZUZvcm1hdC5QTEFJTl9URVhUXG4gICAqL1xuICByZWFkb25seSBmaWxlRm9ybWF0PzogRmxvd0xvZ0ZpbGVGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIFBhcnRpdGlvbiB0aGUgZmxvdyBsb2cgcGVyIGhvdXJcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBlckhvdXJQYXJ0aXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBkZXN0aW5hdGlvbiB0eXBlIGZvciB0aGUgZmxvdyBsb2dcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb3dMb2dEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgQ2xvdWRXYXRjaCBsb2dzIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b0Nsb3VkV2F0Y2hMb2dzKFxuICAgIGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXAsXG4gICAgaWFtUm9sZT86IGlhbS5JUm9sZSxcbiAgKTogRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENsb3VkV2F0Y2hMb2dzRGVzdGluYXRpb24oe1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLkNMT1VEX1dBVENIX0xPR1MsXG4gICAgICBsb2dHcm91cCxcbiAgICAgIGlhbVJvbGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIFMzIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gYnVja2V0IG9wdGlvbmFsIHMzIGJ1Y2tldCB0byBwdWJsaXNoIGxvZ3MgdG8uIElmIG9uZSBpcyBub3QgcHJvdmlkZWRcbiAgICogYSBkZWZhdWx0IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIGtleVByZWZpeCBvcHRpb25hbCBwcmVmaXggd2l0aGluIHRoZSBidWNrZXQgdG8gd3JpdGUgbG9ncyB0b1xuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIHMzIGRlc3RpbmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9TMyhcbiAgICBidWNrZXQ/OiBzdG9yYWdlLklCdWNrZXQsXG4gICAga2V5UHJlZml4Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTM0Rlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFMzRGVzdGluYXRpb24oe1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLlMzLFxuICAgICAgczNCdWNrZXQ6IGJ1Y2tldCxcbiAgICAgIGtleVByZWZpeCxcbiAgICAgIGRlc3RpbmF0aW9uT3B0aW9uczogb3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgS2luZXNpcyBEYXRhIEZpcmVob3NlIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gZGVsaXZlcnlTdHJlYW1Bcm4gdGhlIEFSTiBvZiBLaW5lc2lzIERhdGEgRmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtIHRvIHB1Ymxpc2ggbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b0tpbmVzaXNEYXRhRmlyZWhvc2VEZXN0aW5hdGlvbihcbiAgICBkZWxpdmVyeVN0cmVhbUFybjogc3RyaW5nLFxuICApOiBGbG93TG9nRGVzdGluYXRpb24ge1xuICAgIHJldHVybiBuZXcgS2luZXNpc0RhdGFGaXJlaG9zZURlc3RpbmF0aW9uKHtcbiAgICAgIGxvZ0Rlc3RpbmF0aW9uVHlwZTogRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZS5LSU5FU0lTX0RBVEFfRklSRUhPU0UsXG4gICAgICBkZWxpdmVyeVN0cmVhbUFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBmbG93IGxvZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0LCBmOiBGbG93TG9nKTogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnO1xufVxuXG4vKipcbiAqIEZsb3cgTG9nIERlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9nRGVzdGluYXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGVzdGluYXRpb24gdG8gcHVibGlzaCB0aGUgZmxvdyBsb2dzIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENMT1VEX1dBVENIX0xPR1NcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0Rlc3RpbmF0aW9uVHlwZTogRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIElBTSBSb2xlIHRoYXQgaGFzIGFjY2VzcyB0byBwdWJsaXNoIHRvIENsb3VkV2F0Y2ggbG9nc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgSUFNIHJvbGUgaXMgY3JlYXRlZCBmb3IgeW91XG4gICAqL1xuICByZWFkb25seSBpYW1Sb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBMb2dzIExvZyBHcm91cCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGxvZyBncm91cCBpcyBjcmVhdGVkIGZvciB5b3VcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFMzIGJ1Y2tldCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHMzQnVja2V0Pzogc3RvcmFnZS5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBTMyBidWNrZXQga2V5IHByZWZpeCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGtleVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiBLaW5lc2lzIERhdGEgRmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtIHRvIHB1Ymxpc2ggdGhlIGZsb3cgbG9ncyB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVsaXZlcnlTdHJlYW1Bcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHdyaXRpbmcgZmxvdyBsb2dzIHRvIGEgc3VwcG9ydGVkIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbk9wdGlvbnM/OiBTM0Rlc3RpbmF0aW9uT3B0aW9ucztcbn1cblxuLyoqXG4gKlxuICovXG5jbGFzcyBTM0Rlc3RpbmF0aW9uIGV4dGVuZHMgRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIF9mbG93TG9nOiBGbG93TG9nKTogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICBsZXQgczNCdWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldDtcbiAgICBpZiAodGhpcy5wcm9wcy5zM0J1Y2tldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzM0J1Y2tldCA9IG5ldyBzdG9yYWdlLkJ1Y2tldChzY29wZSwgXCJCdWNrZXRcIiwge1xuICAgICAgICAvLyBUT0RPOiBFbnN1cmUgZmxvd2xvZyBCdWNrZXQgaXMgcmV0YWluZWQgb24gZGVsZXRlP1xuICAgICAgICAvLyByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzM0J1Y2tldCA9IHRoaXMucHJvcHMuczNCdWNrZXQ7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL2Zsb3ctbG9ncy1zMy5odG1sI2Zsb3ctbG9ncy1zMy1wZXJtaXNzaW9uc1xuXG4gICAgY29uc3Qgc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSk7XG4gICAgbGV0IGtleVByZWZpeCA9IHRoaXMucHJvcHMua2V5UHJlZml4ID8/IFwiXCI7XG4gICAgaWYgKGtleVByZWZpeCAmJiAha2V5UHJlZml4LmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAga2V5UHJlZml4ID0ga2V5UHJlZml4ICsgXCIvXCI7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMucHJvcHMuZGVzdGluYXRpb25PcHRpb25zPy5oaXZlQ29tcGF0aWJsZVBhcnRpdGlvbnNcbiAgICAgID8gczNCdWNrZXQuYXJuRm9yT2JqZWN0cyhcbiAgICAgICAgICBgJHtrZXlQcmVmaXh9QVdTTG9ncy9hd3MtYWNjb3VudC1pZD0ke3N0YWNrLmFjY291bnR9LypgLFxuICAgICAgICApXG4gICAgICA6IHMzQnVja2V0LmFybkZvck9iamVjdHMoYCR7a2V5UHJlZml4fUFXU0xvZ3MvJHtzdGFjay5hY2NvdW50fS8qYCk7XG5cbiAgICBzM0J1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJkZWxpdmVyeS5sb2dzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICByZXNvdXJjZXM6IFtwcmVmaXhdLFxuICAgICAgICBhY3Rpb25zOiBbXCJzMzpQdXRPYmplY3RcIl0sXG4gICAgICAgIGNvbmRpdGlvbjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG5cbiAgICAgICAgICAgIHZhcmlhYmxlOiBcInMzOngtYW16LWFjbFwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbXCJidWNrZXQtb3duZXItZnVsbC1jb250cm9sXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBY2NvdW50XCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtzdGFjay5hY2NvdW50XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlc3Q6IFwiQXJuTGlrZVwiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgIHN0YWNrLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJsb2dzXCIsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiKlwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBzM0J1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJkZWxpdmVyeS5sb2dzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICByZXNvdXJjZXM6IFtzM0J1Y2tldC5idWNrZXRBcm5dLFxuICAgICAgICBhY3Rpb25zOiBbXCJzMzpHZXRCdWNrZXRBY2xcIiwgXCJzMzpMaXN0QnVja2V0XCJdLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFjY291bnRcIixcbiAgICAgICAgICAgIHZhbHVlczogW3N0YWNrLmFjY291bnRdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJBcm5MaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgICAgc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImxvZ3NcIixcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogXCIqXCIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLlMzLFxuICAgICAgczNCdWNrZXQsXG4gICAgICBrZXlQcmVmaXg6IHRoaXMucHJvcHMua2V5UHJlZml4LFxuICAgICAgZGVzdGluYXRpb25PcHRpb25zOlxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8uZmlsZUZvcm1hdCB8fFxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8ucGVySG91clBhcnRpdGlvbiB8fFxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8uaGl2ZUNvbXBhdGlibGVQYXJ0aXRpb25zXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGZpbGVGb3JtYXQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5kZXN0aW5hdGlvbk9wdGlvbnMuZmlsZUZvcm1hdCA/P1xuICAgICAgICAgICAgICAgIEZsb3dMb2dGaWxlRm9ybWF0LlBMQUlOX1RFWFQsXG4gICAgICAgICAgICAgIHBlckhvdXJQYXJ0aXRpb246XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5kZXN0aW5hdGlvbk9wdGlvbnMucGVySG91clBhcnRpdGlvbiA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgaGl2ZUNvbXBhdGlibGVQYXJ0aXRpb25zOlxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZGVzdGluYXRpb25PcHRpb25zLmhpdmVDb21wYXRpYmxlUGFydGl0aW9ucyA/PyBmYWxzZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgQ2xvdWRXYXRjaExvZ3NEZXN0aW5hdGlvbiBleHRlbmRzIEZsb3dMb2dEZXN0aW5hdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBfZmxvd0xvZzogRmxvd0xvZyk6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgbGV0IGlhbVJvbGU6IGlhbS5JUm9sZTtcbiAgICBsZXQgbG9nR3JvdXA6IGxvZ3MuSUxvZ0dyb3VwO1xuICAgIGlmICh0aGlzLnByb3BzLmlhbVJvbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWFtUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgXCJJQU1Sb2xlXCIsIHtcbiAgICAgICAgcm9sZU5hbWU6IEF3c1N0YWNrLnVuaXF1ZUlkKHNjb3BlKSwgLy9QaHlzaWNhbE5hbWUuR0VORVJBVEVfSUZfTkVFREVELFxuICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInZwYy1mbG93LWxvZ3MuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpYW1Sb2xlID0gdGhpcy5wcm9wcy5pYW1Sb2xlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmxvZ0dyb3VwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAoc2NvcGUsIFwiTG9nR3JvdXBcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ0dyb3VwID0gdGhpcy5wcm9wcy5sb2dHcm91cDtcbiAgICB9XG5cbiAgICBpYW1Sb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ1N0cmVhbVwiLFxuICAgICAgICAgIFwibG9nczpQdXRMb2dFdmVudHNcIixcbiAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dTdHJlYW1zXCIsXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbbG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlhbVJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImlhbTpQYXNzUm9sZVwiXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtpYW1Sb2xlLnJvbGVBcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2dEZXN0aW5hdGlvblR5cGU6IEZsb3dMb2dEZXN0aW5hdGlvblR5cGUuQ0xPVURfV0FUQ0hfTE9HUyxcbiAgICAgIGxvZ0dyb3VwLFxuICAgICAgaWFtUm9sZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgS2luZXNpc0RhdGFGaXJlaG9zZURlc3RpbmF0aW9uIGV4dGVuZHMgRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0LCBfZmxvd0xvZzogRmxvd0xvZyk6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGVsaXZlcnlTdHJlYW1Bcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGVsaXZlcnlTdHJlYW1Bcm4gaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuICAgIGNvbnN0IGRlbGl2ZXJ5U3RyZWFtQXJuID0gdGhpcy5wcm9wcy5kZWxpdmVyeVN0cmVhbUFybjtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2dEZXN0aW5hdGlvblR5cGU6IEZsb3dMb2dEZXN0aW5hdGlvblR5cGUuS0lORVNJU19EQVRBX0ZJUkVIT1NFLFxuICAgICAgZGVsaXZlcnlTdHJlYW1Bcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBtYXhpbXVtIGludGVydmFsIG9mIHRpbWUgZHVyaW5nIHdoaWNoIGEgZmxvdyBvZiBwYWNrZXRzXG4gKiBpcyBjYXB0dXJlZCBhbmQgYWdncmVnYXRlZCBpbnRvIGEgZmxvdyBsb2cgcmVjb3JkLlxuICpcbiAqL1xuZXhwb3J0IGVudW0gRmxvd0xvZ01heEFnZ3JlZ2F0aW9uSW50ZXJ2YWwge1xuICAvKipcbiAgICogMSBtaW51dGUgKDYwIHNlY29uZHMpXG4gICAqL1xuICBPTkVfTUlOVVRFID0gNjAsXG5cbiAgLyoqXG4gICAqIDEwIG1pbnV0ZXMgKDYwMCBzZWNvbmRzKVxuICAgKi9cbiAgVEVOX01JTlVURVMgPSA2MDAsXG59XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgYWxsIG9mIHRoZSBhdmFpbGFibGUgZmllbGRzIGZvciBhIGZsb3cgbG9nIHJlY29yZC5cbiAqL1xuZXhwb3J0IGNsYXNzIExvZ0Zvcm1hdCB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIEZsb3cgTG9ncyB2ZXJzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWRVJTSU9OID0gTG9nRm9ybWF0LmZpZWxkKFwidmVyc2lvblwiKTtcblxuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEIG9mIHRoZSBvd25lciBvZiB0aGUgc291cmNlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciB3aGljaCB0cmFmZmljIGlzIHJlY29yZGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ0NPVU5UX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwiYWNjb3VudC1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3Igd2hpY2ggdGhlIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVEVSRkFDRV9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImludGVyZmFjZS1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBhZGRyZXNzIGZvciBpbmNvbWluZyB0cmFmZmljLCBvciB0aGUgSVB2NCBvciBJUHY2IGFkZHJlc3Mgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlXG4gICAqIGZvciBvdXRnb2luZyB0cmFmZmljIG9uIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1JDX0FERFIgPSBMb2dGb3JtYXQuZmllbGQoXCJzcmNhZGRyXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBmb3Igb3V0Z29pbmcgdHJhZmZpYywgb3IgdGhlIElQdjQgb3IgSVB2NiBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZVxuICAgKiBmb3IgaW5jb21pbmcgdHJhZmZpYyBvbiB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERTVF9BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwiZHN0YWRkclwiKTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBwb3J0IG9mIHRoZSB0cmFmZmljLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTUkNfUE9SVCA9IExvZ0Zvcm1hdC5maWVsZChcInNyY3BvcnRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBwb3J0IG9mIHRoZSB0cmFmZmljLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEU1RfUE9SVCA9IExvZ0Zvcm1hdC5maWVsZChcImRzdHBvcnRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU5BIHByb3RvY29sIG51bWJlciBvZiB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPVE9DT0wgPSBMb2dGb3JtYXQuZmllbGQoXCJwcm90b2NvbFwiKTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrZXRzIHRyYW5zZmVycmVkIGR1cmluZyB0aGUgZmxvdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFDS0VUUyA9IExvZ0Zvcm1hdC5maWVsZChcInBhY2tldHNcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNmZXJyZWQgZHVyaW5nIHRoZSBmbG93LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCWVRFUyA9IExvZ0Zvcm1hdC5maWVsZChcImJ5dGVzXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSwgaW4gVW5peCBzZWNvbmRzLCB3aGVuIHRoZSBmaXJzdCBwYWNrZXQgb2YgdGhlIGZsb3cgd2FzIHJlY2VpdmVkIHdpdGhpblxuICAgKiB0aGUgYWdncmVnYXRpb24gaW50ZXJ2YWwuXG4gICAqXG4gICAqIFRoaXMgbWlnaHQgYmUgdXAgdG8gNjAgc2Vjb25kcyBhZnRlciB0aGUgcGFja2V0IHdhcyB0cmFuc21pdHRlZCBvciByZWNlaXZlZCBvblxuICAgKiB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUQVJUX1RJTUVTVEFNUCA9IExvZ0Zvcm1hdC5maWVsZChcInN0YXJ0XCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSwgaW4gVW5peCBzZWNvbmRzLCB3aGVuIHRoZSBsYXN0IHBhY2tldCBvZiB0aGUgZmxvdyB3YXMgcmVjZWl2ZWQgd2l0aGluXG4gICAqIHRoZSBhZ2dyZWdhdGlvbiBpbnRlcnZhbC5cbiAgICpcbiAgICogVGhpcyBtaWdodCBiZSB1cCB0byA2MCBzZWNvbmRzIGFmdGVyIHRoZSBwYWNrZXQgd2FzIHRyYW5zbWl0dGVkIG9yIHJlY2VpdmVkIG9uXG4gICAqIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU5EX1RJTUVTVEFNUCA9IExvZ0Zvcm1hdC5maWVsZChcImVuZFwiKTtcblxuICAvKipcbiAgICogVGhlIGFjdGlvbiB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OID0gTG9nRm9ybWF0LmZpZWxkKFwiYWN0aW9uXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyBzdGF0dXMgb2YgdGhlIGZsb3cgbG9nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dfU1RBVFVTID0gTG9nRm9ybWF0LmZpZWxkKFwibG9nLXN0YXR1c1wiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRoZSB0cmFmZmljIGlzIHJlY29yZGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWUENfSUQgPSBMb2dGb3JtYXQuZmllbGQoXCJ2cGMtaWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3VibmV0IHRoYXQgY29udGFpbnMgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciB3aGljaCB0aGUgdHJhZmZpYyBpcyByZWNvcmRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VCTkVUX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwic3VibmV0LWlkXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGluc3RhbmNlIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRoZSB0cmFmZmljIGlzXG4gICAqIHJlY29yZGVkLCBpZiB0aGUgaW5zdGFuY2UgaXMgb3duZWQgYnkgeW91LlxuICAgKlxuICAgKiBSZXR1cm5zIGEgJy0nIHN5bWJvbCBmb3IgYSByZXF1ZXN0ZXItbWFuYWdlZCBuZXR3b3JrIGludGVyZmFjZTsgZm9yIGV4YW1wbGUsIHRoZVxuICAgKiBuZXR3b3JrIGludGVyZmFjZSBmb3IgYSBOQVQgZ2F0ZXdheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlNUQU5DRV9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImluc3RhbmNlLWlkXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgYml0bWFzayB2YWx1ZSBmb3IgVENQIGZsYWdzLlxuICAgKlxuICAgKiAtIEZJTiAtLSAxXG4gICAqIC0gU1lOIC0tIDJcbiAgICogLSBSU1QgLS0gNFxuICAgKiAtIFNZTi1BQ0sgLS0gMThcbiAgICpcbiAgICogSWYgbm8gc3VwcG9ydGVkIGZsYWdzIGFyZSByZWNvcmRlZCwgdGhlIFRDUCBmbGFnIHZhbHVlIGlzIDAuXG4gICAqXG4gICAqIFRDUCBmbGFncyBjYW4gYmUgT1ItZWQgZHVyaW5nIHRoZSBhZ2dyZWdhdGlvbiBpbnRlcnZhbC4gRm9yIHNob3J0IGNvbm5lY3Rpb25zLFxuICAgKiB0aGUgZmxhZ3MgbWlnaHQgYmUgc2V0IG9uIHRoZSBzYW1lIGxpbmUgaW4gdGhlIGZsb3cgbG9nIHJlY29yZCwgZm9yIGV4YW1wbGUsXG4gICAqIDE5IGZvciBTWU4tQUNLIGFuZCBGSU4sIGFuZCAzIGZvciBTWU4gYW5kIEZJTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVENQX0ZMQUdTID0gTG9nRm9ybWF0LmZpZWxkKFwidGNwLWZsYWdzXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0cmFmZmljLlxuICAgKlxuICAgKiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBJUHY0LCBJUHY2LCBvciBFRkEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSQUZGSUNfVFlQRSA9IExvZ0Zvcm1hdC5maWVsZChcInR5cGVcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrZXQtbGV2ZWwgKG9yaWdpbmFsKSBzb3VyY2UgSVAgYWRkcmVzcyBvZiB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX1NSQ19BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwicGt0LXNyY2FkZHJcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrZXQtbGV2ZWwgKG9yaWdpbmFsKSBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzIGZvciB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX0RTVF9BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwicGt0LWRzdGFkZHJcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBSZWdpb24gdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFR0lPTiA9IExvZ0Zvcm1hdC5maWVsZChcInJlZ2lvblwiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSB0aGF0IGNvbnRhaW5zIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3Igd2hpY2ggdHJhZmZpYyBpcyByZWNvcmRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVpfSUQgPSBMb2dGb3JtYXQuZmllbGQoXCJhei1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygc3VibG9jYXRpb24gdGhhdCdzIHJldHVybmVkIGluIHRoZSBzdWJsb2NhdGlvbi1pZCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VCTE9DQVRJT05fVFlQRSA9IExvZ0Zvcm1hdC5maWVsZChcInN1YmxvY2F0aW9uLXR5cGVcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3VibG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNVQkxPQ0FUSU9OX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwic3VibG9jYXRpb24taWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdWJzZXQgb2YgSVAgYWRkcmVzcyByYW5nZXMgZm9yIHRoZSBwa3Qtc3JjYWRkciBmaWVsZCxcbiAgICogaWYgdGhlIHNvdXJjZSBJUCBhZGRyZXNzIGlzIGZvciBhbiBBV1Mgc2VydmljZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX1NSQ19BV1NfU0VSVklDRSA9IExvZ0Zvcm1hdC5maWVsZChcbiAgICBcInBrdC1zcmMtYXdzLXNlcnZpY2VcIixcbiAgKTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1YnNldCBvZiBJUCBhZGRyZXNzIHJhbmdlcyBmb3IgdGhlIHBrdC1kc3RhZGRyIGZpZWxkLFxuICAgKiBpZiB0aGUgZGVzdGluYXRpb24gSVAgYWRkcmVzcyBpcyBmb3IgYW4gQVdTIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBLVF9EU1RfQVdTX1NFUlZJQ0UgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJwa3QtZHN0LWF3cy1zZXJ2aWNlXCIsXG4gICk7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGZsb3cgd2l0aCByZXNwZWN0IHRvIHRoZSBpbnRlcmZhY2Ugd2hlcmUgdHJhZmZpYyBpcyBjYXB0dXJlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRkxPV19ESVJFQ1RJT04gPSBMb2dGb3JtYXQuZmllbGQoXCJmbG93LWRpcmVjdGlvblwiKTtcblxuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCBlZ3Jlc3MgdHJhZmZpYyB0YWtlcyB0byB0aGUgZGVzdGluYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSQUZGSUNfUEFUSCA9IExvZ0Zvcm1hdC5maWVsZChcInRyYWZmaWMtcGF0aFwiKTtcblxuICAvKipcbiAgICogQVdTIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEVDUyBjbHVzdGVyIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQ1NfQ0xVU1RFUl9BUk4gPSBMb2dGb3JtYXQuZmllbGQoXCJlY3MtY2x1c3Rlci1hcm5cIik7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEVDUyBjbHVzdGVyIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQ1NfQ0xVU1RFUl9OQU1FID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLWNsdXN0ZXItbmFtZVwiKTtcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBFQ1MgY29udGFpbmVyIGluc3RhbmNlIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrIG9uIGFuIEVDMiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX0NPTlRBSU5FUl9JTlNUQU5DRV9BUk4gPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3MtY29udGFpbmVyLWluc3RhbmNlLWFyblwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgRUNTIGNvbnRhaW5lciBpbnN0YW5jZSBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzayBvbiBhbiBFQzIgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19DT05UQUlORVJfSU5TVEFOQ0VfSUQgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3MtY29udGFpbmVyLWluc3RhbmNlLWlkXCIsXG4gICk7XG5cbiAgLyoqXG4gICAqIERvY2tlciBydW50aW1lIElEIG9mIHRoZSBjb250YWluZXIgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqIElmIHRoZXJlIGlzIG9uZSBjb250YWluZXIgb3IgbW9yZSBpbiB0aGUgRUNTIHRhc2ssIHRoaXMgd2lsbCBiZSB0aGUgZG9ja2VyIHJ1bnRpbWUgSUQgb2YgdGhlIGZpcnN0IGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX0NPTlRBSU5FUl9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImVjcy1jb250YWluZXItaWRcIik7XG5cbiAgLyoqXG4gICAqIERvY2tlciBydW50aW1lIElEIG9mIHRoZSBjb250YWluZXIgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGluIHRoZSBFQ1MgdGFzaywgdGhpcyB3aWxsIGJlIHRoZSBEb2NrZXIgcnVudGltZSBJRCBvZiB0aGUgc2Vjb25kIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX1NFQ09ORF9DT05UQUlORVJfSUQgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3Mtc2Vjb25kLWNvbnRhaW5lci1pZFwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBFQ1Mgc2VydmljZSBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzayBhbmQgdGhlIEVDUyB0YXNrIGlzIHN0YXJ0ZWQgYnkgYW4gRUNTIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19TRVJWSUNFX05BTUUgPSBMb2dGb3JtYXQuZmllbGQoXCJlY3Mtc2VydmljZS1uYW1lXCIpO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIEVDUyB0YXNrIGRlZmluaXRpb24gaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19UQVNLX0RFRklOSVRJT05fQVJOID0gTG9nRm9ybWF0LmZpZWxkKFxuICAgIFwiZWNzLXRhc2stZGVmaW5pdGlvbi1hcm5cIixcbiAgKTtcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBFQ1MgdGFzayBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX1RBU0tfQVJOID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLXRhc2stYXJuXCIpO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgRUNTIHRhc2sgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19UQVNLX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLXRhc2staWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMX0RFRkFVTFRfRklFTERTID0gbmV3IExvZ0Zvcm1hdChcbiAgICBcIiR7dmVyc2lvbn0gJHthY2NvdW50LWlkfSAke2ludGVyZmFjZS1pZH0gJHtzcmNhZGRyfSAke2RzdGFkZHJ9ICR7c3JjcG9ydH0gJHtkc3Rwb3J0fSAke3Byb3RvY29sfSAke3BhY2tldHN9ICR7Ynl0ZXN9ICR7c3RhcnR9ICR7ZW5kfSAke2FjdGlvbn0gJHtsb2ctc3RhdHVzfVwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBmb3JtYXQgc3RyaW5nLlxuICAgKlxuICAgKiBHaXZlcyBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IHN0cmluZyBmcmFnbWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3VzdG9tKGZvcm1hdFN0cmluZzogc3RyaW5nKTogTG9nRm9ybWF0IHtcbiAgICByZXR1cm4gbmV3IExvZ0Zvcm1hdChmb3JtYXRTdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIGZpZWxkIG5hbWUuXG4gICAqXG4gICAqIElmIHRoZXJlIGlzIG5vIHJlYWR5LW1hZGUgY29uc3RhbnQgZm9yIGEgbmV3IGZpZWxkIHlldCwgeW91IGNhbiB1c2UgdGhpcy5cbiAgICogVGhlIGZpZWxkIG5hbWUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHdyYXBwZWQgaW4gYCR7IC4uLiB9YC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmllbGQoZmllbGQ6IHN0cmluZyk6IExvZ0Zvcm1hdCB7XG4gICAgcmV0dXJuIG5ldyBMb2dGb3JtYXQoYFxcJHske2ZpZWxkfX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIGZsb3cgbG9nIHRvIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0xvZ09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdHJhZmZpYyB0byBsb2cuIFlvdSBjYW4gbG9nIHRyYWZmaWMgdGhhdCB0aGUgcmVzb3VyY2UgYWNjZXB0cyBvciByZWplY3RzLCBvciBhbGwgdHJhZmZpYy5cbiAgICogV2hlbiB0aGUgdGFyZ2V0IGlzIGVpdGhlciBgVHJhbnNpdEdhdGV3YXlgIG9yIGBUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRgLCBzZXR0aW5nIHRoZSB0cmFmZmljIHR5cGUgaXMgbm90IHBvc3NpYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3Rndy93b3JraW5nLXdpdGgtZmxvdy1sb2dzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgQUxMXG4gICAqL1xuICByZWFkb25seSB0cmFmZmljVHlwZT86IEZsb3dMb2dUcmFmZmljVHlwZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRoZSBmbG93IGxvZyBkYXRhIGlzIHRvIGJlIHB1Ymxpc2hlZC5cbiAgICogRmxvdyBsb2cgZGF0YSBjYW4gYmUgcHVibGlzaGVkIHRvIENsb3VkV2F0Y2ggTG9ncyBvciBBbWF6b24gUzNcbiAgICpcbiAgICogQGRlZmF1bHQgRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZS50b0Nsb3VkV2F0Y2hMb2dzKClcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogRmxvd0xvZ0Rlc3RpbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZmllbGRzIHRvIGluY2x1ZGUgaW4gdGhlIGZsb3cgbG9nIHJlY29yZCwgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgc2hvdWxkIGFwcGVhci5cbiAgICpcbiAgICogSWYgbXVsdGlwbGUgZmllbGRzIGFyZSBzcGVjaWZpZWQsIHRoZXkgd2lsbCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBGb3IgZnVsbCBjb250cm9sIG92ZXIgdGhlIGxpdGVyYWwgbG9nIGZvcm1hdFxuICAgKiBzdHJpbmcsIHBhc3MgYSBzaW5nbGUgZmllbGQgY29uc3RydWN0ZWQgd2l0aCBgTG9nRm9ybWF0LmN1c3RvbSgpYC5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9mbG93LWxvZ3MuaHRtbCNmbG93LWxvZy1yZWNvcmRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBsb2cgZm9ybWF0IGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dGb3JtYXQ/OiBMb2dGb3JtYXRbXTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gaW50ZXJ2YWwgb2YgdGltZSBkdXJpbmcgd2hpY2ggYSBmbG93IG9mIHBhY2tldHMgaXMgY2FwdHVyZWRcbiAgICogYW5kIGFnZ3JlZ2F0ZWQgaW50byBhIGZsb3cgbG9nIHJlY29yZC5cbiAgICpcbiAgICogV2hlbiBjcmVhdGluZyBmbG93IGxvZ3MgZm9yIGEgVHJhbnNpdCBHYXRld2F5IG9yIFRyYW5zaXQgR2F0ZXdheSBBdHRhY2htZW50LFxuICAgKiB0aGlzIHByb3BlcnR5IG11c3QgYmUgT05FX01JTlVURVMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1mbG93bG9nLmh0bWwjY2ZuLWVjMi1mbG93bG9nLW1heGFnZ3JlZ2F0aW9uaW50ZXJ2YWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBGbG93TG9nTWF4QWdncmVnYXRpb25JbnRlcnZhbC5PTkVfTUlOVVRFUyBpZiBjcmVhdGluZyBmbG93IGxvZ3MgZm9yIFRyYW5zaXQgR2F0ZXdheSwgb3RoZXJ3aXNlIEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsLlRFTl9NSU5VVEVTLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdncmVnYXRpb25JbnRlcnZhbD86IEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBWUEMgRmxvdyBMb2dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9nUHJvcHMgZXh0ZW5kcyBGbG93TG9nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRmxvd0xvZ1xuICAgKlxuICAgKiBTaW5jZSB0aGUgRmxvd0xvZyByZXNvdXJjZSBkb2Vzbid0IHN1cHBvcnQgcHJvdmlkaW5nIGEgcGh5c2ljYWwgbmFtZSwgdGhlIHZhbHVlIHByb3ZpZGVkIGhlcmUgd2lsbCBiZSByZWNvcmRlZCBpbiB0aGUgYE5hbWVgIHRhZy5cbiAgICpcbiAgICogQGRlZmF1bHQgQ0RLIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBmbG93TG9nTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzb3VyY2UgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZmxvdyBsb2dcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogRmxvd0xvZ1Jlc291cmNlVHlwZTtcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgYSBGbG93IExvZ1xuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93TG9nQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJRmxvd0xvZyB7XG4gIC8qKlxuICAgKiBUaGUgSWQgb2YgdGhlIFZQQyBGbG93IExvZ1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd0xvZ0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgZmxvd0xvZ091dHB1dHMoKTogRmxvd0xvZ091dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBmbG93TG9nSWQ6IHRoaXMuZmxvd0xvZ0lkLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dMb2dPdXRwdXRzO1xuICB9XG59XG5cbi8qKlxuICogQSBWUEMgZmxvdyBsb2cuXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OkZsb3dMb2dcbiAqL1xuZXhwb3J0IGNsYXNzIEZsb3dMb2cgZXh0ZW5kcyBGbG93TG9nQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBGbG93IExvZyBieSBpdCdzIElkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GbG93TG9nSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGZsb3dMb2dJZDogc3RyaW5nLFxuICApOiBJRmxvd0xvZyB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRmxvd0xvZ0Jhc2Uge1xuICAgICAgcHVibGljIGZsb3dMb2dJZCA9IGZsb3dMb2dJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJZCBvZiB0aGUgVlBDIEZsb3cgTG9nXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmbG93TG9nSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB0byBwdWJsaXNoIGZsb3cgbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldD86IHN0b3JhZ2UuSUJ1Y2tldDtcblxuICAvKipcbiAgICogUzMgYnVja2V0IGtleSBwcmVmaXggdG8gcHVibGlzaCB0aGUgZmxvdyBsb2dzIHVuZGVyXG4gICAqL1xuICByZWFkb25seSBrZXlQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpYW0gcm9sZSB1c2VkIHRvIHB1Ymxpc2ggbG9ncyB0byBDbG91ZFdhdGNoXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWFtUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggTG9ncyBMb2dHcm91cCB0byBwdWJsaXNoIGZsb3cgbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEtpbmVzaXMgRGF0YSBGaXJlaG9zZSBkZWxpdmVyeSBzdHJlYW0gdG8gcHVibGlzaCBmbG93IGxvZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeVN0cmVhbUFybj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBmbG93TG9nLkZsb3dMb2c7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZsb3dMb2dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9XG4gICAgICBwcm9wcy5kZXN0aW5hdGlvbiB8fCBGbG93TG9nRGVzdGluYXRpb24udG9DbG91ZFdhdGNoTG9ncygpO1xuXG4gICAgY29uc3QgZGVzdGluYXRpb25Db25maWcgPSBkZXN0aW5hdGlvbi5iaW5kKHRoaXMsIHRoaXMpO1xuICAgIHRoaXMubG9nR3JvdXAgPSBkZXN0aW5hdGlvbkNvbmZpZy5sb2dHcm91cDtcbiAgICB0aGlzLmJ1Y2tldCA9IGRlc3RpbmF0aW9uQ29uZmlnLnMzQnVja2V0O1xuICAgIHRoaXMuaWFtUm9sZSA9IGRlc3RpbmF0aW9uQ29uZmlnLmlhbVJvbGU7XG4gICAgdGhpcy5rZXlQcmVmaXggPSBkZXN0aW5hdGlvbkNvbmZpZy5rZXlQcmVmaXg7XG4gICAgdGhpcy5kZWxpdmVyeVN0cmVhbUFybiA9IGRlc3RpbmF0aW9uQ29uZmlnLmRlbGl2ZXJ5U3RyZWFtQXJuO1xuXG4gICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLmZsb3dMb2dOYW1lIHx8IHRoaXMubm9kZS5wYXRoKTtcblxuICAgIGxldCBsb2dEZXN0aW5hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmxvZ0dyb3VwKSB7XG4gICAgICBsb2dEZXN0aW5hdGlvbiA9IHRoaXMubG9nR3JvdXAubG9nR3JvdXBBcm47XG4gICAgfVxuICAgIGlmICh0aGlzLmJ1Y2tldCkge1xuICAgICAgbG9nRGVzdGluYXRpb24gPSB0aGlzLmtleVByZWZpeFxuICAgICAgICA/IHRoaXMuYnVja2V0LmFybkZvck9iamVjdHModGhpcy5rZXlQcmVmaXgpXG4gICAgICAgIDogdGhpcy5idWNrZXQuYnVja2V0QXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWxpdmVyeVN0cmVhbUFybikge1xuICAgICAgbG9nRGVzdGluYXRpb24gPSB0aGlzLmRlbGl2ZXJ5U3RyZWFtQXJuO1xuICAgIH1cbiAgICBsZXQgY3VzdG9tTG9nRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmxvZ0Zvcm1hdCkge1xuICAgICAgY3VzdG9tTG9nRm9ybWF0ID0gcHJvcHMubG9nRm9ybWF0XG4gICAgICAgIC5tYXAoKGVsbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbG0udmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiIFwiKTtcbiAgICB9XG5cbiAgICBsZXQgdHJhZmZpY1R5cGU6IEZsb3dMb2dUcmFmZmljVHlwZSB8IHVuZGVmaW5lZCA9XG4gICAgICBwcm9wcy50cmFmZmljVHlwZSA/PyBGbG93TG9nVHJhZmZpY1R5cGUuQUxMO1xuICAgIGlmIChcbiAgICAgIHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZVR5cGUgPT09IFwiVHJhbnNpdEdhdGV3YXlcIiB8fFxuICAgICAgcHJvcHMucmVzb3VyY2VUeXBlLnJlc291cmNlVHlwZSA9PT0gXCJUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRcIlxuICAgICkge1xuICAgICAgaWYgKHByb3BzLnRyYWZmaWNUeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcInRyYWZmaWNUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFRyYW5zaXQgR2F0ZXdheSBhbmQgVHJhbnNpdCBHYXRld2F5IEF0dGFjaG1lbnRcIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMubWF4QWdncmVnYXRpb25JbnRlcnZhbCAmJlxuICAgICAgICBwcm9wcy5tYXhBZ2dyZWdhdGlvbkludGVydmFsICE9PVxuICAgICAgICAgIEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsLk9ORV9NSU5VVEVcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJtYXhBZ2dyZWdhdGlvbkludGVydmFsIG11c3QgYmUgc2V0IHRvIE9ORV9NSU5VVEUgZm9yIFRyYW5zaXQgR2F0ZXdheSBhbmQgVHJhbnNpdCBHYXRld2F5IEF0dGFjaG1lbnRcIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRyYWZmaWNUeXBlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGNvbnZlcnQgQVdTQ0MgLT4gQVdTIHJlc291cmNlSWRQcm9wc1xuICAgIC8vIFRPRE86IEFkb3B0IEFXU0NDXG4gICAgbGV0IHJlc291cmNlSWRQcm9wczoge1xuICAgICAgZW5pSWQ/OiBzdHJpbmc7XG4gICAgICBzdWJuZXRJZD86IHN0cmluZztcbiAgICAgIHRyYW5zaXRHYXRld2F5SWQ/OiBzdHJpbmc7XG4gICAgICB0cmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRJZD86IHN0cmluZztcbiAgICAgIHZwY0lkPzogc3RyaW5nO1xuICAgIH07XG4gICAgc3dpdGNoIChwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VUeXBlKSB7XG4gICAgICBjYXNlIFwiTmV0d29ya0ludGVyZmFjZVwiOlxuICAgICAgICByZXNvdXJjZUlkUHJvcHMgPSB7IGVuaUlkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJTdWJuZXRcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0geyBzdWJuZXRJZDogcHJvcHMucmVzb3VyY2VUeXBlLnJlc291cmNlSWQgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVHJhbnNpdEdhdGV3YXlcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0geyB0cmFuc2l0R2F0ZXdheUlkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0ge1xuICAgICAgICAgIHRyYW5zaXRHYXRld2F5QXR0YWNobWVudElkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVlBDXCI6XG4gICAgICAgIHJlc291cmNlSWRQcm9wcyA9IHsgdnBjSWQ6IHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZUlkIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCByZXNvdXJjZSB0eXBlOiBcIiArIHByb3BzLnJlc291cmNlVHlwZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBmbG93TG9nLkZsb3dMb2codGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBkZXN0aW5hdGlvbk9wdGlvbnM6IGRlc3RpbmF0aW9uQ29uZmlnLmRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgICAgIGlhbVJvbGVBcm46IHRoaXMuaWFtUm9sZSA/IHRoaXMuaWFtUm9sZS5yb2xlQXJuIDogdW5kZWZpbmVkLFxuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBkZXN0aW5hdGlvbkNvbmZpZy5sb2dEZXN0aW5hdGlvblR5cGUsXG4gICAgICBtYXhBZ2dyZWdhdGlvbkludGVydmFsOiBwcm9wcy5tYXhBZ2dyZWdhdGlvbkludGVydmFsLFxuICAgICAgaWQ6IHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZUlkLFxuICAgICAgdHJhZmZpY1R5cGUsXG4gICAgICBsb2dGb3JtYXQ6IGN1c3RvbUxvZ0Zvcm1hdCxcbiAgICAgIGxvZ0Rlc3RpbmF0aW9uLFxuICAgICAgLi4ucmVzb3VyY2VJZFByb3BzLFxuICAgIH0pO1xuXG4gICAgLy8gVlBDIHNlcnZpY2UgaW1wbGljaXRseSB0cmllcyB0byBjcmVhdGUgYSBidWNrZXQgcG9saWN5IHdoZW4gYWRkaW5nIGEgdnBjIGZsb3cgbG9nLlxuICAgIC8vIFRvIGF2b2lkIHRoZSByYWNlIGNvbmRpdGlvbiwgd2UgYWRkIGFuIGV4cGxpY2l0IGRlcGVuZGVuY3kgaGVyZS5cbiAgICBpZiAodGhpcy5idWNrZXQ/LnBvbGljeT8ubm9kZS5kZWZhdWx0Q2hpbGQgaW5zdGFuY2VvZiBUZXJyYWZvcm1SZXNvdXJjZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5idWNrZXQ/LnBvbGljeS5ub2RlLmRlZmF1bHRDaGlsZCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogd2UgbXVzdCByZW1vdmUgYSBmbG93IGxvZyBjb25maWd1cmF0aW9uIGZpcnN0IGJlZm9yZSBkZWxldGluZyBvYmplY3RzLlxuICAgIC8vIFRPRE86IFMzIEJ1Y2tldCBvYmplY3QgcmVtb3ZhbCBjdXN0b20gcmVzb3VyY2U/XG4gICAgLy8gY29uc3QgZGVsZXRlT2JqZWN0cyA9IHRoaXMuYnVja2V0Py5ub2RlLnRyeUZpbmRDaGlsZChcbiAgICAvLyAgIFwiQXV0b0RlbGV0ZU9iamVjdHNDdXN0b21SZXNvdXJjZVwiLFxuICAgIC8vICk/Lm5vZGUuZGVmYXVsdENoaWxkO1xuICAgIC8vIGlmIChkZWxldGVPYmplY3RzIGluc3RhbmNlb2YgVGVycmFmb3JtUmVzb3VyY2UpIHtcbiAgICAvLyAgIHJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShkZWxldGVPYmplY3RzKTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmZsb3dMb2dJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cbn1cbiJdfQ==
|
|
694
|
+
FlowLog[_d] = { fqn: "terraconstructs.aws.compute.FlowLog", version: "0.2.6" };
|
|
695
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWZsb3ctbG9ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS92cGMtZmxvdy1sb2dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUdBQWlHO0FBRWpHLHNEQUE4QztBQUM5QyxpQ0FBMEM7QUFHMUMsb0RBQW1FO0FBQ25FLDRDQUF3QztBQUN4Qyw4Q0FBOEM7QUFDOUMsMENBQW1DO0FBQ25DLHdDQUF3QztBQUN4QyxzQ0FBc0M7QUFDdEMsOEJBQThCO0FBQzlCLHNDQUFzQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFXLE1BQU0sQ0FBQztBQTZCaEM7O0dBRUc7QUFDSCxJQUFZLGtCQWVYO0FBZkQsV0FBWSxrQkFBa0I7SUFDNUI7O09BRUc7SUFDSCx1Q0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHVDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQWU3QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxzQkFlWDtBQWZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsK0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxtQ0FBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCx5RUFBK0MsQ0FBQTtBQUNqRCxDQUFDLEVBZlcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFlakM7QUFFRDs7R0FFRztBQUNILE1BQXNCLG1CQUFtQjtJQUN2Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBZTtRQUN0QyxPQUFPO1lBQ0wsWUFBWSxFQUFFLFFBQVE7WUFDdEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVM7UUFDN0IsT0FBTztZQUNMLFlBQVksRUFBRSxLQUFLO1lBQ25C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UUFDbEQsd0RBQXdEO1FBQ3hELHVDQUF1QztRQUN2Qyx3QkFBd0I7UUFDeEIsb0RBQW9EO1FBQ3BELGdEQUFnRDtRQUNoRCxJQUFJO1FBRUosSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztBQXZLSCwwQkF3S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi92cGMtZmxvdy1sb2dzLnRzXG5cbmltcG9ydCB7IGZsb3dMb2cgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVzb3VyY2UgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJU3VibmV0LCBJVnBjIH0gZnJvbSBcIi4vdnBjXCI7XG5pbXBvcnQgeyBJQXdzQ29uc3RydWN0LCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuLy8gVE9ETzogVXNlIFRhZ01hbmFnZXIgYW5kIHRhZy1hc3BlY3QgaW5zdGVhZFxuaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi9hd3MtdGFnc1wiO1xuLy8gaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi90YWctYXNwZWN0XCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCIuLi9jbG91ZHdhdGNoXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0ICogYXMgc3RvcmFnZSBmcm9tIFwiLi4vc3RvcmFnZVwiO1xuXG4vKipcbiAqIE5hbWUgdGFnIGNvbnN0YW50XG4gKi9cbmNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSBcIk5hbWVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dMb2dPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBJZCBvZiB0aGUgVlBDIEZsb3cgTG9nXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZsb3dMb2dJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgRmxvd0xvZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElGbG93TG9nIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGZsb3dMb2dPdXRwdXRzOiBGbG93TG9nT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIElkIG9mIHRoZSBWUEMgRmxvdyBMb2dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmxvd0xvZ0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgVlBDIHRyYWZmaWMgdG8gbG9nXG4gKi9cbmV4cG9ydCBlbnVtIEZsb3dMb2dUcmFmZmljVHlwZSB7XG4gIC8qKlxuICAgKiBPbmx5IGxvZyBhY2NlcHRzXG4gICAqL1xuICBBQ0NFUFQgPSBcIkFDQ0VQVFwiLFxuXG4gIC8qKlxuICAgKiBMb2cgYWxsIHJlcXVlc3RzXG4gICAqL1xuICBBTEwgPSBcIkFMTFwiLFxuXG4gIC8qKlxuICAgKiBPbmx5IGxvZyByZWplY3RzXG4gICAqL1xuICBSRUpFQ1QgPSBcIlJFSkVDVFwiLFxufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgZGVzdGluYXRpb24gdHlwZXMgZm9yIEZsb3cgTG9nc1xuICovXG5leHBvcnQgZW51bSBGbG93TG9nRGVzdGluYXRpb25UeXBlIHtcbiAgLyoqXG4gICAqIFNlbmQgZmxvdyBsb2dzIHRvIENsb3VkV2F0Y2ggTG9ncyBHcm91cFxuICAgKi9cbiAgQ0xPVURfV0FUQ0hfTE9HUyA9IFwiY2xvdWQtd2F0Y2gtbG9nc1wiLFxuXG4gIC8qKlxuICAgKiBTZW5kIGZsb3cgbG9ncyB0byBTMyBCdWNrZXRcbiAgICovXG4gIFMzID0gXCJzM1wiLFxuXG4gIC8qKlxuICAgKiBTZW5kIGZsb3cgbG9ncyB0byBLaW5lc2lzIERhdGEgRmlyZWhvc2VcbiAgICovXG4gIEtJTkVTSVNfREFUQV9GSVJFSE9TRSA9IFwia2luZXNpcy1kYXRhLWZpcmVob3NlXCIsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UgdG8gY3JlYXRlIHRoZSBmbG93IGxvZyBmb3JcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb3dMb2dSZXNvdXJjZVR5cGUge1xuICAvKipcbiAgICogVGhlIHN1Ym5ldCB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdWJuZXQoc3VibmV0OiBJU3VibmV0KTogRmxvd0xvZ1Jlc291cmNlVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc291cmNlVHlwZTogXCJTdWJuZXRcIixcbiAgICAgIHJlc291cmNlSWQ6IHN1Ym5ldC5zdWJuZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgdG8gYXR0YWNoIHRoZSBGbG93IExvZyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVnBjKHZwYzogSVZwYyk6IEZsb3dMb2dSZXNvdXJjZVR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICByZXNvdXJjZVR5cGU6IFwiVlBDXCIsXG4gICAgICByZXNvdXJjZUlkOiB2cGMudnBjSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgTmV0d29yayBJbnRlcmZhY2UgdG8gYXR0YWNoIHRoZSBGbG93IExvZyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTmV0d29ya0ludGVyZmFjZUlkKGlkOiBzdHJpbmcpOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgIHJlc291cmNlSWQ6IGlkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIFRyYW5zaXQgR2F0ZXdheSB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UcmFuc2l0R2F0ZXdheUlkKGlkOiBzdHJpbmcpOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIlRyYW5zaXRHYXRld2F5XCIsXG4gICAgICByZXNvdXJjZUlkOiBpZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBUcmFuc2l0IEdhdGV3YXkgQXR0YWNobWVudCB0byBhdHRhY2ggdGhlIEZsb3cgTG9nIHRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRJZChcbiAgICBpZDogc3RyaW5nLFxuICApOiBGbG93TG9nUmVzb3VyY2VUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIlRyYW5zaXRHYXRld2F5QXR0YWNobWVudFwiLFxuICAgICAgcmVzb3VyY2VJZDogaWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByZXNvdXJjZSB0byBhdHRhY2ggYSBmbG93IGxvZyB0by5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElkIG9mIHRoZSByZXNvdXJjZSB0aGF0IHRoZSBmbG93IGxvZyBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBmaWxlIGZvcm1hdCBmb3IgZmxvdyBsb2dzIHdyaXR0ZW4gdG8gYW4gUzMgYnVja2V0IGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEZsb3dMb2dGaWxlRm9ybWF0IHtcbiAgLyoqXG4gICAqIEZpbGUgd2lsbCBiZSB3cml0dGVuIGFzIHBsYWluIHRleHRcbiAgICpcbiAgICogVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgKi9cbiAgUExBSU5fVEVYVCA9IFwicGxhaW4tdGV4dFwiLFxuXG4gIC8qKlxuICAgKiBGaWxlIHdpbGwgYmUgd3JpdHRlbiBpbiBwYXJxdWV0IGZvcm1hdFxuICAgKi9cbiAgUEFSUVVFVCA9IFwicGFycXVldFwiLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHdyaXRpbmcgbG9ncyB0byBhIFMzIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNEZXN0aW5hdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVXNlIEhpdmUtY29tcGF0aWJsZSBwcmVmaXhlcyBmb3IgZmxvdyBsb2dzXG4gICAqIHN0b3JlZCBpbiBBbWF6b24gUzNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGhpdmVDb21wYXRpYmxlUGFydGl0aW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXQgZm9yIHRoZSBmbG93IGxvZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBGbG93TG9nRmlsZUZvcm1hdC5QTEFJTl9URVhUXG4gICAqL1xuICByZWFkb25seSBmaWxlRm9ybWF0PzogRmxvd0xvZ0ZpbGVGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIFBhcnRpdGlvbiB0aGUgZmxvdyBsb2cgcGVyIGhvdXJcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBlckhvdXJQYXJ0aXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBkZXN0aW5hdGlvbiB0eXBlIGZvciB0aGUgZmxvdyBsb2dcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZsb3dMb2dEZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBVc2UgQ2xvdWRXYXRjaCBsb2dzIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b0Nsb3VkV2F0Y2hMb2dzKFxuICAgIGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXAsXG4gICAgaWFtUm9sZT86IGlhbS5JUm9sZSxcbiAgKTogRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENsb3VkV2F0Y2hMb2dzRGVzdGluYXRpb24oe1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLkNMT1VEX1dBVENIX0xPR1MsXG4gICAgICBsb2dHcm91cCxcbiAgICAgIGlhbVJvbGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIFMzIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gYnVja2V0IG9wdGlvbmFsIHMzIGJ1Y2tldCB0byBwdWJsaXNoIGxvZ3MgdG8uIElmIG9uZSBpcyBub3QgcHJvdmlkZWRcbiAgICogYSBkZWZhdWx0IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIGtleVByZWZpeCBvcHRpb25hbCBwcmVmaXggd2l0aGluIHRoZSBidWNrZXQgdG8gd3JpdGUgbG9ncyB0b1xuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIHMzIGRlc3RpbmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9TMyhcbiAgICBidWNrZXQ/OiBzdG9yYWdlLklCdWNrZXQsXG4gICAga2V5UHJlZml4Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTM0Rlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFMzRGVzdGluYXRpb24oe1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLlMzLFxuICAgICAgczNCdWNrZXQ6IGJ1Y2tldCxcbiAgICAgIGtleVByZWZpeCxcbiAgICAgIGRlc3RpbmF0aW9uT3B0aW9uczogb3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgS2luZXNpcyBEYXRhIEZpcmVob3NlIGFzIHRoZSBkZXN0aW5hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gZGVsaXZlcnlTdHJlYW1Bcm4gdGhlIEFSTiBvZiBLaW5lc2lzIERhdGEgRmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtIHRvIHB1Ymxpc2ggbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b0tpbmVzaXNEYXRhRmlyZWhvc2VEZXN0aW5hdGlvbihcbiAgICBkZWxpdmVyeVN0cmVhbUFybjogc3RyaW5nLFxuICApOiBGbG93TG9nRGVzdGluYXRpb24ge1xuICAgIHJldHVybiBuZXcgS2luZXNpc0RhdGFGaXJlaG9zZURlc3RpbmF0aW9uKHtcbiAgICAgIGxvZ0Rlc3RpbmF0aW9uVHlwZTogRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZS5LSU5FU0lTX0RBVEFfRklSRUhPU0UsXG4gICAgICBkZWxpdmVyeVN0cmVhbUFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBmbG93IGxvZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0LCBmOiBGbG93TG9nKTogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnO1xufVxuXG4vKipcbiAqIEZsb3cgTG9nIERlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9nRGVzdGluYXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGVzdGluYXRpb24gdG8gcHVibGlzaCB0aGUgZmxvdyBsb2dzIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENMT1VEX1dBVENIX0xPR1NcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0Rlc3RpbmF0aW9uVHlwZTogRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIElBTSBSb2xlIHRoYXQgaGFzIGFjY2VzcyB0byBwdWJsaXNoIHRvIENsb3VkV2F0Y2ggbG9nc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgSUFNIHJvbGUgaXMgY3JlYXRlZCBmb3IgeW91XG4gICAqL1xuICByZWFkb25seSBpYW1Sb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBMb2dzIExvZyBHcm91cCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IGxvZyBncm91cCBpcyBjcmVhdGVkIGZvciB5b3VcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFMzIGJ1Y2tldCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHMzQnVja2V0Pzogc3RvcmFnZS5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBTMyBidWNrZXQga2V5IHByZWZpeCB0byBwdWJsaXNoIHRoZSBmbG93IGxvZ3MgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGtleVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiBLaW5lc2lzIERhdGEgRmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtIHRvIHB1Ymxpc2ggdGhlIGZsb3cgbG9ncyB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVsaXZlcnlTdHJlYW1Bcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHdyaXRpbmcgZmxvdyBsb2dzIHRvIGEgc3VwcG9ydGVkIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbk9wdGlvbnM/OiBTM0Rlc3RpbmF0aW9uT3B0aW9ucztcbn1cblxuLyoqXG4gKlxuICovXG5jbGFzcyBTM0Rlc3RpbmF0aW9uIGV4dGVuZHMgRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIF9mbG93TG9nOiBGbG93TG9nKTogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICBsZXQgczNCdWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldDtcbiAgICBpZiAodGhpcy5wcm9wcy5zM0J1Y2tldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzM0J1Y2tldCA9IG5ldyBzdG9yYWdlLkJ1Y2tldChzY29wZSwgXCJCdWNrZXRcIiwge1xuICAgICAgICAvLyBUT0RPOiBFbnN1cmUgZmxvd2xvZyBCdWNrZXQgaXMgcmV0YWluZWQgb24gZGVsZXRlP1xuICAgICAgICAvLyByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzM0J1Y2tldCA9IHRoaXMucHJvcHMuczNCdWNrZXQ7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL2Zsb3ctbG9ncy1zMy5odG1sI2Zsb3ctbG9ncy1zMy1wZXJtaXNzaW9uc1xuXG4gICAgY29uc3Qgc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSk7XG4gICAgbGV0IGtleVByZWZpeCA9IHRoaXMucHJvcHMua2V5UHJlZml4ID8/IFwiXCI7XG4gICAgaWYgKGtleVByZWZpeCAmJiAha2V5UHJlZml4LmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAga2V5UHJlZml4ID0ga2V5UHJlZml4ICsgXCIvXCI7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMucHJvcHMuZGVzdGluYXRpb25PcHRpb25zPy5oaXZlQ29tcGF0aWJsZVBhcnRpdGlvbnNcbiAgICAgID8gczNCdWNrZXQuYXJuRm9yT2JqZWN0cyhcbiAgICAgICAgICBgJHtrZXlQcmVmaXh9QVdTTG9ncy9hd3MtYWNjb3VudC1pZD0ke3N0YWNrLmFjY291bnR9LypgLFxuICAgICAgICApXG4gICAgICA6IHMzQnVja2V0LmFybkZvck9iamVjdHMoYCR7a2V5UHJlZml4fUFXU0xvZ3MvJHtzdGFjay5hY2NvdW50fS8qYCk7XG5cbiAgICBzM0J1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJkZWxpdmVyeS5sb2dzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICByZXNvdXJjZXM6IFtwcmVmaXhdLFxuICAgICAgICBhY3Rpb25zOiBbXCJzMzpQdXRPYmplY3RcIl0sXG4gICAgICAgIGNvbmRpdGlvbjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG5cbiAgICAgICAgICAgIHZhcmlhYmxlOiBcInMzOngtYW16LWFjbFwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbXCJidWNrZXQtb3duZXItZnVsbC1jb250cm9sXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBY2NvdW50XCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtzdGFjay5hY2NvdW50XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlc3Q6IFwiQXJuTGlrZVwiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgIHN0YWNrLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJsb2dzXCIsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiKlwiLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBzM0J1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJkZWxpdmVyeS5sb2dzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICByZXNvdXJjZXM6IFtzM0J1Y2tldC5idWNrZXRBcm5dLFxuICAgICAgICBhY3Rpb25zOiBbXCJzMzpHZXRCdWNrZXRBY2xcIiwgXCJzMzpMaXN0QnVja2V0XCJdLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFjY291bnRcIixcbiAgICAgICAgICAgIHZhbHVlczogW3N0YWNrLmFjY291bnRdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJBcm5MaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgICAgc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImxvZ3NcIixcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogXCIqXCIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBGbG93TG9nRGVzdGluYXRpb25UeXBlLlMzLFxuICAgICAgczNCdWNrZXQsXG4gICAgICBrZXlQcmVmaXg6IHRoaXMucHJvcHMua2V5UHJlZml4LFxuICAgICAgZGVzdGluYXRpb25PcHRpb25zOlxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8uZmlsZUZvcm1hdCB8fFxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8ucGVySG91clBhcnRpdGlvbiB8fFxuICAgICAgICB0aGlzLnByb3BzLmRlc3RpbmF0aW9uT3B0aW9ucz8uaGl2ZUNvbXBhdGlibGVQYXJ0aXRpb25zXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGZpbGVGb3JtYXQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5kZXN0aW5hdGlvbk9wdGlvbnMuZmlsZUZvcm1hdCA/P1xuICAgICAgICAgICAgICAgIEZsb3dMb2dGaWxlRm9ybWF0LlBMQUlOX1RFWFQsXG4gICAgICAgICAgICAgIHBlckhvdXJQYXJ0aXRpb246XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5kZXN0aW5hdGlvbk9wdGlvbnMucGVySG91clBhcnRpdGlvbiA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgaGl2ZUNvbXBhdGlibGVQYXJ0aXRpb25zOlxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZGVzdGluYXRpb25PcHRpb25zLmhpdmVDb21wYXRpYmxlUGFydGl0aW9ucyA/PyBmYWxzZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgQ2xvdWRXYXRjaExvZ3NEZXN0aW5hdGlvbiBleHRlbmRzIEZsb3dMb2dEZXN0aW5hdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBfZmxvd0xvZzogRmxvd0xvZyk6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgbGV0IGlhbVJvbGU6IGlhbS5JUm9sZTtcbiAgICBsZXQgbG9nR3JvdXA6IGxvZ3MuSUxvZ0dyb3VwO1xuICAgIGlmICh0aGlzLnByb3BzLmlhbVJvbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWFtUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgXCJJQU1Sb2xlXCIsIHtcbiAgICAgICAgcm9sZU5hbWU6IEF3c1N0YWNrLnVuaXF1ZUlkKHNjb3BlKSwgLy9QaHlzaWNhbE5hbWUuR0VORVJBVEVfSUZfTkVFREVELFxuICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInZwYy1mbG93LWxvZ3MuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpYW1Sb2xlID0gdGhpcy5wcm9wcy5pYW1Sb2xlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmxvZ0dyb3VwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAoc2NvcGUsIFwiTG9nR3JvdXBcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ0dyb3VwID0gdGhpcy5wcm9wcy5sb2dHcm91cDtcbiAgICB9XG5cbiAgICBpYW1Sb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ1N0cmVhbVwiLFxuICAgICAgICAgIFwibG9nczpQdXRMb2dFdmVudHNcIixcbiAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dTdHJlYW1zXCIsXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbbG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlhbVJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImlhbTpQYXNzUm9sZVwiXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtpYW1Sb2xlLnJvbGVBcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2dEZXN0aW5hdGlvblR5cGU6IEZsb3dMb2dEZXN0aW5hdGlvblR5cGUuQ0xPVURfV0FUQ0hfTE9HUyxcbiAgICAgIGxvZ0dyb3VwLFxuICAgICAgaWFtUm9sZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuY2xhc3MgS2luZXNpc0RhdGFGaXJlaG9zZURlc3RpbmF0aW9uIGV4dGVuZHMgRmxvd0xvZ0Rlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRmxvd0xvZ0Rlc3RpbmF0aW9uQ29uZmlnKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0LCBfZmxvd0xvZzogRmxvd0xvZyk6IEZsb3dMb2dEZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGVsaXZlcnlTdHJlYW1Bcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGVsaXZlcnlTdHJlYW1Bcm4gaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuICAgIGNvbnN0IGRlbGl2ZXJ5U3RyZWFtQXJuID0gdGhpcy5wcm9wcy5kZWxpdmVyeVN0cmVhbUFybjtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2dEZXN0aW5hdGlvblR5cGU6IEZsb3dMb2dEZXN0aW5hdGlvblR5cGUuS0lORVNJU19EQVRBX0ZJUkVIT1NFLFxuICAgICAgZGVsaXZlcnlTdHJlYW1Bcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBtYXhpbXVtIGludGVydmFsIG9mIHRpbWUgZHVyaW5nIHdoaWNoIGEgZmxvdyBvZiBwYWNrZXRzXG4gKiBpcyBjYXB0dXJlZCBhbmQgYWdncmVnYXRlZCBpbnRvIGEgZmxvdyBsb2cgcmVjb3JkLlxuICpcbiAqL1xuZXhwb3J0IGVudW0gRmxvd0xvZ01heEFnZ3JlZ2F0aW9uSW50ZXJ2YWwge1xuICAvKipcbiAgICogMSBtaW51dGUgKDYwIHNlY29uZHMpXG4gICAqL1xuICBPTkVfTUlOVVRFID0gNjAsXG5cbiAgLyoqXG4gICAqIDEwIG1pbnV0ZXMgKDYwMCBzZWNvbmRzKVxuICAgKi9cbiAgVEVOX01JTlVURVMgPSA2MDAsXG59XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgYWxsIG9mIHRoZSBhdmFpbGFibGUgZmllbGRzIGZvciBhIGZsb3cgbG9nIHJlY29yZC5cbiAqL1xuZXhwb3J0IGNsYXNzIExvZ0Zvcm1hdCB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIEZsb3cgTG9ncyB2ZXJzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWRVJTSU9OID0gTG9nRm9ybWF0LmZpZWxkKFwidmVyc2lvblwiKTtcblxuICAvKipcbiAgICogVGhlIEFXUyBhY2NvdW50IElEIG9mIHRoZSBvd25lciBvZiB0aGUgc291cmNlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciB3aGljaCB0cmFmZmljIGlzIHJlY29yZGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ0NPVU5UX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwiYWNjb3VudC1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3Igd2hpY2ggdGhlIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVEVSRkFDRV9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImludGVyZmFjZS1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBhZGRyZXNzIGZvciBpbmNvbWluZyB0cmFmZmljLCBvciB0aGUgSVB2NCBvciBJUHY2IGFkZHJlc3Mgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlXG4gICAqIGZvciBvdXRnb2luZyB0cmFmZmljIG9uIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1JDX0FERFIgPSBMb2dGb3JtYXQuZmllbGQoXCJzcmNhZGRyXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gYWRkcmVzcyBmb3Igb3V0Z29pbmcgdHJhZmZpYywgb3IgdGhlIElQdjQgb3IgSVB2NiBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZVxuICAgKiBmb3IgaW5jb21pbmcgdHJhZmZpYyBvbiB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERTVF9BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwiZHN0YWRkclwiKTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBwb3J0IG9mIHRoZSB0cmFmZmljLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTUkNfUE9SVCA9IExvZ0Zvcm1hdC5maWVsZChcInNyY3BvcnRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBwb3J0IG9mIHRoZSB0cmFmZmljLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEU1RfUE9SVCA9IExvZ0Zvcm1hdC5maWVsZChcImRzdHBvcnRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU5BIHByb3RvY29sIG51bWJlciBvZiB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPVE9DT0wgPSBMb2dGb3JtYXQuZmllbGQoXCJwcm90b2NvbFwiKTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrZXRzIHRyYW5zZmVycmVkIGR1cmluZyB0aGUgZmxvdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFDS0VUUyA9IExvZ0Zvcm1hdC5maWVsZChcInBhY2tldHNcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNmZXJyZWQgZHVyaW5nIHRoZSBmbG93LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCWVRFUyA9IExvZ0Zvcm1hdC5maWVsZChcImJ5dGVzXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSwgaW4gVW5peCBzZWNvbmRzLCB3aGVuIHRoZSBmaXJzdCBwYWNrZXQgb2YgdGhlIGZsb3cgd2FzIHJlY2VpdmVkIHdpdGhpblxuICAgKiB0aGUgYWdncmVnYXRpb24gaW50ZXJ2YWwuXG4gICAqXG4gICAqIFRoaXMgbWlnaHQgYmUgdXAgdG8gNjAgc2Vjb25kcyBhZnRlciB0aGUgcGFja2V0IHdhcyB0cmFuc21pdHRlZCBvciByZWNlaXZlZCBvblxuICAgKiB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUQVJUX1RJTUVTVEFNUCA9IExvZ0Zvcm1hdC5maWVsZChcInN0YXJ0XCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSwgaW4gVW5peCBzZWNvbmRzLCB3aGVuIHRoZSBsYXN0IHBhY2tldCBvZiB0aGUgZmxvdyB3YXMgcmVjZWl2ZWQgd2l0aGluXG4gICAqIHRoZSBhZ2dyZWdhdGlvbiBpbnRlcnZhbC5cbiAgICpcbiAgICogVGhpcyBtaWdodCBiZSB1cCB0byA2MCBzZWNvbmRzIGFmdGVyIHRoZSBwYWNrZXQgd2FzIHRyYW5zbWl0dGVkIG9yIHJlY2VpdmVkIG9uXG4gICAqIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU5EX1RJTUVTVEFNUCA9IExvZ0Zvcm1hdC5maWVsZChcImVuZFwiKTtcblxuICAvKipcbiAgICogVGhlIGFjdGlvbiB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OID0gTG9nRm9ybWF0LmZpZWxkKFwiYWN0aW9uXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyBzdGF0dXMgb2YgdGhlIGZsb3cgbG9nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dfU1RBVFVTID0gTG9nRm9ybWF0LmZpZWxkKFwibG9nLXN0YXR1c1wiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBWUEMgdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRoZSB0cmFmZmljIGlzIHJlY29yZGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWUENfSUQgPSBMb2dGb3JtYXQuZmllbGQoXCJ2cGMtaWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3VibmV0IHRoYXQgY29udGFpbnMgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciB3aGljaCB0aGUgdHJhZmZpYyBpcyByZWNvcmRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VCTkVUX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwic3VibmV0LWlkXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGluc3RhbmNlIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRoZSB0cmFmZmljIGlzXG4gICAqIHJlY29yZGVkLCBpZiB0aGUgaW5zdGFuY2UgaXMgb3duZWQgYnkgeW91LlxuICAgKlxuICAgKiBSZXR1cm5zIGEgJy0nIHN5bWJvbCBmb3IgYSByZXF1ZXN0ZXItbWFuYWdlZCBuZXR3b3JrIGludGVyZmFjZTsgZm9yIGV4YW1wbGUsIHRoZVxuICAgKiBuZXR3b3JrIGludGVyZmFjZSBmb3IgYSBOQVQgZ2F0ZXdheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlNUQU5DRV9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImluc3RhbmNlLWlkXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgYml0bWFzayB2YWx1ZSBmb3IgVENQIGZsYWdzLlxuICAgKlxuICAgKiAtIEZJTiAtLSAxXG4gICAqIC0gU1lOIC0tIDJcbiAgICogLSBSU1QgLS0gNFxuICAgKiAtIFNZTi1BQ0sgLS0gMThcbiAgICpcbiAgICogSWYgbm8gc3VwcG9ydGVkIGZsYWdzIGFyZSByZWNvcmRlZCwgdGhlIFRDUCBmbGFnIHZhbHVlIGlzIDAuXG4gICAqXG4gICAqIFRDUCBmbGFncyBjYW4gYmUgT1ItZWQgZHVyaW5nIHRoZSBhZ2dyZWdhdGlvbiBpbnRlcnZhbC4gRm9yIHNob3J0IGNvbm5lY3Rpb25zLFxuICAgKiB0aGUgZmxhZ3MgbWlnaHQgYmUgc2V0IG9uIHRoZSBzYW1lIGxpbmUgaW4gdGhlIGZsb3cgbG9nIHJlY29yZCwgZm9yIGV4YW1wbGUsXG4gICAqIDE5IGZvciBTWU4tQUNLIGFuZCBGSU4sIGFuZCAzIGZvciBTWU4gYW5kIEZJTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVENQX0ZMQUdTID0gTG9nRm9ybWF0LmZpZWxkKFwidGNwLWZsYWdzXCIpO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0cmFmZmljLlxuICAgKlxuICAgKiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBJUHY0LCBJUHY2LCBvciBFRkEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSQUZGSUNfVFlQRSA9IExvZ0Zvcm1hdC5maWVsZChcInR5cGVcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrZXQtbGV2ZWwgKG9yaWdpbmFsKSBzb3VyY2UgSVAgYWRkcmVzcyBvZiB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX1NSQ19BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwicGt0LXNyY2FkZHJcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrZXQtbGV2ZWwgKG9yaWdpbmFsKSBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzIGZvciB0aGUgdHJhZmZpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX0RTVF9BRERSID0gTG9nRm9ybWF0LmZpZWxkKFwicGt0LWRzdGFkZHJcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBSZWdpb24gdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFR0lPTiA9IExvZ0Zvcm1hdC5maWVsZChcInJlZ2lvblwiKTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSB0aGF0IGNvbnRhaW5zIHRoZSBuZXR3b3JrIGludGVyZmFjZSBmb3Igd2hpY2ggdHJhZmZpYyBpcyByZWNvcmRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVpfSUQgPSBMb2dGb3JtYXQuZmllbGQoXCJhei1pZFwiKTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygc3VibG9jYXRpb24gdGhhdCdzIHJldHVybmVkIGluIHRoZSBzdWJsb2NhdGlvbi1pZCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VCTE9DQVRJT05fVFlQRSA9IExvZ0Zvcm1hdC5maWVsZChcInN1YmxvY2F0aW9uLXR5cGVcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3VibG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIHdoaWNoIHRyYWZmaWMgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNVQkxPQ0FUSU9OX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwic3VibG9jYXRpb24taWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdWJzZXQgb2YgSVAgYWRkcmVzcyByYW5nZXMgZm9yIHRoZSBwa3Qtc3JjYWRkciBmaWVsZCxcbiAgICogaWYgdGhlIHNvdXJjZSBJUCBhZGRyZXNzIGlzIGZvciBhbiBBV1Mgc2VydmljZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEtUX1NSQ19BV1NfU0VSVklDRSA9IExvZ0Zvcm1hdC5maWVsZChcbiAgICBcInBrdC1zcmMtYXdzLXNlcnZpY2VcIixcbiAgKTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN1YnNldCBvZiBJUCBhZGRyZXNzIHJhbmdlcyBmb3IgdGhlIHBrdC1kc3RhZGRyIGZpZWxkLFxuICAgKiBpZiB0aGUgZGVzdGluYXRpb24gSVAgYWRkcmVzcyBpcyBmb3IgYW4gQVdTIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBLVF9EU1RfQVdTX1NFUlZJQ0UgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJwa3QtZHN0LWF3cy1zZXJ2aWNlXCIsXG4gICk7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGZsb3cgd2l0aCByZXNwZWN0IHRvIHRoZSBpbnRlcmZhY2Ugd2hlcmUgdHJhZmZpYyBpcyBjYXB0dXJlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRkxPV19ESVJFQ1RJT04gPSBMb2dGb3JtYXQuZmllbGQoXCJmbG93LWRpcmVjdGlvblwiKTtcblxuICAvKipcbiAgICogVGhlIHBhdGggdGhhdCBlZ3Jlc3MgdHJhZmZpYyB0YWtlcyB0byB0aGUgZGVzdGluYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSQUZGSUNfUEFUSCA9IExvZ0Zvcm1hdC5maWVsZChcInRyYWZmaWMtcGF0aFwiKTtcblxuICAvKipcbiAgICogQVdTIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEVDUyBjbHVzdGVyIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQ1NfQ0xVU1RFUl9BUk4gPSBMb2dGb3JtYXQuZmllbGQoXCJlY3MtY2x1c3Rlci1hcm5cIik7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEVDUyBjbHVzdGVyIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQ1NfQ0xVU1RFUl9OQU1FID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLWNsdXN0ZXItbmFtZVwiKTtcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBFQ1MgY29udGFpbmVyIGluc3RhbmNlIGlmIHRoZSB0cmFmZmljIGlzIGZyb20gYSBydW5uaW5nIEVDUyB0YXNrIG9uIGFuIEVDMiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX0NPTlRBSU5FUl9JTlNUQU5DRV9BUk4gPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3MtY29udGFpbmVyLWluc3RhbmNlLWFyblwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgRUNTIGNvbnRhaW5lciBpbnN0YW5jZSBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzayBvbiBhbiBFQzIgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19DT05UQUlORVJfSU5TVEFOQ0VfSUQgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3MtY29udGFpbmVyLWluc3RhbmNlLWlkXCIsXG4gICk7XG5cbiAgLyoqXG4gICAqIERvY2tlciBydW50aW1lIElEIG9mIHRoZSBjb250YWluZXIgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqIElmIHRoZXJlIGlzIG9uZSBjb250YWluZXIgb3IgbW9yZSBpbiB0aGUgRUNTIHRhc2ssIHRoaXMgd2lsbCBiZSB0aGUgZG9ja2VyIHJ1bnRpbWUgSUQgb2YgdGhlIGZpcnN0IGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX0NPTlRBSU5FUl9JRCA9IExvZ0Zvcm1hdC5maWVsZChcImVjcy1jb250YWluZXItaWRcIik7XG5cbiAgLyoqXG4gICAqIERvY2tlciBydW50aW1lIElEIG9mIHRoZSBjb250YWluZXIgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGluIHRoZSBFQ1MgdGFzaywgdGhpcyB3aWxsIGJlIHRoZSBEb2NrZXIgcnVudGltZSBJRCBvZiB0aGUgc2Vjb25kIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX1NFQ09ORF9DT05UQUlORVJfSUQgPSBMb2dGb3JtYXQuZmllbGQoXG4gICAgXCJlY3Mtc2Vjb25kLWNvbnRhaW5lci1pZFwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBFQ1Mgc2VydmljZSBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzayBhbmQgdGhlIEVDUyB0YXNrIGlzIHN0YXJ0ZWQgYnkgYW4gRUNTIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19TRVJWSUNFX05BTUUgPSBMb2dGb3JtYXQuZmllbGQoXCJlY3Mtc2VydmljZS1uYW1lXCIpO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIEVDUyB0YXNrIGRlZmluaXRpb24gaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19UQVNLX0RFRklOSVRJT05fQVJOID0gTG9nRm9ybWF0LmZpZWxkKFxuICAgIFwiZWNzLXRhc2stZGVmaW5pdGlvbi1hcm5cIixcbiAgKTtcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBFQ1MgdGFzayBpZiB0aGUgdHJhZmZpYyBpcyBmcm9tIGEgcnVubmluZyBFQ1MgdGFzay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUNTX1RBU0tfQVJOID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLXRhc2stYXJuXCIpO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgRUNTIHRhc2sgaWYgdGhlIHRyYWZmaWMgaXMgZnJvbSBhIHJ1bm5pbmcgRUNTIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVDU19UQVNLX0lEID0gTG9nRm9ybWF0LmZpZWxkKFwiZWNzLXRhc2staWRcIik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMX0RFRkFVTFRfRklFTERTID0gbmV3IExvZ0Zvcm1hdChcbiAgICBcIiR7dmVyc2lvbn0gJHthY2NvdW50LWlkfSAke2ludGVyZmFjZS1pZH0gJHtzcmNhZGRyfSAke2RzdGFkZHJ9ICR7c3JjcG9ydH0gJHtkc3Rwb3J0fSAke3Byb3RvY29sfSAke3BhY2tldHN9ICR7Ynl0ZXN9ICR7c3RhcnR9ICR7ZW5kfSAke2FjdGlvbn0gJHtsb2ctc3RhdHVzfVwiLFxuICApO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBmb3JtYXQgc3RyaW5nLlxuICAgKlxuICAgKiBHaXZlcyBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IHN0cmluZyBmcmFnbWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3VzdG9tKGZvcm1hdFN0cmluZzogc3RyaW5nKTogTG9nRm9ybWF0IHtcbiAgICByZXR1cm4gbmV3IExvZ0Zvcm1hdChmb3JtYXRTdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIGZpZWxkIG5hbWUuXG4gICAqXG4gICAqIElmIHRoZXJlIGlzIG5vIHJlYWR5LW1hZGUgY29uc3RhbnQgZm9yIGEgbmV3IGZpZWxkIHlldCwgeW91IGNhbiB1c2UgdGhpcy5cbiAgICogVGhlIGZpZWxkIG5hbWUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHdyYXBwZWQgaW4gYCR7IC4uLiB9YC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmllbGQoZmllbGQ6IHN0cmluZyk6IExvZ0Zvcm1hdCB7XG4gICAgcmV0dXJuIG5ldyBMb2dGb3JtYXQoYFxcJHske2ZpZWxkfX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIGZsb3cgbG9nIHRvIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0xvZ09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdHJhZmZpYyB0byBsb2cuIFlvdSBjYW4gbG9nIHRyYWZmaWMgdGhhdCB0aGUgcmVzb3VyY2UgYWNjZXB0cyBvciByZWplY3RzLCBvciBhbGwgdHJhZmZpYy5cbiAgICogV2hlbiB0aGUgdGFyZ2V0IGlzIGVpdGhlciBgVHJhbnNpdEdhdGV3YXlgIG9yIGBUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRgLCBzZXR0aW5nIHRoZSB0cmFmZmljIHR5cGUgaXMgbm90IHBvc3NpYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3Rndy93b3JraW5nLXdpdGgtZmxvdy1sb2dzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgQUxMXG4gICAqL1xuICByZWFkb25seSB0cmFmZmljVHlwZT86IEZsb3dMb2dUcmFmZmljVHlwZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRoZSBmbG93IGxvZyBkYXRhIGlzIHRvIGJlIHB1Ymxpc2hlZC5cbiAgICogRmxvdyBsb2cgZGF0YSBjYW4gYmUgcHVibGlzaGVkIHRvIENsb3VkV2F0Y2ggTG9ncyBvciBBbWF6b24gUzNcbiAgICpcbiAgICogQGRlZmF1bHQgRmxvd0xvZ0Rlc3RpbmF0aW9uVHlwZS50b0Nsb3VkV2F0Y2hMb2dzKClcbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogRmxvd0xvZ0Rlc3RpbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZmllbGRzIHRvIGluY2x1ZGUgaW4gdGhlIGZsb3cgbG9nIHJlY29yZCwgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgc2hvdWxkIGFwcGVhci5cbiAgICpcbiAgICogSWYgbXVsdGlwbGUgZmllbGRzIGFyZSBzcGVjaWZpZWQsIHRoZXkgd2lsbCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBGb3IgZnVsbCBjb250cm9sIG92ZXIgdGhlIGxpdGVyYWwgbG9nIGZvcm1hdFxuICAgKiBzdHJpbmcsIHBhc3MgYSBzaW5nbGUgZmllbGQgY29uc3RydWN0ZWQgd2l0aCBgTG9nRm9ybWF0LmN1c3RvbSgpYC5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9mbG93LWxvZ3MuaHRtbCNmbG93LWxvZy1yZWNvcmRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBsb2cgZm9ybWF0IGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dGb3JtYXQ/OiBMb2dGb3JtYXRbXTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gaW50ZXJ2YWwgb2YgdGltZSBkdXJpbmcgd2hpY2ggYSBmbG93IG9mIHBhY2tldHMgaXMgY2FwdHVyZWRcbiAgICogYW5kIGFnZ3JlZ2F0ZWQgaW50byBhIGZsb3cgbG9nIHJlY29yZC5cbiAgICpcbiAgICogV2hlbiBjcmVhdGluZyBmbG93IGxvZ3MgZm9yIGEgVHJhbnNpdCBHYXRld2F5IG9yIFRyYW5zaXQgR2F0ZXdheSBBdHRhY2htZW50LFxuICAgKiB0aGlzIHByb3BlcnR5IG11c3QgYmUgT05FX01JTlVURVMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1mbG93bG9nLmh0bWwjY2ZuLWVjMi1mbG93bG9nLW1heGFnZ3JlZ2F0aW9uaW50ZXJ2YWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBGbG93TG9nTWF4QWdncmVnYXRpb25JbnRlcnZhbC5PTkVfTUlOVVRFUyBpZiBjcmVhdGluZyBmbG93IGxvZ3MgZm9yIFRyYW5zaXQgR2F0ZXdheSwgb3RoZXJ3aXNlIEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsLlRFTl9NSU5VVEVTLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdncmVnYXRpb25JbnRlcnZhbD86IEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBWUEMgRmxvdyBMb2dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9nUHJvcHMgZXh0ZW5kcyBGbG93TG9nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRmxvd0xvZ1xuICAgKlxuICAgKiBTaW5jZSB0aGUgRmxvd0xvZyByZXNvdXJjZSBkb2Vzbid0IHN1cHBvcnQgcHJvdmlkaW5nIGEgcGh5c2ljYWwgbmFtZSwgdGhlIHZhbHVlIHByb3ZpZGVkIGhlcmUgd2lsbCBiZSByZWNvcmRlZCBpbiB0aGUgYE5hbWVgIHRhZy5cbiAgICpcbiAgICogQGRlZmF1bHQgQ0RLIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBmbG93TG9nTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzb3VyY2UgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZmxvdyBsb2dcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogRmxvd0xvZ1Jlc291cmNlVHlwZTtcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgYSBGbG93IExvZ1xuICovXG5hYnN0cmFjdCBjbGFzcyBGbG93TG9nQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJRmxvd0xvZyB7XG4gIC8qKlxuICAgKiBUaGUgSWQgb2YgdGhlIFZQQyBGbG93IExvZ1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmxvd0xvZ0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgZmxvd0xvZ091dHB1dHMoKTogRmxvd0xvZ091dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBmbG93TG9nSWQ6IHRoaXMuZmxvd0xvZ0lkLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dMb2dPdXRwdXRzO1xuICB9XG59XG5cbi8qKlxuICogQSBWUEMgZmxvdyBsb2cuXG4gKiBAcmVzb3VyY2UgQVdTOjpFQzI6OkZsb3dMb2dcbiAqL1xuZXhwb3J0IGNsYXNzIEZsb3dMb2cgZXh0ZW5kcyBGbG93TG9nQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBGbG93IExvZyBieSBpdCdzIElkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GbG93TG9nSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGZsb3dMb2dJZDogc3RyaW5nLFxuICApOiBJRmxvd0xvZyB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRmxvd0xvZ0Jhc2Uge1xuICAgICAgcHVibGljIGZsb3dMb2dJZCA9IGZsb3dMb2dJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJZCBvZiB0aGUgVlBDIEZsb3cgTG9nXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmbG93TG9nSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB0byBwdWJsaXNoIGZsb3cgbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldD86IHN0b3JhZ2UuSUJ1Y2tldDtcblxuICAvKipcbiAgICogUzMgYnVja2V0IGtleSBwcmVmaXggdG8gcHVibGlzaCB0aGUgZmxvdyBsb2dzIHVuZGVyXG4gICAqL1xuICByZWFkb25seSBrZXlQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpYW0gcm9sZSB1c2VkIHRvIHB1Ymxpc2ggbG9ncyB0byBDbG91ZFdhdGNoXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWFtUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggTG9ncyBMb2dHcm91cCB0byBwdWJsaXNoIGZsb3cgbG9ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEtpbmVzaXMgRGF0YSBGaXJlaG9zZSBkZWxpdmVyeSBzdHJlYW0gdG8gcHVibGlzaCBmbG93IGxvZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeVN0cmVhbUFybj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBmbG93TG9nLkZsb3dMb2c7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZsb3dMb2dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9XG4gICAgICBwcm9wcy5kZXN0aW5hdGlvbiB8fCBGbG93TG9nRGVzdGluYXRpb24udG9DbG91ZFdhdGNoTG9ncygpO1xuXG4gICAgY29uc3QgZGVzdGluYXRpb25Db25maWcgPSBkZXN0aW5hdGlvbi5iaW5kKHRoaXMsIHRoaXMpO1xuICAgIHRoaXMubG9nR3JvdXAgPSBkZXN0aW5hdGlvbkNvbmZpZy5sb2dHcm91cDtcbiAgICB0aGlzLmJ1Y2tldCA9IGRlc3RpbmF0aW9uQ29uZmlnLnMzQnVja2V0O1xuICAgIHRoaXMuaWFtUm9sZSA9IGRlc3RpbmF0aW9uQ29uZmlnLmlhbVJvbGU7XG4gICAgdGhpcy5rZXlQcmVmaXggPSBkZXN0aW5hdGlvbkNvbmZpZy5rZXlQcmVmaXg7XG4gICAgdGhpcy5kZWxpdmVyeVN0cmVhbUFybiA9IGRlc3RpbmF0aW9uQ29uZmlnLmRlbGl2ZXJ5U3RyZWFtQXJuO1xuXG4gICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHByb3BzLmZsb3dMb2dOYW1lIHx8IHRoaXMubm9kZS5wYXRoKTtcblxuICAgIGxldCBsb2dEZXN0aW5hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmxvZ0dyb3VwKSB7XG4gICAgICBsb2dEZXN0aW5hdGlvbiA9IHRoaXMubG9nR3JvdXAubG9nR3JvdXBBcm47XG4gICAgfVxuICAgIGlmICh0aGlzLmJ1Y2tldCkge1xuICAgICAgbG9nRGVzdGluYXRpb24gPSB0aGlzLmtleVByZWZpeFxuICAgICAgICA/IHRoaXMuYnVja2V0LmFybkZvck9iamVjdHModGhpcy5rZXlQcmVmaXgpXG4gICAgICAgIDogdGhpcy5idWNrZXQuYnVja2V0QXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWxpdmVyeVN0cmVhbUFybikge1xuICAgICAgbG9nRGVzdGluYXRpb24gPSB0aGlzLmRlbGl2ZXJ5U3RyZWFtQXJuO1xuICAgIH1cbiAgICBsZXQgY3VzdG9tTG9nRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmxvZ0Zvcm1hdCkge1xuICAgICAgY3VzdG9tTG9nRm9ybWF0ID0gcHJvcHMubG9nRm9ybWF0XG4gICAgICAgIC5tYXAoKGVsbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbG0udmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiIFwiKTtcbiAgICB9XG5cbiAgICBsZXQgdHJhZmZpY1R5cGU6IEZsb3dMb2dUcmFmZmljVHlwZSB8IHVuZGVmaW5lZCA9XG4gICAgICBwcm9wcy50cmFmZmljVHlwZSA/PyBGbG93TG9nVHJhZmZpY1R5cGUuQUxMO1xuICAgIGlmIChcbiAgICAgIHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZVR5cGUgPT09IFwiVHJhbnNpdEdhdGV3YXlcIiB8fFxuICAgICAgcHJvcHMucmVzb3VyY2VUeXBlLnJlc291cmNlVHlwZSA9PT0gXCJUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRcIlxuICAgICkge1xuICAgICAgaWYgKHByb3BzLnRyYWZmaWNUeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcInRyYWZmaWNUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFRyYW5zaXQgR2F0ZXdheSBhbmQgVHJhbnNpdCBHYXRld2F5IEF0dGFjaG1lbnRcIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMubWF4QWdncmVnYXRpb25JbnRlcnZhbCAmJlxuICAgICAgICBwcm9wcy5tYXhBZ2dyZWdhdGlvbkludGVydmFsICE9PVxuICAgICAgICAgIEZsb3dMb2dNYXhBZ2dyZWdhdGlvbkludGVydmFsLk9ORV9NSU5VVEVcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJtYXhBZ2dyZWdhdGlvbkludGVydmFsIG11c3QgYmUgc2V0IHRvIE9ORV9NSU5VVEUgZm9yIFRyYW5zaXQgR2F0ZXdheSBhbmQgVHJhbnNpdCBHYXRld2F5IEF0dGFjaG1lbnRcIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRyYWZmaWNUeXBlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGNvbnZlcnQgQVdTQ0MgLT4gQVdTIHJlc291cmNlSWRQcm9wc1xuICAgIC8vIFRPRE86IEFkb3B0IEFXU0NDXG4gICAgbGV0IHJlc291cmNlSWRQcm9wczoge1xuICAgICAgZW5pSWQ/OiBzdHJpbmc7XG4gICAgICBzdWJuZXRJZD86IHN0cmluZztcbiAgICAgIHRyYW5zaXRHYXRld2F5SWQ/OiBzdHJpbmc7XG4gICAgICB0cmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRJZD86IHN0cmluZztcbiAgICAgIHZwY0lkPzogc3RyaW5nO1xuICAgIH07XG4gICAgc3dpdGNoIChwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VUeXBlKSB7XG4gICAgICBjYXNlIFwiTmV0d29ya0ludGVyZmFjZVwiOlxuICAgICAgICByZXNvdXJjZUlkUHJvcHMgPSB7IGVuaUlkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJTdWJuZXRcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0geyBzdWJuZXRJZDogcHJvcHMucmVzb3VyY2VUeXBlLnJlc291cmNlSWQgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVHJhbnNpdEdhdGV3YXlcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0geyB0cmFuc2l0R2F0ZXdheUlkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJUcmFuc2l0R2F0ZXdheUF0dGFjaG1lbnRcIjpcbiAgICAgICAgcmVzb3VyY2VJZFByb3BzID0ge1xuICAgICAgICAgIHRyYW5zaXRHYXRld2F5QXR0YWNobWVudElkOiBwcm9wcy5yZXNvdXJjZVR5cGUucmVzb3VyY2VJZCxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVlBDXCI6XG4gICAgICAgIHJlc291cmNlSWRQcm9wcyA9IHsgdnBjSWQ6IHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZUlkIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCByZXNvdXJjZSB0eXBlOiBcIiArIHByb3BzLnJlc291cmNlVHlwZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBmbG93TG9nLkZsb3dMb2codGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBkZXN0aW5hdGlvbk9wdGlvbnM6IGRlc3RpbmF0aW9uQ29uZmlnLmRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgICAgIGlhbVJvbGVBcm46IHRoaXMuaWFtUm9sZSA/IHRoaXMuaWFtUm9sZS5yb2xlQXJuIDogdW5kZWZpbmVkLFxuICAgICAgbG9nRGVzdGluYXRpb25UeXBlOiBkZXN0aW5hdGlvbkNvbmZpZy5sb2dEZXN0aW5hdGlvblR5cGUsXG4gICAgICBtYXhBZ2dyZWdhdGlvbkludGVydmFsOiBwcm9wcy5tYXhBZ2dyZWdhdGlvbkludGVydmFsLFxuICAgICAgaWQ6IHByb3BzLnJlc291cmNlVHlwZS5yZXNvdXJjZUlkLFxuICAgICAgdHJhZmZpY1R5cGUsXG4gICAgICBsb2dGb3JtYXQ6IGN1c3RvbUxvZ0Zvcm1hdCxcbiAgICAgIGxvZ0Rlc3RpbmF0aW9uLFxuICAgICAgLi4ucmVzb3VyY2VJZFByb3BzLFxuICAgIH0pO1xuXG4gICAgLy8gVlBDIHNlcnZpY2UgaW1wbGljaXRseSB0cmllcyB0byBjcmVhdGUgYSBidWNrZXQgcG9saWN5IHdoZW4gYWRkaW5nIGEgdnBjIGZsb3cgbG9nLlxuICAgIC8vIFRvIGF2b2lkIHRoZSByYWNlIGNvbmRpdGlvbiwgd2UgYWRkIGFuIGV4cGxpY2l0IGRlcGVuZGVuY3kgaGVyZS5cbiAgICBpZiAodGhpcy5idWNrZXQ/LnBvbGljeT8ubm9kZS5kZWZhdWx0Q2hpbGQgaW5zdGFuY2VvZiBUZXJyYWZvcm1SZXNvdXJjZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5idWNrZXQ/LnBvbGljeS5ub2RlLmRlZmF1bHRDaGlsZCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogd2UgbXVzdCByZW1vdmUgYSBmbG93IGxvZyBjb25maWd1cmF0aW9uIGZpcnN0IGJlZm9yZSBkZWxldGluZyBvYmplY3RzLlxuICAgIC8vIFRPRE86IFMzIEJ1Y2tldCBvYmplY3QgcmVtb3ZhbCBjdXN0b20gcmVzb3VyY2U/XG4gICAgLy8gY29uc3QgZGVsZXRlT2JqZWN0cyA9IHRoaXMuYnVja2V0Py5ub2RlLnRyeUZpbmRDaGlsZChcbiAgICAvLyAgIFwiQXV0b0RlbGV0ZU9iamVjdHNDdXN0b21SZXNvdXJjZVwiLFxuICAgIC8vICk/Lm5vZGUuZGVmYXVsdENoaWxkO1xuICAgIC8vIGlmIChkZWxldGVPYmplY3RzIGluc3RhbmNlb2YgVGVycmFmb3JtUmVzb3VyY2UpIHtcbiAgICAvLyAgIHJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShkZWxldGVPYmplY3RzKTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmZsb3dMb2dJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,8 +3,8 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.VpcLink = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const provider_aws_1 = require("@
|
|
7
|
-
const
|
|
6
|
+
const provider_aws_1 = require("@cdktn/provider-aws");
|
|
7
|
+
const cdktn_1 = require("cdktn");
|
|
8
8
|
const arn_1 = require("../arn");
|
|
9
9
|
const aws_construct_1 = require("../aws-construct");
|
|
10
10
|
const aws_stack_1 = require("../aws-stack");
|
|
@@ -51,7 +51,7 @@ class VpcLink extends aws_construct_1.AwsConstructBase {
|
|
|
51
51
|
this.resource = new provider_aws_1.apiGatewayVpcLink.ApiGatewayVpcLink(this, "Resource", {
|
|
52
52
|
name: vpcLinkName,
|
|
53
53
|
description: props.description,
|
|
54
|
-
targetArns:
|
|
54
|
+
targetArns: cdktn_1.Lazy.listValue({ produce: () => this.renderTargets() }),
|
|
55
55
|
tags: props.tags,
|
|
56
56
|
});
|
|
57
57
|
if (props.targets) {
|
|
@@ -97,7 +97,7 @@ class VpcLink extends aws_construct_1.AwsConstructBase {
|
|
|
97
97
|
}
|
|
98
98
|
exports.VpcLink = VpcLink;
|
|
99
99
|
_a = JSII_RTTI_SYMBOL_1;
|
|
100
|
-
VpcLink[_a] = { fqn: "terraconstructs.aws.compute.VpcLink", version: "0.2.
|
|
100
|
+
VpcLink[_a] = { fqn: "terraconstructs.aws.compute.VpcLink", version: "0.2.6" };
|
|
101
101
|
class ImportedVpcLink extends aws_construct_1.AwsConstructBase {
|
|
102
102
|
static buildArn(scope, vpcLinkId) {
|
|
103
103
|
const stack = aws_stack_1.AwsStack.ofAwsConstruct(scope);
|
|
@@ -134,4 +134,4 @@ class ImportedVpcLink extends aws_construct_1.AwsConstructBase {
|
|
|
134
134
|
return this._importedTargets.map((t) => t.loadBalancerDnsName);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvdnBjLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBd0Q7QUFDeEQsaUNBQTZCO0FBRTdCLGdDQUFtQztBQUNuQyxvREFJMEI7QUFDMUIsNENBQXdDO0FBOEV4Qzs7OztHQUlHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsZ0NBQWdCO0lBQzNDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FDekIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBS0Q7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXNCLEVBQUU7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUEvQlQsYUFBUSxHQUFHLElBQUksS0FBSyxFQUE4QixDQUFDO1FBaUNsRSxNQUFNLFdBQVcsR0FDZixLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JB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QUFDLENBQUM7UUFaWSxxQkFBZ0IsR0FBaUMsRUFBRSxDQUFDO1FBYW5FLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFHLE9BQXFDO1FBQ3hELGdGQUFnRjtRQUNoRix3REFBd0Q7UUFDeEQsbUdBQW1HO1FBQ25HLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN2Qyx5SEFBeUg7SUFDM0gsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwaUdhdGV3YXlWcGNMaW5rIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSBcIi4uL2NvbXB1dGVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIGZvciB0aGUgVnBjTGluayBjb25zdHJ1Y3QgdGhhdCBtaWdodCBiZSByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0xpbmtPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFBoeXNpY2FsIElEIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSB2cGNMaW5rQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBUEkgR2F0ZXdheSBWcGNMaW5rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZwY0xpbmsgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFBoeXNpY2FsIElEIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0xpbmtJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBETlMgbmFtZXMgZnJvbSB0aGUgdGFyZ2V0IE5MQnMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgX3RhcmdldERuc05hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWRkcyBOZXR3b3JrIExvYWQgQmFsYW5jZXIgdGFyZ2V0cyB0byB0aGlzIFZQQyBMaW5rLlxuICAgKiBAcGFyYW0gdGFyZ2V0cyBUaGUgTmV0d29yayBMb2FkIEJhbGFuY2VycyB0byBhZGQgYXMgdGFyZ2V0cy5cbiAgICovXG4gIGFkZFRhcmdldHMoLi4udGFyZ2V0czogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXSk6IHZvaWQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBWcGNMaW5rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjTGlua1Byb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgdXNlZCB0byBsYWJlbCBhbmQgaWRlbnRpZnkgdGhlIFZQQyBsaW5rLlxuICAgKiBAZGVmYXVsdCAtIGZyaWVuZGx5TmFtZSAoZGVyaXZlZCBmcm9tIGVudmlyb25tZW50TmFtZSBhbmQgY29uc3RydWN0IElEKVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgVlBDIGxpbmsuXG4gICAqIEBkZWZhdWx0IG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5ldHdvcmsgbG9hZCBiYWxhbmNlcnMgb2YgdGhlIFZQQyB0YXJnZXRlZCBieSB0aGUgVlBDIGxpbmsuXG4gICAqIFRoZSBuZXR3b3JrIGxvYWQgYmFsYW5jZXJzIG11c3QgYmUgb3duZWQgYnkgdGhlIHNhbWUgQVdTIGFjY291bnQgb2YgdGhlIEFQSSBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YXJnZXRzLiBVc2UgYGFkZFRhcmdldHNgIHRvIGFkZCB0YXJnZXRzXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRzPzogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjEwMC4wL2RvY3MvcmVzb3VyY2VzL2FwaV9nYXRld2F5X3ZwY19saW5rI3RhZ3MgQXBpR2F0ZXdheVZwY0xpbmsjdGFnc31cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIERlZmluZSBhIG5ldyBWUEMgTGlua1xuICogU3BlY2lmaWVzIGFuIEFQSSBHYXRld2F5IFZQQyBsaW5rIGZvciBhIFJlc3RBcGkgdG8gYWNjZXNzIHJlc291cmNlcyBpbiBhbiBBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIChWUEMpLlxuICogQHJlc291cmNlIEFXUzo6QXBpR2F0ZXdheTo6VnBjTGlua1xuICovXG5leHBvcnQgY2xhc3MgVnBjTGluayBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJVnBjTGluayB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBWUEMgTGluayBieSBpdHMgSWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVZwY0xpbmtJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdnBjTGlua0lkOiBzdHJpbmcsXG4gICk6IElWcGNMaW5rIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydGVkVnBjTGluayhzY29wZSwgaWQsIHZwY0xpbmtJZCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5VnBjTGluay5BcGlHYXRld2F5VnBjTGluaztcbiAgcHJpdmF0ZSByZWFkb25seSBfdGFyZ2V0cyA9IG5ldyBBcnJheTxlbGJ2Mi5JTmV0d29ya0xvYWRCYWxhbmNlcj4oKTtcblxuICAvKipcbiAgICogUGh5c2ljYWwgSUQgb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgdnBjTGlua0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZwY0xpbmtBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICAvKipcbiAgICogU3Ryb25nbHkgdHlwZWQgb3V0cHV0cyBmb3IgdGhlIFZwY0xpbmsuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZwY0xpbmtPdXRwdXRzKCk6IFZwY0xpbmtPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdnBjTGlua0lkOiB0aGlzLnZwY0xpbmtJZCxcbiAgICAgIHZwY0xpbmtBcm46IHRoaXMudnBjTGlua0FybixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnZwY0xpbmtPdXRwdXRzO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZwY0xpbmtQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCB2cGNMaW5rTmFtZSA9XG4gICAgICBwcm9wcy52cGNMaW5rTmFtZSA/PyB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYXBpR2F0ZXdheVZwY0xpbmsuQXBpR2F0ZXdheVZwY0xpbmsodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB2cGNMaW5rTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHRhcmdldEFybnM6IExhenkubGlzdFZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy5yZW5kZXJUYXJnZXRzKCkgfSksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnRhcmdldHMpIHtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0cyguLi5wcm9wcy50YXJnZXRzKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7IHZhbGlkYXRlOiAoKSA9PiB0aGlzLnZhbGlkYXRlVnBjTGluaygpIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRhcmdldHMoLi4udGFyZ2V0czogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXSkge1xuICAgIHRoaXMuX3RhcmdldHMucHVzaCguLi50YXJnZXRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgRE5TIG5hbWVzIGZyb20gdGhlIHRhcmdldCBOTEJzLlxuICAgKiBAaW50ZXJuYWxcbiAgICogKi9cbiAgcHVibGljIGdldCBfdGFyZ2V0RG5zTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIC8vIFRoaXMgYXNzdW1lcyBJTmV0d29ya0xvYWRCYWxhbmNlciBoYXMgYSBsb2FkQmFsYW5jZXJEbnNOYW1lIHByb3BlcnR5LlxuICAgIC8vIElmIElOZXR3b3JrTG9hZEJhbGFuY2VyIGlzIGFuIGludGVyZmFjZSBmb3IgYW4gaW1wb3J0ZWQgcmVzb3VyY2Ugd2l0aG91dCBhIGRpcmVjdCBETlMgbmFtZSBhdHRyaWJ1dGUsXG4gICAgLy8gdGhpcyBtaWdodCBuZWVkIGFkanVzdG1lbnQgb3IgbWlnaHQgbm90IGJlIGRpcmVjdGx5IGF2YWlsYWJsZS5cbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0cy5tYXAoKHQpID0+IHQubG9hZEJhbGFuY2VyRG5zTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVnBjTGluaygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX3RhcmdldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW1wiTm8gdGFyZ2V0cyBhZGRlZCB0byB2cGMgbGluay4gQXQgbGVhc3Qgb25lIHRhcmdldCBpcyByZXF1aXJlZC5cIl07XG4gICAgfVxuICAgIC8vIEFXUyBjdXJyZW50bHkgc3VwcG9ydHMgb25seSAxIHRhcmdldCBBUk4gZm9yIEFQSSBHYXRld2F5IFYxIFZQQyBMaW5rcy5cbiAgICAvLyBSZWY6IGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9hcGlfZ2F0ZXdheV92cGNfbGluayN0YXJnZXRfYXJuc1xuICAgIGlmICh0aGlzLl90YXJnZXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBkZXZpYXRpb24gZnJvbSBDREsgd2hpY2ggYWxsb3dzIG11bHRpcGxlIHRhcmdldHMgaW4gdGhlIGFycmF5LFxuICAgICAgLy8gYnV0IFRlcnJhZm9ybSBwcm92aWRlciBmb3IgYXdzX2FwaV9nYXRld2F5X3ZwY19saW5rIGV4cGVjdHMgYSBsaXN0IHdpdGggb25lIGl0ZW0uXG4gICAgICAvLyBGb3Igbm93LCB3ZSdsbCBhbGxvdyBtdWx0aXBsZSBpbiB0aGUgaW50ZXJuYWwgYXJyYXkgYW5kIGxldCBzeW50aC10aW1lIHJlbmRlcmluZyBwaWNrIHRoZSBmaXJzdCBvbmUgb3IgZXJyb3IgaWYgVEYgcHJvdmlkZXIgY29tcGxhaW5zLlxuICAgICAgLy8gQSBiZXR0ZXIgYXBwcm9hY2ggbWlnaHQgYmUgdG8gZW5mb3JjZSB0aGlzIGluIGFkZFRhcmdldHMgb3IgZHVyaW5nIHZhbGlkYXRpb24uXG4gICAgICAvLyBIb3dldmVyLCB0aGUgQ0RLIENmblZwY0xpbmsgYWxzbyB0YWtlcyBhIGxpc3QsIHNvIHRoaXMgYmVoYXZpb3IgbWlnaHQgYmUgaW50ZW5kZWQgZm9yIGZ1dHVyZSBBV1Mgc3VwcG9ydCBvciBvdGhlciByZWFzb25zLlxuICAgICAgLy8gRm9yIHN0cmljdG5lc3Mgd2l0aCBjdXJyZW50IFRGIHByb3ZpZGVyLCB0aGlzIHZhbGlkYXRpb24gY291bGQgYmU6IHJldHVybiBbJ1ZQQyBMaW5rIGZvciBBUEkgR2F0ZXdheSBWMSBzdXBwb3J0cyBvbmx5IG9uZSB0YXJnZXQgTmV0d29yayBMb2FkIEJhbGFuY2VyLiddO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRhcmdldHMoKTogc3RyaW5nW10ge1xuICAgIC8vIFRlcnJhZm9ybSBwcm92aWRlciBmb3IgYXdzX2FwaV9nYXRld2F5X3ZwY19saW5rIGN1cnJlbnRseSBleHBlY3RzIGEgbGlzdCB3aXRoIGEgc2luZ2xlIHRhcmdldCBBUk4uXG4gICAgLy8gSWYgbXVsdGlwbGUgdGFyZ2V0cyBhcmUgcHJvdmlkZWQsIHdlIG1pZ2h0IHRha2UgdGhlIGZpcnN0IG9uZSwgb3IgbGV0IFRlcnJhZm9ybSBlcnJvciBvdXQuXG4gICAgLy8gRm9yIG5vdywgcmV0dXJuaW5nIGFsbCBBUk5zLCBhbmQgVGVycmFmb3JtIHdpbGwgbGlrZWx5IGZhaWwgaWYgbW9yZSB0aGFuIG9uZSBpcyBwcm92aWRlZCBhbmQgbm90IHN1cHBvcnRlZC5cbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0cy5tYXAoKG5sYikgPT4gbmxiLmxvYWRCYWxhbmNlckFybik7XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRWcGNMaW5rIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElWcGNMaW5rIHtcbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRBcm4oc2NvcGU6IENvbnN0cnVjdCwgdnBjTGlua0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuICAgIHJldHVybiBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJhcGlnYXRld2F5XCIsXG4gICAgICAvLyBGb3IgVnBjTGluaywgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRoZSBzZXJ2aWNlIGVuZHBvaW50LCBub3QgZXhwbGljaXRseSBpbiB0aGUgcmVzb3VyY2Ugc2VnbWVudCBsaWtlIHNvbWUgb3RoZXIgQVJOcy5cbiAgICAgIC8vIFRoZSByZXNvdXJjZSBzZWdtZW50IGlzIC92cGNsaW5rcy97dnBjbGlua19pZH1cbiAgICAgIHJlc291cmNlOiBgdnBjbGlua3MvJHt2cGNMaW5rSWR9YCxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsIC8vIFRoaXMgZm9ybWF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCBiYXNlZCBvbiBhY3R1YWwgVnBjTGluayBBUk4gc3RydWN0dXJlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdnBjTGlua0lkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2cGNMaW5rQXJuOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW1wb3J0ZWRUYXJnZXRzOiBlbGJ2Mi5JTmV0d29ya0xvYWRCYWxhbmNlcltdID0gW107XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFZwY0xpbmtPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdnBjTGlua0lkOiB0aGlzLnZwY0xpbmtJZCxcbiAgICAgIHZwY0xpbmtBcm46IHRoaXMudnBjTGlua0FybixcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdnBjTGlua0lkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogSW1wb3J0ZWRWcGNMaW5rLmJ1aWxkQXJuKHNjb3BlLCB2cGNMaW5rSWQpLFxuICAgIH0pO1xuICAgIHRoaXMudnBjTGlua0lkID0gdnBjTGlua0lkO1xuICAgIHRoaXMudnBjTGlua0FybiA9IEltcG9ydGVkVnBjTGluay5idWlsZEFybihzY29wZSwgdnBjTGlua0lkKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUYXJnZXRzKC4uLnRhcmdldHM6IGVsYnYyLklOZXR3b3JrTG9hZEJhbGFuY2VyW10pIHtcbiAgICAvLyBGb3IgaW1wb3J0ZWQgVnBjTGlua3MsIGFkZGluZyB0YXJnZXRzIHBvc3QtaW1wb3J0IGlzIHR5cGljYWxseSBub3QgbWVhbmluZ2Z1bFxuICAgIC8vIGFzIHRoZSB0YXJnZXRzIGFyZSBwYXJ0IG9mIHRoZSBleGlzdGluZyBBV1MgcmVzb3VyY2UuXG4gICAgLy8gV2UgY2FuIHN0b3JlIHRoZW0gaWYgbmVlZGVkIGZvciBsb2NhbCByZXByZXNlbnRhdGlvbiwgYnV0IGl0IHdvbid0IG1vZGlmeSB0aGUgaW1wb3J0ZWQgcmVzb3VyY2UuXG4gICAgdGhpcy5faW1wb3J0ZWRUYXJnZXRzLnB1c2goLi4udGFyZ2V0cyk7XG4gICAgLy8gY29uc29sZS53YXJuKGBBZGRpbmcgdGFyZ2V0cyB0byBhbiBpbXBvcnRlZCBWcGNMaW5rICgke3RoaXMudnBjTGlua0lkfSkgaGFzIG5vIGVmZmVjdCBvbiB0aGUgZGVwbG95ZWQgQVdTIHJlc291cmNlLmApO1xuICB9XG5cbiAgcHVibGljIGdldCBfdGFyZ2V0RG5zTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pbXBvcnRlZFRhcmdldHMubWFwKCh0KSA9PiB0LmxvYWRCYWxhbmNlckRuc05hbWUpO1xuICB9XG59XG4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvdnBjLWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBd0Q7QUFDeEQsaUNBQTZCO0FBRTdCLGdDQUFtQztBQUNuQyxvREFJMEI7QUFDMUIsNENBQXdDO0FBOEV4Qzs7OztHQUlHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsZ0NBQWdCO0lBQzNDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FDekIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBS0Q7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXNCLEVBQUU7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUEvQlQsYUFBUSxHQUFHLElBQUksS0FBSyxFQUE4QixDQUFDO1FBaUNsRSxNQUFNLFdBQVcsR0FDZixLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JB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QUFDLENBQUM7UUFaWSxxQkFBZ0IsR0FBaUMsRUFBRSxDQUFDO1FBYW5FLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFHLE9BQXFDO1FBQ3hELGdGQUFnRjtRQUNoRix3REFBd0Q7UUFDeEQsbUdBQW1HO1FBQ25HLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN2Qyx5SEFBeUg7SUFDM0gsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwaUdhdGV3YXlWcGNMaW5rIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenkgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSBcIi4uL2NvbXB1dGVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIGZvciB0aGUgVnBjTGluayBjb25zdHJ1Y3QgdGhhdCBtaWdodCBiZSByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0xpbmtPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFBoeXNpY2FsIElEIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSB2cGNMaW5rQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBUEkgR2F0ZXdheSBWcGNMaW5rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZwY0xpbmsgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFBoeXNpY2FsIElEIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0xpbmtJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBETlMgbmFtZXMgZnJvbSB0aGUgdGFyZ2V0IE5MQnMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgX3RhcmdldERuc05hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWRkcyBOZXR3b3JrIExvYWQgQmFsYW5jZXIgdGFyZ2V0cyB0byB0aGlzIFZQQyBMaW5rLlxuICAgKiBAcGFyYW0gdGFyZ2V0cyBUaGUgTmV0d29yayBMb2FkIEJhbGFuY2VycyB0byBhZGQgYXMgdGFyZ2V0cy5cbiAgICovXG4gIGFkZFRhcmdldHMoLi4udGFyZ2V0czogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXSk6IHZvaWQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBWcGNMaW5rXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjTGlua1Byb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgdXNlZCB0byBsYWJlbCBhbmQgaWRlbnRpZnkgdGhlIFZQQyBsaW5rLlxuICAgKiBAZGVmYXVsdCAtIGZyaWVuZGx5TmFtZSAoZGVyaXZlZCBmcm9tIGVudmlyb25tZW50TmFtZSBhbmQgY29uc3RydWN0IElEKVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjTGlua05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgVlBDIGxpbmsuXG4gICAqIEBkZWZhdWx0IG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5ldHdvcmsgbG9hZCBiYWxhbmNlcnMgb2YgdGhlIFZQQyB0YXJnZXRlZCBieSB0aGUgVlBDIGxpbmsuXG4gICAqIFRoZSBuZXR3b3JrIGxvYWQgYmFsYW5jZXJzIG11c3QgYmUgb3duZWQgYnkgdGhlIHNhbWUgQVdTIGFjY291bnQgb2YgdGhlIEFQSSBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YXJnZXRzLiBVc2UgYGFkZFRhcmdldHNgIHRvIGFkZCB0YXJnZXRzXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRzPzogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjEwMC4wL2RvY3MvcmVzb3VyY2VzL2FwaV9nYXRld2F5X3ZwY19saW5rI3RhZ3MgQXBpR2F0ZXdheVZwY0xpbmsjdGFnc31cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIERlZmluZSBhIG5ldyBWUEMgTGlua1xuICogU3BlY2lmaWVzIGFuIEFQSSBHYXRld2F5IFZQQyBsaW5rIGZvciBhIFJlc3RBcGkgdG8gYWNjZXNzIHJlc291cmNlcyBpbiBhbiBBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIChWUEMpLlxuICogQHJlc291cmNlIEFXUzo6QXBpR2F0ZXdheTo6VnBjTGlua1xuICovXG5leHBvcnQgY2xhc3MgVnBjTGluayBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJVnBjTGluayB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBWUEMgTGluayBieSBpdHMgSWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVZwY0xpbmtJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdnBjTGlua0lkOiBzdHJpbmcsXG4gICk6IElWcGNMaW5rIHtcbiAgICByZXR1cm4gbmV3IEltcG9ydGVkVnBjTGluayhzY29wZSwgaWQsIHZwY0xpbmtJZCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5VnBjTGluay5BcGlHYXRld2F5VnBjTGluaztcbiAgcHJpdmF0ZSByZWFkb25seSBfdGFyZ2V0cyA9IG5ldyBBcnJheTxlbGJ2Mi5JTmV0d29ya0xvYWRCYWxhbmNlcj4oKTtcblxuICAvKipcbiAgICogUGh5c2ljYWwgSUQgb2YgdGhlIFZwY0xpbmsgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgdnBjTGlua0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBWcGNMaW5rIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZwY0xpbmtBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICAvKipcbiAgICogU3Ryb25nbHkgdHlwZWQgb3V0cHV0cyBmb3IgdGhlIFZwY0xpbmsuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZwY0xpbmtPdXRwdXRzKCk6IFZwY0xpbmtPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdnBjTGlua0lkOiB0aGlzLnZwY0xpbmtJZCxcbiAgICAgIHZwY0xpbmtBcm46IHRoaXMudnBjTGlua0FybixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnZwY0xpbmtPdXRwdXRzO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZwY0xpbmtQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCB2cGNMaW5rTmFtZSA9XG4gICAgICBwcm9wcy52cGNMaW5rTmFtZSA/PyB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYXBpR2F0ZXdheVZwY0xpbmsuQXBpR2F0ZXdheVZwY0xpbmsodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB2cGNMaW5rTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHRhcmdldEFybnM6IExhenkubGlzdFZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy5yZW5kZXJUYXJnZXRzKCkgfSksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnRhcmdldHMpIHtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0cyguLi5wcm9wcy50YXJnZXRzKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7IHZhbGlkYXRlOiAoKSA9PiB0aGlzLnZhbGlkYXRlVnBjTGluaygpIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRhcmdldHMoLi4udGFyZ2V0czogZWxidjIuSU5ldHdvcmtMb2FkQmFsYW5jZXJbXSkge1xuICAgIHRoaXMuX3RhcmdldHMucHVzaCguLi50YXJnZXRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgRE5TIG5hbWVzIGZyb20gdGhlIHRhcmdldCBOTEJzLlxuICAgKiBAaW50ZXJuYWxcbiAgICogKi9cbiAgcHVibGljIGdldCBfdGFyZ2V0RG5zTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIC8vIFRoaXMgYXNzdW1lcyBJTmV0d29ya0xvYWRCYWxhbmNlciBoYXMgYSBsb2FkQmFsYW5jZXJEbnNOYW1lIHByb3BlcnR5LlxuICAgIC8vIElmIElOZXR3b3JrTG9hZEJhbGFuY2VyIGlzIGFuIGludGVyZmFjZSBmb3IgYW4gaW1wb3J0ZWQgcmVzb3VyY2Ugd2l0aG91dCBhIGRpcmVjdCBETlMgbmFtZSBhdHRyaWJ1dGUsXG4gICAgLy8gdGhpcyBtaWdodCBuZWVkIGFkanVzdG1lbnQgb3IgbWlnaHQgbm90IGJlIGRpcmVjdGx5IGF2YWlsYWJsZS5cbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0cy5tYXAoKHQpID0+IHQubG9hZEJhbGFuY2VyRG5zTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVnBjTGluaygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX3RhcmdldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW1wiTm8gdGFyZ2V0cyBhZGRlZCB0byB2cGMgbGluay4gQXQgbGVhc3Qgb25lIHRhcmdldCBpcyByZXF1aXJlZC5cIl07XG4gICAgfVxuICAgIC8vIEFXUyBjdXJyZW50bHkgc3VwcG9ydHMgb25seSAxIHRhcmdldCBBUk4gZm9yIEFQSSBHYXRld2F5IFYxIFZQQyBMaW5rcy5cbiAgICAvLyBSZWY6IGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9hcGlfZ2F0ZXdheV92cGNfbGluayN0YXJnZXRfYXJuc1xuICAgIGlmICh0aGlzLl90YXJnZXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBkZXZpYXRpb24gZnJvbSBDREsgd2hpY2ggYWxsb3dzIG11bHRpcGxlIHRhcmdldHMgaW4gdGhlIGFycmF5LFxuICAgICAgLy8gYnV0IFRlcnJhZm9ybSBwcm92aWRlciBmb3IgYXdzX2FwaV9nYXRld2F5X3ZwY19saW5rIGV4cGVjdHMgYSBsaXN0IHdpdGggb25lIGl0ZW0uXG4gICAgICAvLyBGb3Igbm93LCB3ZSdsbCBhbGxvdyBtdWx0aXBsZSBpbiB0aGUgaW50ZXJuYWwgYXJyYXkgYW5kIGxldCBzeW50aC10aW1lIHJlbmRlcmluZyBwaWNrIHRoZSBmaXJzdCBvbmUgb3IgZXJyb3IgaWYgVEYgcHJvdmlkZXIgY29tcGxhaW5zLlxuICAgICAgLy8gQSBiZXR0ZXIgYXBwcm9hY2ggbWlnaHQgYmUgdG8gZW5mb3JjZSB0aGlzIGluIGFkZFRhcmdldHMgb3IgZHVyaW5nIHZhbGlkYXRpb24uXG4gICAgICAvLyBIb3dldmVyLCB0aGUgQ0RLIENmblZwY0xpbmsgYWxzbyB0YWtlcyBhIGxpc3QsIHNvIHRoaXMgYmVoYXZpb3IgbWlnaHQgYmUgaW50ZW5kZWQgZm9yIGZ1dHVyZSBBV1Mgc3VwcG9ydCBvciBvdGhlciByZWFzb25zLlxuICAgICAgLy8gRm9yIHN0cmljdG5lc3Mgd2l0aCBjdXJyZW50IFRGIHByb3ZpZGVyLCB0aGlzIHZhbGlkYXRpb24gY291bGQgYmU6IHJldHVybiBbJ1ZQQyBMaW5rIGZvciBBUEkgR2F0ZXdheSBWMSBzdXBwb3J0cyBvbmx5IG9uZSB0YXJnZXQgTmV0d29yayBMb2FkIEJhbGFuY2VyLiddO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRhcmdldHMoKTogc3RyaW5nW10ge1xuICAgIC8vIFRlcnJhZm9ybSBwcm92aWRlciBmb3IgYXdzX2FwaV9nYXRld2F5X3ZwY19saW5rIGN1cnJlbnRseSBleHBlY3RzIGEgbGlzdCB3aXRoIGEgc2luZ2xlIHRhcmdldCBBUk4uXG4gICAgLy8gSWYgbXVsdGlwbGUgdGFyZ2V0cyBhcmUgcHJvdmlkZWQsIHdlIG1pZ2h0IHRha2UgdGhlIGZpcnN0IG9uZSwgb3IgbGV0IFRlcnJhZm9ybSBlcnJvciBvdXQuXG4gICAgLy8gRm9yIG5vdywgcmV0dXJuaW5nIGFsbCBBUk5zLCBhbmQgVGVycmFmb3JtIHdpbGwgbGlrZWx5IGZhaWwgaWYgbW9yZSB0aGFuIG9uZSBpcyBwcm92aWRlZCBhbmQgbm90IHN1cHBvcnRlZC5cbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0cy5tYXAoKG5sYikgPT4gbmxiLmxvYWRCYWxhbmNlckFybik7XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRWcGNMaW5rIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElWcGNMaW5rIHtcbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRBcm4oc2NvcGU6IENvbnN0cnVjdCwgdnBjTGlua0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuICAgIHJldHVybiBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJhcGlnYXRld2F5XCIsXG4gICAgICAvLyBGb3IgVnBjTGluaywgdGhlIHJlZ2lvbiBpcyBwYXJ0IG9mIHRoZSBzZXJ2aWNlIGVuZHBvaW50LCBub3QgZXhwbGljaXRseSBpbiB0aGUgcmVzb3VyY2Ugc2VnbWVudCBsaWtlIHNvbWUgb3RoZXIgQVJOcy5cbiAgICAgIC8vIFRoZSByZXNvdXJjZSBzZWdtZW50IGlzIC92cGNsaW5rcy97dnBjbGlua19pZH1cbiAgICAgIHJlc291cmNlOiBgdnBjbGlua3MvJHt2cGNMaW5rSWR9YCxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsIC8vIFRoaXMgZm9ybWF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCBiYXNlZCBvbiBhY3R1YWwgVnBjTGluayBBUk4gc3RydWN0dXJlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdnBjTGlua0lkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2cGNMaW5rQXJuOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW1wb3J0ZWRUYXJnZXRzOiBlbGJ2Mi5JTmV0d29ya0xvYWRCYWxhbmNlcltdID0gW107XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFZwY0xpbmtPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdnBjTGlua0lkOiB0aGlzLnZwY0xpbmtJZCxcbiAgICAgIHZwY0xpbmtBcm46IHRoaXMudnBjTGlua0FybixcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdnBjTGlua0lkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogSW1wb3J0ZWRWcGNMaW5rLmJ1aWxkQXJuKHNjb3BlLCB2cGNMaW5rSWQpLFxuICAgIH0pO1xuICAgIHRoaXMudnBjTGlua0lkID0gdnBjTGlua0lkO1xuICAgIHRoaXMudnBjTGlua0FybiA9IEltcG9ydGVkVnBjTGluay5idWlsZEFybihzY29wZSwgdnBjTGlua0lkKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUYXJnZXRzKC4uLnRhcmdldHM6IGVsYnYyLklOZXR3b3JrTG9hZEJhbGFuY2VyW10pIHtcbiAgICAvLyBGb3IgaW1wb3J0ZWQgVnBjTGlua3MsIGFkZGluZyB0YXJnZXRzIHBvc3QtaW1wb3J0IGlzIHR5cGljYWxseSBub3QgbWVhbmluZ2Z1bFxuICAgIC8vIGFzIHRoZSB0YXJnZXRzIGFyZSBwYXJ0IG9mIHRoZSBleGlzdGluZyBBV1MgcmVzb3VyY2UuXG4gICAgLy8gV2UgY2FuIHN0b3JlIHRoZW0gaWYgbmVlZGVkIGZvciBsb2NhbCByZXByZXNlbnRhdGlvbiwgYnV0IGl0IHdvbid0IG1vZGlmeSB0aGUgaW1wb3J0ZWQgcmVzb3VyY2UuXG4gICAgdGhpcy5faW1wb3J0ZWRUYXJnZXRzLnB1c2goLi4udGFyZ2V0cyk7XG4gICAgLy8gY29uc29sZS53YXJuKGBBZGRpbmcgdGFyZ2V0cyB0byBhbiBpbXBvcnRlZCBWcGNMaW5rICgke3RoaXMudnBjTGlua0lkfSkgaGFzIG5vIGVmZmVjdCBvbiB0aGUgZGVwbG95ZWQgQVdTIHJlc291cmNlLmApO1xuICB9XG5cbiAgcHVibGljIGdldCBfdGFyZ2V0RG5zTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pbXBvcnRlZFRhcmdldHMubWFwKCh0KSA9PiB0LmxvYWRCYWxhbmNlckRuc05hbWUpO1xuICB9XG59XG4iXX0=
|