@effect-aws/client-textract 1.0.0 → 1.1.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 +6 -0
- package/README.md +13 -40
- package/lib/TextractService.d.ts +18 -5
- package/lib/TextractService.js +24 -10
- package/lib/esm/TextractService.js +23 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @effect-aws/client-textract
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#80](https://github.com/floydspace/effect-aws/pull/80) [`4b16fbe`](https://github.com/floydspace/effect-aws/commit/4b16fbebce8131df7798ee92f43cf6b7df3e907c) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
|
|
8
|
+
|
|
3
9
|
## 1.0.0
|
|
4
10
|
|
|
5
11
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -14,13 +14,13 @@ npm install --save @effect-aws/client-textract
|
|
|
14
14
|
With default TextractClient instance:
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
|
-
import {
|
|
17
|
+
import { Textract } from "@effect-aws/client-textract";
|
|
18
18
|
|
|
19
|
-
const program =
|
|
19
|
+
const program = Textract.listAdapters(args);
|
|
20
20
|
|
|
21
21
|
const result = pipe(
|
|
22
22
|
program,
|
|
23
|
-
Effect.provide(
|
|
23
|
+
Effect.provide(Textract.defaultLayer),
|
|
24
24
|
Effect.runPromise,
|
|
25
25
|
);
|
|
26
26
|
```
|
|
@@ -28,23 +28,15 @@ const result = pipe(
|
|
|
28
28
|
With custom TextractClient instance:
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
|
-
import {
|
|
32
|
-
TextractService,
|
|
33
|
-
BaseTextractServiceLayer,
|
|
34
|
-
TextractClientInstance,
|
|
35
|
-
} from "@effect-aws/client-textract";
|
|
31
|
+
import { Textract } from "@effect-aws/client-textract";
|
|
36
32
|
|
|
37
|
-
const program =
|
|
38
|
-
|
|
39
|
-
const TextractClientInstanceLayer = Layer.succeed(
|
|
40
|
-
TextractClientInstance,
|
|
41
|
-
new TextractClient({ region: "eu-central-1" }),
|
|
42
|
-
);
|
|
33
|
+
const program = Textract.listAdapters(args);
|
|
43
34
|
|
|
44
35
|
const result = await pipe(
|
|
45
36
|
program,
|
|
46
|
-
Effect.provide(
|
|
47
|
-
|
|
37
|
+
Effect.provide(
|
|
38
|
+
Textract.baseLayer(() => new TextractClient({ region: "eu-central-1" })),
|
|
39
|
+
),
|
|
48
40
|
Effect.runPromise,
|
|
49
41
|
);
|
|
50
42
|
```
|
|
@@ -52,34 +44,15 @@ const result = await pipe(
|
|
|
52
44
|
With custom TextractClient configuration:
|
|
53
45
|
|
|
54
46
|
```typescript
|
|
55
|
-
import {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
DefaultTextractClientConfigLayer,
|
|
59
|
-
TextractClientInstance,
|
|
60
|
-
TextractClientInstanceConfig,
|
|
61
|
-
} from "@effect-aws/client-textract";
|
|
62
|
-
|
|
63
|
-
const program = TextractService.listAdapters(args);
|
|
64
|
-
|
|
65
|
-
const TextractClientInstanceLayer = Layer.provide(
|
|
66
|
-
Layer.effect(
|
|
67
|
-
TextractClientInstance,
|
|
68
|
-
TextractClientInstanceConfig.pipe(
|
|
69
|
-
Effect.map(
|
|
70
|
-
(config) => new TextractClient({ ...config, region: "eu-central-1" }),
|
|
71
|
-
),
|
|
72
|
-
),
|
|
73
|
-
),
|
|
74
|
-
DefaultTextractClientConfigLayer,
|
|
75
|
-
);
|
|
47
|
+
import { Textract } from "@effect-aws/client-textract";
|
|
48
|
+
|
|
49
|
+
const program = Textract.listAdapters(args);
|
|
76
50
|
|
|
77
51
|
const result = await pipe(
|
|
78
52
|
program,
|
|
79
|
-
Effect.provide(
|
|
80
|
-
Effect.provide(TextractClientInstanceLayer),
|
|
53
|
+
Effect.provide(Textract.layer({ region: "eu-central-1" })),
|
|
81
54
|
Effect.runPromiseExit,
|
|
82
55
|
);
|
|
83
56
|
```
|
|
84
57
|
|
|
85
|
-
or
|
|
58
|
+
or use `Textract.baseLayer((default) => new TextractClient({ ...default, region: "eu-central-1" }))`
|
package/lib/TextractService.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import { type AnalyzeDocumentCommandInput, type AnalyzeDocumentCommandOutput, type AnalyzeExpenseCommandInput, type AnalyzeExpenseCommandOutput, type AnalyzeIDCommandInput, type AnalyzeIDCommandOutput, type CreateAdapterCommandInput, type CreateAdapterCommandOutput, type CreateAdapterVersionCommandInput, type CreateAdapterVersionCommandOutput, type DeleteAdapterCommandInput, type DeleteAdapterCommandOutput, type DeleteAdapterVersionCommandInput, type DeleteAdapterVersionCommandOutput, type DetectDocumentTextCommandInput, type DetectDocumentTextCommandOutput, type GetAdapterCommandInput, type GetAdapterCommandOutput, type GetAdapterVersionCommandInput, type GetAdapterVersionCommandOutput, type GetDocumentAnalysisCommandInput, type GetDocumentAnalysisCommandOutput, type GetDocumentTextDetectionCommandInput, type GetDocumentTextDetectionCommandOutput, type GetExpenseAnalysisCommandInput, type GetExpenseAnalysisCommandOutput, type GetLendingAnalysisCommandInput, type GetLendingAnalysisCommandOutput, type GetLendingAnalysisSummaryCommandInput, type GetLendingAnalysisSummaryCommandOutput, type ListAdapterVersionsCommandInput, type ListAdapterVersionsCommandOutput, type ListAdaptersCommandInput, type ListAdaptersCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type StartDocumentAnalysisCommandInput, type StartDocumentAnalysisCommandOutput, type StartDocumentTextDetectionCommandInput, type StartDocumentTextDetectionCommandOutput, type StartExpenseAnalysisCommandInput, type StartExpenseAnalysisCommandOutput, type StartLendingAnalysisCommandInput, type StartLendingAnalysisCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAdapterCommandInput, type UpdateAdapterCommandOutput } from "@aws-sdk/client-textract";
|
|
4
|
+
import { type TextractClient, type TextractClientConfig, type AnalyzeDocumentCommandInput, type AnalyzeDocumentCommandOutput, type AnalyzeExpenseCommandInput, type AnalyzeExpenseCommandOutput, type AnalyzeIDCommandInput, type AnalyzeIDCommandOutput, type CreateAdapterCommandInput, type CreateAdapterCommandOutput, type CreateAdapterVersionCommandInput, type CreateAdapterVersionCommandOutput, type DeleteAdapterCommandInput, type DeleteAdapterCommandOutput, type DeleteAdapterVersionCommandInput, type DeleteAdapterVersionCommandOutput, type DetectDocumentTextCommandInput, type DetectDocumentTextCommandOutput, type GetAdapterCommandInput, type GetAdapterCommandOutput, type GetAdapterVersionCommandInput, type GetAdapterVersionCommandOutput, type GetDocumentAnalysisCommandInput, type GetDocumentAnalysisCommandOutput, type GetDocumentTextDetectionCommandInput, type GetDocumentTextDetectionCommandOutput, type GetExpenseAnalysisCommandInput, type GetExpenseAnalysisCommandOutput, type GetLendingAnalysisCommandInput, type GetLendingAnalysisCommandOutput, type GetLendingAnalysisSummaryCommandInput, type GetLendingAnalysisSummaryCommandOutput, type ListAdapterVersionsCommandInput, type ListAdapterVersionsCommandOutput, type ListAdaptersCommandInput, type ListAdaptersCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type StartDocumentAnalysisCommandInput, type StartDocumentAnalysisCommandOutput, type StartDocumentTextDetectionCommandInput, type StartDocumentTextDetectionCommandOutput, type StartExpenseAnalysisCommandInput, type StartExpenseAnalysisCommandOutput, type StartLendingAnalysisCommandInput, type StartLendingAnalysisCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateAdapterCommandInput, type UpdateAdapterCommandOutput } from "@aws-sdk/client-textract";
|
|
5
5
|
import { Effect, Layer } from "effect";
|
|
6
6
|
import { AccessDeniedError, BadDocumentError, ConflictError, DocumentTooLargeError, HumanLoopQuotaExceededError, IdempotentParameterMismatchError, InternalServerError, InvalidJobIdError, InvalidKMSKeyError, InvalidParameterError, InvalidS3ObjectError, LimitExceededError, ProvisionedThroughputExceededError, ResourceNotFoundError, ServiceQuotaExceededError, ThrottlingError, UnsupportedDocumentError, ValidationError, SdkError } from "./Errors";
|
|
7
7
|
import { TextractClientInstance } from "./TextractClientInstance";
|
|
8
|
+
import { TextractClientInstanceConfig } from "./TextractClientInstanceConfig";
|
|
8
9
|
/**
|
|
9
|
-
* @since 1.0.
|
|
10
|
+
* @since 1.0.0
|
|
10
11
|
*/
|
|
11
12
|
export interface HttpHandlerOptions {
|
|
12
13
|
/**
|
|
@@ -118,6 +119,11 @@ interface TextractService$ {
|
|
|
118
119
|
*/
|
|
119
120
|
updateAdapter(args: UpdateAdapterCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateAdapterCommandOutput, SdkError | AccessDeniedError | ConflictError | InternalServerError | InvalidParameterError | ProvisionedThroughputExceededError | ResourceNotFoundError | ThrottlingError | ValidationError>;
|
|
120
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* @since 1.0.0
|
|
124
|
+
* @category constructors
|
|
125
|
+
*/
|
|
126
|
+
export declare const makeTextractService: Effect.Effect<TextractService$, never, TextractClientInstance>;
|
|
121
127
|
declare const TextractService_base: import("effect/Context").TagClass<TextractService, "@effect-aws/client-textract/TextractService", TextractService$> & {
|
|
122
128
|
readonly _: Effect.Effect<TextractService$["_"], never, TextractService>;
|
|
123
129
|
analyzeDocument: (args: AnalyzeDocumentCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AnalyzeDocumentCommandOutput, AccessDeniedError | BadDocumentError | DocumentTooLargeError | HumanLoopQuotaExceededError | InternalServerError | InvalidParameterError | InvalidS3ObjectError | ProvisionedThroughputExceededError | ThrottlingError | UnsupportedDocumentError | SdkError, TextractService>;
|
|
@@ -153,25 +159,32 @@ declare const TextractService_base: import("effect/Context").TagClass<TextractSe
|
|
|
153
159
|
* @category models
|
|
154
160
|
*/
|
|
155
161
|
export declare class TextractService extends TextractService_base {
|
|
162
|
+
static readonly defaultLayer: Layer.Layer<TextractService, never, never>;
|
|
163
|
+
static readonly layer: (config: TextractClientConfig) => Layer.Layer<TextractService, never, never>;
|
|
164
|
+
static readonly baseLayer: (evaluate: (defaultConfig: TextractClientConfig) => TextractClient) => Layer.Layer<TextractService, never, never>;
|
|
156
165
|
}
|
|
157
166
|
/**
|
|
158
167
|
* @since 1.0.0
|
|
159
|
-
* @category
|
|
168
|
+
* @category models
|
|
169
|
+
* @alias TextractService
|
|
160
170
|
*/
|
|
161
|
-
export declare const
|
|
171
|
+
export declare const Textract: typeof TextractService;
|
|
162
172
|
/**
|
|
163
173
|
* @since 1.0.0
|
|
164
174
|
* @category layers
|
|
175
|
+
* @deprecated use Textract.baseLayer instead
|
|
165
176
|
*/
|
|
166
177
|
export declare const BaseTextractServiceLayer: Layer.Layer<TextractService, never, TextractClientInstance>;
|
|
167
178
|
/**
|
|
168
179
|
* @since 1.0.0
|
|
169
180
|
* @category layers
|
|
181
|
+
* @deprecated use Textract.layer instead
|
|
170
182
|
*/
|
|
171
|
-
export declare const TextractServiceLayer: Layer.Layer<TextractService, never,
|
|
183
|
+
export declare const TextractServiceLayer: Layer.Layer<TextractService, never, TextractClientInstanceConfig>;
|
|
172
184
|
/**
|
|
173
185
|
* @since 1.0.0
|
|
174
186
|
* @category layers
|
|
187
|
+
* @deprecated use Textract.defaultLayer instead
|
|
175
188
|
*/
|
|
176
189
|
export declare const DefaultTextractServiceLayer: Layer.Layer<TextractService, never, never>;
|
|
177
190
|
export {};
|
package/lib/TextractService.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultTextractServiceLayer = exports.TextractServiceLayer = exports.BaseTextractServiceLayer = exports.
|
|
4
|
+
exports.DefaultTextractServiceLayer = exports.TextractServiceLayer = exports.BaseTextractServiceLayer = exports.Textract = exports.TextractService = exports.makeTextractService = void 0;
|
|
4
5
|
/**
|
|
5
6
|
* @since 1.0.0
|
|
6
7
|
*/
|
|
@@ -36,13 +37,6 @@ const commands = {
|
|
|
36
37
|
UntagResourceCommand: client_textract_1.UntagResourceCommand,
|
|
37
38
|
UpdateAdapterCommand: client_textract_1.UpdateAdapterCommand,
|
|
38
39
|
};
|
|
39
|
-
/**
|
|
40
|
-
* @since 1.0.0
|
|
41
|
-
* @category models
|
|
42
|
-
*/
|
|
43
|
-
class TextractService extends effect_1.Effect.Tag("@effect-aws/client-textract/TextractService")() {
|
|
44
|
-
}
|
|
45
|
-
exports.TextractService = TextractService;
|
|
46
40
|
/**
|
|
47
41
|
* @since 1.0.0
|
|
48
42
|
* @category constructors
|
|
@@ -81,19 +75,39 @@ exports.makeTextractService = effect_1.Effect.gen(function* (_) {
|
|
|
81
75
|
return { ...acc, [methodName]: methodImpl };
|
|
82
76
|
}, {});
|
|
83
77
|
});
|
|
78
|
+
/**
|
|
79
|
+
* @since 1.0.0
|
|
80
|
+
* @category models
|
|
81
|
+
*/
|
|
82
|
+
class TextractService extends effect_1.Effect.Tag("@effect-aws/client-textract/TextractService")() {
|
|
83
|
+
}
|
|
84
|
+
exports.TextractService = TextractService;
|
|
85
|
+
_a = TextractService;
|
|
86
|
+
TextractService.defaultLayer = effect_1.Layer.effect(_a, exports.makeTextractService).pipe(effect_1.Layer.provide(TextractClientInstance_1.TextractClientInstanceLayer), effect_1.Layer.provide(TextractClientInstanceConfig_1.DefaultTextractClientConfigLayer));
|
|
87
|
+
TextractService.layer = (config) => effect_1.Layer.effect(_a, exports.makeTextractService).pipe(effect_1.Layer.provide(TextractClientInstance_1.TextractClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(TextractClientInstanceConfig_1.TextractClientInstanceConfig, TextractClientInstanceConfig_1.makeDefaultTextractClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
88
|
+
TextractService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeTextractService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(TextractClientInstance_1.TextractClientInstance, effect_1.Effect.map(TextractClientInstanceConfig_1.makeDefaultTextractClientInstanceConfig, evaluate))));
|
|
89
|
+
/**
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @category models
|
|
92
|
+
* @alias TextractService
|
|
93
|
+
*/
|
|
94
|
+
exports.Textract = TextractService;
|
|
84
95
|
/**
|
|
85
96
|
* @since 1.0.0
|
|
86
97
|
* @category layers
|
|
98
|
+
* @deprecated use Textract.baseLayer instead
|
|
87
99
|
*/
|
|
88
100
|
exports.BaseTextractServiceLayer = effect_1.Layer.effect(TextractService, exports.makeTextractService);
|
|
89
101
|
/**
|
|
90
102
|
* @since 1.0.0
|
|
91
103
|
* @category layers
|
|
104
|
+
* @deprecated use Textract.layer instead
|
|
92
105
|
*/
|
|
93
106
|
exports.TextractServiceLayer = exports.BaseTextractServiceLayer.pipe(effect_1.Layer.provide(TextractClientInstance_1.TextractClientInstanceLayer));
|
|
94
107
|
/**
|
|
95
108
|
* @since 1.0.0
|
|
96
109
|
* @category layers
|
|
110
|
+
* @deprecated use Textract.defaultLayer instead
|
|
97
111
|
*/
|
|
98
|
-
exports.DefaultTextractServiceLayer =
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHJhY3RTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RleHRyYWN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILDhEQTZFa0M7QUFDbEMsbUNBQXFEO0FBQ3JELHFDQXNCa0I7QUFDbEIscUVBR2tDO0FBQ2xDLGlGQUFrRjtBQWFsRixNQUFNLFFBQVEsR0FBRztJQUNmLHNCQUFzQixFQUF0Qix3Q0FBc0I7SUFDdEIscUJBQXFCLEVBQXJCLHVDQUFxQjtJQUNyQixnQkFBZ0IsRUFBaEIsa0NBQWdCO0lBQ2hCLG9CQUFvQixFQUFwQixzQ0FBb0I7SUFDcEIsMkJBQTJCLEVBQTNCLDZDQUEyQjtJQUMzQixvQkFBb0IsRUFBcEIsc0NBQW9CO0lBQ3BCLDJCQUEyQixFQUEzQiw2Q0FBMkI7SUFDM0IseUJBQXlCLEVBQXpCLDJDQUF5QjtJQUN6QixpQkFBaUIsRUFBakIsbUNBQWlCO0lBQ2pCLHdCQUF3QixFQUF4QiwwQ0FBd0I7SUFDeEIsMEJBQTBCLEVBQTFCLDRDQUEwQjtJQUMxQiwrQkFBK0IsRUFBL0IsaURBQStCO0lBQy9CLHlCQUF5QixFQUF6QiwyQ0FBeUI7SUFDekIseUJBQXlCLEVBQXpCLDJDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMsa0RBQWdDO0lBQ2hDLDBCQUEwQixFQUExQiw0Q0FBMEI7SUFDMUIsbUJBQW1CLEVBQW5CLHFDQUFtQjtJQUNuQiwwQkFBMEIsRUFBMUIsNENBQTBCO0lBQzFCLDRCQUE0QixFQUE1Qiw4Q0FBNEI7SUFDNUIsaUNBQWlDLEVBQWpDLG1EQUFpQztJQUNqQywyQkFBMkIsRUFBM0IsNkNBQTJCO0lBQzNCLDJCQUEyQixFQUEzQiw2Q0FBMkI7SUFDM0Isa0JBQWtCLEVBQWxCLG9DQUFrQjtJQUNsQixvQkFBb0IsRUFBcEIsc0NBQW9CO0lBQ3BCLG9CQUFvQixFQUFwQixzQ0FBb0I7Q0FDckIsQ0FBQztBQXNmRjs7O0dBR0c7QUFDSCxNQUFhLGVBQWdCLFNBQVEsZUFBTSxDQUFDLEdBQUcsQ0FDN0MsNkNBQTZDLENBQzlDLEVBQXFDO0NBQUc7QUFGekMsMENBRXlDO0FBRXpDOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsZUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQywrQ0FBc0IsQ0FBQyxDQUFDO0lBRWhELE9BQU8sZUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQzFELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQVEsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUE0QixFQUFFLEVBQUUsQ0FDN0QsZUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNoQixHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDO2dCQUNsQixXQUFXO2FBQ1osQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQ0UsQ0FBQyxZQUFZLDBDQUF3QjtvQkFDckMseUJBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDakMsQ0FBQztvQkFDRCxNQUFNLGdCQUFnQixHQUFHLGFBQUksQ0FBQyxNQUFNLENBRWxDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFVixPQUFPLGdCQUFnQixDQUFDO3dCQUN0QixHQUFHLENBQUM7d0JBQ0osT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sSUFBQSxpQkFBUSxFQUFDO3dCQUNkLEdBQUcsQ0FBQzt3QkFDSixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdEUsVUFBVSxFQUNWLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBcUIsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsd0JBQXdCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDbEQsZUFBZSxFQUNmLDJCQUFtQixDQUNwQixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxnQ0FBd0IsQ0FBQyxJQUFJLENBQy9ELGNBQUssQ0FBQyxPQUFPLENBQUMsb0RBQTJCLENBQUMsQ0FDM0MsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsNEJBQW9CLENBQUMsSUFBSSxDQUNsRSxjQUFLLENBQUMsT0FBTyxDQUFDLCtEQUFnQyxDQUFDLENBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBUZXh0cmFjdFNlcnZpY2VFeGNlcHRpb24sXG4gIEFuYWx5emVEb2N1bWVudENvbW1hbmQsXG4gIHR5cGUgQW5hbHl6ZURvY3VtZW50Q29tbWFuZElucHV0LFxuICB0eXBlIEFuYWx5emVEb2N1bWVudENvbW1hbmRPdXRwdXQsXG4gIEFuYWx5emVFeHBlbnNlQ29tbWFuZCxcbiAgdHlwZSBBbmFseXplRXhwZW5zZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBbmFseXplRXhwZW5zZUNvbW1hbmRPdXRwdXQsXG4gIEFuYWx5emVJRENvbW1hbmQsXG4gIHR5cGUgQW5hbHl6ZUlEQ29tbWFuZElucHV0LFxuICB0eXBlIEFuYWx5emVJRENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFkYXB0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFkYXB0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERldGVjdERvY3VtZW50VGV4dENvbW1hbmQsXG4gIHR5cGUgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZElucHV0LFxuICB0eXBlIERldGVjdERvY3VtZW50VGV4dENvbW1hbmRPdXRwdXQsXG4gIEdldEFkYXB0ZXJDb21tYW5kLFxuICB0eXBlIEdldEFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kLFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBZGFwdGVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFkYXB0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBZGFwdGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFkYXB0ZXJDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtdGV4dHJhY3RcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBCYWREb2N1bWVudEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBEb2N1bWVudFRvb0xhcmdlRXJyb3IsXG4gIEh1bWFuTG9vcFF1b3RhRXhjZWVkZWRFcnJvcixcbiAgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIEludmFsaWRKb2JJZEVycm9yLFxuICBJbnZhbGlkS01TS2V5RXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJFcnJvcixcbiAgSW52YWxpZFMzT2JqZWN0RXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBUaHJvdHRsaW5nRXJyb3IsXG4gIFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIFRleHRyYWN0Q2xpZW50SW5zdGFuY2UsXG4gIFRleHRyYWN0Q2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vVGV4dHJhY3RDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdFRleHRyYWN0Q2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9UZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4xXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQW5hbHl6ZURvY3VtZW50Q29tbWFuZCxcbiAgQW5hbHl6ZUV4cGVuc2VDb21tYW5kLFxuICBBbmFseXplSURDb21tYW5kLFxuICBDcmVhdGVBZGFwdGVyQ29tbWFuZCxcbiAgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBEZWxldGVBZGFwdGVyQ29tbWFuZCxcbiAgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kLFxuICBHZXRBZGFwdGVyQ29tbWFuZCxcbiAgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZCxcbiAgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmQsXG4gIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0QWRhcHRlcnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWRhcHRlckNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgVGV4dHJhY3RTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVEb2N1bWVudENvbW1hbmR9XG4gICAqL1xuICBhbmFseXplRG9jdW1lbnQoXG4gICAgYXJnczogQW5hbHl6ZURvY3VtZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZURvY3VtZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBIdW1hbkxvb3BRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVFeHBlbnNlQ29tbWFuZH1cbiAgICovXG4gIGFuYWx5emVFeHBlbnNlKFxuICAgIGFyZ3M6IEFuYWx5emVFeHBlbnNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZUV4cGVuc2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVJRENvbW1hbmR9XG4gICAqL1xuICBhbmFseXplSUQoXG4gICAgYXJnczogQW5hbHl6ZUlEQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZUlEQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBZGFwdGVyQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFkYXB0ZXIoXG4gICAgYXJnczogQ3JlYXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFkYXB0ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBZGFwdGVyKFxuICAgIGFyZ3M6IERlbGV0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFkYXB0ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZH1cbiAgICovXG4gIGRldGVjdERvY3VtZW50VGV4dChcbiAgICBhcmdzOiBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFkYXB0ZXJDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWRhcHRlcihcbiAgICBhcmdzOiBHZXRBZGFwdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRBZGFwdGVyVmVyc2lvbihcbiAgICBhcmdzOiBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RG9jdW1lbnRBbmFseXNpcyhcbiAgICBhcmdzOiBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uKFxuICAgIGFyZ3M6IEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXhwZW5zZUFuYWx5c2lzKFxuICAgIGFyZ3M6IEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TGVuZGluZ0FuYWx5c2lzKFxuICAgIGFyZ3M6IEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZH1cbiAgICovXG4gIGdldExlbmRpbmdBbmFseXNpc1N1bW1hcnkoXG4gICAgYXJnczogR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWRhcHRlclZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBZGFwdGVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWRhcHRlcnMoXG4gICAgYXJnczogTGlzdEFkYXB0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFkYXB0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9jdW1lbnRBbmFseXNpcyhcbiAgICBhcmdzOiBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnREb2N1bWVudFRleHREZXRlY3Rpb24oXG4gICAgYXJnczogU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBzdGFydEV4cGVuc2VBbmFseXNpcyhcbiAgICBhcmdzOiBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TGVuZGluZ0FuYWx5c2lzKFxuICAgIGFyZ3M6IFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBZGFwdGVyKFxuICAgIGFyZ3M6IFVwZGF0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXh0cmFjdFNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC10ZXh0cmFjdC9UZXh0cmFjdFNlcnZpY2VcIixcbik8VGV4dHJhY3RTZXJ2aWNlLCBUZXh0cmFjdFNlcnZpY2UkPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlVGV4dHJhY3RTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oVGV4dHJhY3RDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIFRleHRyYWN0U2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxUZXh0cmFjdFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIFRleHRyYWN0U2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VUZXh0cmFjdFNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgVGV4dHJhY3RTZXJ2aWNlLFxuICBtYWtlVGV4dHJhY3RTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFRleHRyYWN0U2VydmljZUxheWVyID0gQmFzZVRleHRyYWN0U2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoVGV4dHJhY3RDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGV4dHJhY3RTZXJ2aWNlTGF5ZXIgPSBUZXh0cmFjdFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRUZXh0cmFjdENsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
|
|
112
|
+
exports.DefaultTextractServiceLayer = TextractService.defaultLayer;
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHJhY3RTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RleHRyYWN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0dBRUc7QUFDSCw4REErRWtDO0FBQ2xDLG1DQUFxRDtBQUNyRCxxQ0FzQmtCO0FBQ2xCLHFFQUdrQztBQUNsQyxpRkFJd0M7QUFheEMsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0IsRUFBdEIsd0NBQXNCO0lBQ3RCLHFCQUFxQixFQUFyQix1Q0FBcUI7SUFDckIsZ0JBQWdCLEVBQWhCLGtDQUFnQjtJQUNoQixvQkFBb0IsRUFBcEIsc0NBQW9CO0lBQ3BCLDJCQUEyQixFQUEzQiw2Q0FBMkI7SUFDM0Isb0JBQW9CLEVBQXBCLHNDQUFvQjtJQUNwQiwyQkFBMkIsRUFBM0IsNkNBQTJCO0lBQzNCLHlCQUF5QixFQUF6QiwyQ0FBeUI7SUFDekIsaUJBQWlCLEVBQWpCLG1DQUFpQjtJQUNqQix3QkFBd0IsRUFBeEIsMENBQXdCO0lBQ3hCLDBCQUEwQixFQUExQiw0Q0FBMEI7SUFDMUIsK0JBQStCLEVBQS9CLGlEQUErQjtJQUMvQix5QkFBeUIsRUFBekIsMkNBQXlCO0lBQ3pCLHlCQUF5QixFQUF6QiwyQ0FBeUI7SUFDekIsZ0NBQWdDLEVBQWhDLGtEQUFnQztJQUNoQywwQkFBMEIsRUFBMUIsNENBQTBCO0lBQzFCLG1CQUFtQixFQUFuQixxQ0FBbUI7SUFDbkIsMEJBQTBCLEVBQTFCLDRDQUEwQjtJQUMxQiw0QkFBNEIsRUFBNUIsOENBQTRCO0lBQzVCLGlDQUFpQyxFQUFqQyxtREFBaUM7SUFDakMsMkJBQTJCLEVBQTNCLDZDQUEyQjtJQUMzQiwyQkFBMkIsRUFBM0IsNkNBQTJCO0lBQzNCLGtCQUFrQixFQUFsQixvQ0FBa0I7SUFDbEIsb0JBQW9CLEVBQXBCLHNDQUFvQjtJQUNwQixvQkFBb0IsRUFBcEIsc0NBQW9CO0NBQ3JCLENBQUM7QUFzZkY7OztHQUdHO0FBQ1Us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TSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNqRSxDQUNGLENBQ0YsQ0FDRixBQVhrQixDQVdqQjtBQUNZLHlCQUFTLEdBQUcsQ0FDMUIsUUFBaUUsRUFDakUsRUFBRSxDQUNGLGNBQUssQ0FBQyxNQUFNLENBQUMsRUFBSSxFQUFFLDJCQUFtQixDQUFDLENBQUMsSUFBSSxDQUMxQyxjQUFLLENBQUMsT0FBTyxDQUNYLGNBQUssQ0FBQyxNQUFNLENBQ1YsK0NBQXNCLEVBQ3RCLGVBQU0sQ0FBQyxHQUFHLENBQUMsc0VBQXVDLEVBQUUsUUFBUSxDQUFDLENBQzlELENBQ0YsQ0FDRixBQVZzQixDQVVyQjtBQUdOOzs7O0dBSUc7QUFDVSxRQUFBLFFBQVEsR0FBRyxlQUFlLENBQUM7QUFFeEM7Ozs7R0FJRztBQUNVLFFBQUEsd0JBQXdCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDbEQsZUFBZSxFQUNmLDJCQUFtQixDQUNwQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsZ0NBQXdCLENBQUMsSUFBSSxDQUMvRCxjQUFLLENBQUMsT0FBTyxDQUFDLG9EQUEyQixDQUFDLENBQzNDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgVGV4dHJhY3RTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIFRleHRyYWN0Q2xpZW50LFxuICB0eXBlIFRleHRyYWN0Q2xpZW50Q29uZmlnLFxuICBBbmFseXplRG9jdW1lbnRDb21tYW5kLFxuICB0eXBlIEFuYWx5emVEb2N1bWVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBbmFseXplRG9jdW1lbnRDb21tYW5kT3V0cHV0LFxuICBBbmFseXplRXhwZW5zZUNvbW1hbmQsXG4gIHR5cGUgQW5hbHl6ZUV4cGVuc2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQW5hbHl6ZUV4cGVuc2VDb21tYW5kT3V0cHV0LFxuICBBbmFseXplSURDb21tYW5kLFxuICB0eXBlIEFuYWx5emVJRENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBbmFseXplSURDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kLFxuICB0eXBlIERldGVjdERvY3VtZW50VGV4dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kT3V0cHV0LFxuICBHZXRBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICB0eXBlIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0QWRhcHRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RBZGFwdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWRhcHRlcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXRleHRyYWN0XCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQmFkRG9jdW1lbnRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRG9jdW1lbnRUb29MYXJnZUVycm9yLFxuICBIdW1hbkxvb3BRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yLFxuICBJbnRlcm5hbFNlcnZlckVycm9yLFxuICBJbnZhbGlkSm9iSWRFcnJvcixcbiAgSW52YWxpZEtNU0tleUVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTM09iamVjdEVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBUZXh0cmFjdENsaWVudEluc3RhbmNlLFxuICBUZXh0cmFjdENsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL1RleHRyYWN0Q2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRUZXh0cmFjdENsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdFRleHRyYWN0Q2xpZW50SW5zdGFuY2VDb25maWcsXG4gIFRleHRyYWN0Q2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL1RleHRyYWN0Q2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBbmFseXplRG9jdW1lbnRDb21tYW5kLFxuICBBbmFseXplRXhwZW5zZUNvbW1hbmQsXG4gIEFuYWx5emVJRENvbW1hbmQsXG4gIENyZWF0ZUFkYXB0ZXJDb21tYW5kLFxuICBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZUFkYXB0ZXJDb21tYW5kLFxuICBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIERldGVjdERvY3VtZW50VGV4dENvbW1hbmQsXG4gIEdldEFkYXB0ZXJDb21tYW5kLFxuICBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kLFxuICBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kLFxuICBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kLFxuICBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZCxcbiAgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RBZGFwdGVyc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kLFxuICBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmQsXG4gIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZCxcbiAgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVBZGFwdGVyQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBUZXh0cmFjdFNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQW5hbHl6ZURvY3VtZW50Q29tbWFuZH1cbiAgICovXG4gIGFuYWx5emVEb2N1bWVudChcbiAgICBhcmdzOiBBbmFseXplRG9jdW1lbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBbmFseXplRG9jdW1lbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEh1bWFuTG9vcFF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQW5hbHl6ZUV4cGVuc2VDb21tYW5kfVxuICAgKi9cbiAgYW5hbHl6ZUV4cGVuc2UoXG4gICAgYXJnczogQW5hbHl6ZUV4cGVuc2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBbmFseXplRXhwZW5zZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQW5hbHl6ZUlEQ29tbWFuZH1cbiAgICovXG4gIGFuYWx5emVJRChcbiAgICBhcmdzOiBBbmFseXplSURDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBbmFseXplSURDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFkYXB0ZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWRhcHRlcihcbiAgICBhcmdzOiBDcmVhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWRhcHRlclZlcnNpb24oXG4gICAgYXJnczogQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBZGFwdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFkYXB0ZXIoXG4gICAgYXJnczogRGVsZXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWRhcHRlclZlcnNpb24oXG4gICAgYXJnczogRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kfVxuICAgKi9cbiAgZGV0ZWN0RG9jdW1lbnRUZXh0KFxuICAgIGFyZ3M6IERldGVjdERvY3VtZW50VGV4dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERldGVjdERvY3VtZW50VGV4dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICBnZXRBZGFwdGVyKFxuICAgIGFyZ3M6IEdldEFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEFkYXB0ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBnZXREb2N1bWVudEFuYWx5c2lzKFxuICAgIGFyZ3M6IEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEpvYklkRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXREb2N1bWVudFRleHREZXRlY3Rpb24oXG4gICAgYXJnczogR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEpvYklkRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBnZXRFeHBlbnNlQW5hbHlzaXMoXG4gICAgYXJnczogR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEpvYklkRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBnZXRMZW5kaW5nQW5hbHlzaXMoXG4gICAgYXJnczogR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEpvYklkRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeShcbiAgICBhcmdzOiBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBZGFwdGVyVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFkYXB0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBZGFwdGVycyhcbiAgICBhcmdzOiBMaXN0QWRhcHRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWRhcHRlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgc3RhcnREb2N1bWVudEFuYWx5c2lzKFxuICAgIGFyZ3M6IFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydERvY3VtZW50VGV4dERldGVjdGlvbihcbiAgICBhcmdzOiBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RXhwZW5zZUFuYWx5c2lzKFxuICAgIGFyZ3M6IFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRMZW5kaW5nQW5hbHlzaXMoXG4gICAgYXJnczogU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBZGFwdGVyQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFkYXB0ZXIoXG4gICAgYXJnczogVXBkYXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VUZXh0cmFjdFNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhUZXh0cmFjdENsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgVGV4dHJhY3RTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPFRleHRyYWN0U2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgVGV4dHJhY3RTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgVGV4dHJhY3RTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtdGV4dHJhY3QvVGV4dHJhY3RTZXJ2aWNlXCIsXG4pPFRleHRyYWN0U2VydmljZSwgVGV4dHJhY3RTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QodGhpcywgbWFrZVRleHRyYWN0U2VydmljZSkucGlwZShcbiAgICBMYXllci5wcm92aWRlKFRleHRyYWN0Q2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0VGV4dHJhY3RDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IFRleHRyYWN0Q2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlVGV4dHJhY3RTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShUZXh0cmFjdENsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIFRleHRyYWN0Q2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRUZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBUZXh0cmFjdENsaWVudENvbmZpZykgPT4gVGV4dHJhY3RDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZVRleHRyYWN0U2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBUZXh0cmFjdENsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRUZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgVGV4dHJhY3RTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBUZXh0cmFjdCA9IFRleHRyYWN0U2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBUZXh0cmFjdC5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZVRleHRyYWN0U2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBUZXh0cmFjdFNlcnZpY2UsXG4gIG1ha2VUZXh0cmFjdFNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIFRleHRyYWN0LmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFRleHRyYWN0U2VydmljZUxheWVyID0gQmFzZVRleHRyYWN0U2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoVGV4dHJhY3RDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgVGV4dHJhY3QuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRUZXh0cmFjdFNlcnZpY2VMYXllciA9IFRleHRyYWN0U2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
/**
|
|
2
3
|
* @since 1.0.0
|
|
3
4
|
*/
|
|
@@ -5,7 +6,7 @@ import { TextractServiceException, AnalyzeDocumentCommand, AnalyzeExpenseCommand
|
|
|
5
6
|
import { Data, Effect, Layer, Record } from "effect";
|
|
6
7
|
import { AllServiceErrors, SdkError, } from "./Errors";
|
|
7
8
|
import { TextractClientInstance, TextractClientInstanceLayer, } from "./TextractClientInstance";
|
|
8
|
-
import { DefaultTextractClientConfigLayer } from "./TextractClientInstanceConfig";
|
|
9
|
+
import { DefaultTextractClientConfigLayer, makeDefaultTextractClientInstanceConfig, TextractClientInstanceConfig, } from "./TextractClientInstanceConfig";
|
|
9
10
|
const commands = {
|
|
10
11
|
AnalyzeDocumentCommand,
|
|
11
12
|
AnalyzeExpenseCommand,
|
|
@@ -33,12 +34,6 @@ const commands = {
|
|
|
33
34
|
UntagResourceCommand,
|
|
34
35
|
UpdateAdapterCommand,
|
|
35
36
|
};
|
|
36
|
-
/**
|
|
37
|
-
* @since 1.0.0
|
|
38
|
-
* @category models
|
|
39
|
-
*/
|
|
40
|
-
export class TextractService extends Effect.Tag("@effect-aws/client-textract/TextractService")() {
|
|
41
|
-
}
|
|
42
37
|
/**
|
|
43
38
|
* @since 1.0.0
|
|
44
39
|
* @category constructors
|
|
@@ -77,19 +72,38 @@ export const makeTextractService = Effect.gen(function* (_) {
|
|
|
77
72
|
return { ...acc, [methodName]: methodImpl };
|
|
78
73
|
}, {});
|
|
79
74
|
});
|
|
75
|
+
/**
|
|
76
|
+
* @since 1.0.0
|
|
77
|
+
* @category models
|
|
78
|
+
*/
|
|
79
|
+
export class TextractService extends Effect.Tag("@effect-aws/client-textract/TextractService")() {
|
|
80
|
+
}
|
|
81
|
+
_a = TextractService;
|
|
82
|
+
TextractService.defaultLayer = Layer.effect(_a, makeTextractService).pipe(Layer.provide(TextractClientInstanceLayer), Layer.provide(DefaultTextractClientConfigLayer));
|
|
83
|
+
TextractService.layer = (config) => Layer.effect(_a, makeTextractService).pipe(Layer.provide(TextractClientInstanceLayer), Layer.provide(Layer.effect(TextractClientInstanceConfig, makeDefaultTextractClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
84
|
+
TextractService.baseLayer = (evaluate) => Layer.effect(_a, makeTextractService).pipe(Layer.provide(Layer.effect(TextractClientInstance, Effect.map(makeDefaultTextractClientInstanceConfig, evaluate))));
|
|
85
|
+
/**
|
|
86
|
+
* @since 1.0.0
|
|
87
|
+
* @category models
|
|
88
|
+
* @alias TextractService
|
|
89
|
+
*/
|
|
90
|
+
export const Textract = TextractService;
|
|
80
91
|
/**
|
|
81
92
|
* @since 1.0.0
|
|
82
93
|
* @category layers
|
|
94
|
+
* @deprecated use Textract.baseLayer instead
|
|
83
95
|
*/
|
|
84
96
|
export const BaseTextractServiceLayer = Layer.effect(TextractService, makeTextractService);
|
|
85
97
|
/**
|
|
86
98
|
* @since 1.0.0
|
|
87
99
|
* @category layers
|
|
100
|
+
* @deprecated use Textract.layer instead
|
|
88
101
|
*/
|
|
89
102
|
export const TextractServiceLayer = BaseTextractServiceLayer.pipe(Layer.provide(TextractClientInstanceLayer));
|
|
90
103
|
/**
|
|
91
104
|
* @since 1.0.0
|
|
92
105
|
* @category layers
|
|
106
|
+
* @deprecated use Textract.defaultLayer instead
|
|
93
107
|
*/
|
|
94
|
-
export const DefaultTextractServiceLayer =
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHJhY3RTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RleHRyYWN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBR3RCLHFCQUFxQixFQUdyQixnQkFBZ0IsRUFHaEIsb0JBQW9CLEVBR3BCLDJCQUEyQixFQUczQixvQkFBb0IsRUFHcEIsMkJBQTJCLEVBRzNCLHlCQUF5QixFQUd6QixpQkFBaUIsRUFHakIsd0JBQXdCLEVBR3hCLDBCQUEwQixFQUcxQiwrQkFBK0IsRUFHL0IseUJBQXlCLEVBR3pCLHlCQUF5QixFQUd6QixnQ0FBZ0MsRUFHaEMsMEJBQTBCLEVBRzFCLG1CQUFtQixFQUduQiwwQkFBMEIsRUFHMUIsNEJBQTRCLEVBRzVCLGlDQUFpQyxFQUdqQywyQkFBMkIsRUFHM0IsMkJBQTJCLEVBRzNCLGtCQUFrQixFQUdsQixvQkFBb0IsRUFHcEIsb0JBQW9CLEdBR3JCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBbUJoQixRQUFRLEdBRVQsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FDNUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQWFsRixNQUFNLFFBQVEsR0FBRztJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0Isb0JBQW9CO0lBQ3BCLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFD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LENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FDbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgVGV4dHJhY3RTZXJ2aWNlRXhjZXB0aW9uLFxuICBBbmFseXplRG9jdW1lbnRDb21tYW5kLFxuICB0eXBlIEFuYWx5emVEb2N1bWVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBbmFseXplRG9jdW1lbnRDb21tYW5kT3V0cHV0LFxuICBBbmFseXplRXhwZW5zZUNvbW1hbmQsXG4gIHR5cGUgQW5hbHl6ZUV4cGVuc2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQW5hbHl6ZUV4cGVuc2VDb21tYW5kT3V0cHV0LFxuICBBbmFseXplSURDb21tYW5kLFxuICB0eXBlIEFuYWx5emVJRENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBbmFseXplSURDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kLFxuICB0eXBlIERldGVjdERvY3VtZW50VGV4dENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kT3V0cHV0LFxuICBHZXRBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICB0eXBlIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0QWRhcHRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RBZGFwdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWRhcHRlcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBZGFwdGVyQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXRleHRyYWN0XCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQmFkRG9jdW1lbnRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRG9jdW1lbnRUb29MYXJnZUVycm9yLFxuICBIdW1hbkxvb3BRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yLFxuICBJbnRlcm5hbFNlcnZlckVycm9yLFxuICBJbnZhbGlkSm9iSWRFcnJvcixcbiAgSW52YWxpZEtNU0tleUVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTM09iamVjdEVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBUZXh0cmFjdENsaWVudEluc3RhbmNlLFxuICBUZXh0cmFjdENsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL1RleHRyYWN0Q2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRUZXh0cmFjdENsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vVGV4dHJhY3RDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFuYWx5emVEb2N1bWVudENvbW1hbmQsXG4gIEFuYWx5emVFeHBlbnNlQ29tbWFuZCxcbiAgQW5hbHl6ZUlEQ29tbWFuZCxcbiAgQ3JlYXRlQWRhcHRlckNvbW1hbmQsXG4gIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlQWRhcHRlckNvbW1hbmQsXG4gIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZCxcbiAgR2V0QWRhcHRlckNvbW1hbmQsXG4gIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZCxcbiAgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmQsXG4gIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmQsXG4gIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmQsXG4gIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kLFxuICBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdEFkYXB0ZXJzQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmQsXG4gIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZCxcbiAgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kLFxuICBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUFkYXB0ZXJDb21tYW5kLFxufTtcblxuaW50ZXJmYWNlIFRleHRyYWN0U2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBbmFseXplRG9jdW1lbnRDb21tYW5kfVxuICAgKi9cbiAgYW5hbHl6ZURvY3VtZW50KFxuICAgIGFyZ3M6IEFuYWx5emVEb2N1bWVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFuYWx5emVEb2N1bWVudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSHVtYW5Mb29wUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBbmFseXplRXhwZW5zZUNvbW1hbmR9XG4gICAqL1xuICBhbmFseXplRXhwZW5zZShcbiAgICBhcmdzOiBBbmFseXplRXhwZW5zZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFuYWx5emVFeHBlbnNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBbmFseXplSURDb21tYW5kfVxuICAgKi9cbiAgYW5hbHl6ZUlEKFxuICAgIGFyZ3M6IEFuYWx5emVJRENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFuYWx5emVJRENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBZGFwdGVyKFxuICAgIGFyZ3M6IENyZWF0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBZGFwdGVyVmVyc2lvbihcbiAgICBhcmdzOiBDcmVhdGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFkYXB0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWRhcHRlcihcbiAgICBhcmdzOiBEZWxldGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBZGFwdGVyVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGVjdERvY3VtZW50VGV4dENvbW1hbmR9XG4gICAqL1xuICBkZXRlY3REb2N1bWVudFRleHQoXG4gICAgYXJnczogRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBZGFwdGVyQ29tbWFuZH1cbiAgICovXG4gIGdldEFkYXB0ZXIoXG4gICAgYXJnczogR2V0QWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0QWRhcHRlclZlcnNpb24oXG4gICAgYXJnczogR2V0QWRhcHRlclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIGdldERvY3VtZW50QW5hbHlzaXMoXG4gICAgYXJnczogR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldERvY3VtZW50VGV4dERldGVjdGlvbihcbiAgICBhcmdzOiBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIGdldEV4cGVuc2VBbmFseXNpcyhcbiAgICBhcmdzOiBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIGdldExlbmRpbmdBbmFseXNpcyhcbiAgICBhcmdzOiBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmR9XG4gICAqL1xuICBnZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5KFxuICAgIGFyZ3M6IEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEpvYklkRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFkYXB0ZXJWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWRhcHRlcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFkYXB0ZXJzKFxuICAgIGFyZ3M6IExpc3RBZGFwdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBZGFwdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBzdGFydERvY3VtZW50QW5hbHlzaXMoXG4gICAgYXJnczogU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uKFxuICAgIGFyZ3M6IFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRFeHBlbnNlQW5hbHlzaXMoXG4gICAgYXJnczogU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBzdGFydExlbmRpbmdBbmFseXNpcyhcbiAgICBhcmdzOiBTdGFydExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFkYXB0ZXJDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQWRhcHRlcihcbiAgICBhcmdzOiBVcGRhdGVBZGFwdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgVGV4dHJhY3RTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtdGV4dHJhY3QvVGV4dHJhY3RTZXJ2aWNlXCIsXG4pPFRleHRyYWN0U2VydmljZSwgVGV4dHJhY3RTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZVRleHRyYWN0U2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFRleHRyYWN0Q2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBUZXh0cmFjdFNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248VGV4dHJhY3RTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBUZXh0cmFjdFNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlVGV4dHJhY3RTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIFRleHRyYWN0U2VydmljZSxcbiAgbWFrZVRleHRyYWN0U2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBUZXh0cmFjdFNlcnZpY2VMYXllciA9IEJhc2VUZXh0cmFjdFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKFRleHRyYWN0Q2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFRleHRyYWN0U2VydmljZUxheWVyID0gVGV4dHJhY3RTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0VGV4dHJhY3RDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|
|
108
|
+
export const DefaultTextractServiceLayer = TextractService.defaultLayer;
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHJhY3RTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RleHRyYWN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsd0JBQXdCLEVBR3hCLHNCQUFzQixFQUd0QixxQkFBcUIsRUFHckIsZ0JBQWdCLEVBR2hCLG9CQUFvQixFQUdwQiwyQkFBMkIsRUFHM0Isb0JBQW9CLEVBR3BCLDJCQUEyQixFQUczQix5QkFBeUIsRUFHekIsaUJBQWlCLEVBR2pCLHdCQUF3QixFQUd4QiwwQkFBMEIsRUFHMUIsK0JBQStCLEVBRy9CLHlCQUF5QixFQUd6Qix5QkFBeUIsRUFHekIsZ0NBQWdDLEVBR2hDLDBCQUEwQixFQUcxQixtQkFBbUIsRUFHbkIsMEJBQTBCLEVBRzFCLDRCQUE0QixFQUc1QixpQ0FBaUMsRUFHakMsMkJBQTJCLEVBRzNCLDJCQUEyQixFQUczQixrQkFBa0IsRUFHbEIsb0JBQW9CLEVBR3BCLG9CQUFvQixHQUdyQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckQsT0FBTyxFQUNMLGdCQUFnQixFQW1CaEIsUUFBUSxHQUVULE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsNEJBQTRCLEdBQzdCLE1BQU0sZ0NBQWdDLENBQUM7QUFheEMsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsMkJBQTJCO0lBQzNCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLGlCQUFpQjtJ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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIFRleHRyYWN0U2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBUZXh0cmFjdENsaWVudCxcbiAgdHlwZSBUZXh0cmFjdENsaWVudENvbmZpZyxcbiAgQW5hbHl6ZURvY3VtZW50Q29tbWFuZCxcbiAgdHlwZSBBbmFseXplRG9jdW1lbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQW5hbHl6ZURvY3VtZW50Q29tbWFuZE91dHB1dCxcbiAgQW5hbHl6ZUV4cGVuc2VDb21tYW5kLFxuICB0eXBlIEFuYWx5emVFeHBlbnNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFuYWx5emVFeHBlbnNlQ29tbWFuZE91dHB1dCxcbiAgQW5hbHl6ZUlEQ29tbWFuZCxcbiAgdHlwZSBBbmFseXplSURDb21tYW5kSW5wdXQsXG4gIHR5cGUgQW5hbHl6ZUlEQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWRhcHRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWRhcHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZCxcbiAgdHlwZSBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZE91dHB1dCxcbiAgR2V0QWRhcHRlckNvbW1hbmQsXG4gIHR5cGUgR2V0QWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kLFxuICB0eXBlIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmQsXG4gIHR5cGUgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmQsXG4gIHR5cGUgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFkYXB0ZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWRhcHRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFkYXB0ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRFeHBlbnNlQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kLFxuICB0eXBlIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWRhcHRlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC10ZXh0cmFjdFwiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEJhZERvY3VtZW50RXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERvY3VtZW50VG9vTGFyZ2VFcnJvcixcbiAgSHVtYW5Mb29wUXVvdGFFeGNlZWRlZEVycm9yLFxuICBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvcixcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcixcbiAgSW52YWxpZEpvYklkRXJyb3IsXG4gIEludmFsaWRLTVNLZXlFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICBJbnZhbGlkUzNPYmplY3RFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIFRocm90dGxpbmdFcnJvcixcbiAgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgVGV4dHJhY3RDbGllbnRJbnN0YW5jZSxcbiAgVGV4dHJhY3RDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9UZXh0cmFjdENsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0VGV4dHJhY3RDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRUZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnLFxuICBUZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9UZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQW5hbHl6ZURvY3VtZW50Q29tbWFuZCxcbiAgQW5hbHl6ZUV4cGVuc2VDb21tYW5kLFxuICBBbmFseXplSURDb21tYW5kLFxuICBDcmVhdGVBZGFwdGVyQ29tbWFuZCxcbiAgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBEZWxldGVBZGFwdGVyQ29tbWFuZCxcbiAgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kLFxuICBHZXRBZGFwdGVyQ29tbWFuZCxcbiAgR2V0QWRhcHRlclZlcnNpb25Db21tYW5kLFxuICBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgR2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uQ29tbWFuZCxcbiAgR2V0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmQsXG4gIExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0QWRhcHRlcnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZCxcbiAgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kLFxuICBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmQsXG4gIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWRhcHRlckNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgVGV4dHJhY3RTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVEb2N1bWVudENvbW1hbmR9XG4gICAqL1xuICBhbmFseXplRG9jdW1lbnQoXG4gICAgYXJnczogQW5hbHl6ZURvY3VtZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZURvY3VtZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBIdW1hbkxvb3BRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVFeHBlbnNlQ29tbWFuZH1cbiAgICovXG4gIGFuYWx5emVFeHBlbnNlKFxuICAgIGFyZ3M6IEFuYWx5emVFeHBlbnNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZUV4cGVuc2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFuYWx5emVJRENvbW1hbmR9XG4gICAqL1xuICBhbmFseXplSUQoXG4gICAgYXJnczogQW5hbHl6ZUlEQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQW5hbHl6ZUlEQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBZGFwdGVyQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFkYXB0ZXIoXG4gICAgYXJnczogQ3JlYXRlQWRhcHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFkYXB0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFkYXB0ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBZGFwdGVyKFxuICAgIGFyZ3M6IERlbGV0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFkYXB0ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZUFkYXB0ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWRhcHRlclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0ZWN0RG9jdW1lbnRUZXh0Q29tbWFuZH1cbiAgICovXG4gIGRldGVjdERvY3VtZW50VGV4dChcbiAgICBhcmdzOiBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXRlY3REb2N1bWVudFRleHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFkYXB0ZXJDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWRhcHRlcihcbiAgICBhcmdzOiBHZXRBZGFwdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QWRhcHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRBZGFwdGVyVmVyc2lvbihcbiAgICBhcmdzOiBHZXRBZGFwdGVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFkYXB0ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvY3VtZW50QW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RG9jdW1lbnRBbmFseXNpcyhcbiAgICBhcmdzOiBHZXREb2N1bWVudEFuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9jdW1lbnRBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uKFxuICAgIGFyZ3M6IEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFeHBlbnNlQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXhwZW5zZUFuYWx5c2lzKFxuICAgIGFyZ3M6IEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV4cGVuc2VBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMZW5kaW5nQW5hbHlzaXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TGVuZGluZ0FuYWx5c2lzKFxuICAgIGFyZ3M6IEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExlbmRpbmdBbmFseXNpc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRKb2JJZEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMZW5kaW5nQW5hbHlzaXNTdW1tYXJ5Q29tbWFuZH1cbiAgICovXG4gIGdldExlbmRpbmdBbmFseXNpc1N1bW1hcnkoXG4gICAgYXJnczogR2V0TGVuZGluZ0FuYWx5c2lzU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExlbmRpbmdBbmFseXNpc1N1bW1hcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkSm9iSWRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFkYXB0ZXJWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWRhcHRlclZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RBZGFwdGVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWRhcHRlclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBZGFwdGVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWRhcHRlcnMoXG4gICAgYXJnczogTGlzdEFkYXB0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFkYXB0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb2N1bWVudEFuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9jdW1lbnRBbmFseXNpcyhcbiAgICBhcmdzOiBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvY3VtZW50QW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnREb2N1bWVudFRleHREZXRlY3Rpb24oXG4gICAgYXJnczogU3RhcnREb2N1bWVudFRleHREZXRlY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvY3VtZW50VGV4dERldGVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhZERvY3VtZW50RXJyb3JcbiAgICB8IERvY3VtZW50VG9vTGFyZ2VFcnJvclxuICAgIHwgSWRlbXBvdGVudFBhcmFtZXRlck1pc21hdGNoRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkUzNPYmplY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkRG9jdW1lbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmR9XG4gICAqL1xuICBzdGFydEV4cGVuc2VBbmFseXNpcyhcbiAgICBhcmdzOiBTdGFydEV4cGVuc2VBbmFseXNpc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RXhwZW5zZUFuYWx5c2lzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFkRG9jdW1lbnRFcnJvclxuICAgIHwgRG9jdW1lbnRUb29MYXJnZUVycm9yXG4gICAgfCBJZGVtcG90ZW50UGFyYW1ldGVyTWlzbWF0Y2hFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTM09iamVjdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWREb2N1bWVudEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0TGVuZGluZ0FuYWx5c2lzKFxuICAgIGFyZ3M6IFN0YXJ0TGVuZGluZ0FuYWx5c2lzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRMZW5kaW5nQW5hbHlzaXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYWREb2N1bWVudEVycm9yXG4gICAgfCBEb2N1bWVudFRvb0xhcmdlRXJyb3JcbiAgICB8IElkZW1wb3RlbnRQYXJhbWV0ZXJNaXNtYXRjaEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFMzT2JqZWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZERvY3VtZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWRhcHRlckNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBZGFwdGVyKFxuICAgIGFyZ3M6IFVwZGF0ZUFkYXB0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBZGFwdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlVGV4dHJhY3RTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oVGV4dHJhY3RDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIFRleHRyYWN0U2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxUZXh0cmFjdFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIFRleHRyYWN0U2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRyYWN0U2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LXRleHRyYWN0L1RleHRyYWN0U2VydmljZVwiLFxuKTxUZXh0cmFjdFNlcnZpY2UsIFRleHRyYWN0U2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VUZXh0cmFjdFNlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShUZXh0cmFjdENsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdFRleHRyYWN0Q2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBUZXh0cmFjdENsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZVRleHRyYWN0U2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoVGV4dHJhY3RDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBUZXh0cmFjdENsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0VGV4dHJhY3RDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogVGV4dHJhY3RDbGllbnRDb25maWcpID0+IFRleHRyYWN0Q2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VUZXh0cmFjdFNlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgVGV4dHJhY3RDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0VGV4dHJhY3RDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIFRleHRyYWN0U2VydmljZVxuICovXG5leHBvcnQgY29uc3QgVGV4dHJhY3QgPSBUZXh0cmFjdFNlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgVGV4dHJhY3QuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VUZXh0cmFjdFNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgVGV4dHJhY3RTZXJ2aWNlLFxuICBtYWtlVGV4dHJhY3RTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBUZXh0cmFjdC5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBUZXh0cmFjdFNlcnZpY2VMYXllciA9IEJhc2VUZXh0cmFjdFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKFRleHRyYWN0Q2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIFRleHRyYWN0LmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGV4dHJhY3RTZXJ2aWNlTGF5ZXIgPSBUZXh0cmFjdFNlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
|