@effect-aws/client-sfn 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @effect-aws/client-sfn
2
2
 
3
+ ## 1.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`e540420`](https://github.com/floydspace/effect-aws/commit/e5404208c2438e1e1546637a8edbbdc1c9468850) Thanks [@floydspace](https://github.com/floydspace)! - integrate aws-sdk abort signal with effect interruption
8
+
3
9
  ## 1.3.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -1 +1,82 @@
1
- # replace this
1
+ # @effect-aws/client-sfn
2
+
3
+ ## Installation
4
+
5
+ ```bash
6
+ npm install --save @effect-aws/client-sfn
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ With default SFNClient instance:
12
+
13
+ ```typescript
14
+ import { SFNService, DefaultSFNServiceLayer } from "@effect-aws/client-sfn";
15
+
16
+ const program = SFNService.startExecution(args);
17
+
18
+ const result = pipe(
19
+ program,
20
+ Effect.provide(DefaultSFNServiceLayer),
21
+ Effect.runPromise,
22
+ );
23
+ ```
24
+
25
+ With custom SFNClient instance:
26
+
27
+ ```typescript
28
+ import {
29
+ SFNService,
30
+ BaseSFNServiceLayer,
31
+ SFNClientInstance,
32
+ } from "@effect-aws/client-sfn";
33
+
34
+ const program = SFNService.startExecution(args);
35
+
36
+ const SFNClientInstanceLayer = Layer.succeed(
37
+ SFNClientInstance,
38
+ new SFNClient({ region: "eu-central-1" }),
39
+ );
40
+
41
+ const result = await pipe(
42
+ program,
43
+ Effect.provide(BaseSFNServiceLayer),
44
+ Effect.provide(SFNClientInstanceLayer),
45
+ Effect.runPromise,
46
+ );
47
+ ```
48
+
49
+ With custom SFNClient configuration:
50
+
51
+ ```typescript
52
+ import {
53
+ SFNService,
54
+ BaseSFNServiceLayer,
55
+ DefaultSFNClientConfigLayer,
56
+ SFNClientInstance,
57
+ SFNClientInstanceConfig,
58
+ } from "@effect-aws/client-sfn";
59
+
60
+ const program = SFNService.startExecution(args);
61
+
62
+ const SFNClientInstanceLayer = Layer.provide(
63
+ Layer.effect(
64
+ SFNClientInstance,
65
+ SFNClientInstanceConfig.pipe(
66
+ Effect.map(
67
+ (config) => new SFNClient({ ...config, region: "eu-central-1" }),
68
+ ),
69
+ ),
70
+ ),
71
+ DefaultSFNClientConfigLayer,
72
+ );
73
+
74
+ const result = await pipe(
75
+ program,
76
+ Effect.provide(BaseSFNServiceLayer),
77
+ Effect.provide(SFNClientInstanceLayer),
78
+ Effect.runPromiseExit,
79
+ );
80
+ ```
81
+
82
+ or map over `DefaultSFNClientConfigLayer` layer context and update the configuration...
@@ -2,200 +2,206 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import { type CreateActivityCommandInput, type CreateActivityCommandOutput, type CreateStateMachineCommandInput, type CreateStateMachineCommandOutput, type CreateStateMachineAliasCommandInput, type CreateStateMachineAliasCommandOutput, type DeleteActivityCommandInput, type DeleteActivityCommandOutput, type DeleteStateMachineCommandInput, type DeleteStateMachineCommandOutput, type DeleteStateMachineAliasCommandInput, type DeleteStateMachineAliasCommandOutput, type DeleteStateMachineVersionCommandInput, type DeleteStateMachineVersionCommandOutput, type DescribeActivityCommandInput, type DescribeActivityCommandOutput, type DescribeExecutionCommandInput, type DescribeExecutionCommandOutput, type DescribeMapRunCommandInput, type DescribeMapRunCommandOutput, type DescribeStateMachineCommandInput, type DescribeStateMachineCommandOutput, type DescribeStateMachineAliasCommandInput, type DescribeStateMachineAliasCommandOutput, type DescribeStateMachineForExecutionCommandInput, type DescribeStateMachineForExecutionCommandOutput, type GetActivityTaskCommandInput, type GetActivityTaskCommandOutput, type GetExecutionHistoryCommandInput, type GetExecutionHistoryCommandOutput, type ListActivitiesCommandInput, type ListActivitiesCommandOutput, type ListExecutionsCommandInput, type ListExecutionsCommandOutput, type ListMapRunsCommandInput, type ListMapRunsCommandOutput, type ListStateMachineAliasesCommandInput, type ListStateMachineAliasesCommandOutput, type ListStateMachinesCommandInput, type ListStateMachinesCommandOutput, type ListStateMachineVersionsCommandInput, type ListStateMachineVersionsCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type PublishStateMachineVersionCommandInput, type PublishStateMachineVersionCommandOutput, type RedriveExecutionCommandInput, type RedriveExecutionCommandOutput, type SendTaskFailureCommandInput, type SendTaskFailureCommandOutput, type SendTaskHeartbeatCommandInput, type SendTaskHeartbeatCommandOutput, type SendTaskSuccessCommandInput, type SendTaskSuccessCommandOutput, type StartExecutionCommandInput, type StartExecutionCommandOutput, type StartSyncExecutionCommandInput, type StartSyncExecutionCommandOutput, type StopExecutionCommandInput, type StopExecutionCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type TestStateCommandInput, type TestStateCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateMapRunCommandInput, type UpdateMapRunCommandOutput, type UpdateStateMachineCommandInput, type UpdateStateMachineCommandOutput, type UpdateStateMachineAliasCommandInput, type UpdateStateMachineAliasCommandOutput, type ValidateStateMachineDefinitionCommandInput, type ValidateStateMachineDefinitionCommandOutput } from "@aws-sdk/client-sfn";
5
- import { type HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types";
6
5
  import { Effect, Layer } from "effect";
7
6
  import { ActivityAlreadyExistsError, ActivityDoesNotExistError, ActivityLimitExceededError, ActivityWorkerLimitExceededError, ConflictError, ExecutionAlreadyExistsError, ExecutionDoesNotExistError, ExecutionLimitExceededError, ExecutionNotRedrivableError, InvalidArnError, InvalidDefinitionError, InvalidEncryptionConfigurationError, InvalidExecutionInputError, InvalidLoggingConfigurationError, InvalidNameError, InvalidOutputError, InvalidTokenError, InvalidTracingConfigurationError, KmsAccessDeniedError, KmsInvalidStateError, KmsThrottlingError, MissingRequiredParameterError, ResourceNotFoundError, ServiceQuotaExceededError, StateMachineAlreadyExistsError, StateMachineDeletingError, StateMachineDoesNotExistError, StateMachineLimitExceededError, StateMachineTypeNotSupportedError, TaskDoesNotExistError, TaskTimedOutError, TooManyTagsError, ValidationError, SdkError } from "./Errors";
8
7
  import { SFNClientInstance } from "./SFNClientInstance";
8
+ interface HttpHandlerOptions {
9
+ /**
10
+ * The maximum time in milliseconds that the connection phase of a request
11
+ * may take before the connection attempt is abandoned.
12
+ */
13
+ requestTimeout?: number;
14
+ }
9
15
  interface SFNService$ {
10
16
  readonly _: unique symbol;
11
17
  /**
12
18
  * @see {@link CreateActivityCommand}
13
19
  */
14
- createActivity(args: CreateActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateActivityCommandOutput, SdkError | ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError>;
20
+ createActivity(args: CreateActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateActivityCommandOutput, SdkError | ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError>;
15
21
  /**
16
22
  * @see {@link CreateStateMachineCommand}
17
23
  */
18
- createStateMachine(args: CreateStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError>;
24
+ createStateMachine(args: CreateStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError>;
19
25
  /**
20
26
  * @see {@link CreateStateMachineAliasCommand}
21
27
  */
22
- createStateMachineAlias(args: CreateStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError>;
28
+ createStateMachineAlias(args: CreateStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError>;
23
29
  /**
24
30
  * @see {@link DeleteActivityCommand}
25
31
  */
26
- deleteActivity(args: DeleteActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteActivityCommandOutput, SdkError | InvalidArnError>;
32
+ deleteActivity(args: DeleteActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteActivityCommandOutput, SdkError | InvalidArnError>;
27
33
  /**
28
34
  * @see {@link DeleteStateMachineCommand}
29
35
  */
30
- deleteStateMachine(args: DeleteStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineCommandOutput, SdkError | InvalidArnError | ValidationError>;
36
+ deleteStateMachine(args: DeleteStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineCommandOutput, SdkError | InvalidArnError | ValidationError>;
31
37
  /**
32
38
  * @see {@link DeleteStateMachineAliasCommand}
33
39
  */
34
- deleteStateMachineAlias(args: DeleteStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError>;
40
+ deleteStateMachineAlias(args: DeleteStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError>;
35
41
  /**
36
42
  * @see {@link DeleteStateMachineVersionCommand}
37
43
  */
38
- deleteStateMachineVersion(args: DeleteStateMachineVersionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ValidationError>;
44
+ deleteStateMachineVersion(args: DeleteStateMachineVersionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ValidationError>;
39
45
  /**
40
46
  * @see {@link DescribeActivityCommand}
41
47
  */
42
- describeActivity(args: DescribeActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeActivityCommandOutput, SdkError | ActivityDoesNotExistError | InvalidArnError>;
48
+ describeActivity(args: DescribeActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeActivityCommandOutput, SdkError | ActivityDoesNotExistError | InvalidArnError>;
43
49
  /**
44
50
  * @see {@link DescribeExecutionCommand}
45
51
  */
46
- describeExecution(args: DescribeExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
52
+ describeExecution(args: DescribeExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
47
53
  /**
48
54
  * @see {@link DescribeMapRunCommand}
49
55
  */
50
- describeMapRun(args: DescribeMapRunCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
56
+ describeMapRun(args: DescribeMapRunCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
51
57
  /**
52
58
  * @see {@link DescribeStateMachineCommand}
53
59
  */
54
- describeStateMachine(args: DescribeStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineCommandOutput, SdkError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError>;
60
+ describeStateMachine(args: DescribeStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineCommandOutput, SdkError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError>;
55
61
  /**
56
62
  * @see {@link DescribeStateMachineAliasCommand}
57
63
  */
58
- describeStateMachineAlias(args: DescribeStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineAliasCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
64
+ describeStateMachineAlias(args: DescribeStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineAliasCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
59
65
  /**
60
66
  * @see {@link DescribeStateMachineForExecutionCommand}
61
67
  */
62
- describeStateMachineForExecution(args: DescribeStateMachineForExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineForExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
68
+ describeStateMachineForExecution(args: DescribeStateMachineForExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineForExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
63
69
  /**
64
70
  * @see {@link GetActivityTaskCommand}
65
71
  */
66
- getActivityTask(args: GetActivityTaskCommandInput, options?: __HttpHandlerOptions): Effect.Effect<GetActivityTaskCommandOutput, SdkError | ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
72
+ getActivityTask(args: GetActivityTaskCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetActivityTaskCommandOutput, SdkError | ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
67
73
  /**
68
74
  * @see {@link GetExecutionHistoryCommand}
69
75
  */
70
- getExecutionHistory(args: GetExecutionHistoryCommandInput, options?: __HttpHandlerOptions): Effect.Effect<GetExecutionHistoryCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
76
+ getExecutionHistory(args: GetExecutionHistoryCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetExecutionHistoryCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
71
77
  /**
72
78
  * @see {@link ListActivitiesCommand}
73
79
  */
74
- listActivities(args: ListActivitiesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListActivitiesCommandOutput, SdkError | InvalidTokenError>;
80
+ listActivities(args: ListActivitiesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListActivitiesCommandOutput, SdkError | InvalidTokenError>;
75
81
  /**
76
82
  * @see {@link ListExecutionsCommand}
77
83
  */
78
- listExecutions(args: ListExecutionsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListExecutionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError>;
84
+ listExecutions(args: ListExecutionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListExecutionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError>;
79
85
  /**
80
86
  * @see {@link ListMapRunsCommand}
81
87
  */
82
- listMapRuns(args: ListMapRunsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListMapRunsCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError>;
88
+ listMapRuns(args: ListMapRunsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListMapRunsCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError>;
83
89
  /**
84
90
  * @see {@link ListStateMachineAliasesCommand}
85
91
  */
86
- listStateMachineAliases(args: ListStateMachineAliasesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachineAliasesCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError>;
92
+ listStateMachineAliases(args: ListStateMachineAliasesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachineAliasesCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError>;
87
93
  /**
88
94
  * @see {@link ListStateMachinesCommand}
89
95
  */
90
- listStateMachines(args: ListStateMachinesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachinesCommandOutput, SdkError | InvalidTokenError>;
96
+ listStateMachines(args: ListStateMachinesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachinesCommandOutput, SdkError | InvalidTokenError>;
91
97
  /**
92
98
  * @see {@link ListStateMachineVersionsCommand}
93
99
  */
94
- listStateMachineVersions(args: ListStateMachineVersionsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachineVersionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ValidationError>;
100
+ listStateMachineVersions(args: ListStateMachineVersionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachineVersionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ValidationError>;
95
101
  /**
96
102
  * @see {@link ListTagsForResourceCommand}
97
103
  */
98
- listTagsForResource(args: ListTagsForResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListTagsForResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
104
+ listTagsForResource(args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListTagsForResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
99
105
  /**
100
106
  * @see {@link PublishStateMachineVersionCommand}
101
107
  */
102
- publishStateMachineVersion(args: PublishStateMachineVersionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<PublishStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
108
+ publishStateMachineVersion(args: PublishStateMachineVersionCommandInput, options?: HttpHandlerOptions): Effect.Effect<PublishStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
103
109
  /**
104
110
  * @see {@link RedriveExecutionCommand}
105
111
  */
106
- redriveExecution(args: RedriveExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<RedriveExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError>;
112
+ redriveExecution(args: RedriveExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<RedriveExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError>;
107
113
  /**
108
114
  * @see {@link SendTaskFailureCommand}
109
115
  */
110
- sendTaskFailure(args: SendTaskFailureCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskFailureCommandOutput, SdkError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
116
+ sendTaskFailure(args: SendTaskFailureCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskFailureCommandOutput, SdkError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
111
117
  /**
112
118
  * @see {@link SendTaskHeartbeatCommand}
113
119
  */
114
- sendTaskHeartbeat(args: SendTaskHeartbeatCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskHeartbeatCommandOutput, SdkError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
120
+ sendTaskHeartbeat(args: SendTaskHeartbeatCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskHeartbeatCommandOutput, SdkError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
115
121
  /**
116
122
  * @see {@link SendTaskSuccessCommand}
117
123
  */
118
- sendTaskSuccess(args: SendTaskSuccessCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskSuccessCommandOutput, SdkError | InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
124
+ sendTaskSuccess(args: SendTaskSuccessCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskSuccessCommandOutput, SdkError | InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
119
125
  /**
120
126
  * @see {@link StartExecutionCommand}
121
127
  */
122
- startExecution(args: StartExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StartExecutionCommandOutput, SdkError | ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
128
+ startExecution(args: StartExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StartExecutionCommandOutput, SdkError | ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
123
129
  /**
124
130
  * @see {@link StartSyncExecutionCommand}
125
131
  */
126
- startSyncExecution(args: StartSyncExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StartSyncExecutionCommandOutput, SdkError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError>;
132
+ startSyncExecution(args: StartSyncExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StartSyncExecutionCommandOutput, SdkError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError>;
127
133
  /**
128
134
  * @see {@link StopExecutionCommand}
129
135
  */
130
- stopExecution(args: StopExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StopExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError>;
136
+ stopExecution(args: StopExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StopExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError>;
131
137
  /**
132
138
  * @see {@link TagResourceCommand}
133
139
  */
134
- tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<TagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | TooManyTagsError>;
140
+ tagResource(args: TagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<TagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | TooManyTagsError>;
135
141
  /**
136
142
  * @see {@link TestStateCommand}
137
143
  */
138
- testState(args: TestStateCommandInput, options?: __HttpHandlerOptions): Effect.Effect<TestStateCommandOutput, SdkError | InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError>;
144
+ testState(args: TestStateCommandInput, options?: HttpHandlerOptions): Effect.Effect<TestStateCommandOutput, SdkError | InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError>;
139
145
  /**
140
146
  * @see {@link UntagResourceCommand}
141
147
  */
142
- untagResource(args: UntagResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UntagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
148
+ untagResource(args: UntagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<UntagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
143
149
  /**
144
150
  * @see {@link UpdateMapRunCommand}
145
151
  */
146
- updateMapRun(args: UpdateMapRunCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
152
+ updateMapRun(args: UpdateMapRunCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
147
153
  /**
148
154
  * @see {@link UpdateStateMachineCommand}
149
155
  */
150
- updateStateMachine(args: UpdateStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
156
+ updateStateMachine(args: UpdateStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
151
157
  /**
152
158
  * @see {@link UpdateStateMachineAliasCommand}
153
159
  */
154
- updateStateMachineAlias(args: UpdateStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError>;
160
+ updateStateMachineAlias(args: UpdateStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError>;
155
161
  /**
156
162
  * @see {@link ValidateStateMachineDefinitionCommand}
157
163
  */
158
- validateStateMachineDefinition(args: ValidateStateMachineDefinitionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ValidateStateMachineDefinitionCommandOutput, SdkError | ValidationError>;
164
+ validateStateMachineDefinition(args: ValidateStateMachineDefinitionCommandInput, options?: HttpHandlerOptions): Effect.Effect<ValidateStateMachineDefinitionCommandOutput, SdkError | ValidationError>;
159
165
  }
160
166
  declare const SFNService_base: import("effect/Context").TagClass<SFNService, "@effect-aws/client-sfn/SFNService", SFNService$> & {
161
167
  readonly _: Effect.Effect<SFNService$["_"], never, SFNService>;
162
- createActivity: (args: CreateActivityCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<CreateActivityCommandOutput, ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError | SdkError, SFNService>;
163
- createStateMachine: (args: CreateStateMachineCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError | SdkError, SFNService>;
164
- createStateMachineAlias: (args: CreateStateMachineAliasCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
165
- deleteActivity: (args: DeleteActivityCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DeleteActivityCommandOutput, InvalidArnError | SdkError, SFNService>;
166
- deleteStateMachine: (args: DeleteStateMachineCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineCommandOutput, InvalidArnError | ValidationError | SdkError, SFNService>;
167
- deleteStateMachineAlias: (args: DeleteStateMachineAliasCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
168
- deleteStateMachineVersion: (args: DeleteStateMachineVersionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ValidationError | SdkError, SFNService>;
169
- describeActivity: (args: DescribeActivityCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeActivityCommandOutput, ActivityDoesNotExistError | InvalidArnError | SdkError, SFNService>;
170
- describeExecution: (args: DescribeExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
171
- describeMapRun: (args: DescribeMapRunCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
172
- describeStateMachine: (args: DescribeStateMachineCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineCommandOutput, InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError | SdkError, SFNService>;
173
- describeStateMachineAlias: (args: DescribeStateMachineAliasCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineAliasCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
174
- describeStateMachineForExecution: (args: DescribeStateMachineForExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineForExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
175
- getActivityTask: (args: GetActivityTaskCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<GetActivityTaskCommandOutput, ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
176
- getExecutionHistory: (args: GetExecutionHistoryCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<GetExecutionHistoryCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
177
- listActivities: (args: ListActivitiesCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListActivitiesCommandOutput, InvalidTokenError | SdkError, SFNService>;
178
- listExecutions: (args: ListExecutionsCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListExecutionsCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError | SdkError, SFNService>;
179
- listMapRuns: (args: ListMapRunsCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListMapRunsCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | SdkError, SFNService>;
180
- listStateMachineAliases: (args: ListStateMachineAliasesCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineAliasesCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError | SdkError, SFNService>;
181
- listStateMachines: (args: ListStateMachinesCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachinesCommandOutput, InvalidTokenError | SdkError, SFNService>;
182
- listStateMachineVersions: (args: ListStateMachineVersionsCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineVersionsCommandOutput, InvalidArnError | InvalidTokenError | ValidationError | SdkError, SFNService>;
183
- listTagsForResource: (args: ListTagsForResourceCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ListTagsForResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
184
- publishStateMachineVersion: (args: PublishStateMachineVersionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<PublishStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
185
- redriveExecution: (args: RedriveExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<RedriveExecutionCommandOutput, ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError | SdkError, SFNService>;
186
- sendTaskFailure: (args: SendTaskFailureCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<SendTaskFailureCommandOutput, InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
187
- sendTaskHeartbeat: (args: SendTaskHeartbeatCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<SendTaskHeartbeatCommandOutput, InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
188
- sendTaskSuccess: (args: SendTaskSuccessCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<SendTaskSuccessCommandOutput, InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
189
- startExecution: (args: StartExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<StartExecutionCommandOutput, ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
190
- startSyncExecution: (args: StartSyncExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<StartSyncExecutionCommandOutput, InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | SdkError, SFNService>;
191
- stopExecution: (args: StopExecutionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<StopExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError | SdkError, SFNService>;
192
- tagResource: (args: TagResourceCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | TooManyTagsError | SdkError, SFNService>;
193
- testState: (args: TestStateCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<TestStateCommandOutput, InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError | SdkError, SFNService>;
194
- untagResource: (args: UntagResourceCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
195
- updateMapRun: (args: UpdateMapRunCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<UpdateMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
196
- updateStateMachine: (args: UpdateStateMachineCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
197
- updateStateMachineAlias: (args: UpdateStateMachineAliasCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
198
- validateStateMachineDefinition: (args: ValidateStateMachineDefinitionCommandInput, options?: __HttpHandlerOptions | undefined) => Effect.Effect<ValidateStateMachineDefinitionCommandOutput, ValidationError | SdkError, SFNService>;
168
+ createActivity: (args: CreateActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateActivityCommandOutput, ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError | SdkError, SFNService>;
169
+ createStateMachine: (args: CreateStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError | SdkError, SFNService>;
170
+ createStateMachineAlias: (args: CreateStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
171
+ deleteActivity: (args: DeleteActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteActivityCommandOutput, InvalidArnError | SdkError, SFNService>;
172
+ deleteStateMachine: (args: DeleteStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineCommandOutput, InvalidArnError | ValidationError | SdkError, SFNService>;
173
+ deleteStateMachineAlias: (args: DeleteStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
174
+ deleteStateMachineVersion: (args: DeleteStateMachineVersionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ValidationError | SdkError, SFNService>;
175
+ describeActivity: (args: DescribeActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeActivityCommandOutput, ActivityDoesNotExistError | InvalidArnError | SdkError, SFNService>;
176
+ describeExecution: (args: DescribeExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
177
+ describeMapRun: (args: DescribeMapRunCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
178
+ describeStateMachine: (args: DescribeStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineCommandOutput, InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError | SdkError, SFNService>;
179
+ describeStateMachineAlias: (args: DescribeStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineAliasCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
180
+ describeStateMachineForExecution: (args: DescribeStateMachineForExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineForExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
181
+ getActivityTask: (args: GetActivityTaskCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetActivityTaskCommandOutput, ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
182
+ getExecutionHistory: (args: GetExecutionHistoryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetExecutionHistoryCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
183
+ listActivities: (args: ListActivitiesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListActivitiesCommandOutput, InvalidTokenError | SdkError, SFNService>;
184
+ listExecutions: (args: ListExecutionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListExecutionsCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError | SdkError, SFNService>;
185
+ listMapRuns: (args: ListMapRunsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListMapRunsCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | SdkError, SFNService>;
186
+ listStateMachineAliases: (args: ListStateMachineAliasesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineAliasesCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError | SdkError, SFNService>;
187
+ listStateMachines: (args: ListStateMachinesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachinesCommandOutput, InvalidTokenError | SdkError, SFNService>;
188
+ listStateMachineVersions: (args: ListStateMachineVersionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineVersionsCommandOutput, InvalidArnError | InvalidTokenError | ValidationError | SdkError, SFNService>;
189
+ listTagsForResource: (args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsForResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
190
+ publishStateMachineVersion: (args: PublishStateMachineVersionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PublishStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
191
+ redriveExecution: (args: RedriveExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RedriveExecutionCommandOutput, ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError | SdkError, SFNService>;
192
+ sendTaskFailure: (args: SendTaskFailureCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskFailureCommandOutput, InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
193
+ sendTaskHeartbeat: (args: SendTaskHeartbeatCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskHeartbeatCommandOutput, InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
194
+ sendTaskSuccess: (args: SendTaskSuccessCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskSuccessCommandOutput, InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
195
+ startExecution: (args: StartExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartExecutionCommandOutput, ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
196
+ startSyncExecution: (args: StartSyncExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartSyncExecutionCommandOutput, InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | SdkError, SFNService>;
197
+ stopExecution: (args: StopExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError | SdkError, SFNService>;
198
+ tagResource: (args: TagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | TooManyTagsError | SdkError, SFNService>;
199
+ testState: (args: TestStateCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TestStateCommandOutput, InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError | SdkError, SFNService>;
200
+ untagResource: (args: UntagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
201
+ updateMapRun: (args: UpdateMapRunCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
202
+ updateStateMachine: (args: UpdateStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
203
+ updateStateMachineAlias: (args: UpdateStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
204
+ validateStateMachineDefinition: (args: ValidateStateMachineDefinitionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ValidateStateMachineDefinitionCommandOutput, ValidationError | SdkError, SFNService>;
199
205
  } & {
200
206
  use: <X>(body: (_: SFNService$) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | SFNService> : Effect.Effect<X, never, SFNService>;
201
207
  };
package/lib/SFNService.js CHANGED
@@ -64,7 +64,10 @@ exports.makeSFNService = effect_1.Effect.gen(function* (_) {
64
64
  return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
65
65
  const CommandCtor = commands[command];
66
66
  const methodImpl = (args, options) => effect_1.Effect.tryPromise({
67
- try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
67
+ try: (abortSignal) => client.send(new CommandCtor(args), {
68
+ ...(options !== null && options !== void 0 ? options : {}),
69
+ abortSignal,
70
+ }),
68
71
  catch: (e) => {
69
72
  if (e instanceof client_sfn_1.SFNServiceException &&
70
73
  Errors_1.AllServiceErrors.includes(e.name)) {
@@ -105,4 +108,4 @@ exports.SFNServiceLayer = exports.BaseSFNServiceLayer.pipe(effect_1.Layer.provid
105
108
  * @category layers
106
109
  */
107
110
  exports.DefaultSFNServiceLayer = exports.SFNServiceLayer.pipe(effect_1.Layer.provide(SFNClientInstanceConfig_1.DefaultSFNClientConfigLayer));
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBaUg2QjtBQUU3QixtQ0FBcUQ7QUFDckQscUNBcUNrQjtBQUNsQiwyREFBZ0Y7QUFDaEYsdUVBQXdFO0FBRXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2YscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyx1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLGdDQUFnQyxFQUFoQyw2Q0FBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLG9EQUF1QztJQUN2QyxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLHNCQUFzQixF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RCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLHVCQUFlLENBQUMsSUFBSSxDQUN4RCxjQUFLLENBQUMsT0FBTyxDQUFDLHFEQUEyQixDQUFDLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBTRk5TZXJ2aWNlRXhjZXB0aW9uLFxuICBDcmVhdGVBY3Rpdml0eUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU1hcFJ1bkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVNYXBSdW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVNYXBSdW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRBY3Rpdml0eVRhc2tDb21tYW5kLFxuICB0eXBlIEdldEFjdGl2aXR5VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY3Rpdml0eVRhc2tDb21tYW5kT3V0cHV0LFxuICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgdHlwZSBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0QWN0aXZpdGllc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFjdGl2aXRpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjdGl2aXRpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RXhlY3V0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEV4ZWN1dGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEV4ZWN1dGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0TWFwUnVuc0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1hcFJ1bnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE1hcFJ1bnNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kLFxuICB0eXBlIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kVGFza0ZhaWx1cmVDb21tYW5kT3V0cHV0LFxuICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kT3V0cHV0LFxuICBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kLFxuICB0eXBlIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydEV4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBTdG9wRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdG9wRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBUZXN0U3RhdGVDb21tYW5kLFxuICB0eXBlIFRlc3RTdGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0U3RhdGVDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVNYXBSdW5Db21tYW5kLFxuICB0eXBlIFVwZGF0ZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVNYXBSdW5Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kLFxuICB0eXBlIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNmblwiO1xuaW1wb3J0IHsgdHlwZSBIdHRwSGFuZGxlck9wdGlvbnMgYXMgX19IdHRwSGFuZGxlck9wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjdGl2aXR5QWxyZWFkeUV4aXN0c0Vycm9yLFxuICBBY3Rpdml0eURvZXNOb3RFeGlzdEVycm9yLFxuICBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvcixcbiAgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IsXG4gIEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yLFxuICBJbnZhbGlkQXJuRXJyb3IsXG4gIEludmFsaWREZWZpbml0aW9uRXJyb3IsXG4gIEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbkVycm9yLFxuICBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvcixcbiAgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IsXG4gIEludmFsaWROYW1lRXJyb3IsXG4gIEludmFsaWRPdXRwdXRFcnJvcixcbiAgSW52YWxpZFRva2VuRXJyb3IsXG4gIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuICBLbXNBY2Nlc3NEZW5pZWRFcnJvcixcbiAgS21zSW52YWxpZFN0YXRlRXJyb3IsXG4gIEttc1Rocm90dGxpbmdFcnJvcixcbiAgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yLFxuICBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvcixcbiAgU3RhdGVNYWNoaW5lTGltaXRFeGNlZWRlZEVycm9yLFxuICBTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkRXJyb3IsXG4gIFRhc2tEb2VzTm90RXhpc3RFcnJvcixcbiAgVGFza1RpbWVkT3V0RXJyb3IsXG4gIFRvb01hbnlUYWdzRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBTRk5DbGllbnRJbnN0YW5jZSwgU0ZOQ2xpZW50SW5zdGFuY2VMYXllciB9IGZyb20gXCIuL1NGTkNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0U0ZOQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9TRk5DbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kLFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmQsXG4gIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZCxcbiAgRGVzY3JpYmVNYXBSdW5Db21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kLFxuICBMaXN0QWN0aXZpdGllc0NvbW1hbmQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgTGlzdE1hcFJ1bnNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZCxcbiAgU3RhcnRFeGVjdXRpb25Db21tYW5kLFxuICBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kLFxuICBTdG9wRXhlY3V0aW9uQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0U3RhdGVDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlTWFwUnVuQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIFNGTlNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWN0aXZpdHkoXG4gICAgYXJnczogQ3JlYXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY3Rpdml0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgQWN0aXZpdHlMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBY3Rpdml0eShcbiAgICBhcmdzOiBEZWxldGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVsZXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LCBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBDb25mbGljdEVycm9yIHwgSW52YWxpZEFybkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVBY3Rpdml0eShcbiAgICBhcmdzOiBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFeGVjdXRpb24oXG4gICAgYXJnczogRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU1hcFJ1bkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU1hcFJ1bihcbiAgICBhcmdzOiBEZXNjcmliZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVNYXBSdW5Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZH1cbiAgICovXG4gIGdldEFjdGl2aXR5VGFzayhcbiAgICBhcmdzOiBHZXRBY3Rpdml0eVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRFeGVjdXRpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWN0aXZpdGllc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWN0aXZpdGllcyhcbiAgICBhcmdzOiBMaXN0QWN0aXZpdGllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8TGlzdEFjdGl2aXRpZXNDb21tYW5kT3V0cHV0LCBTZGtFcnJvciB8IEludmFsaWRUb2tlbkVycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEV4ZWN1dGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV4ZWN1dGlvbnMoXG4gICAgYXJnczogTGlzdEV4ZWN1dGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFeGVjdXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TWFwUnVuc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TWFwUnVucyhcbiAgICBhcmdzOiBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1hcFJ1bnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lQWxpYXNlcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0YXRlTWFjaGluZXMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRUb2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVkcml2ZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza0ZhaWx1cmUoXG4gICAgYXJnczogU2VuZFRhc2tGYWlsdXJlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgVGFza0RvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza0hlYXJ0YmVhdChcbiAgICBhcmdzOiBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3IgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tTdWNjZXNzKFxuICAgIGFyZ3M6IFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3V0cHV0RXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgVGFza0RvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydEV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydEV4ZWN1dGlvbihcbiAgICBhcmdzOiBTdGFydEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRTeW5jRXhlY3V0aW9uKFxuICAgIGFyZ3M6IFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFeGVjdXRpb24oXG4gICAgYXJnczogU3RvcEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0U3RhdGVDb21tYW5kfVxuICAgKi9cbiAgdGVzdFN0YXRlKFxuICAgIGFyZ3M6IFRlc3RTdGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWREZWZpbml0aW9uRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU1hcFJ1bkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVNYXBSdW4oXG4gICAgYXJnczogVXBkYXRlTWFwUnVuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVNYXBSdW5Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICB2YWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb24oXG4gICAgYXJnczogVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBTRk5TZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcIkBlZmZlY3QtYXdzL2NsaWVudC1zZm4vU0ZOU2VydmljZVwiKTxcbiAgU0ZOU2VydmljZSxcbiAgU0ZOU2VydmljZSRcbj4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZVNGTlNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhTRk5DbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9uczogYW55KSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6ICgpID0+IGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwgb3B0aW9ucyA/PyB7fSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBTRk5TZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPFNGTlNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIFNGTlNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlU0ZOU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFNGTlNlcnZpY2UsIG1ha2VTRk5TZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFNGTlNlcnZpY2VMYXllciA9IEJhc2VTRk5TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShTRk5DbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0U0ZOU2VydmljZUxheWVyID0gU0ZOU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBaUg2QjtBQUM3QixtQ0FBcUQ7QUFDckQscUNBcUNrQjtBQUNsQiwyREFBZ0Y7QUFDaEYsdUVBQXdFO0FBVXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2YscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyx1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLGdDQUFnQyxFQUFoQyw2Q0FBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLG9EQUF1QztJQUN2QyxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLHNCQUFzQixF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RTs7O0dBR0c7QUFDVSxRQUFBLGVBQWUsR0FBRywyQkFBbUIsQ0FBQyxJQUFJLENBQ3JELGNBQUssQ0FBQyxPQUFPLENBQUMsMENBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsdUJBQWUsQ0FBQyxJQUFJLENBQ3hELGNBQUssQ0FBQyxPQUFPLENBQUMscURBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIFNGTlNlcnZpY2VFeGNlcHRpb24sXG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIHR5cGUgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY3Rpdml0aWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFN0b3BFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RTdGF0ZUNvbW1hbmQsXG4gIHR5cGUgVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RTdGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTWFwUnVuQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc2ZuXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY3Rpdml0eUFscmVhZHlFeGlzdHNFcnJvcixcbiAgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvcixcbiAgQWN0aXZpdHlMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIEFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBFeGVjdXRpb25BbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yLFxuICBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIEV4ZWN1dGlvbk5vdFJlZHJpdmFibGVFcnJvcixcbiAgSW52YWxpZEFybkVycm9yLFxuICBJbnZhbGlkRGVmaW5pdGlvbkVycm9yLFxuICBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvcixcbiAgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3IsXG4gIEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuICBJbnZhbGlkTmFtZUVycm9yLFxuICBJbnZhbGlkT3V0cHV0RXJyb3IsXG4gIEludmFsaWRUb2tlbkVycm9yLFxuICBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcbiAgS21zQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEttc0ludmFsaWRTdGF0ZUVycm9yLFxuICBLbXNUaHJvdHRsaW5nRXJyb3IsXG4gIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIFN0YXRlTWFjaGluZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvcixcbiAgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3IsXG4gIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yLFxuICBUYXNrRG9lc05vdEV4aXN0RXJyb3IsXG4gIFRhc2tUaW1lZE91dEVycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgU0ZOQ2xpZW50SW5zdGFuY2UsIFNGTkNsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9TRk5DbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vU0ZOQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kLFxuICBHZXRBY3Rpdml0eVRhc2tDb21tYW5kLFxuICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgTGlzdEFjdGl2aXRpZXNDb21tYW5kLFxuICBMaXN0RXhlY3V0aW9uc0NvbW1hbmQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kLFxuICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RvcEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdFN0YXRlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBTRk5TZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFjdGl2aXR5KFxuICAgIGFyZ3M6IENyZWF0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjdGl2aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWN0aXZpdHkoXG4gICAgYXJnczogRGVsZXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENvbmZsaWN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjdGl2aXR5KFxuICAgIGFyZ3M6IERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFeGVjdXRpb24oXG4gICAgYXJnczogRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNYXBSdW5Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVNYXBSdW4oXG4gICAgYXJnczogRGVzY3JpYmVNYXBSdW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbihcbiAgICBhcmdzOiBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY3Rpdml0eVRhc2tDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWN0aXZpdHlUYXNrKFxuICAgIGFyZ3M6IEdldEFjdGl2aXR5VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRFeGVjdXRpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjdGl2aXRpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjdGl2aXRpZXMoXG4gICAgYXJnczogTGlzdEFjdGl2aXRpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXhlY3V0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXhlY3V0aW9ucyhcbiAgICBhcmdzOiBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFeGVjdXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TWFwUnVuc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TWFwUnVucyhcbiAgICBhcmdzOiBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNYXBSdW5zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yIHwgSW52YWxpZEFybkVycm9yIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0YXRlTWFjaGluZUFsaWFzZXMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRUb2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IEludmFsaWRUb2tlbkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVkcml2ZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza0ZhaWx1cmVDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tGYWlsdXJlKFxuICAgIGFyZ3M6IFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrSGVhcnRiZWF0KFxuICAgIGFyZ3M6IFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3IgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tTdWNjZXNzKFxuICAgIGFyZ3M6IFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE91dHB1dEVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRhc2tEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVGFza1RpbWVkT3V0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydFN5bmNFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFeGVjdXRpb24oXG4gICAgYXJnczogU3RvcEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RTdGF0ZUNvbW1hbmR9XG4gICAqL1xuICB0ZXN0U3RhdGUoXG4gICAgYXJnczogVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWREZWZpbml0aW9uRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVNYXBSdW5Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTWFwUnVuKFxuICAgIGFyZ3M6IFVwZGF0ZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgdmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uKFxuICAgIGFyZ3M6IFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIFNGTlNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFwiQGVmZmVjdC1hd3MvY2xpZW50LXNmbi9TRk5TZXJ2aWNlXCIpPFxuICBTRk5TZXJ2aWNlLFxuICBTRk5TZXJ2aWNlJFxuPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU0ZOU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFNGTkNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgU0ZOU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxTRk5TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBTRk5TZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZVNGTlNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChTRk5TZXJ2aWNlLCBtYWtlU0ZOU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBTRk5TZXJ2aWNlTGF5ZXIgPSBCYXNlU0ZOU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoU0ZOQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFNGTlNlcnZpY2VMYXllciA9IFNGTlNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRTRk5DbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
@@ -60,7 +60,10 @@ export const makeSFNService = Effect.gen(function* (_) {
60
60
  return Record.toEntries(commands).reduce((acc, [command]) => {
61
61
  const CommandCtor = commands[command];
62
62
  const methodImpl = (args, options) => Effect.tryPromise({
63
- try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
63
+ try: (abortSignal) => client.send(new CommandCtor(args), {
64
+ ...(options !== null && options !== void 0 ? options : {}),
65
+ abortSignal,
66
+ }),
64
67
  catch: (e) => {
65
68
  if (e instanceof SFNServiceException &&
66
69
  AllServiceErrors.includes(e.name)) {
@@ -101,4 +104,4 @@ export const SFNServiceLayer = BaseSFNServiceLayer.pipe(Layer.provide(SFNClientI
101
104
  * @category layers
102
105
  */
103
106
  export const DefaultSFNServiceLayer = SFNServiceLayer.pipe(Layer.provide(DefaultSFNClientConfigLayer));
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixnQ0FBZ0MsRUFHaEMsdUJBQXVCLEVBR3ZCLHdCQUF3QixFQUd4QixxQkFBcUIsRUFHckIsMkJBQTJCLEVBRzNCLGdDQUFnQyxFQUdoQyx1Q0FBdUMsRUFHdkMsc0JBQXNCLEVBR3RCLDBCQUEwQixFQUcxQixxQkFBcUIsRUFHckIscUJBQXFCLEVBR3JCLGtCQUFrQixFQUdsQiw4QkFBOEIsRUFHOUIsd0JBQXdCLEVBR3hCLCtCQUErQixFQUcvQiwwQkFBMEIsRUFHMUIsaUNBQWlDLEVBR2pDLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsd0JBQXdCLEVBR3hCLHNCQUFzQixFQUd0QixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLG9CQUFvQixFQUdwQixrQkFBa0IsRUFHbEIsZ0JBQWdCLEVBR2hCLG9CQUFvQixFQUdwQixtQkFBbUIsRUFHbkIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixxQ0FBcUMsR0FHdEMsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JELE9BQU8sRUFDTCxnQkFBZ0IsRUFrQ2hCLFFBQVEsR0FFVCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RSxNQUFNLFFBQVEsR0FBRztJ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QUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBZ0IsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRTVFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIFNGTlNlcnZpY2VFeGNlcHRpb24sXG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIHR5cGUgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY3Rpdml0aWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFN0b3BFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RTdGF0ZUNvbW1hbmQsXG4gIHR5cGUgVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RTdGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTWFwUnVuQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc2ZuXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWN0aXZpdHlBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IsXG4gIEFjdGl2aXR5TGltaXRFeGNlZWRlZEVycm9yLFxuICBBY3Rpdml0eVdvcmtlckxpbWl0RXhjZWVkZWRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRXhlY3V0aW9uQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvcixcbiAgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yLFxuICBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlRXJyb3IsXG4gIEludmFsaWRBcm5FcnJvcixcbiAgSW52YWxpZERlZmluaXRpb25FcnJvcixcbiAgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3IsXG4gIEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yLFxuICBJbnZhbGlkTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcbiAgSW52YWxpZE5hbWVFcnJvcixcbiAgSW52YWxpZE91dHB1dEVycm9yLFxuICBJbnZhbGlkVG9rZW5FcnJvcixcbiAgSW52YWxpZFRyYWNpbmdDb25maWd1cmF0aW9uRXJyb3IsXG4gIEttc0FjY2Vzc0RlbmllZEVycm9yLFxuICBLbXNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS21zVGhyb3R0bGluZ0Vycm9yLFxuICBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3IsXG4gIFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yLFxuICBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvcixcbiAgVGFza0RvZXNOb3RFeGlzdEVycm9yLFxuICBUYXNrVGltZWRPdXRFcnJvcixcbiAgVG9vTWFueVRhZ3NFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IFNGTkNsaWVudEluc3RhbmNlLCBTRk5DbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vU0ZOQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRTRk5DbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL1NGTkNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBDcmVhdGVBY3Rpdml0eUNvbW1hbmQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQWN0aXZpdHlDb21tYW5kLFxuICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZCxcbiAgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kLFxuICBEZXNjcmliZU1hcFJ1bkNvbW1hbmQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZCxcbiAgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZCxcbiAgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQsXG4gIExpc3RBY3Rpdml0aWVzQ29tbWFuZCxcbiAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kLFxuICBMaXN0TWFwUnVuc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZCxcbiAgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZCxcbiAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kLFxuICBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kLFxuICBTdGFydEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFRlc3RTdGF0ZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVNYXBSdW5Db21tYW5kLFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgU0ZOU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBY3Rpdml0eShcbiAgICBhcmdzOiBDcmVhdGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjdGl2aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRGVmaW5pdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjdGl2aXR5KFxuICAgIGFyZ3M6IERlbGV0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENvbmZsaWN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjdGl2aXR5KFxuICAgIGFyZ3M6IERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvciB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTWFwUnVuQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTWFwUnVuKFxuICAgIGFyZ3M6IERlc2NyaWJlTWFwUnVuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb24oXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY3Rpdml0eVRhc2tDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWN0aXZpdHlUYXNrKFxuICAgIGFyZ3M6IEdldEFjdGl2aXR5VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY3Rpdml0eURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBBY3Rpdml0eVdvcmtlckxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldEV4ZWN1dGlvbkhpc3RvcnkoXG4gICAgYXJnczogR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY3Rpdml0aWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBY3Rpdml0aWVzKFxuICAgIGFyZ3M6IExpc3RBY3Rpdml0aWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXhlY3V0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXhlY3V0aW9ucyhcbiAgICBhcmdzOiBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNYXBSdW5zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNYXBSdW5zKFxuICAgIGFyZ3M6IExpc3RNYXBSdW5zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TWFwUnVuc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IEludmFsaWRUb2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdGF0ZU1hY2hpbmVWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWRyaXZlRXhlY3V0aW9uKFxuICAgIGFyZ3M6IFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEV4ZWN1dGlvbk5vdFJlZHJpdmFibGVFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrRmFpbHVyZShcbiAgICBhcmdzOiBTZW5kVGFza0ZhaWx1cmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrSGVhcnRiZWF0KFxuICAgIGFyZ3M6IFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvciB8IFRhc2tEb2VzTm90RXhpc3RFcnJvciB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza1N1Y2Nlc3MoXG4gICAgYXJnczogU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPdXRwdXRFcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RXhlY3V0aW9uKFxuICAgIGFyZ3M6IFN0YXJ0RXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydFN5bmNFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RvcEV4ZWN1dGlvbihcbiAgICBhcmdzOiBTdG9wRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RTdGF0ZUNvbW1hbmR9XG4gICAqL1xuICB0ZXN0U3RhdGUoXG4gICAgYXJnczogVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0U3RhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTWFwUnVuQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZU1hcFJ1bihcbiAgICBhcmdzOiBVcGRhdGVNYXBSdW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRGVmaW5pdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTdGF0ZU1hY2hpbmVBbGlhcyhcbiAgICBhcmdzOiBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZH1cbiAgICovXG4gIHZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbihcbiAgICBhcmdzOiBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIFNGTlNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFwiQGVmZmVjdC1hd3MvY2xpZW50LXNmbi9TRk5TZXJ2aWNlXCIpPFxuICBTRk5TZXJ2aWNlLFxuICBTRk5TZXJ2aWNlJFxuPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU0ZOU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFNGTkNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIFNGTlNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248U0ZOU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgU0ZOU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VTRk5TZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoU0ZOU2VydmljZSwgbWFrZVNGTlNlcnZpY2UpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgU0ZOU2VydmljZUxheWVyID0gQmFzZVNGTlNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKFNGTkNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTRk5TZXJ2aWNlTGF5ZXIgPSBTRk5TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0U0ZOQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixnQ0FBZ0MsRUFHaEMsdUJBQXVCLEVBR3ZCLHdCQUF3QixFQUd4QixxQkFBcUIsRUFHckIsMkJBQTJCLEVBRzNCLGdDQUFnQyxFQUdoQyx1Q0FBdUMsRUFHdkMsc0JBQXNCLEVBR3RCLDBCQUEwQixFQUcxQixxQkFBcUIsRUFHckIscUJBQXFCLEVBR3JCLGtCQUFrQixFQUdsQiw4QkFBOEIsRUFHOUIsd0JBQXdCLEVBR3hCLCtCQUErQixFQUcvQiwwQkFBMEIsRUFHMUIsaUNBQWlDLEVBR2pDLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsd0JBQXdCLEVBR3hCLHNCQUFzQixFQUd0QixxQkFBcUIsRUFHckIseUJBQXlCLEVBR3pCLG9CQUFvQixFQUdwQixrQkFBa0IsRUFHbEIsZ0JBQWdCLEVBR2hCLG9CQUFvQixFQUdwQixtQkFBbUIsRUFHbkIseUJBQXlCLEVBR3pCLDhCQUE4QixFQUc5QixxQ0FBcUMsR0FHdEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JELE9BQU8sRUFDTCxnQkFBZ0IsRUFrQ2hCLFFBQVEsR0FFVCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVV4RSxNQUFNLFFBQVEsR0FBRztJ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QUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFnQixDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFNUU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUN0QyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgU0ZOU2VydmljZUV4Y2VwdGlvbixcbiAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWN0aXZpdHlDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVNYXBSdW5Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlTWFwUnVuQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTWFwUnVuQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZCxcbiAgdHlwZSBHZXRBY3Rpdml0eVRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZE91dHB1dCxcbiAgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEFjdGl2aXRpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBY3Rpdml0aWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY3Rpdml0aWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RFeGVjdXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFeGVjdXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1hcFJ1bnNDb21tYW5kLFxuICB0eXBlIExpc3RNYXBSdW5zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNYXBSdW5zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kLFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kLFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZCxcbiAgdHlwZSBTZW5kVGFza0ZhaWx1cmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZE91dHB1dCxcbiAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kLFxuICB0eXBlIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZE91dHB1dCxcbiAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RvcEV4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RvcEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVGVzdFN0YXRlQ29tbWFuZCxcbiAgdHlwZSBUZXN0U3RhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTWFwUnVuQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVNYXBSdW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTWFwUnVuQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZCxcbiAgdHlwZSBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zZm5cIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjdGl2aXR5QWxyZWFkeUV4aXN0c0Vycm9yLFxuICBBY3Rpdml0eURvZXNOb3RFeGlzdEVycm9yLFxuICBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvcixcbiAgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IsXG4gIEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yLFxuICBJbnZhbGlkQXJuRXJyb3IsXG4gIEludmFsaWREZWZpbml0aW9uRXJyb3IsXG4gIEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbkVycm9yLFxuICBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvcixcbiAgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IsXG4gIEludmFsaWROYW1lRXJyb3IsXG4gIEludmFsaWRPdXRwdXRFcnJvcixcbiAgSW52YWxpZFRva2VuRXJyb3IsXG4gIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuICBLbXNBY2Nlc3NEZW5pZWRFcnJvcixcbiAgS21zSW52YWxpZFN0YXRlRXJyb3IsXG4gIEttc1Rocm90dGxpbmdFcnJvcixcbiAgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yLFxuICBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvcixcbiAgU3RhdGVNYWNoaW5lTGltaXRFeGNlZWRlZEVycm9yLFxuICBTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkRXJyb3IsXG4gIFRhc2tEb2VzTm90RXhpc3RFcnJvcixcbiAgVGFza1RpbWVkT3V0RXJyb3IsXG4gIFRvb01hbnlUYWdzRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBTRk5DbGllbnRJbnN0YW5jZSwgU0ZOQ2xpZW50SW5zdGFuY2VMYXllciB9IGZyb20gXCIuL1NGTkNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0U0ZOQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9TRk5DbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5pbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kLFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmQsXG4gIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZCxcbiAgRGVzY3JpYmVNYXBSdW5Db21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kLFxuICBMaXN0QWN0aXZpdGllc0NvbW1hbmQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgTGlzdE1hcFJ1bnNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZCxcbiAgU3RhcnRFeGVjdXRpb25Db21tYW5kLFxuICBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kLFxuICBTdG9wRXhlY3V0aW9uQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0U3RhdGVDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlTWFwUnVuQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIFNGTlNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWN0aXZpdHkoXG4gICAgYXJnczogQ3JlYXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWN0aXZpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEFjdGl2aXR5TGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU3RhdGVNYWNoaW5lKFxuICAgIGFyZ3M6IENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRGVmaW5pdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBY3Rpdml0eShcbiAgICBhcmdzOiBEZWxldGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlbGV0ZUFjdGl2aXR5Q29tbWFuZE91dHB1dCwgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RhdGVNYWNoaW5lKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ29uZmxpY3RFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQWN0aXZpdHkoXG4gICAgYXJnczogRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvciB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU1hcFJ1bkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU1hcFJ1bihcbiAgICBhcmdzOiBEZXNjcmliZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTWFwUnVuQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjdGl2aXR5VGFza0NvbW1hbmR9XG4gICAqL1xuICBnZXRBY3Rpdml0eVRhc2soXG4gICAgYXJnczogR2V0QWN0aXZpdHlUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY3Rpdml0eURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBBY3Rpdml0eVdvcmtlckxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldEV4ZWN1dGlvbkhpc3RvcnkoXG4gICAgYXJnczogR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWN0aXZpdGllc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWN0aXZpdGllcyhcbiAgICBhcmdzOiBMaXN0QWN0aXZpdGllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RBY3Rpdml0aWVzQ29tbWFuZE91dHB1dCwgU2RrRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFeGVjdXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RFeGVjdXRpb25zKFxuICAgIGFyZ3M6IExpc3RFeGVjdXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNYXBSdW5zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNYXBSdW5zKFxuICAgIGFyZ3M6IExpc3RNYXBSdW5zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1hcFJ1bnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lQWxpYXNlcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdGF0ZU1hY2hpbmVzKFxuICAgIGFyZ3M6IExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdGF0ZU1hY2hpbmVWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbihcbiAgICBhcmdzOiBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWRyaXZlRXhlY3V0aW9uKFxuICAgIGFyZ3M6IFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza0ZhaWx1cmUoXG4gICAgYXJnczogU2VuZFRhc2tGYWlsdXJlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRhc2tEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVGFza1RpbWVkT3V0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tIZWFydGJlYXQoXG4gICAgYXJnczogU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvciB8IFRhc2tEb2VzTm90RXhpc3RFcnJvciB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza1N1Y2Nlc3MoXG4gICAgYXJnczogU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3V0cHV0RXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgVGFza0RvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydEV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydEV4ZWN1dGlvbihcbiAgICBhcmdzOiBTdGFydEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25BbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U3luY0V4ZWN1dGlvbihcbiAgICBhcmdzOiBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RvcEV4ZWN1dGlvbihcbiAgICBhcmdzOiBTdG9wRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdFN0YXRlQ29tbWFuZH1cbiAgICovXG4gIHRlc3RTdGF0ZShcbiAgICBhcmdzOiBUZXN0U3RhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0U3RhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU1hcFJ1bkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVNYXBSdW4oXG4gICAgYXJnczogVXBkYXRlTWFwUnVuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTWFwUnVuQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RhdGVNYWNoaW5lKFxuICAgIGFyZ3M6IFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRGVmaW5pdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTdGF0ZU1hY2hpbmVBbGlhcyhcbiAgICBhcmdzOiBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICB2YWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb24oXG4gICAgYXJnczogVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgU0ZOU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXCJAZWZmZWN0LWF3cy9jbGllbnQtc2ZuL1NGTlNlcnZpY2VcIik8XG4gIFNGTlNlcnZpY2UsXG4gIFNGTlNlcnZpY2UkXG4+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VTRk5TZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oU0ZOQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBTRk5TZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPFNGTlNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIFNGTlNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlU0ZOU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFNGTlNlcnZpY2UsIG1ha2VTRk5TZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFNGTlNlcnZpY2VMYXllciA9IEJhc2VTRk5TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShTRk5DbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0U0ZOU2VydmljZUxheWVyID0gU0ZOU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  "@types/node": "^18",
10
10
  "@typescript-eslint/eslint-plugin": "^7",
11
11
  "@typescript-eslint/parser": "^7",
12
- "aws-sdk-client-mock": "^3.0.0",
13
- "aws-sdk-client-mock-jest": "^3.0.0",
12
+ "aws-sdk-client-mock": "^4.0.2",
13
+ "aws-sdk-client-mock-vitest": "^4.0.0",
14
14
  "effect": "3.0.0",
15
15
  "eslint": "^8",
16
16
  "eslint-config-prettier": "^9.1.0",
@@ -18,14 +18,14 @@
18
18
  "eslint-plugin-import": "^2.29.1",
19
19
  "eslint-plugin-prettier": "^5.2.1",
20
20
  "prettier": "^3.2.5",
21
- "typescript": "^5.4.2"
21
+ "typescript": "^5.4.2",
22
+ "vitest": "^2.0.5"
22
23
  },
23
24
  "peerDependencies": {
24
25
  "effect": ">=3.0.0 <4.0.0"
25
26
  },
26
27
  "dependencies": {
27
- "@aws-sdk/client-sfn": "^3",
28
- "@aws-sdk/types": "^3"
28
+ "@aws-sdk/client-sfn": "^3"
29
29
  },
30
30
  "main": "lib/index.js",
31
31
  "license": "MIT",
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.3.0",
36
+ "version": "1.4.0",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],
@@ -0,0 +1,3 @@
1
+ import configShared from "../../vitest.shared";
2
+
3
+ export default configShared;