@aws-mdaa/datawarehouse 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,282 +9,277 @@ import { Stack } from 'aws-cdk-lib';
9
9
  import { ConfigurationElement } from '@aws-mdaa/config';
10
10
  export interface DataWarehouseConfigContents extends MdaaBaseConfigContents {
11
11
  /**
12
- * Q-ENHANCED-PROPERTY
13
- * Required admin username for the Redshift cluster providing administrative access to the data warehouse. Defines the master user account for cluster administration, database management, and initial user provisioning.
12
+ * Admin username for the Redshift cluster. A secret is automatically generated for the password.
14
13
  *
15
14
  * Use cases: Cluster administration; Database management; Initial user provisioning
16
15
  *
17
- * AWS: Amazon Redshift cluster master username for administrative access and database management
16
+ * AWS: Redshift cluster master username
18
17
  *
19
- * Validation: Must be valid Redshift username; required; used for cluster administrative access
20
- **/
18
+ * Validation: Required; valid Redshift username
19
+ */
21
20
  readonly adminUsername: string;
22
21
  /**
23
- * Q-ENHANCED-PROPERTY
24
- * Required number of days between automatic admin password rotations for enhanced security compliance. Enables automated credential management and compliance with password rotation policies for improved cluster security posture.
22
+ * Days between automatic admin password rotations via Secrets Manager.
25
23
  *
26
- * Use cases: Automated credential rotation; Security policy compliance; Password management automation
24
+ * Use cases: Automated credential rotation; Security compliance; Password policy enforcement
27
25
  *
28
- * AWS: Amazon Redshift automatic password rotation configuration for security management
26
+ * AWS: Redshift admin password rotation via Secrets Manager
29
27
  *
30
- * Validation: Must be positive integer; required; defines password rotation frequency for security compliance
31
- **/
28
+ * Validation: Required; positive integer
29
+ */
32
30
  readonly adminPasswordRotationDays: number;
33
31
  /**
34
- * Q-ENHANCED-PROPERTY
35
- * Optional array of federation configurations for SAML or OIDC identity provider integration with the data warehouse. Enables federated access to Redshift through external identity providers for centralized identity management and SSO capabilities.
32
+ * SAML or OIDC federation configurations for federated Redshift access.
33
+ * Each federation creates an IAM role with SAML trust for dynamic credential generation
34
+ * and group-based cluster access.
36
35
  *
37
- * Use cases: SAML federation setup; OIDC provider integration; Centralized identity management for data warehouse access
36
+ * Use cases: SAML federation setup; SSO integration; Federated cluster access
38
37
  *
39
- * AWS: AWS IAM identity provider configuration for federated Redshift access and SSO integration
38
+ * AWS: IAM SAML identity provider roles for Redshift federated access
40
39
  *
41
- * Validation: Must be array of valid FederationProps if provided; enables federated authentication when specified
42
- **/
40
+ * Validation: Optional; array of valid FederationProps
41
+ */
43
42
  readonly federations?: FederationProps[];
44
43
  /**
45
- * Q-ENHANCED-PROPERTY
46
- * Required array of admin role references with full access to cluster resources including KMS keys and S3 buckets. Provides administrative permissions for data warehouse management, security administration, and resource access control.
44
+ * Admin roles granted full access to cluster resources including KMS keys and S3 buckets.
47
45
  *
48
46
  * Use cases: Administrative access control; Security management; Resource administration
49
47
  *
50
- * AWS: AWS IAM roles with full Redshift cluster and resource access permissions
48
+ * AWS: IAM roles with full Redshift cluster and resource access
51
49
  *
52
- * Validation: Must be array of valid MdaaRoleRef objects; required; roles receive full cluster access
53
- **/
50
+ * Validation: Required; array of valid MdaaRoleRef
51
+ */
54
52
  readonly dataAdminRoles: MdaaRoleRef[];
55
53
  /**
56
- * Q-ENHANCED-PROPERTY
57
- * Optional array of user role references with access to data warehouse S3 buckets for data loading and unloading operations. Enables controlled access to warehouse storage resources for ETL operations and data management workflows.
54
+ * Roles granted read/write access to the data warehouse S3 bucket for data loading/unloading.
58
55
  *
59
- * Use cases: Data loading operations; ETL workflow access; Controlled storage access
56
+ * Use cases: ETL data loading; Data unloading operations; Bucket access for analytics
60
57
  *
61
- * AWS: AWS IAM roles with S3 bucket access for Redshift data operations
58
+ * AWS: IAM roles with S3 bucket access for Redshift data operations
62
59
  *
63
- * Validation: Must be array of valid MdaaRoleRef objects if provided; roles receive bucket access permissions
64
- **/
60
+ * Validation: Optional; array of valid MdaaRoleRef
61
+ */
65
62
  readonly warehouseBucketUserRoles?: MdaaRoleRef[];
66
63
  /**
67
- * Q-ENHANCED-PROPERTY
68
- * Optional array of external execution role references for Redshift cluster operations and integrations. Enables cluster to assume external roles for cross-service operations, data access, and integration with other AWS services.
64
+ * External execution roles associated with the Redshift cluster for cross-service operations.
65
+ * If a role also needs warehouse bucket access, add it to warehouseBucketUserRoles explicitly.
69
66
  *
70
- * Use cases: Cross-service operations; External data access; Service integration workflows
67
+ * Use cases: Cross-service integrations; External data access; Glue/Lambda integration
71
68
  *
72
- * AWS: AWS IAM roles for Redshift cluster cross-service operations and integrations
69
+ * AWS: IAM execution roles associated with the Redshift cluster
73
70
  *
74
- * Validation: Must be array of valid MdaaRoleRef objects if provided; roles must be assumable by Redshift service
75
- **/
71
+ * Validation: Optional; array of valid MdaaRoleRef; roles must be assumable by Redshift
72
+ */
76
73
  readonly executionRoles?: MdaaRoleRef[];
77
74
  /**
78
- * Q-ENHANCED-PROPERTY
79
- * Required VPC ID for Redshift cluster deployment providing network isolation and security controls. Ensures cluster operates within the specified VPC for secure networking and integration with other VPC resources.
75
+ * VPC ID for Redshift cluster deployment. The cluster is deployed within this VPC
76
+ * with network access controlled by security groups.
80
77
  *
81
- * Use cases: VPC network isolation; Secure networking; VPC resource integration
78
+ * Use cases: Network isolation; VPC-based deployment; Secure networking
82
79
  *
83
- * AWS: Amazon VPC for Redshift cluster network isolation and security controls
80
+ * AWS: VPC for Redshift cluster network configuration
84
81
  *
85
- * Validation: Must be valid VPC ID; required; VPC must exist and be accessible
86
- **/
82
+ * Validation: Required; valid VPC ID
83
+ */
87
84
  readonly vpcId: string;
88
85
  /**
89
- * Q-ENHANCED-PROPERTY
90
- * Required array of subnet IDs for Redshift cluster node placement within the VPC. Defines the network subnets where cluster nodes will be deployed for secure VPC connectivity and availability zone distribution.
86
+ * Subnet IDs for Redshift cluster node placement. For automatic cluster relocation,
87
+ * specify at least one subnet per AZ.
91
88
  *
92
- * Use cases: VPC network placement; Subnet-specific deployment; Multi-AZ cluster distribution
89
+ * Use cases: Multi-AZ placement; Subnet-specific deployment; Cluster relocation support
93
90
  *
94
- * AWS: Amazon VPC subnets for Redshift cluster node placement and network configuration
91
+ * AWS: VPC subnets for Redshift subnet group
95
92
  *
96
- * Validation: Must be array of valid subnet IDs; required; subnets must exist in specified VPC
97
- **/
93
+ * Validation: Required; array of valid subnet IDs in the specified VPC
94
+ */
98
95
  readonly subnetIds: string[];
99
96
  /**
100
- * Q-ENHANCED-PROPERTY
101
- * Required security group ingress configuration defining allowed inbound connections to the cluster. Specifies IPv4 CIDR blocks and security group IDs that can connect to the cluster port for controlled network access.
97
+ * Security group ingress rules defining allowed inbound connections to the cluster port.
98
+ * Supports IPv4 CIDR blocks and security group references. All other traffic is blocked.
102
99
  *
103
100
  * Use cases: Network access control; Client connectivity; Security group management
104
101
  *
105
- * AWS: Amazon VPC security group ingress rules for Redshift cluster access control
102
+ * AWS: VPC security group ingress rules for Redshift cluster
106
103
  *
107
- * Validation: Must be object with ipv4 and/or sg arrays; required; defines allowed inbound connections
108
- * **/
104
+ * Validation: Required; object with optional ipv4 and/or sg arrays
105
+ */
109
106
  readonly securityGroupIngress: {
110
107
  ipv4?: string[];
111
108
  sg?: string[];
112
109
  };
113
110
  /**
114
- * Q-ENHANCED-PROPERTY
115
- * Required node type specification determining compute and storage capacity for cluster nodes. Controls the underlying EC2 instance type and affects performance, storage, and cost characteristics of the data warehouse.
111
+ * Redshift node type determining compute and storage capacity (e.g., RA3_4XLARGE).
116
112
  *
117
- * Use cases: Performance optimization; Cost management; Workload-specific sizing
113
+ * Use cases: Performance sizing; Cost optimization; Workload-specific capacity
118
114
  *
119
- * AWS: Amazon Redshift node type for compute and storage capacity configuration
115
+ * AWS: Redshift node type (instance type)
120
116
  *
121
- * Validation: Must be valid Redshift node type; required; determines cluster compute and storage capacity
122
- **/
117
+ * Validation: Required; valid Redshift node type string
118
+ */
123
119
  readonly nodeType: string;
124
120
  /**
125
- * Q-ENHANCED-PROPERTY
126
- * Required number of nodes for the Redshift cluster determining total compute capacity and parallel processing capability. Controls cluster size and affects performance, cost, and data distribution characteristics.
121
+ * Number of nodes in the Redshift cluster.
127
122
  *
128
- * Use cases: Cluster sizing; Performance scaling; Cost optimization
123
+ * Use cases: Cluster sizing; Performance scaling; Cost management
129
124
  *
130
- * AWS: Amazon Redshift cluster node count for compute capacity and parallel processing
125
+ * AWS: Redshift cluster node count
131
126
  *
132
- * Validation: Must be positive integer; required; determines cluster size and processing capacity
133
- **/
127
+ * Validation: Required; positive integer
128
+ */
134
129
  readonly numberOfNodes: number;
135
130
  /**
136
- * Q-ENHANCED-PROPERTY
137
- * Required flag enabling audit logging to S3 for compliance and security monitoring. When enabled, creates dedicated S3 bucket for Redshift audit logs with SSE-S3 encryption as required by Redshift audit logging constraints.
131
+ * Enable audit logging to a dedicated S3 bucket. The audit bucket uses SSE-S3 encryption
132
+ * (not KMS) due to Redshift audit logging requirements.
138
133
  *
139
- * Use cases: Compliance auditing; Security monitoring; Audit trail management
134
+ * Use cases: Compliance auditing; Security monitoring; User activity tracking
140
135
  *
141
- * AWS: Amazon Redshift audit logging to S3 for compliance and security monitoring
136
+ * AWS: Redshift audit logging to S3 with SSE-S3 encryption
142
137
  *
143
- * Validation: Boolean value; required; creates SSE-S3 encrypted audit bucket when enabled
144
- **/
138
+ * Validation: Required; boolean
139
+ */
145
140
  readonly enableAuditLoggingToS3: boolean;
146
141
  /**
147
- * Q-ENHANCED-PROPERTY
148
- * Optional cluster port number for client connections enabling custom port configuration and network security. Defines the TCP port on which the Redshift cluster accepts client connections, supporting custom networking requirements and security configurations.
142
+ * TCP port for client connections to the cluster.
149
143
  *
150
- * Use cases: Custom port configuration; Network security; Client connection management; Port standardization
144
+ * Use cases: Custom port configuration; Network security; Port standardization
151
145
  *
152
- * AWS: Amazon Redshift cluster port configuration for client connection management
146
+ * AWS: Redshift cluster listening port
153
147
  *
154
- * Validation: Must be valid port number if specified; defaults to 54390; must be accessible through security groups
155
- **/
148
+ * Validation: Optional; valid port number
149
+ * @default 5440
150
+ */
156
151
  readonly clusterPort?: number;
157
152
  /**
158
- * Q-ENHANCED-PROPERTY
159
- * Optional flag controlling cluster node configuration for single-node or multi-node deployment. When true, creates multi-node cluster for distributed processing; when false, creates single-node cluster for development or small workloads.
153
+ * Multi-node cluster flag. When true, creates a multi-node cluster for distributed processing;
154
+ * when false, creates a single-node cluster for development or small workloads.
160
155
  *
161
- * Use cases: Cluster architecture selection; Development vs production deployment; Cost optimization; Performance scaling
156
+ * Use cases: Cluster architecture selection; Dev vs production deployment; Cost optimization
162
157
  *
163
- * AWS: Amazon Redshift cluster type configuration for single-node or multi-node deployment
158
+ * AWS: Redshift cluster type (single-node or multi-node)
164
159
  *
165
- * Validation: Boolean value; determines cluster architecture and node distribution; affects performance and cost
166
- **/
160
+ * Validation: Optional; boolean
161
+ */
167
162
  readonly multiNode?: boolean;
168
163
  /**
169
- * Q-ENHANCED-PROPERTY
170
- * Required preferred maintenance window for automated cluster maintenance operations. Specifies the weekly time range during which system maintenance can occur, minimizing impact on business operations and ensuring predictable maintenance scheduling.
164
+ * Weekly maintenance window in ddd:hh24:mi-ddd:hh24:mi format (UTC).
165
+ * Example: 'Sun:23:45-Mon:00:15'.
171
166
  *
172
- * Use cases: Maintenance scheduling; Business continuity; Operational planning; Downtime management
167
+ * Use cases: Maintenance scheduling; Business continuity; Downtime management
173
168
  *
174
- * AWS: Amazon Redshift preferred maintenance window for automated system maintenance
169
+ * AWS: Redshift preferred maintenance window
175
170
  *
176
- * Validation: Must be valid time window format (e.g., 'Sun:23:45-Mon:00:15'); required; defines maintenance scheduling
177
- **/
171
+ * Validation: Required; valid time window format
172
+ */
178
173
  readonly preferredMaintenanceWindow: string;
179
174
  /**
180
- * Q-ENHANCED-PROPERTY
181
- * Optional parameter group parameters for cluster configuration customization enabling performance tuning and operational optimization. Provides additional cluster parameters while security-sensitive values are automatically overridden for compliance and security.
175
+ * Additional cluster parameter group parameters for performance tuning.
176
+ * Security-sensitive values are automatically overridden for compliance (e.g., SSL enforcement).
182
177
  *
183
- * Use cases: Performance tuning; Operational optimization; Custom cluster configuration; Workload-specific settings
178
+ * Use cases: Performance tuning; Custom cluster configuration; Workload optimization
184
179
  *
185
- * AWS: Amazon Redshift parameter group configuration for cluster customization and optimization
180
+ * AWS: Redshift parameter group parameters
186
181
  *
187
- * Validation: Must be object with string key-value pairs if provided; security-sensitive values will be overridden
188
- * **/
182
+ * Validation: Optional; string key-value pairs
183
+ */
189
184
  readonly parameterGroupParams?: Record<string, string>;
190
185
  /**
191
- * Q-ENHANCED-PROPERTY
192
- * Optional workload management configuration for query performance optimization and resource allocation. Defines WLM configuration elements for managing query queues, memory allocation, and concurrency for optimal cluster performance.
186
+ * Workload management (WLM) configuration for query queue management and resource allocation.
193
187
  *
194
- * Use cases: Query performance optimization; Resource allocation; Workload management; Concurrency control
188
+ * Use cases: Query performance optimization; Concurrency control; Resource allocation
195
189
  *
196
- * AWS: Amazon Redshift workload management configuration for query optimization and resource control
190
+ * AWS: Redshift WLM configuration
197
191
  *
198
- * Validation: Must be array of valid ConfigurationElement objects if provided; defines WLM configuration
199
- **/
192
+ * Validation: Optional; array of valid ConfigurationElement
193
+ */
200
194
  readonly workloadManagement?: ConfigurationElement[];
201
195
  /**
202
- * Q-ENHANCED-PROPERTY
203
- * Optional additional KMS key ARNs for cluster bucket encryption enabling multi-key encryption scenarios and cross-account access. Provides additional KMS keys that can be used for writing to the cluster bucket beyond the default cluster encryption key.
196
+ * Additional KMS key ARNs allowed to write to the cluster bucket.
197
+ * Useful for allowing Glue jobs or other services to write encrypted data to the warehouse bucket.
204
198
  *
205
- * Use cases: Multi-key encryption; Cross-account access; Additional encryption keys; Flexible key management
199
+ * Use cases: Cross-service encryption; Glue job integration; Multi-key bucket access
206
200
  *
207
- * AWS: AWS KMS key ARNs for additional cluster bucket encryption and access control
201
+ * AWS: KMS key ARNs for warehouse bucket encryption
208
202
  *
209
- * Validation: Must be array of valid KMS key ARNs if provided; keys must be accessible for bucket operations
210
- **/
203
+ * Validation: Optional; array of valid KMS key ARNs
204
+ */
211
205
  readonly additionalBucketKmsKeyArns?: string[];
212
206
  /**
213
- * Q-ENHANCED-PROPERTY
214
- * Optional scheduled actions for automated cluster pause and resume operations enabling cost optimization and operational automation. Defines scheduled pause and resume actions for the cluster to optimize costs during non-business hours.
207
+ * Scheduled actions for automated cluster pause/resume operations.
208
+ * Each action specifies a target action (pauseCluster/resumeCluster), cron schedule,
209
+ * and active time window.
215
210
  *
216
- * Use cases: Cost optimization; Automated operations; Scheduled maintenance; Resource management
211
+ * Use cases: Cost optimization via scheduled pause; Automated operations; Business-hours scheduling
217
212
  *
218
- * AWS: Amazon Redshift scheduled actions for automated cluster pause and resume operations
213
+ * AWS: Redshift scheduled actions for cluster lifecycle management
219
214
  *
220
- * Validation: Must be array of valid ScheduledActionProps if provided; defines automated cluster operations
221
- **/
215
+ * Validation: Optional; array of valid ScheduledActionProps
216
+ */
222
217
  readonly scheduledActions?: ScheduledActionProps[];
223
218
  /**
224
- * Q-ENHANCED-PROPERTY
225
- * Optional database users for automated user creation and credential management enabling secure user provisioning and rotation. Creates database users in Redshift with automated credential storage and rotation through Secrets Manager and SSM.
219
+ * Database users created in Redshift with credentials stored in Secrets Manager.
220
+ * Supports automated secret rotation on a configurable cycle.
226
221
  *
227
- * Use cases: Automated user provisioning; Credential management; Security automation; User lifecycle management
222
+ * Use cases: Automated user provisioning; Credential management; Secret rotation
228
223
  *
229
- * AWS: Amazon Redshift database users with Secrets Manager and SSM integration for credential management
224
+ * AWS: Redshift database users with Secrets Manager credential storage and rotation
230
225
  *
231
- * Validation: Must be array of valid DatabaseUsersProps if provided; enables automated user and credential management
232
- * **/
226
+ * Validation: Optional; array of valid DatabaseUsersProps
227
+ */
233
228
  readonly databaseUsers?: DatabaseUsersProps[];
234
229
  /**
235
- * Q-ENHANCED-PROPERTY
236
- * Optional flag controlling data warehouse bucket creation for cluster storage operations. When enabled (default), creates dedicated S3 bucket for data warehouse operations including data loading, unloading, and backup storage.
230
+ * Control whether a dedicated S3 bucket is created for warehouse data operations
231
+ * (loading, unloading, backup).
237
232
  *
238
- * Use cases: Storage resource management; Data operations; Backup storage; ETL operations
233
+ * Use cases: Storage resource management; Data operations; Bucket lifecycle control
239
234
  *
240
- * AWS: Amazon S3 bucket creation for Redshift data warehouse storage operations
235
+ * AWS: S3 bucket for Redshift data warehouse operations
241
236
  *
242
- * Validation: Boolean value; defaults to true; creates dedicated warehouse bucket when enabled
243
- **/
237
+ * Validation: Optional; boolean
238
+ * @default true
239
+ */
244
240
  readonly createWarehouseBucket?: boolean;
245
241
  /**
246
- * Q-ENHANCED-PROPERTY
247
- * Optional retention period for automated snapshots enabling backup management and data protection. Specifies the number of days automated snapshots are retained for point-in-time recovery and data protection requirements.
242
+ * Number of days automated snapshots are retained (1-35). Set to 0 to disable.
248
243
  *
249
- * Use cases: Backup management; Data protection; Point-in-time recovery; Compliance requirements
244
+ * Use cases: Backup management; Point-in-time recovery; Data protection compliance
250
245
  *
251
- * AWS: Amazon Redshift automated snapshot retention for backup management and data protection
246
+ * AWS: Redshift automated snapshot retention
252
247
  *
253
- * Validation: Must be positive integer if specified; defines snapshot retention period for backup management
254
- **/
248
+ * Validation: Optional; integer 0-35
249
+ * @default 1
250
+ */
255
251
  readonly automatedSnapshotRetentionDays?: number;
256
252
  /**
257
- * Q-ENHANCED-PROPERTY
258
- * Optional event notification configuration for cluster and scheduled action monitoring enabling operational awareness and alerting. Configures SNS notifications for cluster events and scheduled action status for operational monitoring.
253
+ * Event notification configuration for cluster and scheduled action monitoring.
254
+ * Configures SNS notifications with email delivery, severity filtering, and event category selection.
259
255
  *
260
- * Use cases: Operational monitoring; Event alerting; Cluster status tracking; Automated notifications
256
+ * Use cases: Operational monitoring; Event alerting; Cluster status tracking
261
257
  *
262
- * AWS: Amazon SNS notifications for Redshift cluster events and operational monitoring
258
+ * AWS: SNS notifications for Redshift cluster events
263
259
  *
264
- * Validation: Must be valid EventNotificationsProps if provided; enables cluster event monitoring and alerting
265
- **/
260
+ * Validation: Optional; valid EventNotificationsProps
261
+ */
266
262
  readonly eventNotifications?: EventNotificationsProps;
267
263
  /**
268
- * Q-ENHANCED-PROPERTY
269
- * Optional database name for initial database creation enabling custom database naming and organization. Specifies the name of the initial database created in the cluster, supporting custom naming conventions and database organization.
264
+ * Initial database name created in the cluster.
270
265
  *
271
- * Use cases: Custom database naming; Database organization; Initial database setup; Naming conventions
266
+ * Use cases: Custom database naming; Initial database setup
272
267
  *
273
- * AWS: Amazon Redshift initial database name for cluster database creation and organization
268
+ * AWS: Redshift initial database
274
269
  *
275
- * Validation: Must be valid database name if specified; defaults to "default_db"; used for initial database creation
276
- **/
270
+ * Validation: Optional; valid database name
271
+ * @default "default_db"
272
+ */
277
273
  readonly dbName?: string;
278
274
  /**
279
- * Q-ENHANCED-PROPERTY
280
- * Optional snapshot identifier for cluster restoration from existing snapshot enabling disaster recovery and data migration. Specifies the snapshot ID to restore the cluster from, supporting disaster recovery scenarios and data migration operations.
275
+ * Snapshot identifier for cluster restoration. Only provide when restoring from an existing snapshot.
281
276
  *
282
- * Use cases: Disaster recovery; Data migration; Cluster restoration; Backup recovery
277
+ * Use cases: Disaster recovery; Data migration; Cluster restoration
283
278
  *
284
- * AWS: Amazon Redshift snapshot identifier for cluster restoration and disaster recovery
279
+ * AWS: Redshift snapshot for cluster restoration
285
280
  *
286
- * Validation: Must be valid snapshot identifier if specified; only provide when restoring from snapshot
287
- **/
281
+ * Validation: Optional; valid snapshot identifier
282
+ */
288
283
  readonly snapshotIdentifier?: string;
289
284
  /**
290
285
  * ownerAccount Refers to snapshot owner account. Applicable if restoring the cluster from snapshot and snapshot belongs to another account
@@ -316,7 +311,7 @@ export declare class DataWarehouseConfigParser extends MdaaAppConfigParser<DataW
316
311
  readonly parameterGroupParams: Record<string, string>;
317
312
  readonly workloadManagement: ConfigurationElement[];
318
313
  readonly additionalBucketKmsKeyArns?: string[];
319
- static readonly defaultClusterPort = 54390;
314
+ static readonly defaultClusterPort = 5440;
320
315
  readonly scheduledActions: ScheduledActionProps[];
321
316
  readonly createWarehouseBucket?: boolean;
322
317
  readonly automatedSnapshotRetentionDays?: number;
@@ -44,5 +44,5 @@ class DataWarehouseConfigParser extends app_1.MdaaAppConfigParser {
44
44
  }
45
45
  }
46
46
  exports.DataWarehouseConfigParser = DataWarehouseConfigParser;
47
- DataWarehouseConfigParser.defaultClusterPort = 54390;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXdhcmVob3VzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhd2FyZWhvdXNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCx1Q0FBc0c7QUFVdEcscURBQXFEO0FBZ1NyRCxNQUFhLHlCQUEwQixTQUFRLHlCQUFnRDtJQThCN0YsWUFBWSxLQUFZLEVBQUUsS0FBK0I7UUFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBc0IsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUM7UUFDL0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7UUFDNUQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUM7UUFDaEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVc7WUFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVztZQUNqQyxDQUFDLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQztRQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0I7WUFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CO1lBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9HLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDO1FBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztRQUN2RSxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsQ0FBQztRQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDO1FBQ3JFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLDRCQUE0QixDQUFDO0lBQ3ZGLENBQUM7O0FBaEVILDhEQWlFQztBQTdDd0IsNENBQWtCLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgTWRhYUFwcENvbmZpZ1BhcnNlciwgTWRhYUFwcENvbmZpZ1BhcnNlclByb3BzLCBNZGFhQmFzZUNvbmZpZ0NvbnRlbnRzIH0gZnJvbSAnQGF3cy1tZGFhL2FwcCc7XG5pbXBvcnQge1xuICBGZWRlcmF0aW9uUHJvcHMsXG4gIFNjaGVkdWxlZEFjdGlvblByb3BzLFxuICBEYXRhYmFzZVVzZXJzUHJvcHMsXG4gIEV2ZW50Tm90aWZpY2F0aW9uc1Byb3BzLFxufSBmcm9tICdAYXdzLW1kYWEvZGF0YXdhcmVob3VzZS1sMy1jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgTWRhYVJvbGVSZWYgfSBmcm9tICdAYXdzLW1kYWEvaWFtLXJvbGUtaGVscGVyJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ2Fqdic7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbmZpZ1NjaGVtYSBmcm9tICcuL2NvbmZpZy1zY2hlbWEuanNvbic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uRWxlbWVudCB9IGZyb20gJ0Bhd3MtbWRhYS9jb25maWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFXYXJlaG91c2VDb25maWdDb250ZW50cyBleHRlbmRzIE1kYWFCYXNlQ29uZmlnQ29udGVudHMge1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBSZXF1aXJlZCBhZG1pbiB1c2VybmFtZSBmb3IgdGhlIFJlZHNoaWZ0IGNsdXN0ZXIgcHJvdmlkaW5nIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byB0aGUgZGF0YSB3YXJlaG91c2UuIERlZmluZXMgdGhlIG1hc3RlciB1c2VyIGFjY291bnQgZm9yIGNsdXN0ZXIgYWRtaW5pc3RyYXRpb24sIGRhdGFiYXNlIG1hbmFnZW1lbnQsIGFuZCBpbml0aWFsIHVzZXIgcHJvdmlzaW9uaW5nLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENsdXN0ZXIgYWRtaW5pc3RyYXRpb247IERhdGFiYXNlIG1hbmFnZW1lbnQ7IEluaXRpYWwgdXNlciBwcm92aXNpb25pbmdcbiAgICpcbiAgICogQVdTOiBBbWF6b24gUmVkc2hpZnQgY2x1c3RlciBtYXN0ZXIgdXNlcm5hbWUgZm9yIGFkbWluaXN0cmF0aXZlIGFjY2VzcyBhbmQgZGF0YWJhc2UgbWFuYWdlbWVudFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIFJlZHNoaWZ0IHVzZXJuYW1lOyByZXF1aXJlZDsgdXNlZCBmb3IgY2x1c3RlciBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3NcbiAgICoqL1xuICByZWFkb25seSBhZG1pblVzZXJuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIFJlcXVpcmVkIG51bWJlciBvZiBkYXlzIGJldHdlZW4gYXV0b21hdGljIGFkbWluIHBhc3N3b3JkIHJvdGF0aW9ucyBmb3IgZW5oYW5jZWQgc2VjdXJpdHkgY29tcGxpYW5jZS4gRW5hYmxlcyBhdXRvbWF0ZWQgY3JlZGVudGlhbCBtYW5hZ2VtZW50IGFuZCBjb21wbGlhbmNlIHdpdGggcGFzc3dvcmQgcm90YXRpb24gcG9saWNpZXMgZm9yIGltcHJvdmVkIGNsdXN0ZXIgc2VjdXJpdHkgcG9zdHVyZS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBBdXRvbWF0ZWQgY3JlZGVudGlhbCByb3RhdGlvbjsgU2VjdXJpdHkgcG9saWN5IGNvbXBsaWFuY2U7IFBhc3N3b3JkIG1hbmFnZW1lbnQgYXV0b21hdGlvblxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBhdXRvbWF0aWMgcGFzc3dvcmQgcm90YXRpb24gY29uZmlndXJhdGlvbiBmb3Igc2VjdXJpdHkgbWFuYWdlbWVudFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHBvc2l0aXZlIGludGVnZXI7IHJlcXVpcmVkOyBkZWZpbmVzIHBhc3N3b3JkIHJvdGF0aW9uIGZyZXF1ZW5jeSBmb3Igc2VjdXJpdHkgY29tcGxpYW5jZVxuICAgKiovXG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgYXJyYXkgb2YgZmVkZXJhdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgU0FNTCBvciBPSURDIGlkZW50aXR5IHByb3ZpZGVyIGludGVncmF0aW9uIHdpdGggdGhlIGRhdGEgd2FyZWhvdXNlLiBFbmFibGVzIGZlZGVyYXRlZCBhY2Nlc3MgdG8gUmVkc2hpZnQgdGhyb3VnaCBleHRlcm5hbCBpZGVudGl0eSBwcm92aWRlcnMgZm9yIGNlbnRyYWxpemVkIGlkZW50aXR5IG1hbmFnZW1lbnQgYW5kIFNTTyBjYXBhYmlsaXRpZXMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogU0FNTCBmZWRlcmF0aW9uIHNldHVwOyBPSURDIHByb3ZpZGVyIGludGVncmF0aW9uOyBDZW50cmFsaXplZCBpZGVudGl0eSBtYW5hZ2VtZW50IGZvciBkYXRhIHdhcmVob3VzZSBhY2Nlc3NcbiAgICpcbiAgICogQVdTOiBBV1MgSUFNIGlkZW50aXR5IHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gZm9yIGZlZGVyYXRlZCBSZWRzaGlmdCBhY2Nlc3MgYW5kIFNTTyBpbnRlZ3JhdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIGFycmF5IG9mIHZhbGlkIEZlZGVyYXRpb25Qcm9wcyBpZiBwcm92aWRlZDsgZW5hYmxlcyBmZWRlcmF0ZWQgYXV0aGVudGljYXRpb24gd2hlbiBzcGVjaWZpZWRcbiAgICoqL1xuICByZWFkb25seSBmZWRlcmF0aW9ucz86IEZlZGVyYXRpb25Qcm9wc1tdO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBSZXF1aXJlZCBhcnJheSBvZiBhZG1pbiByb2xlIHJlZmVyZW5jZXMgd2l0aCBmdWxsIGFjY2VzcyB0byBjbHVzdGVyIHJlc291cmNlcyBpbmNsdWRpbmcgS01TIGtleXMgYW5kIFMzIGJ1Y2tldHMuIFByb3ZpZGVzIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zIGZvciBkYXRhIHdhcmVob3VzZSBtYW5hZ2VtZW50LCBzZWN1cml0eSBhZG1pbmlzdHJhdGlvbiwgYW5kIHJlc291cmNlIGFjY2VzcyBjb250cm9sLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IEFkbWluaXN0cmF0aXZlIGFjY2VzcyBjb250cm9sOyBTZWN1cml0eSBtYW5hZ2VtZW50OyBSZXNvdXJjZSBhZG1pbmlzdHJhdGlvblxuICAgKlxuICAgKiBBV1M6IEFXUyBJQU0gcm9sZXMgd2l0aCBmdWxsIFJlZHNoaWZ0IGNsdXN0ZXIgYW5kIHJlc291cmNlIGFjY2VzcyBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIGFycmF5IG9mIHZhbGlkIE1kYWFSb2xlUmVmIG9iamVjdHM7IHJlcXVpcmVkOyByb2xlcyByZWNlaXZlIGZ1bGwgY2x1c3RlciBhY2Nlc3NcbiAgICoqL1xuICByZWFkb25seSBkYXRhQWRtaW5Sb2xlczogTWRhYVJvbGVSZWZbXTtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgYXJyYXkgb2YgdXNlciByb2xlIHJlZmVyZW5jZXMgd2l0aCBhY2Nlc3MgdG8gZGF0YSB3YXJlaG91c2UgUzMgYnVja2V0cyBmb3IgZGF0YSBsb2FkaW5nIGFuZCB1bmxvYWRpbmcgb3BlcmF0aW9ucy4gRW5hYmxlcyBjb250cm9sbGVkIGFjY2VzcyB0byB3YXJlaG91c2Ugc3RvcmFnZSByZXNvdXJjZXMgZm9yIEVUTCBvcGVyYXRpb25zIGFuZCBkYXRhIG1hbmFnZW1lbnQgd29ya2Zsb3dzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IERhdGEgbG9hZGluZyBvcGVyYXRpb25zOyBFVEwgd29ya2Zsb3cgYWNjZXNzOyBDb250cm9sbGVkIHN0b3JhZ2UgYWNjZXNzXG4gICAqXG4gICAqIEFXUzogQVdTIElBTSByb2xlcyB3aXRoIFMzIGJ1Y2tldCBhY2Nlc3MgZm9yIFJlZHNoaWZ0IGRhdGEgb3BlcmF0aW9uc1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIGFycmF5IG9mIHZhbGlkIE1kYWFSb2xlUmVmIG9iamVjdHMgaWYgcHJvdmlkZWQ7IHJvbGVzIHJlY2VpdmUgYnVja2V0IGFjY2VzcyBwZXJtaXNzaW9uc1xuICAgKiovXG4gIHJlYWRvbmx5IHdhcmVob3VzZUJ1Y2tldFVzZXJSb2xlcz86IE1kYWFSb2xlUmVmW107XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIGFycmF5IG9mIGV4dGVybmFsIGV4ZWN1dGlvbiByb2xlIHJlZmVyZW5jZXMgZm9yIFJlZHNoaWZ0IGNsdXN0ZXIgb3BlcmF0aW9ucyBhbmQgaW50ZWdyYXRpb25zLiBFbmFibGVzIGNsdXN0ZXIgdG8gYXNzdW1lIGV4dGVybmFsIHJvbGVzIGZvciBjcm9zcy1zZXJ2aWNlIG9wZXJhdGlvbnMsIGRhdGEgYWNjZXNzLCBhbmQgaW50ZWdyYXRpb24gd2l0aCBvdGhlciBBV1Mgc2VydmljZXMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ3Jvc3Mtc2VydmljZSBvcGVyYXRpb25zOyBFeHRlcm5hbCBkYXRhIGFjY2VzczsgU2VydmljZSBpbnRlZ3JhdGlvbiB3b3JrZmxvd3NcbiAgICpcbiAgICogQVdTOiBBV1MgSUFNIHJvbGVzIGZvciBSZWRzaGlmdCBjbHVzdGVyIGNyb3NzLXNlcnZpY2Ugb3BlcmF0aW9ucyBhbmQgaW50ZWdyYXRpb25zXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgYXJyYXkgb2YgdmFsaWQgTWRhYVJvbGVSZWYgb2JqZWN0cyBpZiBwcm92aWRlZDsgcm9sZXMgbXVzdCBiZSBhc3N1bWFibGUgYnkgUmVkc2hpZnQgc2VydmljZVxuICAgKiovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGVzPzogTWRhYVJvbGVSZWZbXTtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogUmVxdWlyZWQgVlBDIElEIGZvciBSZWRzaGlmdCBjbHVzdGVyIGRlcGxveW1lbnQgcHJvdmlkaW5nIG5ldHdvcmsgaXNvbGF0aW9uIGFuZCBzZWN1cml0eSBjb250cm9scy4gRW5zdXJlcyBjbHVzdGVyIG9wZXJhdGVzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIFZQQyBmb3Igc2VjdXJlIG5ldHdvcmtpbmcgYW5kIGludGVncmF0aW9uIHdpdGggb3RoZXIgVlBDIHJlc291cmNlcy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBWUEMgbmV0d29yayBpc29sYXRpb247IFNlY3VyZSBuZXR3b3JraW5nOyBWUEMgcmVzb3VyY2UgaW50ZWdyYXRpb25cbiAgICpcbiAgICogQVdTOiBBbWF6b24gVlBDIGZvciBSZWRzaGlmdCBjbHVzdGVyIG5ldHdvcmsgaXNvbGF0aW9uIGFuZCBzZWN1cml0eSBjb250cm9sc1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIFZQQyBJRDsgcmVxdWlyZWQ7IFZQQyBtdXN0IGV4aXN0IGFuZCBiZSBhY2Nlc3NpYmxlXG4gICAqKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogUmVxdWlyZWQgYXJyYXkgb2Ygc3VibmV0IElEcyBmb3IgUmVkc2hpZnQgY2x1c3RlciBub2RlIHBsYWNlbWVudCB3aXRoaW4gdGhlIFZQQy4gRGVmaW5lcyB0aGUgbmV0d29yayBzdWJuZXRzIHdoZXJlIGNsdXN0ZXIgbm9kZXMgd2lsbCBiZSBkZXBsb3llZCBmb3Igc2VjdXJlIFZQQyBjb25uZWN0aXZpdHkgYW5kIGF2YWlsYWJpbGl0eSB6b25lIGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBWUEMgbmV0d29yayBwbGFjZW1lbnQ7IFN1Ym5ldC1zcGVjaWZpYyBkZXBsb3ltZW50OyBNdWx0aS1BWiBjbHVzdGVyIGRpc3RyaWJ1dGlvblxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBWUEMgc3VibmV0cyBmb3IgUmVkc2hpZnQgY2x1c3RlciBub2RlIHBsYWNlbWVudCBhbmQgbmV0d29yayBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgYXJyYXkgb2YgdmFsaWQgc3VibmV0IElEczsgcmVxdWlyZWQ7IHN1Ym5ldHMgbXVzdCBleGlzdCBpbiBzcGVjaWZpZWQgVlBDXG4gICAqKi9cbiAgcmVhZG9ubHkgc3VibmV0SWRzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogUmVxdWlyZWQgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBjb25maWd1cmF0aW9uIGRlZmluaW5nIGFsbG93ZWQgaW5ib3VuZCBjb25uZWN0aW9ucyB0byB0aGUgY2x1c3Rlci4gU3BlY2lmaWVzIElQdjQgQ0lEUiBibG9ja3MgYW5kIHNlY3VyaXR5IGdyb3VwIElEcyB0aGF0IGNhbiBjb25uZWN0IHRvIHRoZSBjbHVzdGVyIHBvcnQgZm9yIGNvbnRyb2xsZWQgbmV0d29yayBhY2Nlc3MuXG4gICAqXG4gICAqIFVzZSBjYXNlczogTmV0d29yayBhY2Nlc3MgY29udHJvbDsgQ2xpZW50IGNvbm5lY3Rpdml0eTsgU2VjdXJpdHkgZ3JvdXAgbWFuYWdlbWVudFxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBWUEMgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBydWxlcyBmb3IgUmVkc2hpZnQgY2x1c3RlciBhY2Nlc3MgY29udHJvbFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIG9iamVjdCB3aXRoIGlwdjQgYW5kL29yIHNnIGFycmF5czsgcmVxdWlyZWQ7IGRlZmluZXMgYWxsb3dlZCBpbmJvdW5kIGNvbm5lY3Rpb25zXG4gICAqICAgKiovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJbmdyZXNzOiB7IGlwdjQ/OiBzdHJpbmdbXTsgc2c/OiBzdHJpbmdbXSB9O1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBSZXF1aXJlZCBub2RlIHR5cGUgc3BlY2lmaWNhdGlvbiBkZXRlcm1pbmluZyBjb21wdXRlIGFuZCBzdG9yYWdlIGNhcGFjaXR5IGZvciBjbHVzdGVyIG5vZGVzLiBDb250cm9scyB0aGUgdW5kZXJseWluZyBFQzIgaW5zdGFuY2UgdHlwZSBhbmQgYWZmZWN0cyBwZXJmb3JtYW5jZSwgc3RvcmFnZSwgYW5kIGNvc3QgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBkYXRhIHdhcmVob3VzZS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb247IENvc3QgbWFuYWdlbWVudDsgV29ya2xvYWQtc3BlY2lmaWMgc2l6aW5nXG4gICAqXG4gICAqIEFXUzogQW1hem9uIFJlZHNoaWZ0IG5vZGUgdHlwZSBmb3IgY29tcHV0ZSBhbmQgc3RvcmFnZSBjYXBhY2l0eSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgUmVkc2hpZnQgbm9kZSB0eXBlOyByZXF1aXJlZDsgZGV0ZXJtaW5lcyBjbHVzdGVyIGNvbXB1dGUgYW5kIHN0b3JhZ2UgY2FwYWNpdHlcbiAgICoqL1xuICByZWFkb25seSBub2RlVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBSZXF1aXJlZCBudW1iZXIgb2Ygbm9kZXMgZm9yIHRoZSBSZWRzaGlmdCBjbHVzdGVyIGRldGVybWluaW5nIHRvdGFsIGNvbXB1dGUgY2FwYWNpdHkgYW5kIHBhcmFsbGVsIHByb2Nlc3NpbmcgY2FwYWJpbGl0eS4gQ29udHJvbHMgY2x1c3RlciBzaXplIGFuZCBhZmZlY3RzIHBlcmZvcm1hbmNlLCBjb3N0LCBhbmQgZGF0YSBkaXN0cmlidXRpb24gY2hhcmFjdGVyaXN0aWNzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENsdXN0ZXIgc2l6aW5nOyBQZXJmb3JtYW5jZSBzY2FsaW5nOyBDb3N0IG9wdGltaXphdGlvblxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBjbHVzdGVyIG5vZGUgY291bnQgZm9yIGNvbXB1dGUgY2FwYWNpdHkgYW5kIHBhcmFsbGVsIHByb2Nlc3NpbmdcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBwb3NpdGl2ZSBpbnRlZ2VyOyByZXF1aXJlZDsgZGV0ZXJtaW5lcyBjbHVzdGVyIHNpemUgYW5kIHByb2Nlc3NpbmcgY2FwYWNpdHlcbiAgICoqL1xuICByZWFkb25seSBudW1iZXJPZk5vZGVzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIFJlcXVpcmVkIGZsYWcgZW5hYmxpbmcgYXVkaXQgbG9nZ2luZyB0byBTMyBmb3IgY29tcGxpYW5jZSBhbmQgc2VjdXJpdHkgbW9uaXRvcmluZy4gV2hlbiBlbmFibGVkLCBjcmVhdGVzIGRlZGljYXRlZCBTMyBidWNrZXQgZm9yIFJlZHNoaWZ0IGF1ZGl0IGxvZ3Mgd2l0aCBTU0UtUzMgZW5jcnlwdGlvbiBhcyByZXF1aXJlZCBieSBSZWRzaGlmdCBhdWRpdCBsb2dnaW5nIGNvbnN0cmFpbnRzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENvbXBsaWFuY2UgYXVkaXRpbmc7IFNlY3VyaXR5IG1vbml0b3Jpbmc7IEF1ZGl0IHRyYWlsIG1hbmFnZW1lbnRcbiAgICpcbiAgICogQVdTOiBBbWF6b24gUmVkc2hpZnQgYXVkaXQgbG9nZ2luZyB0byBTMyBmb3IgY29tcGxpYW5jZSBhbmQgc2VjdXJpdHkgbW9uaXRvcmluZ1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBCb29sZWFuIHZhbHVlOyByZXF1aXJlZDsgY3JlYXRlcyBTU0UtUzMgZW5jcnlwdGVkIGF1ZGl0IGJ1Y2tldCB3aGVuIGVuYWJsZWRcbiAgICoqL1xuICByZWFkb25seSBlbmFibGVBdWRpdExvZ2dpbmdUb1MzOiBib29sZWFuO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCBjbHVzdGVyIHBvcnQgbnVtYmVyIGZvciBjbGllbnQgY29ubmVjdGlvbnMgZW5hYmxpbmcgY3VzdG9tIHBvcnQgY29uZmlndXJhdGlvbiBhbmQgbmV0d29yayBzZWN1cml0eS4gRGVmaW5lcyB0aGUgVENQIHBvcnQgb24gd2hpY2ggdGhlIFJlZHNoaWZ0IGNsdXN0ZXIgYWNjZXB0cyBjbGllbnQgY29ubmVjdGlvbnMsIHN1cHBvcnRpbmcgY3VzdG9tIG5ldHdvcmtpbmcgcmVxdWlyZW1lbnRzIGFuZCBzZWN1cml0eSBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBDdXN0b20gcG9ydCBjb25maWd1cmF0aW9uOyBOZXR3b3JrIHNlY3VyaXR5OyBDbGllbnQgY29ubmVjdGlvbiBtYW5hZ2VtZW50OyBQb3J0IHN0YW5kYXJkaXphdGlvblxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBjbHVzdGVyIHBvcnQgY29uZmlndXJhdGlvbiBmb3IgY2xpZW50IGNvbm5lY3Rpb24gbWFuYWdlbWVudFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIHBvcnQgbnVtYmVyIGlmIHNwZWNpZmllZDsgZGVmYXVsdHMgdG8gNTQzOTA7IG11c3QgYmUgYWNjZXNzaWJsZSB0aHJvdWdoIHNlY3VyaXR5IGdyb3Vwc1xuICAgKiovXG4gIHJlYWRvbmx5IGNsdXN0ZXJQb3J0PzogbnVtYmVyO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCBmbGFnIGNvbnRyb2xsaW5nIGNsdXN0ZXIgbm9kZSBjb25maWd1cmF0aW9uIGZvciBzaW5nbGUtbm9kZSBvciBtdWx0aS1ub2RlIGRlcGxveW1lbnQuIFdoZW4gdHJ1ZSwgY3JlYXRlcyBtdWx0aS1ub2RlIGNsdXN0ZXIgZm9yIGRpc3RyaWJ1dGVkIHByb2Nlc3Npbmc7IHdoZW4gZmFsc2UsIGNyZWF0ZXMgc2luZ2xlLW5vZGUgY2x1c3RlciBmb3IgZGV2ZWxvcG1lbnQgb3Igc21hbGwgd29ya2xvYWRzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENsdXN0ZXIgYXJjaGl0ZWN0dXJlIHNlbGVjdGlvbjsgRGV2ZWxvcG1lbnQgdnMgcHJvZHVjdGlvbiBkZXBsb3ltZW50OyBDb3N0IG9wdGltaXphdGlvbjsgUGVyZm9ybWFuY2Ugc2NhbGluZ1xuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBjbHVzdGVyIHR5cGUgY29uZmlndXJhdGlvbiBmb3Igc2luZ2xlLW5vZGUgb3IgbXVsdGktbm9kZSBkZXBsb3ltZW50XG4gICAqXG4gICAqIFZhbGlkYXRpb246IEJvb2xlYW4gdmFsdWU7IGRldGVybWluZXMgY2x1c3RlciBhcmNoaXRlY3R1cmUgYW5kIG5vZGUgZGlzdHJpYnV0aW9uOyBhZmZlY3RzIHBlcmZvcm1hbmNlIGFuZCBjb3N0XG4gICAqKi9cbiAgcmVhZG9ubHkgbXVsdGlOb2RlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogUmVxdWlyZWQgcHJlZmVycmVkIG1haW50ZW5hbmNlIHdpbmRvdyBmb3IgYXV0b21hdGVkIGNsdXN0ZXIgbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucy4gU3BlY2lmaWVzIHRoZSB3ZWVrbHkgdGltZSByYW5nZSBkdXJpbmcgd2hpY2ggc3lzdGVtIG1haW50ZW5hbmNlIGNhbiBvY2N1ciwgbWluaW1pemluZyBpbXBhY3Qgb24gYnVzaW5lc3Mgb3BlcmF0aW9ucyBhbmQgZW5zdXJpbmcgcHJlZGljdGFibGUgbWFpbnRlbmFuY2Ugc2NoZWR1bGluZy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBNYWludGVuYW5jZSBzY2hlZHVsaW5nOyBCdXNpbmVzcyBjb250aW51aXR5OyBPcGVyYXRpb25hbCBwbGFubmluZzsgRG93bnRpbWUgbWFuYWdlbWVudFxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBwcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93IGZvciBhdXRvbWF0ZWQgc3lzdGVtIG1haW50ZW5hbmNlXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgdGltZSB3aW5kb3cgZm9ybWF0IChlLmcuLCAnU3VuOjIzOjQ1LU1vbjowMDoxNScpOyByZXF1aXJlZDsgZGVmaW5lcyBtYWludGVuYW5jZSBzY2hlZHVsaW5nXG4gICAqKi9cbiAgcmVhZG9ubHkgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHN0cmluZztcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgcGFyYW1ldGVyIGdyb3VwIHBhcmFtZXRlcnMgZm9yIGNsdXN0ZXIgY29uZmlndXJhdGlvbiBjdXN0b21pemF0aW9uIGVuYWJsaW5nIHBlcmZvcm1hbmNlIHR1bmluZyBhbmQgb3BlcmF0aW9uYWwgb3B0aW1pemF0aW9uLiBQcm92aWRlcyBhZGRpdGlvbmFsIGNsdXN0ZXIgcGFyYW1ldGVycyB3aGlsZSBzZWN1cml0eS1zZW5zaXRpdmUgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IG92ZXJyaWRkZW4gZm9yIGNvbXBsaWFuY2UgYW5kIHNlY3VyaXR5LlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IFBlcmZvcm1hbmNlIHR1bmluZzsgT3BlcmF0aW9uYWwgb3B0aW1pemF0aW9uOyBDdXN0b20gY2x1c3RlciBjb25maWd1cmF0aW9uOyBXb3JrbG9hZC1zcGVjaWZpYyBzZXR0aW5nc1xuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBwYXJhbWV0ZXIgZ3JvdXAgY29uZmlndXJhdGlvbiBmb3IgY2x1c3RlciBjdXN0b21pemF0aW9uIGFuZCBvcHRpbWl6YXRpb25cbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzIGlmIHByb3ZpZGVkOyBzZWN1cml0eS1zZW5zaXRpdmUgdmFsdWVzIHdpbGwgYmUgb3ZlcnJpZGRlblxuICAgKiAgICoqL1xuICByZWFkb25seSBwYXJhbWV0ZXJHcm91cFBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIHdvcmtsb2FkIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBmb3IgcXVlcnkgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIGFuZCByZXNvdXJjZSBhbGxvY2F0aW9uLiBEZWZpbmVzIFdMTSBjb25maWd1cmF0aW9uIGVsZW1lbnRzIGZvciBtYW5hZ2luZyBxdWVyeSBxdWV1ZXMsIG1lbW9yeSBhbGxvY2F0aW9uLCBhbmQgY29uY3VycmVuY3kgZm9yIG9wdGltYWwgY2x1c3RlciBwZXJmb3JtYW5jZS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBRdWVyeSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb247IFJlc291cmNlIGFsbG9jYXRpb247IFdvcmtsb2FkIG1hbmFnZW1lbnQ7IENvbmN1cnJlbmN5IGNvbnRyb2xcbiAgICpcbiAgICogQVdTOiBBbWF6b24gUmVkc2hpZnQgd29ya2xvYWQgbWFuYWdlbWVudCBjb25maWd1cmF0aW9uIGZvciBxdWVyeSBvcHRpbWl6YXRpb24gYW5kIHJlc291cmNlIGNvbnRyb2xcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBhcnJheSBvZiB2YWxpZCBDb25maWd1cmF0aW9uRWxlbWVudCBvYmplY3RzIGlmIHByb3ZpZGVkOyBkZWZpbmVzIFdMTSBjb25maWd1cmF0aW9uXG4gICAqKi9cbiAgcmVhZG9ubHkgd29ya2xvYWRNYW5hZ2VtZW50PzogQ29uZmlndXJhdGlvbkVsZW1lbnRbXTtcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgYWRkaXRpb25hbCBLTVMga2V5IEFSTnMgZm9yIGNsdXN0ZXIgYnVja2V0IGVuY3J5cHRpb24gZW5hYmxpbmcgbXVsdGkta2V5IGVuY3J5cHRpb24gc2NlbmFyaW9zIGFuZCBjcm9zcy1hY2NvdW50IGFjY2Vzcy4gUHJvdmlkZXMgYWRkaXRpb25hbCBLTVMga2V5cyB0aGF0IGNhbiBiZSB1c2VkIGZvciB3cml0aW5nIHRvIHRoZSBjbHVzdGVyIGJ1Y2tldCBiZXlvbmQgdGhlIGRlZmF1bHQgY2x1c3RlciBlbmNyeXB0aW9uIGtleS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBNdWx0aS1rZXkgZW5jcnlwdGlvbjsgQ3Jvc3MtYWNjb3VudCBhY2Nlc3M7IEFkZGl0aW9uYWwgZW5jcnlwdGlvbiBrZXlzOyBGbGV4aWJsZSBrZXkgbWFuYWdlbWVudFxuICAgKlxuICAgKiBBV1M6IEFXUyBLTVMga2V5IEFSTnMgZm9yIGFkZGl0aW9uYWwgY2x1c3RlciBidWNrZXQgZW5jcnlwdGlvbiBhbmQgYWNjZXNzIGNvbnRyb2xcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBhcnJheSBvZiB2YWxpZCBLTVMga2V5IEFSTnMgaWYgcHJvdmlkZWQ7IGtleXMgbXVzdCBiZSBhY2Nlc3NpYmxlIGZvciBidWNrZXQgb3BlcmF0aW9uc1xuICAgKiovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxCdWNrZXRLbXNLZXlBcm5zPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIHNjaGVkdWxlZCBhY3Rpb25zIGZvciBhdXRvbWF0ZWQgY2x1c3RlciBwYXVzZSBhbmQgcmVzdW1lIG9wZXJhdGlvbnMgZW5hYmxpbmcgY29zdCBvcHRpbWl6YXRpb24gYW5kIG9wZXJhdGlvbmFsIGF1dG9tYXRpb24uIERlZmluZXMgc2NoZWR1bGVkIHBhdXNlIGFuZCByZXN1bWUgYWN0aW9ucyBmb3IgdGhlIGNsdXN0ZXIgdG8gb3B0aW1pemUgY29zdHMgZHVyaW5nIG5vbi1idXNpbmVzcyBob3Vycy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBDb3N0IG9wdGltaXphdGlvbjsgQXV0b21hdGVkIG9wZXJhdGlvbnM7IFNjaGVkdWxlZCBtYWludGVuYW5jZTsgUmVzb3VyY2UgbWFuYWdlbWVudFxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBzY2hlZHVsZWQgYWN0aW9ucyBmb3IgYXV0b21hdGVkIGNsdXN0ZXIgcGF1c2UgYW5kIHJlc3VtZSBvcGVyYXRpb25zXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgYXJyYXkgb2YgdmFsaWQgU2NoZWR1bGVkQWN0aW9uUHJvcHMgaWYgcHJvdmlkZWQ7IGRlZmluZXMgYXV0b21hdGVkIGNsdXN0ZXIgb3BlcmF0aW9uc1xuICAgKiovXG4gIHJlYWRvbmx5IHNjaGVkdWxlZEFjdGlvbnM/OiBTY2hlZHVsZWRBY3Rpb25Qcm9wc1tdO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCBkYXRhYmFzZSB1c2VycyBmb3IgYXV0b21hdGVkIHVzZXIgY3JlYXRpb24gYW5kIGNyZWRlbnRpYWwgbWFuYWdlbWVudCBlbmFibGluZyBzZWN1cmUgdXNlciBwcm92aXNpb25pbmcgYW5kIHJvdGF0aW9uLiBDcmVhdGVzIGRhdGFiYXNlIHVzZXJzIGluIFJlZHNoaWZ0IHdpdGggYXV0b21hdGVkIGNyZWRlbnRpYWwgc3RvcmFnZSBhbmQgcm90YXRpb24gdGhyb3VnaCBTZWNyZXRzIE1hbmFnZXIgYW5kIFNTTS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBBdXRvbWF0ZWQgdXNlciBwcm92aXNpb25pbmc7IENyZWRlbnRpYWwgbWFuYWdlbWVudDsgU2VjdXJpdHkgYXV0b21hdGlvbjsgVXNlciBsaWZlY3ljbGUgbWFuYWdlbWVudFxuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBkYXRhYmFzZSB1c2VycyB3aXRoIFNlY3JldHMgTWFuYWdlciBhbmQgU1NNIGludGVncmF0aW9uIGZvciBjcmVkZW50aWFsIG1hbmFnZW1lbnRcbiAgICpcbiAgICogVmFsaWRhdGlvbjogTXVzdCBiZSBhcnJheSBvZiB2YWxpZCBEYXRhYmFzZVVzZXJzUHJvcHMgaWYgcHJvdmlkZWQ7IGVuYWJsZXMgYXV0b21hdGVkIHVzZXIgYW5kIGNyZWRlbnRpYWwgbWFuYWdlbWVudFxuICAgKiAgICoqL1xuICByZWFkb25seSBkYXRhYmFzZVVzZXJzPzogRGF0YWJhc2VVc2Vyc1Byb3BzW107XG4gIC8qKlxuICAgKiBRLUVOSEFOQ0VELVBST1BFUlRZXG4gICAqIE9wdGlvbmFsIGZsYWcgY29udHJvbGxpbmcgZGF0YSB3YXJlaG91c2UgYnVja2V0IGNyZWF0aW9uIGZvciBjbHVzdGVyIHN0b3JhZ2Ugb3BlcmF0aW9ucy4gV2hlbiBlbmFibGVkIChkZWZhdWx0KSwgY3JlYXRlcyBkZWRpY2F0ZWQgUzMgYnVja2V0IGZvciBkYXRhIHdhcmVob3VzZSBvcGVyYXRpb25zIGluY2x1ZGluZyBkYXRhIGxvYWRpbmcsIHVubG9hZGluZywgYW5kIGJhY2t1cCBzdG9yYWdlLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IFN0b3JhZ2UgcmVzb3VyY2UgbWFuYWdlbWVudDsgRGF0YSBvcGVyYXRpb25zOyBCYWNrdXAgc3RvcmFnZTsgRVRMIG9wZXJhdGlvbnNcbiAgICpcbiAgICogQVdTOiBBbWF6b24gUzMgYnVja2V0IGNyZWF0aW9uIGZvciBSZWRzaGlmdCBkYXRhIHdhcmVob3VzZSBzdG9yYWdlIG9wZXJhdGlvbnNcbiAgICpcbiAgICogVmFsaWRhdGlvbjogQm9vbGVhbiB2YWx1ZTsgZGVmYXVsdHMgdG8gdHJ1ZTsgY3JlYXRlcyBkZWRpY2F0ZWQgd2FyZWhvdXNlIGJ1Y2tldCB3aGVuIGVuYWJsZWRcbiAgICoqL1xuICByZWFkb25seSBjcmVhdGVXYXJlaG91c2VCdWNrZXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCByZXRlbnRpb24gcGVyaW9kIGZvciBhdXRvbWF0ZWQgc25hcHNob3RzIGVuYWJsaW5nIGJhY2t1cCBtYW5hZ2VtZW50IGFuZCBkYXRhIHByb3RlY3Rpb24uIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRheXMgYXV0b21hdGVkIHNuYXBzaG90cyBhcmUgcmV0YWluZWQgZm9yIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgYW5kIGRhdGEgcHJvdGVjdGlvbiByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQmFja3VwIG1hbmFnZW1lbnQ7IERhdGEgcHJvdGVjdGlvbjsgUG9pbnQtaW4tdGltZSByZWNvdmVyeTsgQ29tcGxpYW5jZSByZXF1aXJlbWVudHNcbiAgICpcbiAgICogQVdTOiBBbWF6b24gUmVkc2hpZnQgYXV0b21hdGVkIHNuYXBzaG90IHJldGVudGlvbiBmb3IgYmFja3VwIG1hbmFnZW1lbnQgYW5kIGRhdGEgcHJvdGVjdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHBvc2l0aXZlIGludGVnZXIgaWYgc3BlY2lmaWVkOyBkZWZpbmVzIHNuYXBzaG90IHJldGVudGlvbiBwZXJpb2QgZm9yIGJhY2t1cCBtYW5hZ2VtZW50XG4gICAqKi9cbiAgcmVhZG9ubHkgYXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xuICAvKipcbiAgICogUS1FTkhBTkNFRC1QUk9QRVJUWVxuICAgKiBPcHRpb25hbCBldmVudCBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbiBmb3IgY2x1c3RlciBhbmQgc2NoZWR1bGVkIGFjdGlvbiBtb25pdG9yaW5nIGVuYWJsaW5nIG9wZXJhdGlvbmFsIGF3YXJlbmVzcyBhbmQgYWxlcnRpbmcuIENvbmZpZ3VyZXMgU05TIG5vdGlmaWNhdGlvbnMgZm9yIGNsdXN0ZXIgZXZlbnRzIGFuZCBzY2hlZHVsZWQgYWN0aW9uIHN0YXR1cyBmb3Igb3BlcmF0aW9uYWwgbW9uaXRvcmluZy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBPcGVyYXRpb25hbCBtb25pdG9yaW5nOyBFdmVudCBhbGVydGluZzsgQ2x1c3RlciBzdGF0dXMgdHJhY2tpbmc7IEF1dG9tYXRlZCBub3RpZmljYXRpb25zXG4gICAqXG4gICAqIEFXUzogQW1hem9uIFNOUyBub3RpZmljYXRpb25zIGZvciBSZWRzaGlmdCBjbHVzdGVyIGV2ZW50cyBhbmQgb3BlcmF0aW9uYWwgbW9uaXRvcmluZ1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIEV2ZW50Tm90aWZpY2F0aW9uc1Byb3BzIGlmIHByb3ZpZGVkOyBlbmFibGVzIGNsdXN0ZXIgZXZlbnQgbW9uaXRvcmluZyBhbmQgYWxlcnRpbmdcbiAgICoqL1xuICByZWFkb25seSBldmVudE5vdGlmaWNhdGlvbnM/OiBFdmVudE5vdGlmaWNhdGlvbnNQcm9wcztcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgZGF0YWJhc2UgbmFtZSBmb3IgaW5pdGlhbCBkYXRhYmFzZSBjcmVhdGlvbiBlbmFibGluZyBjdXN0b20gZGF0YWJhc2UgbmFtaW5nIGFuZCBvcmdhbml6YXRpb24uIFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgaW5pdGlhbCBkYXRhYmFzZSBjcmVhdGVkIGluIHRoZSBjbHVzdGVyLCBzdXBwb3J0aW5nIGN1c3RvbSBuYW1pbmcgY29udmVudGlvbnMgYW5kIGRhdGFiYXNlIG9yZ2FuaXphdGlvbi5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBDdXN0b20gZGF0YWJhc2UgbmFtaW5nOyBEYXRhYmFzZSBvcmdhbml6YXRpb247IEluaXRpYWwgZGF0YWJhc2Ugc2V0dXA7IE5hbWluZyBjb252ZW50aW9uc1xuICAgKlxuICAgKiBBV1M6IEFtYXpvbiBSZWRzaGlmdCBpbml0aWFsIGRhdGFiYXNlIG5hbWUgZm9yIGNsdXN0ZXIgZGF0YWJhc2UgY3JlYXRpb24gYW5kIG9yZ2FuaXphdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBNdXN0IGJlIHZhbGlkIGRhdGFiYXNlIG5hbWUgaWYgc3BlY2lmaWVkOyBkZWZhdWx0cyB0byBcImRlZmF1bHRfZGJcIjsgdXNlZCBmb3IgaW5pdGlhbCBkYXRhYmFzZSBjcmVhdGlvblxuICAgKiovXG4gIHJlYWRvbmx5IGRiTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFEtRU5IQU5DRUQtUFJPUEVSVFlcbiAgICogT3B0aW9uYWwgc25hcHNob3QgaWRlbnRpZmllciBmb3IgY2x1c3RlciByZXN0b3JhdGlvbiBmcm9tIGV4aXN0aW5nIHNuYXBzaG90IGVuYWJsaW5nIGRpc2FzdGVyIHJlY292ZXJ5IGFuZCBkYXRhIG1pZ3JhdGlvbi4gU3BlY2lmaWVzIHRoZSBzbmFwc2hvdCBJRCB0byByZXN0b3JlIHRoZSBjbHVzdGVyIGZyb20sIHN1cHBvcnRpbmcgZGlzYXN0ZXIgcmVjb3Zlcnkgc2NlbmFyaW9zIGFuZCBkYXRhIG1pZ3JhdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IERpc2FzdGVyIHJlY292ZXJ5OyBEYXRhIG1pZ3JhdGlvbjsgQ2x1c3RlciByZXN0b3JhdGlvbjsgQmFja3VwIHJlY292ZXJ5XG4gICAqXG4gICAqIEFXUzogQW1hem9uIFJlZHNoaWZ0IHNuYXBzaG90IGlkZW50aWZpZXIgZm9yIGNsdXN0ZXIgcmVzdG9yYXRpb24gYW5kIGRpc2FzdGVyIHJlY292ZXJ5XG4gICAqXG4gICAqIFZhbGlkYXRpb246IE11c3QgYmUgdmFsaWQgc25hcHNob3QgaWRlbnRpZmllciBpZiBzcGVjaWZpZWQ7IG9ubHkgcHJvdmlkZSB3aGVuIHJlc3RvcmluZyBmcm9tIHNuYXBzaG90XG4gICAqKi9cbiAgcmVhZG9ubHkgc25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nO1xuICAvKipcbiAgICogb3duZXJBY2NvdW50IFJlZmVycyB0byBzbmFwc2hvdCBvd25lciBhY2NvdW50LiBBcHBsaWNhYmxlIGlmIHJlc3RvcmluZyB0aGUgY2x1c3RlciBmcm9tIHNuYXBzaG90IGFuZCBzbmFwc2hvdCBiZWxvbmdzIHRvIGFub3RoZXIgYWNjb3VudFxuICAgKiBPcHRpb25hbCAtIEJ5IGRlZmF1bHQsIHNuYXBzaG90cyBhcmUgc2VhcmNoZWQgd2l0aGluIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RPd25lckFjY291bnQ/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgcmVkc2hpZnRNYW5hZ2VNYXN0ZXJQYXNzd29yZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhV2FyZWhvdXNlQ29uZmlnUGFyc2VyIGV4dGVuZHMgTWRhYUFwcENvbmZpZ1BhcnNlcjxEYXRhV2FyZWhvdXNlQ29uZmlnQ29udGVudHM+IHtcbiAgcHVibGljIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXM6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGZlZGVyYXRpb25zOiBGZWRlcmF0aW9uUHJvcHNbXTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlVXNlcnM6IERhdGFiYXNlVXNlcnNQcm9wc1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUFkbWluUm9sZVJlZnM6IE1kYWFSb2xlUmVmW107XG4gIHB1YmxpYyByZWFkb25seSB3YXJlaG91c2VCdWNrZXRVc2VyUm9sZVJlZnM/OiBNZGFhUm9sZVJlZltdO1xuICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZVJlZnM/OiBNZGFhUm9sZVJlZltdO1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJQb3J0OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGVuYWJsZUF1ZGl0TG9nZ2luZ1RvUzM6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBudW1iZXJPZk5vZGVzOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBtdWx0aU5vZGU/OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJbmdyZXNzOiB7IGlwdjQ/OiBzdHJpbmdbXTsgc2c/OiBzdHJpbmdbXSB9O1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyR3JvdXBQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHB1YmxpYyByZWFkb25seSB3b3JrbG9hZE1hbmFnZW1lbnQ6IENvbmZpZ3VyYXRpb25FbGVtZW50W107XG4gIHB1YmxpYyByZWFkb25seSBhZGRpdGlvbmFsQnVja2V0S21zS2V5QXJucz86IHN0cmluZ1tdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRDbHVzdGVyUG9ydCA9IDU0MzkwO1xuICBwdWJsaWMgcmVhZG9ubHkgc2NoZWR1bGVkQWN0aW9uczogU2NoZWR1bGVkQWN0aW9uUHJvcHNbXTtcbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZVdhcmVob3VzZUJ1Y2tldD86IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBhdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBldmVudE5vdGlmaWNhdGlvbnM/OiBFdmVudE5vdGlmaWNhdGlvbnNQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IGRiTmFtZT86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90T3duZXJBY2NvdW50PzogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVkc2hpZnRNYW5hZ2VNYXN0ZXJQYXNzd29yZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc3RhY2s6IFN0YWNrLCBwcm9wczogTWRhYUFwcENvbmZpZ1BhcnNlclByb3BzKSB7XG4gICAgc3VwZXIoc3RhY2ssIHByb3BzLCBjb25maWdTY2hlbWEgYXMgU2NoZW1hKTtcblxuICAgIHRoaXMuYWRtaW5Vc2VybmFtZSA9IHRoaXMuY29uZmlnQ29udGVudHMuYWRtaW5Vc2VybmFtZTtcbiAgICB0aGlzLmFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXM7XG4gICAgdGhpcy5mZWRlcmF0aW9ucyA9IHRoaXMuY29uZmlnQ29udGVudHMuZmVkZXJhdGlvbnMgPyB0aGlzLmNvbmZpZ0NvbnRlbnRzLmZlZGVyYXRpb25zIDogW107XG4gICAgdGhpcy5kYXRhQWRtaW5Sb2xlUmVmcyA9IHRoaXMuY29uZmlnQ29udGVudHMuZGF0YUFkbWluUm9sZXM7XG4gICAgdGhpcy53YXJlaG91c2VCdWNrZXRVc2VyUm9sZVJlZnMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLndhcmVob3VzZUJ1Y2tldFVzZXJSb2xlcztcbiAgICB0aGlzLmV4ZWN1dGlvblJvbGVSZWZzID0gdGhpcy5jb25maWdDb250ZW50cy5leGVjdXRpb25Sb2xlcztcbiAgICB0aGlzLnZwY0lkID0gdGhpcy5jb25maWdDb250ZW50cy52cGNJZDtcbiAgICB0aGlzLnN1Ym5ldElkcyA9IHRoaXMuY29uZmlnQ29udGVudHMuc3VibmV0SWRzO1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cEluZ3Jlc3MgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnNlY3VyaXR5R3JvdXBJbmdyZXNzO1xuICAgIHRoaXMubm9kZVR5cGUgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLm5vZGVUeXBlO1xuICAgIHRoaXMubnVtYmVyT2ZOb2RlcyA9IHRoaXMuY29uZmlnQ29udGVudHMubnVtYmVyT2ZOb2RlcztcbiAgICB0aGlzLmVuYWJsZUF1ZGl0TG9nZ2luZ1RvUzMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmVuYWJsZUF1ZGl0TG9nZ2luZ1RvUzM7XG4gICAgdGhpcy5jbHVzdGVyUG9ydCA9IHRoaXMuY29uZmlnQ29udGVudHMuY2x1c3RlclBvcnRcbiAgICAgID8gdGhpcy5jb25maWdDb250ZW50cy5jbHVzdGVyUG9ydFxuICAgICAgOiBEYXRhV2FyZWhvdXNlQ29uZmlnUGFyc2VyLmRlZmF1bHRDbHVzdGVyUG9ydDtcbiAgICB0aGlzLm11bHRpTm9kZSA9IHRoaXMuY29uZmlnQ29udGVudHMubXVsdGlOb2RlO1xuICAgIHRoaXMucHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3cgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93O1xuICAgIHRoaXMucGFyYW1ldGVyR3JvdXBQYXJhbXMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnBhcmFtZXRlckdyb3VwUGFyYW1zXG4gICAgICA/IHRoaXMuY29uZmlnQ29udGVudHMucGFyYW1ldGVyR3JvdXBQYXJhbXNcbiAgICAgIDoge307XG4gICAgdGhpcy53b3JrbG9hZE1hbmFnZW1lbnQgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLndvcmtsb2FkTWFuYWdlbWVudCA/IHRoaXMuY29uZmlnQ29udGVudHMud29ya2xvYWRNYW5hZ2VtZW50IDogW107XG4gICAgdGhpcy5hZGRpdGlvbmFsQnVja2V0S21zS2V5QXJucyA9IHRoaXMuY29uZmlnQ29udGVudHMuYWRkaXRpb25hbEJ1Y2tldEttc0tleUFybnM7XG4gICAgdGhpcy5zY2hlZHVsZWRBY3Rpb25zID0gdGhpcy5jb25maWdDb250ZW50cy5zY2hlZHVsZWRBY3Rpb25zID8gdGhpcy5jb25maWdDb250ZW50cy5zY2hlZHVsZWRBY3Rpb25zIDogW107XG4gICAgdGhpcy5kYXRhYmFzZVVzZXJzID0gdGhpcy5jb25maWdDb250ZW50cy5kYXRhYmFzZVVzZXJzID8gdGhpcy5jb25maWdDb250ZW50cy5kYXRhYmFzZVVzZXJzIDogW107XG4gICAgdGhpcy5jcmVhdGVXYXJlaG91c2VCdWNrZXQgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmNyZWF0ZVdhcmVob3VzZUJ1Y2tldDtcbiAgICB0aGlzLmF1dG9tYXRlZFNuYXBzaG90UmV0ZW50aW9uRGF5cyA9IHRoaXMuY29uZmlnQ29udGVudHMuYXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25EYXlzO1xuICAgIHRoaXMuZXZlbnROb3RpZmljYXRpb25zID0gdGhpcy5jb25maWdDb250ZW50cy5ldmVudE5vdGlmaWNhdGlvbnM7XG4gICAgdGhpcy5kYk5hbWUgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmRiTmFtZTtcbiAgICB0aGlzLnNuYXBzaG90SWRlbnRpZmllciA9IHRoaXMuY29uZmlnQ29udGVudHMuc25hcHNob3RJZGVudGlmaWVyO1xuICAgIHRoaXMuc25hcHNob3RPd25lckFjY291bnQgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnNuYXBzaG90T3duZXJBY2NvdW50O1xuICAgIHRoaXMucmVkc2hpZnRNYW5hZ2VNYXN0ZXJQYXNzd29yZCA9IHRoaXMuY29uZmlnQ29udGVudHMucmVkc2hpZnRNYW5hZ2VNYXN0ZXJQYXNzd29yZDtcbiAgfVxufVxuIl19
47
+ DataWarehouseConfigParser.defaultClusterPort = 5440;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXdhcmVob3VzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhd2FyZWhvdXNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCx1Q0FBc0c7QUFVdEcscURBQXFEO0FBMlJyRCxNQUFhLHlCQUEwQixTQUFRLHlCQUFnRDtJQThCN0YsWUFBWSxLQUFZLEVBQUUsS0FBK0I7UUFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBc0IsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUM7UUFDL0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7UUFDNUQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUM7UUFDaEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVc7WUFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVztZQUNqQyxDQUFDLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQztRQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0I7WUFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CO1lBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9HLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDO1FBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQztRQUN2RSxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsQ0FBQztRQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDO1FBQ3JFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLDRCQUE0QixDQUFDO0lBQ3ZGLENBQUM7O0FBaEVILDhEQWlFQztBQTdDd0IsNENBQWtCLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgTWRhYUFwcENvbmZpZ1BhcnNlciwgTWRhYUFwcENvbmZpZ1BhcnNlclByb3BzLCBNZGFhQmFzZUNvbmZpZ0NvbnRlbnRzIH0gZnJvbSAnQGF3cy1tZGFhL2FwcCc7XG5pbXBvcnQge1xuICBGZWRlcmF0aW9uUHJvcHMsXG4gIFNjaGVkdWxlZEFjdGlvblByb3BzLFxuICBEYXRhYmFzZVVzZXJzUHJvcHMsXG4gIEV2ZW50Tm90aWZpY2F0aW9uc1Byb3BzLFxufSBmcm9tICdAYXdzLW1kYWEvZGF0YXdhcmVob3VzZS1sMy1jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgTWRhYVJvbGVSZWYgfSBmcm9tICdAYXdzLW1kYWEvaWFtLXJvbGUtaGVscGVyJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ2Fqdic7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbmZpZ1NjaGVtYSBmcm9tICcuL2NvbmZpZy1zY2hlbWEuanNvbic7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uRWxlbWVudCB9IGZyb20gJ0Bhd3MtbWRhYS9jb25maWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFXYXJlaG91c2VDb25maWdDb250ZW50cyBleHRlbmRzIE1kYWFCYXNlQ29uZmlnQ29udGVudHMge1xuICAvKipcbiAgICogQWRtaW4gdXNlcm5hbWUgZm9yIHRoZSBSZWRzaGlmdCBjbHVzdGVyLiBBIHNlY3JldCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmb3IgdGhlIHBhc3N3b3JkLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENsdXN0ZXIgYWRtaW5pc3RyYXRpb247IERhdGFiYXNlIG1hbmFnZW1lbnQ7IEluaXRpYWwgdXNlciBwcm92aXNpb25pbmdcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBjbHVzdGVyIG1hc3RlciB1c2VybmFtZVxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBSZXF1aXJlZDsgdmFsaWQgUmVkc2hpZnQgdXNlcm5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIERheXMgYmV0d2VlbiBhdXRvbWF0aWMgYWRtaW4gcGFzc3dvcmQgcm90YXRpb25zIHZpYSBTZWNyZXRzIE1hbmFnZXIuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQXV0b21hdGVkIGNyZWRlbnRpYWwgcm90YXRpb247IFNlY3VyaXR5IGNvbXBsaWFuY2U7IFBhc3N3b3JkIHBvbGljeSBlbmZvcmNlbWVudFxuICAgKlxuICAgKiBBV1M6IFJlZHNoaWZ0IGFkbWluIHBhc3N3b3JkIHJvdGF0aW9uIHZpYSBTZWNyZXRzIE1hbmFnZXJcbiAgICpcbiAgICogVmFsaWRhdGlvbjogUmVxdWlyZWQ7IHBvc2l0aXZlIGludGVnZXJcbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFNBTUwgb3IgT0lEQyBmZWRlcmF0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciBmZWRlcmF0ZWQgUmVkc2hpZnQgYWNjZXNzLlxuICAgKiBFYWNoIGZlZGVyYXRpb24gY3JlYXRlcyBhbiBJQU0gcm9sZSB3aXRoIFNBTUwgdHJ1c3QgZm9yIGR5bmFtaWMgY3JlZGVudGlhbCBnZW5lcmF0aW9uXG4gICAqIGFuZCBncm91cC1iYXNlZCBjbHVzdGVyIGFjY2Vzcy5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBTQU1MIGZlZGVyYXRpb24gc2V0dXA7IFNTTyBpbnRlZ3JhdGlvbjsgRmVkZXJhdGVkIGNsdXN0ZXIgYWNjZXNzXG4gICAqXG4gICAqIEFXUzogSUFNIFNBTUwgaWRlbnRpdHkgcHJvdmlkZXIgcm9sZXMgZm9yIFJlZHNoaWZ0IGZlZGVyYXRlZCBhY2Nlc3NcbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IGFycmF5IG9mIHZhbGlkIEZlZGVyYXRpb25Qcm9wc1xuICAgKi9cbiAgcmVhZG9ubHkgZmVkZXJhdGlvbnM/OiBGZWRlcmF0aW9uUHJvcHNbXTtcbiAgLyoqXG4gICAqIEFkbWluIHJvbGVzIGdyYW50ZWQgZnVsbCBhY2Nlc3MgdG8gY2x1c3RlciByZXNvdXJjZXMgaW5jbHVkaW5nIEtNUyBrZXlzIGFuZCBTMyBidWNrZXRzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IEFkbWluaXN0cmF0aXZlIGFjY2VzcyBjb250cm9sOyBTZWN1cml0eSBtYW5hZ2VtZW50OyBSZXNvdXJjZSBhZG1pbmlzdHJhdGlvblxuICAgKlxuICAgKiBBV1M6IElBTSByb2xlcyB3aXRoIGZ1bGwgUmVkc2hpZnQgY2x1c3RlciBhbmQgcmVzb3VyY2UgYWNjZXNzXG4gICAqXG4gICAqIFZhbGlkYXRpb246IFJlcXVpcmVkOyBhcnJheSBvZiB2YWxpZCBNZGFhUm9sZVJlZlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUFkbWluUm9sZXM6IE1kYWFSb2xlUmVmW107XG4gIC8qKlxuICAgKiBSb2xlcyBncmFudGVkIHJlYWQvd3JpdGUgYWNjZXNzIHRvIHRoZSBkYXRhIHdhcmVob3VzZSBTMyBidWNrZXQgZm9yIGRhdGEgbG9hZGluZy91bmxvYWRpbmcuXG4gICAqXG4gICAqIFVzZSBjYXNlczogRVRMIGRhdGEgbG9hZGluZzsgRGF0YSB1bmxvYWRpbmcgb3BlcmF0aW9uczsgQnVja2V0IGFjY2VzcyBmb3IgYW5hbHl0aWNzXG4gICAqXG4gICAqIEFXUzogSUFNIHJvbGVzIHdpdGggUzMgYnVja2V0IGFjY2VzcyBmb3IgUmVkc2hpZnQgZGF0YSBvcGVyYXRpb25zXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE9wdGlvbmFsOyBhcnJheSBvZiB2YWxpZCBNZGFhUm9sZVJlZlxuICAgKi9cbiAgcmVhZG9ubHkgd2FyZWhvdXNlQnVja2V0VXNlclJvbGVzPzogTWRhYVJvbGVSZWZbXTtcbiAgLyoqXG4gICAqIEV4dGVybmFsIGV4ZWN1dGlvbiByb2xlcyBhc3NvY2lhdGVkIHdpdGggdGhlIFJlZHNoaWZ0IGNsdXN0ZXIgZm9yIGNyb3NzLXNlcnZpY2Ugb3BlcmF0aW9ucy5cbiAgICogSWYgYSByb2xlIGFsc28gbmVlZHMgd2FyZWhvdXNlIGJ1Y2tldCBhY2Nlc3MsIGFkZCBpdCB0byB3YXJlaG91c2VCdWNrZXRVc2VyUm9sZXMgZXhwbGljaXRseS5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBDcm9zcy1zZXJ2aWNlIGludGVncmF0aW9uczsgRXh0ZXJuYWwgZGF0YSBhY2Nlc3M7IEdsdWUvTGFtYmRhIGludGVncmF0aW9uXG4gICAqXG4gICAqIEFXUzogSUFNIGV4ZWN1dGlvbiByb2xlcyBhc3NvY2lhdGVkIHdpdGggdGhlIFJlZHNoaWZ0IGNsdXN0ZXJcbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IGFycmF5IG9mIHZhbGlkIE1kYWFSb2xlUmVmOyByb2xlcyBtdXN0IGJlIGFzc3VtYWJsZSBieSBSZWRzaGlmdFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZXM/OiBNZGFhUm9sZVJlZltdO1xuICAvKipcbiAgICogVlBDIElEIGZvciBSZWRzaGlmdCBjbHVzdGVyIGRlcGxveW1lbnQuIFRoZSBjbHVzdGVyIGlzIGRlcGxveWVkIHdpdGhpbiB0aGlzIFZQQ1xuICAgKiB3aXRoIG5ldHdvcmsgYWNjZXNzIGNvbnRyb2xsZWQgYnkgc2VjdXJpdHkgZ3JvdXBzLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IE5ldHdvcmsgaXNvbGF0aW9uOyBWUEMtYmFzZWQgZGVwbG95bWVudDsgU2VjdXJlIG5ldHdvcmtpbmdcbiAgICpcbiAgICogQVdTOiBWUEMgZm9yIFJlZHNoaWZ0IGNsdXN0ZXIgbmV0d29yayBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIFZhbGlkYXRpb246IFJlcXVpcmVkOyB2YWxpZCBWUEMgSURcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdWJuZXQgSURzIGZvciBSZWRzaGlmdCBjbHVzdGVyIG5vZGUgcGxhY2VtZW50LiBGb3IgYXV0b21hdGljIGNsdXN0ZXIgcmVsb2NhdGlvbixcbiAgICogc3BlY2lmeSBhdCBsZWFzdCBvbmUgc3VibmV0IHBlciBBWi5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBNdWx0aS1BWiBwbGFjZW1lbnQ7IFN1Ym5ldC1zcGVjaWZpYyBkZXBsb3ltZW50OyBDbHVzdGVyIHJlbG9jYXRpb24gc3VwcG9ydFxuICAgKlxuICAgKiBBV1M6IFZQQyBzdWJuZXRzIGZvciBSZWRzaGlmdCBzdWJuZXQgZ3JvdXBcbiAgICpcbiAgICogVmFsaWRhdGlvbjogUmVxdWlyZWQ7IGFycmF5IG9mIHZhbGlkIHN1Ym5ldCBJRHMgaW4gdGhlIHNwZWNpZmllZCBWUENcbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBpbmdyZXNzIHJ1bGVzIGRlZmluaW5nIGFsbG93ZWQgaW5ib3VuZCBjb25uZWN0aW9ucyB0byB0aGUgY2x1c3RlciBwb3J0LlxuICAgKiBTdXBwb3J0cyBJUHY0IENJRFIgYmxvY2tzIGFuZCBzZWN1cml0eSBncm91cCByZWZlcmVuY2VzLiBBbGwgb3RoZXIgdHJhZmZpYyBpcyBibG9ja2VkLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IE5ldHdvcmsgYWNjZXNzIGNvbnRyb2w7IENsaWVudCBjb25uZWN0aXZpdHk7IFNlY3VyaXR5IGdyb3VwIG1hbmFnZW1lbnRcbiAgICpcbiAgICogQVdTOiBWUEMgc2VjdXJpdHkgZ3JvdXAgaW5ncmVzcyBydWxlcyBmb3IgUmVkc2hpZnQgY2x1c3RlclxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBSZXF1aXJlZDsgb2JqZWN0IHdpdGggb3B0aW9uYWwgaXB2NCBhbmQvb3Igc2cgYXJyYXlzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSW5ncmVzczogeyBpcHY0Pzogc3RyaW5nW107IHNnPzogc3RyaW5nW10gfTtcbiAgLyoqXG4gICAqIFJlZHNoaWZ0IG5vZGUgdHlwZSBkZXRlcm1pbmluZyBjb21wdXRlIGFuZCBzdG9yYWdlIGNhcGFjaXR5IChlLmcuLCBSQTNfNFhMQVJHRSkuXG4gICAqXG4gICAqIFVzZSBjYXNlczogUGVyZm9ybWFuY2Ugc2l6aW5nOyBDb3N0IG9wdGltaXphdGlvbjsgV29ya2xvYWQtc3BlY2lmaWMgY2FwYWNpdHlcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBub2RlIHR5cGUgKGluc3RhbmNlIHR5cGUpXG4gICAqXG4gICAqIFZhbGlkYXRpb246IFJlcXVpcmVkOyB2YWxpZCBSZWRzaGlmdCBub2RlIHR5cGUgc3RyaW5nXG4gICAqL1xuICByZWFkb25seSBub2RlVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIG5vZGVzIGluIHRoZSBSZWRzaGlmdCBjbHVzdGVyLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IENsdXN0ZXIgc2l6aW5nOyBQZXJmb3JtYW5jZSBzY2FsaW5nOyBDb3N0IG1hbmFnZW1lbnRcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBjbHVzdGVyIG5vZGUgY291bnRcbiAgICpcbiAgICogVmFsaWRhdGlvbjogUmVxdWlyZWQ7IHBvc2l0aXZlIGludGVnZXJcbiAgICovXG4gIHJlYWRvbmx5IG51bWJlck9mTm9kZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIEVuYWJsZSBhdWRpdCBsb2dnaW5nIHRvIGEgZGVkaWNhdGVkIFMzIGJ1Y2tldC4gVGhlIGF1ZGl0IGJ1Y2tldCB1c2VzIFNTRS1TMyBlbmNyeXB0aW9uXG4gICAqIChub3QgS01TKSBkdWUgdG8gUmVkc2hpZnQgYXVkaXQgbG9nZ2luZyByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ29tcGxpYW5jZSBhdWRpdGluZzsgU2VjdXJpdHkgbW9uaXRvcmluZzsgVXNlciBhY3Rpdml0eSB0cmFja2luZ1xuICAgKlxuICAgKiBBV1M6IFJlZHNoaWZ0IGF1ZGl0IGxvZ2dpbmcgdG8gUzMgd2l0aCBTU0UtUzMgZW5jcnlwdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBSZXF1aXJlZDsgYm9vbGVhblxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXVkaXRMb2dnaW5nVG9TMzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRDUCBwb3J0IGZvciBjbGllbnQgY29ubmVjdGlvbnMgdG8gdGhlIGNsdXN0ZXIuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ3VzdG9tIHBvcnQgY29uZmlndXJhdGlvbjsgTmV0d29yayBzZWN1cml0eTsgUG9ydCBzdGFuZGFyZGl6YXRpb25cbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBjbHVzdGVyIGxpc3RlbmluZyBwb3J0XG4gICAqXG4gICAqIFZhbGlkYXRpb246IE9wdGlvbmFsOyB2YWxpZCBwb3J0IG51bWJlclxuICAgKiBAZGVmYXVsdCA1NDQwXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyUG9ydD86IG51bWJlcjtcbiAgLyoqXG4gICAqIE11bHRpLW5vZGUgY2x1c3RlciBmbGFnLiBXaGVuIHRydWUsIGNyZWF0ZXMgYSBtdWx0aS1ub2RlIGNsdXN0ZXIgZm9yIGRpc3RyaWJ1dGVkIHByb2Nlc3Npbmc7XG4gICAqIHdoZW4gZmFsc2UsIGNyZWF0ZXMgYSBzaW5nbGUtbm9kZSBjbHVzdGVyIGZvciBkZXZlbG9wbWVudCBvciBzbWFsbCB3b3JrbG9hZHMuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ2x1c3RlciBhcmNoaXRlY3R1cmUgc2VsZWN0aW9uOyBEZXYgdnMgcHJvZHVjdGlvbiBkZXBsb3ltZW50OyBDb3N0IG9wdGltaXphdGlvblxuICAgKlxuICAgKiBBV1M6IFJlZHNoaWZ0IGNsdXN0ZXIgdHlwZSAoc2luZ2xlLW5vZGUgb3IgbXVsdGktbm9kZSlcbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IGJvb2xlYW5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpTm9kZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXZWVrbHkgbWFpbnRlbmFuY2Ugd2luZG93IGluIGRkZDpoaDI0Om1pLWRkZDpoaDI0Om1pIGZvcm1hdCAoVVRDKS5cbiAgICogRXhhbXBsZTogJ1N1bjoyMzo0NS1Nb246MDA6MTUnLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IE1haW50ZW5hbmNlIHNjaGVkdWxpbmc7IEJ1c2luZXNzIGNvbnRpbnVpdHk7IERvd250aW1lIG1hbmFnZW1lbnRcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBwcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93XG4gICAqXG4gICAqIFZhbGlkYXRpb246IFJlcXVpcmVkOyB2YWxpZCB0aW1lIHdpbmRvdyBmb3JtYXRcbiAgICovXG4gIHJlYWRvbmx5IHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIHBhcmFtZXRlcnMgZm9yIHBlcmZvcm1hbmNlIHR1bmluZy5cbiAgICogU2VjdXJpdHktc2Vuc2l0aXZlIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBvdmVycmlkZGVuIGZvciBjb21wbGlhbmNlIChlLmcuLCBTU0wgZW5mb3JjZW1lbnQpLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IFBlcmZvcm1hbmNlIHR1bmluZzsgQ3VzdG9tIGNsdXN0ZXIgY29uZmlndXJhdGlvbjsgV29ya2xvYWQgb3B0aW1pemF0aW9uXG4gICAqXG4gICAqIEFXUzogUmVkc2hpZnQgcGFyYW1ldGVyIGdyb3VwIHBhcmFtZXRlcnNcbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IHN0cmluZyBrZXktdmFsdWUgcGFpcnNcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlckdyb3VwUGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIFdvcmtsb2FkIG1hbmFnZW1lbnQgKFdMTSkgY29uZmlndXJhdGlvbiBmb3IgcXVlcnkgcXVldWUgbWFuYWdlbWVudCBhbmQgcmVzb3VyY2UgYWxsb2NhdGlvbi5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBRdWVyeSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb247IENvbmN1cnJlbmN5IGNvbnRyb2w7IFJlc291cmNlIGFsbG9jYXRpb25cbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBXTE0gY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBPcHRpb25hbDsgYXJyYXkgb2YgdmFsaWQgQ29uZmlndXJhdGlvbkVsZW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtsb2FkTWFuYWdlbWVudD86IENvbmZpZ3VyYXRpb25FbGVtZW50W107XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIEtNUyBrZXkgQVJOcyBhbGxvd2VkIHRvIHdyaXRlIHRvIHRoZSBjbHVzdGVyIGJ1Y2tldC5cbiAgICogVXNlZnVsIGZvciBhbGxvd2luZyBHbHVlIGpvYnMgb3Igb3RoZXIgc2VydmljZXMgdG8gd3JpdGUgZW5jcnlwdGVkIGRhdGEgdG8gdGhlIHdhcmVob3VzZSBidWNrZXQuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ3Jvc3Mtc2VydmljZSBlbmNyeXB0aW9uOyBHbHVlIGpvYiBpbnRlZ3JhdGlvbjsgTXVsdGkta2V5IGJ1Y2tldCBhY2Nlc3NcbiAgICpcbiAgICogQVdTOiBLTVMga2V5IEFSTnMgZm9yIHdhcmVob3VzZSBidWNrZXQgZW5jcnlwdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBPcHRpb25hbDsgYXJyYXkgb2YgdmFsaWQgS01TIGtleSBBUk5zXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQnVja2V0S21zS2V5QXJucz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogU2NoZWR1bGVkIGFjdGlvbnMgZm9yIGF1dG9tYXRlZCBjbHVzdGVyIHBhdXNlL3Jlc3VtZSBvcGVyYXRpb25zLlxuICAgKiBFYWNoIGFjdGlvbiBzcGVjaWZpZXMgYSB0YXJnZXQgYWN0aW9uIChwYXVzZUNsdXN0ZXIvcmVzdW1lQ2x1c3RlciksIGNyb24gc2NoZWR1bGUsXG4gICAqIGFuZCBhY3RpdmUgdGltZSB3aW5kb3cuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQ29zdCBvcHRpbWl6YXRpb24gdmlhIHNjaGVkdWxlZCBwYXVzZTsgQXV0b21hdGVkIG9wZXJhdGlvbnM7IEJ1c2luZXNzLWhvdXJzIHNjaGVkdWxpbmdcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBzY2hlZHVsZWQgYWN0aW9ucyBmb3IgY2x1c3RlciBsaWZlY3ljbGUgbWFuYWdlbWVudFxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBPcHRpb25hbDsgYXJyYXkgb2YgdmFsaWQgU2NoZWR1bGVkQWN0aW9uUHJvcHNcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlZEFjdGlvbnM/OiBTY2hlZHVsZWRBY3Rpb25Qcm9wc1tdO1xuICAvKipcbiAgICogRGF0YWJhc2UgdXNlcnMgY3JlYXRlZCBpbiBSZWRzaGlmdCB3aXRoIGNyZWRlbnRpYWxzIHN0b3JlZCBpbiBTZWNyZXRzIE1hbmFnZXIuXG4gICAqIFN1cHBvcnRzIGF1dG9tYXRlZCBzZWNyZXQgcm90YXRpb24gb24gYSBjb25maWd1cmFibGUgY3ljbGUuXG4gICAqXG4gICAqIFVzZSBjYXNlczogQXV0b21hdGVkIHVzZXIgcHJvdmlzaW9uaW5nOyBDcmVkZW50aWFsIG1hbmFnZW1lbnQ7IFNlY3JldCByb3RhdGlvblxuICAgKlxuICAgKiBBV1M6IFJlZHNoaWZ0IGRhdGFiYXNlIHVzZXJzIHdpdGggU2VjcmV0cyBNYW5hZ2VyIGNyZWRlbnRpYWwgc3RvcmFnZSBhbmQgcm90YXRpb25cbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IGFycmF5IG9mIHZhbGlkIERhdGFiYXNlVXNlcnNQcm9wc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VVc2Vycz86IERhdGFiYXNlVXNlcnNQcm9wc1tdO1xuICAvKipcbiAgICogQ29udHJvbCB3aGV0aGVyIGEgZGVkaWNhdGVkIFMzIGJ1Y2tldCBpcyBjcmVhdGVkIGZvciB3YXJlaG91c2UgZGF0YSBvcGVyYXRpb25zXG4gICAqIChsb2FkaW5nLCB1bmxvYWRpbmcsIGJhY2t1cCkuXG4gICAqXG4gICAqIFVzZSBjYXNlczogU3RvcmFnZSByZXNvdXJjZSBtYW5hZ2VtZW50OyBEYXRhIG9wZXJhdGlvbnM7IEJ1Y2tldCBsaWZlY3ljbGUgY29udHJvbFxuICAgKlxuICAgKiBBV1M6IFMzIGJ1Y2tldCBmb3IgUmVkc2hpZnQgZGF0YSB3YXJlaG91c2Ugb3BlcmF0aW9uc1xuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBPcHRpb25hbDsgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVXYXJlaG91c2VCdWNrZXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogTnVtYmVyIG9mIGRheXMgYXV0b21hdGVkIHNuYXBzaG90cyBhcmUgcmV0YWluZWQgKDEtMzUpLiBTZXQgdG8gMCB0byBkaXNhYmxlLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IEJhY2t1cCBtYW5hZ2VtZW50OyBQb2ludC1pbi10aW1lIHJlY292ZXJ5OyBEYXRhIHByb3RlY3Rpb24gY29tcGxpYW5jZVxuICAgKlxuICAgKiBBV1M6IFJlZHNoaWZ0IGF1dG9tYXRlZCBzbmFwc2hvdCByZXRlbnRpb25cbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IGludGVnZXIgMC0zNVxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBhdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFdmVudCBub3RpZmljYXRpb24gY29uZmlndXJhdGlvbiBmb3IgY2x1c3RlciBhbmQgc2NoZWR1bGVkIGFjdGlvbiBtb25pdG9yaW5nLlxuICAgKiBDb25maWd1cmVzIFNOUyBub3RpZmljYXRpb25zIHdpdGggZW1haWwgZGVsaXZlcnksIHNldmVyaXR5IGZpbHRlcmluZywgYW5kIGV2ZW50IGNhdGVnb3J5IHNlbGVjdGlvbi5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBPcGVyYXRpb25hbCBtb25pdG9yaW5nOyBFdmVudCBhbGVydGluZzsgQ2x1c3RlciBzdGF0dXMgdHJhY2tpbmdcbiAgICpcbiAgICogQVdTOiBTTlMgbm90aWZpY2F0aW9ucyBmb3IgUmVkc2hpZnQgY2x1c3RlciBldmVudHNcbiAgICpcbiAgICogVmFsaWRhdGlvbjogT3B0aW9uYWw7IHZhbGlkIEV2ZW50Tm90aWZpY2F0aW9uc1Byb3BzXG4gICAqL1xuICByZWFkb25seSBldmVudE5vdGlmaWNhdGlvbnM/OiBFdmVudE5vdGlmaWNhdGlvbnNQcm9wcztcbiAgLyoqXG4gICAqIEluaXRpYWwgZGF0YWJhc2UgbmFtZSBjcmVhdGVkIGluIHRoZSBjbHVzdGVyLlxuICAgKlxuICAgKiBVc2UgY2FzZXM6IEN1c3RvbSBkYXRhYmFzZSBuYW1pbmc7IEluaXRpYWwgZGF0YWJhc2Ugc2V0dXBcbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBpbml0aWFsIGRhdGFiYXNlXG4gICAqXG4gICAqIFZhbGlkYXRpb246IE9wdGlvbmFsOyB2YWxpZCBkYXRhYmFzZSBuYW1lXG4gICAqIEBkZWZhdWx0IFwiZGVmYXVsdF9kYlwiXG4gICAqL1xuICByZWFkb25seSBkYk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTbmFwc2hvdCBpZGVudGlmaWVyIGZvciBjbHVzdGVyIHJlc3RvcmF0aW9uLiBPbmx5IHByb3ZpZGUgd2hlbiByZXN0b3JpbmcgZnJvbSBhbiBleGlzdGluZyBzbmFwc2hvdC5cbiAgICpcbiAgICogVXNlIGNhc2VzOiBEaXNhc3RlciByZWNvdmVyeTsgRGF0YSBtaWdyYXRpb247IENsdXN0ZXIgcmVzdG9yYXRpb25cbiAgICpcbiAgICogQVdTOiBSZWRzaGlmdCBzbmFwc2hvdCBmb3IgY2x1c3RlciByZXN0b3JhdGlvblxuICAgKlxuICAgKiBWYWxpZGF0aW9uOiBPcHRpb25hbDsgdmFsaWQgc25hcHNob3QgaWRlbnRpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nO1xuICAvKipcbiAgICogb3duZXJBY2NvdW50IFJlZmVycyB0byBzbmFwc2hvdCBvd25lciBhY2NvdW50LiBBcHBsaWNhYmxlIGlmIHJlc3RvcmluZyB0aGUgY2x1c3RlciBmcm9tIHNuYXBzaG90IGFuZCBzbmFwc2hvdCBiZWxvbmdzIHRvIGFub3RoZXIgYWNjb3VudFxuICAgKiBPcHRpb25hbCAtIEJ5IGRlZmF1bHQsIHNuYXBzaG90cyBhcmUgc2VhcmNoZWQgd2l0aGluIGN1cnJlbnQgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RPd25lckFjY291bnQ/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgcmVkc2hpZnRNYW5hZ2VNYXN0ZXJQYXNzd29yZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhV2FyZWhvdXNlQ29uZmlnUGFyc2VyIGV4dGVuZHMgTWRhYUFwcENvbmZpZ1BhcnNlcjxEYXRhV2FyZWhvdXNlQ29uZmlnQ29udGVudHM+IHtcbiAgcHVibGljIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFkbWluUGFzc3dvcmRSb3RhdGlvbkRheXM6IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGZlZGVyYXRpb25zOiBGZWRlcmF0aW9uUHJvcHNbXTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlVXNlcnM6IERhdGFiYXNlVXNlcnNQcm9wc1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUFkbWluUm9sZVJlZnM6IE1kYWFSb2xlUmVmW107XG4gIHB1YmxpYyByZWFkb25seSB3YXJlaG91c2VCdWNrZXRVc2VyUm9sZVJlZnM/OiBNZGFhUm9sZVJlZltdO1xuICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZVJlZnM/OiBNZGFhUm9sZVJlZltdO1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJQb3J0OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZVR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGVuYWJsZUF1ZGl0TG9nZ2luZ1RvUzM6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBudW1iZXJPZk5vZGVzOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBtdWx0aU5vZGU/OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJbmdyZXNzOiB7IGlwdjQ/OiBzdHJpbmdbXTsgc2c/OiBzdHJpbmdbXSB9O1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyR3JvdXBQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHB1YmxpYyByZWFkb25seSB3b3JrbG9hZE1hbmFnZW1lbnQ6IENvbmZpZ3VyYXRpb25FbGVtZW50W107XG4gIHB1YmxpYyByZWFkb25seSBhZGRpdGlvbmFsQnVja2V0S21zS2V5QXJucz86IHN0cmluZ1tdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRDbHVzdGVyUG9ydCA9IDU0NDA7XG4gIHB1YmxpYyByZWFkb25seSBzY2hlZHVsZWRBY3Rpb25zOiBTY2hlZHVsZWRBY3Rpb25Qcm9wc1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlV2FyZWhvdXNlQnVja2V0PzogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5IGF1dG9tYXRlZFNuYXBzaG90UmV0ZW50aW9uRGF5cz86IG51bWJlcjtcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50Tm90aWZpY2F0aW9ucz86IEV2ZW50Tm90aWZpY2F0aW9uc1Byb3BzO1xuICBwdWJsaWMgcmVhZG9ubHkgZGJOYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc25hcHNob3RPd25lckFjY291bnQ/OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSByZWRzaGlmdE1hbmFnZU1hc3RlclBhc3N3b3JkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzdGFjazogU3RhY2ssIHByb3BzOiBNZGFhQXBwQ29uZmlnUGFyc2VyUHJvcHMpIHtcbiAgICBzdXBlcihzdGFjaywgcHJvcHMsIGNvbmZpZ1NjaGVtYSBhcyBTY2hlbWEpO1xuXG4gICAgdGhpcy5hZG1pblVzZXJuYW1lID0gdGhpcy5jb25maWdDb250ZW50cy5hZG1pblVzZXJuYW1lO1xuICAgIHRoaXMuYWRtaW5QYXNzd29yZFJvdGF0aW9uRGF5cyA9IHRoaXMuY29uZmlnQ29udGVudHMuYWRtaW5QYXNzd29yZFJvdGF0aW9uRGF5cztcbiAgICB0aGlzLmZlZGVyYXRpb25zID0gdGhpcy5jb25maWdDb250ZW50cy5mZWRlcmF0aW9ucyA/IHRoaXMuY29uZmlnQ29udGVudHMuZmVkZXJhdGlvbnMgOiBbXTtcbiAgICB0aGlzLmRhdGFBZG1pblJvbGVSZWZzID0gdGhpcy5jb25maWdDb250ZW50cy5kYXRhQWRtaW5Sb2xlcztcbiAgICB0aGlzLndhcmVob3VzZUJ1Y2tldFVzZXJSb2xlUmVmcyA9IHRoaXMuY29uZmlnQ29udGVudHMud2FyZWhvdXNlQnVja2V0VXNlclJvbGVzO1xuICAgIHRoaXMuZXhlY3V0aW9uUm9sZVJlZnMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmV4ZWN1dGlvblJvbGVzO1xuICAgIHRoaXMudnBjSWQgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnZwY0lkO1xuICAgIHRoaXMuc3VibmV0SWRzID0gdGhpcy5jb25maWdDb250ZW50cy5zdWJuZXRJZHM7XG4gICAgdGhpcy5zZWN1cml0eUdyb3VwSW5ncmVzcyA9IHRoaXMuY29uZmlnQ29udGVudHMuc2VjdXJpdHlHcm91cEluZ3Jlc3M7XG4gICAgdGhpcy5ub2RlVHlwZSA9IHRoaXMuY29uZmlnQ29udGVudHMubm9kZVR5cGU7XG4gICAgdGhpcy5udW1iZXJPZk5vZGVzID0gdGhpcy5jb25maWdDb250ZW50cy5udW1iZXJPZk5vZGVzO1xuICAgIHRoaXMuZW5hYmxlQXVkaXRMb2dnaW5nVG9TMyA9IHRoaXMuY29uZmlnQ29udGVudHMuZW5hYmxlQXVkaXRMb2dnaW5nVG9TMztcbiAgICB0aGlzLmNsdXN0ZXJQb3J0ID0gdGhpcy5jb25maWdDb250ZW50cy5jbHVzdGVyUG9ydFxuICAgICAgPyB0aGlzLmNvbmZpZ0NvbnRlbnRzLmNsdXN0ZXJQb3J0XG4gICAgICA6IERhdGFXYXJlaG91c2VDb25maWdQYXJzZXIuZGVmYXVsdENsdXN0ZXJQb3J0O1xuICAgIHRoaXMubXVsdGlOb2RlID0gdGhpcy5jb25maWdDb250ZW50cy5tdWx0aU5vZGU7XG4gICAgdGhpcy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyA9IHRoaXMuY29uZmlnQ29udGVudHMucHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c7XG4gICAgdGhpcy5wYXJhbWV0ZXJHcm91cFBhcmFtcyA9IHRoaXMuY29uZmlnQ29udGVudHMucGFyYW1ldGVyR3JvdXBQYXJhbXNcbiAgICAgID8gdGhpcy5jb25maWdDb250ZW50cy5wYXJhbWV0ZXJHcm91cFBhcmFtc1xuICAgICAgOiB7fTtcbiAgICB0aGlzLndvcmtsb2FkTWFuYWdlbWVudCA9IHRoaXMuY29uZmlnQ29udGVudHMud29ya2xvYWRNYW5hZ2VtZW50ID8gdGhpcy5jb25maWdDb250ZW50cy53b3JrbG9hZE1hbmFnZW1lbnQgOiBbXTtcbiAgICB0aGlzLmFkZGl0aW9uYWxCdWNrZXRLbXNLZXlBcm5zID0gdGhpcy5jb25maWdDb250ZW50cy5hZGRpdGlvbmFsQnVja2V0S21zS2V5QXJucztcbiAgICB0aGlzLnNjaGVkdWxlZEFjdGlvbnMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLnNjaGVkdWxlZEFjdGlvbnMgPyB0aGlzLmNvbmZpZ0NvbnRlbnRzLnNjaGVkdWxlZEFjdGlvbnMgOiBbXTtcbiAgICB0aGlzLmRhdGFiYXNlVXNlcnMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmRhdGFiYXNlVXNlcnMgPyB0aGlzLmNvbmZpZ0NvbnRlbnRzLmRhdGFiYXNlVXNlcnMgOiBbXTtcbiAgICB0aGlzLmNyZWF0ZVdhcmVob3VzZUJ1Y2tldCA9IHRoaXMuY29uZmlnQ29udGVudHMuY3JlYXRlV2FyZWhvdXNlQnVja2V0O1xuICAgIHRoaXMuYXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25EYXlzID0gdGhpcy5jb25maWdDb250ZW50cy5hdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvbkRheXM7XG4gICAgdGhpcy5ldmVudE5vdGlmaWNhdGlvbnMgPSB0aGlzLmNvbmZpZ0NvbnRlbnRzLmV2ZW50Tm90aWZpY2F0aW9ucztcbiAgICB0aGlzLmRiTmFtZSA9IHRoaXMuY29uZmlnQ29udGVudHMuZGJOYW1lO1xuICAgIHRoaXMuc25hcHNob3RJZGVudGlmaWVyID0gdGhpcy5jb25maWdDb250ZW50cy5zbmFwc2hvdElkZW50aWZpZXI7XG4gICAgdGhpcy5zbmFwc2hvdE93bmVyQWNjb3VudCA9IHRoaXMuY29uZmlnQ29udGVudHMuc25hcHNob3RPd25lckFjY291bnQ7XG4gICAgdGhpcy5yZWRzaGlmdE1hbmFnZU1hc3RlclBhc3N3b3JkID0gdGhpcy5jb25maWdDb250ZW50cy5yZWRzaGlmdE1hbmFnZU1hc3RlclBhc3N3b3JkO1xuICB9XG59XG4iXX0=