@effect-aws/client-organizations 1.0.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 +7 -0
- package/LICENSE +19 -0
- package/README.md +58 -0
- package/docgen.json +8 -0
- package/lib/Errors.d.ts +59 -0
- package/lib/Errors.js +55 -0
- package/lib/OrganizationsClientInstance.d.ts +31 -0
- package/lib/OrganizationsClientInstance.js +57 -0
- package/lib/OrganizationsClientInstanceConfig.d.ts +23 -0
- package/lib/OrganizationsClientInstanceConfig.js +44 -0
- package/lib/OrganizationsService.d.ts +340 -0
- package/lib/OrganizationsService.js +143 -0
- package/lib/esm/Errors.js +52 -0
- package/lib/esm/OrganizationsClientInstance.js +30 -0
- package/lib/esm/OrganizationsClientInstanceConfig.js +40 -0
- package/lib/esm/OrganizationsService.js +139 -0
- package/lib/esm/index.js +5 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +21 -0
- package/package.json +54 -0
- package/project.json +77 -0
- package/vitest.config.ts +3 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
/**
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { OrganizationsServiceException, AcceptHandshakeCommand, AttachPolicyCommand, CancelHandshakeCommand, CloseAccountCommand, CreateAccountCommand, CreateGovCloudAccountCommand, CreateOrganizationCommand, CreateOrganizationalUnitCommand, CreatePolicyCommand, DeclineHandshakeCommand, DeleteOrganizationCommand, DeleteOrganizationalUnitCommand, DeletePolicyCommand, DeleteResourcePolicyCommand, DeregisterDelegatedAdministratorCommand, DescribeAccountCommand, DescribeCreateAccountStatusCommand, DescribeEffectivePolicyCommand, DescribeHandshakeCommand, DescribeOrganizationCommand, DescribeOrganizationalUnitCommand, DescribePolicyCommand, DescribeResourcePolicyCommand, DetachPolicyCommand, DisableAWSServiceAccessCommand, DisablePolicyTypeCommand, EnableAWSServiceAccessCommand, EnableAllFeaturesCommand, EnablePolicyTypeCommand, InviteAccountToOrganizationCommand, LeaveOrganizationCommand, ListAWSServiceAccessForOrganizationCommand, ListAccountsCommand, ListAccountsForParentCommand, ListChildrenCommand, ListCreateAccountStatusCommand, ListDelegatedAdministratorsCommand, ListDelegatedServicesForAccountCommand, ListHandshakesForAccountCommand, ListHandshakesForOrganizationCommand, ListOrganizationalUnitsForParentCommand, ListParentsCommand, ListPoliciesCommand, ListPoliciesForTargetCommand, ListRootsCommand, ListTagsForResourceCommand, ListTargetsForPolicyCommand, MoveAccountCommand, PutResourcePolicyCommand, RegisterDelegatedAdministratorCommand, RemoveAccountFromOrganizationCommand, TagResourceCommand, UntagResourceCommand, UpdateOrganizationalUnitCommand, UpdatePolicyCommand, } from "@aws-sdk/client-organizations";
|
|
6
|
+
import { Data, Effect, Layer, Record } from "effect";
|
|
7
|
+
import { AllServiceErrors, SdkError, } from "./Errors";
|
|
8
|
+
import { OrganizationsClientInstance, OrganizationsClientInstanceLayer, } from "./OrganizationsClientInstance";
|
|
9
|
+
import { DefaultOrganizationsClientConfigLayer, makeDefaultOrganizationsClientInstanceConfig, OrganizationsClientInstanceConfig, } from "./OrganizationsClientInstanceConfig";
|
|
10
|
+
const commands = {
|
|
11
|
+
AcceptHandshakeCommand,
|
|
12
|
+
AttachPolicyCommand,
|
|
13
|
+
CancelHandshakeCommand,
|
|
14
|
+
CloseAccountCommand,
|
|
15
|
+
CreateAccountCommand,
|
|
16
|
+
CreateGovCloudAccountCommand,
|
|
17
|
+
CreateOrganizationCommand,
|
|
18
|
+
CreateOrganizationalUnitCommand,
|
|
19
|
+
CreatePolicyCommand,
|
|
20
|
+
DeclineHandshakeCommand,
|
|
21
|
+
DeleteOrganizationCommand,
|
|
22
|
+
DeleteOrganizationalUnitCommand,
|
|
23
|
+
DeletePolicyCommand,
|
|
24
|
+
DeleteResourcePolicyCommand,
|
|
25
|
+
DeregisterDelegatedAdministratorCommand,
|
|
26
|
+
DescribeAccountCommand,
|
|
27
|
+
DescribeCreateAccountStatusCommand,
|
|
28
|
+
DescribeEffectivePolicyCommand,
|
|
29
|
+
DescribeHandshakeCommand,
|
|
30
|
+
DescribeOrganizationCommand,
|
|
31
|
+
DescribeOrganizationalUnitCommand,
|
|
32
|
+
DescribePolicyCommand,
|
|
33
|
+
DescribeResourcePolicyCommand,
|
|
34
|
+
DetachPolicyCommand,
|
|
35
|
+
DisableAWSServiceAccessCommand,
|
|
36
|
+
DisablePolicyTypeCommand,
|
|
37
|
+
EnableAWSServiceAccessCommand,
|
|
38
|
+
EnableAllFeaturesCommand,
|
|
39
|
+
EnablePolicyTypeCommand,
|
|
40
|
+
InviteAccountToOrganizationCommand,
|
|
41
|
+
LeaveOrganizationCommand,
|
|
42
|
+
ListAWSServiceAccessForOrganizationCommand,
|
|
43
|
+
ListAccountsCommand,
|
|
44
|
+
ListAccountsForParentCommand,
|
|
45
|
+
ListChildrenCommand,
|
|
46
|
+
ListCreateAccountStatusCommand,
|
|
47
|
+
ListDelegatedAdministratorsCommand,
|
|
48
|
+
ListDelegatedServicesForAccountCommand,
|
|
49
|
+
ListHandshakesForAccountCommand,
|
|
50
|
+
ListHandshakesForOrganizationCommand,
|
|
51
|
+
ListOrganizationalUnitsForParentCommand,
|
|
52
|
+
ListParentsCommand,
|
|
53
|
+
ListPoliciesCommand,
|
|
54
|
+
ListPoliciesForTargetCommand,
|
|
55
|
+
ListRootsCommand,
|
|
56
|
+
ListTagsForResourceCommand,
|
|
57
|
+
ListTargetsForPolicyCommand,
|
|
58
|
+
MoveAccountCommand,
|
|
59
|
+
PutResourcePolicyCommand,
|
|
60
|
+
RegisterDelegatedAdministratorCommand,
|
|
61
|
+
RemoveAccountFromOrganizationCommand,
|
|
62
|
+
TagResourceCommand,
|
|
63
|
+
UntagResourceCommand,
|
|
64
|
+
UpdateOrganizationalUnitCommand,
|
|
65
|
+
UpdatePolicyCommand,
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
* @category constructors
|
|
70
|
+
*/
|
|
71
|
+
export const makeOrganizationsService = Effect.gen(function* (_) {
|
|
72
|
+
const client = yield* _(OrganizationsClientInstance);
|
|
73
|
+
return Record.toEntries(commands).reduce((acc, [command]) => {
|
|
74
|
+
const CommandCtor = commands[command];
|
|
75
|
+
const methodImpl = (args, options) => Effect.tryPromise({
|
|
76
|
+
try: (abortSignal) => client.send(new CommandCtor(args), {
|
|
77
|
+
...(options !== null && options !== void 0 ? options : {}),
|
|
78
|
+
abortSignal,
|
|
79
|
+
}),
|
|
80
|
+
catch: (e) => {
|
|
81
|
+
if (e instanceof OrganizationsServiceException &&
|
|
82
|
+
AllServiceErrors.includes(e.name)) {
|
|
83
|
+
const ServiceException = Data.tagged(e.name);
|
|
84
|
+
return ServiceException({
|
|
85
|
+
...e,
|
|
86
|
+
message: e.message,
|
|
87
|
+
stack: e.stack,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (e instanceof Error) {
|
|
91
|
+
return SdkError({
|
|
92
|
+
...e,
|
|
93
|
+
name: "SdkError",
|
|
94
|
+
message: e.message,
|
|
95
|
+
stack: e.stack,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
throw e;
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
102
|
+
return { ...acc, [methodName]: methodImpl };
|
|
103
|
+
}, {});
|
|
104
|
+
});
|
|
105
|
+
/**
|
|
106
|
+
* @since 1.0.0
|
|
107
|
+
* @category models
|
|
108
|
+
*/
|
|
109
|
+
export class OrganizationsService extends Effect.Tag("@effect-aws/client-organizations/OrganizationsService")() {
|
|
110
|
+
}
|
|
111
|
+
_a = OrganizationsService;
|
|
112
|
+
OrganizationsService.defaultLayer = Layer.effect(_a, makeOrganizationsService).pipe(Layer.provide(OrganizationsClientInstanceLayer), Layer.provide(DefaultOrganizationsClientConfigLayer));
|
|
113
|
+
OrganizationsService.layer = (config) => Layer.effect(_a, makeOrganizationsService).pipe(Layer.provide(OrganizationsClientInstanceLayer), Layer.provide(Layer.effect(OrganizationsClientInstanceConfig, makeDefaultOrganizationsClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
114
|
+
OrganizationsService.baseLayer = (evaluate) => Layer.effect(_a, makeOrganizationsService).pipe(Layer.provide(Layer.effect(OrganizationsClientInstance, Effect.map(makeDefaultOrganizationsClientInstanceConfig, evaluate))));
|
|
115
|
+
/**
|
|
116
|
+
* @since 1.0.0
|
|
117
|
+
* @category models
|
|
118
|
+
* @alias OrganizationsService
|
|
119
|
+
*/
|
|
120
|
+
export const Organizations = OrganizationsService;
|
|
121
|
+
/**
|
|
122
|
+
* @since 1.0.0
|
|
123
|
+
* @category layers
|
|
124
|
+
* @deprecated use Organizations.baseLayer instead
|
|
125
|
+
*/
|
|
126
|
+
export const BaseOrganizationsServiceLayer = Layer.effect(OrganizationsService, makeOrganizationsService);
|
|
127
|
+
/**
|
|
128
|
+
* @since 1.0.0
|
|
129
|
+
* @category layers
|
|
130
|
+
* @deprecated use Organizations.layer instead
|
|
131
|
+
*/
|
|
132
|
+
export const OrganizationsServiceLayer = BaseOrganizationsServiceLayer.pipe(Layer.provide(OrganizationsClientInstanceLayer));
|
|
133
|
+
/**
|
|
134
|
+
* @since 1.0.0
|
|
135
|
+
* @category layers
|
|
136
|
+
* @deprecated use Organizations.defaultLayer instead
|
|
137
|
+
*/
|
|
138
|
+
export const DefaultOrganizationsServiceLayer = OrganizationsService.defaultLayer;
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvT3JnYW5pemF0aW9uc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLDZCQUE2QixFQUc3QixzQkFBc0IsRUFHdEIsbUJBQW1CLEVBR25CLHNCQUFzQixFQUd0QixtQkFBbUIsRUFHbkIsb0JBQW9CLEVBR3BCLDRCQUE0QixFQUc1Qix5QkFBeUIsRUFHekIsK0JBQStCLEVBRy9CLG1CQUFtQixFQUduQix1QkFBdUIsRUFHdkIseUJBQXlCLEVBR3pCLCtCQUErQixFQUcvQixtQkFBbUIsRUFHbkIsMkJBQTJCLEVBRzNCLHVDQUF1QyxFQUd2QyxzQkFBc0IsRUFHdEIsa0NBQWtDLEVBR2xDLDhCQUE4QixFQUc5Qix3QkFBd0IsRUFHeEIsMkJBQTJCLEVBRzNCLGlDQUFpQyxFQUdqQyxxQkFBcUIsRUFHckIsNkJBQTZCLEVBRzdCLG1CQUFtQixFQUduQiw4QkFBOEIsRUFHOUIsd0JBQXdCLEVBR3hCLDZCQUE2QixFQUc3Qix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLGtDQUFrQyxFQUdsQyx3QkFBd0IsRUFHeEIsMENBQTBDLEVBRzFDLG1CQUFtQixFQUduQiw0QkFBNEIsRUFHNUIsbUJBQW1CLEVBR25CLDhCQUE4QixFQUc5QixrQ0FBa0MsRUFHbEMsc0NBQXNDLEVBR3RDLCtCQUErQixFQUcvQixvQ0FBb0MsRUFHcEMsdUNBQXVDLEVBR3ZDLGtCQUFrQixFQUdsQixtQkFBbUIsRUFHbkIsNEJBQTRCLEVBRzVCLGdCQUFnQixFQUdoQiwwQkFBMEIsRUFHMUIsMkJBQTJCLEVBRzNCLGtCQUFrQixFQUdsQix3QkFBd0IsRUFHeEIscUNBQXFDLEVBR3JDLG9DQUFvQyxFQUdwQyxrQkFBa0IsRUFHbEIsb0JBQW9CLEVBR3BCLCtCQUErQixFQUcvQixtQkFBbUIsR0FHcEIsTUFBTSwrQkFBK0Is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LENBQy9DLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsRUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUFLLENBQUMsTUFBTSxDQUNWLGlDQUFpQyxFQUNqQyw0Q0FBNEMsQ0FBQyxJQUFJLENBQy9DLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDakUsQ0FDRixDQUNGLENBQ0YsQUFYa0IsQ0FXakI7QUFDWSw4QkFBUyxHQUFHLENBQzFCLFFBQTJFLEVBQzNFLEVBQUUsQ0FDRixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FDL0MsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUFLLENBQUMsTUFBTSxDQUNWLDJCQUEyQixFQUMzQixNQUFNLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUNuRSxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDO0FBRWxEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUN2RCxvQkFBb0IsRUFDcEIsd0JBQXdCLENBQ3pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUN6RSxLQUFLLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQ2hELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQzNDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIE9yZ2FuaXphdGlvbnNTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIE9yZ2FuaXphdGlvbnNDbGllbnQsXG4gIHR5cGUgT3JnYW5pemF0aW9uc0NsaWVudENvbmZpZyxcbiAgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZCxcbiAgdHlwZSBBY2NlcHRIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgQXR0YWNoUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsSGFuZHNoYWtlQ29tbWFuZCxcbiAgdHlwZSBDYW5jZWxIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsSGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgQ2xvc2VBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBDbG9zZUFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2xvc2VBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVjbGluZUhhbmRzaGFrZUNvbW1hbmQsXG4gIHR5cGUgRGVjbGluZUhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIERlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGV0YWNoUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kLFxuICB0eXBlIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kLFxuICB0eXBlIERpc2FibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVQb2xpY3lUeXBlQ29tbWFuZE91dHB1dCxcbiAgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kLFxuICB0eXBlIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZE91dHB1dCxcbiAgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZE91dHB1dCxcbiAgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgdHlwZSBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY291bnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjb3VudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjY291bnRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgTGlzdENoaWxkcmVuQ29tbWFuZCxcbiAgdHlwZSBMaXN0Q2hpbGRyZW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdENoaWxkcmVuQ29tbWFuZE91dHB1dCxcbiAgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kLFxuICB0eXBlIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kLFxuICB0eXBlIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgTGlzdFBhcmVudHNDb21tYW5kLFxuICB0eXBlIExpc3RQYXJlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQYXJlbnRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZE91dHB1dCxcbiAgTGlzdFJvb3RzQ29tbWFuZCxcbiAgdHlwZSBMaXN0Um9vdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvb3RzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kLFxuICB0eXBlIExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgTW92ZUFjY291bnRDb21tYW5kLFxuICB0eXBlIE1vdmVBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIE1vdmVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZCxcbiAgdHlwZSBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcmdhbml6YXRpb25zXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvcixcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEFjY2Vzc0RlbmllZEZvckRlcGVuZGVuY3lFcnJvcixcbiAgQWNjb3VudEFscmVhZHlDbG9zZWRFcnJvcixcbiAgQWNjb3VudEFscmVhZHlSZWdpc3RlcmVkRXJyb3IsXG4gIEFjY291bnROb3RGb3VuZEVycm9yLFxuICBBY2NvdW50Tm90UmVnaXN0ZXJlZEVycm9yLFxuICBBY2NvdW50T3duZXJOb3RWZXJpZmllZEVycm9yLFxuICBBbHJlYWR5SW5Pcmdhbml6YXRpb25FcnJvcixcbiAgQ2hpbGROb3RGb3VuZEVycm9yLFxuICBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIENvbnN0cmFpbnRWaW9sYXRpb25FcnJvcixcbiAgQ3JlYXRlQWNjb3VudFN0YXR1c05vdEZvdW5kRXJyb3IsXG4gIERlc3RpbmF0aW9uUGFyZW50Tm90Rm91bmRFcnJvcixcbiAgRHVwbGljYXRlQWNjb3VudEVycm9yLFxuICBEdXBsaWNhdGVIYW5kc2hha2VFcnJvcixcbiAgRHVwbGljYXRlT3JnYW5pemF0aW9uYWxVbml0RXJyb3IsXG4gIER1cGxpY2F0ZVBvbGljeUF0dGFjaG1lbnRFcnJvcixcbiAgRHVwbGljYXRlUG9saWN5RXJyb3IsXG4gIEVmZmVjdGl2ZVBvbGljeU5vdEZvdW5kRXJyb3IsXG4gIEZpbmFsaXppbmdPcmdhbml6YXRpb25FcnJvcixcbiAgSGFuZHNoYWtlQWxyZWFkeUluU3RhdGVFcnJvcixcbiAgSGFuZHNoYWtlQ29uc3RyYWludFZpb2xhdGlvbkVycm9yLFxuICBIYW5kc2hha2VOb3RGb3VuZEVycm9yLFxuICBJbnZhbGlkSGFuZHNoYWtlVHJhbnNpdGlvbkVycm9yLFxuICBJbnZhbGlkSW5wdXRFcnJvcixcbiAgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvcixcbiAgTWFzdGVyQ2Fubm90TGVhdmVPcmdhbml6YXRpb25FcnJvcixcbiAgT3JnYW5pemF0aW9uTm90RW1wdHlFcnJvcixcbiAgT3JnYW5pemF0aW9uYWxVbml0Tm90RW1wdHlFcnJvcixcbiAgT3JnYW5pemF0aW9uYWxVbml0Tm90Rm91bmRFcnJvcixcbiAgUGFyZW50Tm90Rm91bmRFcnJvcixcbiAgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvcixcbiAgUG9saWN5SW5Vc2VFcnJvcixcbiAgUG9saWN5Tm90QXR0YWNoZWRFcnJvcixcbiAgUG9saWN5Tm90Rm91bmRFcnJvcixcbiAgUG9saWN5VHlwZUFscmVhZHlFbmFibGVkRXJyb3IsXG4gIFBvbGljeVR5cGVOb3RBdmFpbGFibGVGb3JPcmdhbml6YXRpb25FcnJvcixcbiAgUG9saWN5VHlwZU5vdEVuYWJsZWRFcnJvcixcbiAgUmVzb3VyY2VQb2xpY3lOb3RGb3VuZEVycm9yLFxuICBSb290Tm90Rm91bmRFcnJvcixcbiAgU2VydmljZUVycm9yLFxuICBTb3VyY2VQYXJlbnROb3RGb3VuZEVycm9yLFxuICBUYXJnZXROb3RGb3VuZEVycm9yLFxuICBUb29NYW55UmVxdWVzdHNFcnJvcixcbiAgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZCxcbiAgQXR0YWNoUG9saWN5Q29tbWFuZCxcbiAgQ2FuY2VsSGFuZHNoYWtlQ29tbWFuZCxcbiAgQ2xvc2VBY2NvdW50Q29tbWFuZCxcbiAgQ3JlYXRlQWNjb3VudENvbW1hbmQsXG4gIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmQsXG4gIENyZWF0ZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIENyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIERlY2xpbmVIYW5kc2hha2VDb21tYW5kLFxuICBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kLFxuICBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZCxcbiAgRGVzY3JpYmVBY2NvdW50Q29tbWFuZCxcbiAgRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZCxcbiAgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kLFxuICBEZXNjcmliZUhhbmRzaGFrZUNvbW1hbmQsXG4gIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICBEZXNjcmliZVBvbGljeUNvbW1hbmQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBEZXRhY2hQb2xpY3lDb21tYW5kLFxuICBEaXNhYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIERpc2FibGVQb2xpY3lUeXBlQ29tbWFuZCxcbiAgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZCxcbiAgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmQsXG4gIEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kLFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kLFxuICBMaXN0Q2hpbGRyZW5Db21tYW5kLFxuICBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmQsXG4gIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmQsXG4gIExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kLFxuICBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kLFxuICBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZCxcbiAgTGlzdFBhcmVudHNDb21tYW5kLFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kLFxuICBMaXN0Um9vdHNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kLFxuICBNb3ZlQWNjb3VudENvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZCxcbiAgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICBVcGRhdGVQb2xpY3lDb21tYW5kLFxufTtcblxuaW50ZXJmYWNlIE9yZ2FuaXphdGlvbnNTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFjY2VwdEhhbmRzaGFrZUNvbW1hbmR9XG4gICAqL1xuICBhY2NlcHRIYW5kc2hha2UoXG4gICAgYXJnczogQWNjZXB0SGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRm9yRGVwZW5kZW5jeUVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VBbHJlYWR5SW5TdGF0ZUVycm9yXG4gICAgfCBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBhdHRhY2hQb2xpY3koXG4gICAgYXJnczogQXR0YWNoUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXR0YWNoUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVQb2xpY3lBdHRhY2htZW50RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yXG4gICAgfCBQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90RW5hYmxlZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsSGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbEhhbmRzaGFrZShcbiAgICBhcmdzOiBDYW5jZWxIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUFscmVhZHlJblN0YXRlRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENsb3NlQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBjbG9zZUFjY291bnQoXG4gICAgYXJnczogQ2xvc2VBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2xvc2VBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudEFscmVhZHlDbG9zZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFjY291bnQoXG4gICAgYXJnczogQ3JlYXRlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEZpbmFsaXppbmdPcmdhbml6YXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR292Q2xvdWRBY2NvdW50KFxuICAgIGFyZ3M6IENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVPcmdhbml6YXRpb24oXG4gICAgYXJnczogQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRm9yRGVwZW5kZW5jeUVycm9yXG4gICAgfCBBbHJlYWR5SW5Pcmdhbml6YXRpb25FcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVPcmdhbml6YXRpb25hbFVuaXQoXG4gICAgYXJnczogQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVPcmdhbml6YXRpb25hbFVuaXRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVBvbGljeShcbiAgICBhcmdzOiBDcmVhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZVBvbGljeUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgUG9saWN5VHlwZU5vdEF2YWlsYWJsZUZvck9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjbGluZUhhbmRzaGFrZUNvbW1hbmR9XG4gICAqL1xuICBkZWNsaW5lSGFuZHNoYWtlKFxuICAgIGFyZ3M6IERlY2xpbmVIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VBbHJlYWR5SW5TdGF0ZUVycm9yXG4gICAgfCBIYW5kc2hha2VOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSGFuZHNoYWtlVHJhbnNpdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBPcmdhbml6YXRpb25Ob3RFbXB0eUVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPcmdhbml6YXRpb25hbFVuaXQoXG4gICAgYXJnczogRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEVtcHR5RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVBvbGljeShcbiAgICBhcmdzOiBEZWxldGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5SW5Vc2VFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IFJlc291cmNlUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZH1cbiAgICovXG4gIGRlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yKFxuICAgIGFyZ3M6IERlcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQWNjb3VudE5vdFJlZ2lzdGVyZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnQoXG4gICAgYXJnczogRGVzY3JpYmVBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDcmVhdGVBY2NvdW50U3RhdHVzTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUVmZmVjdGl2ZVBvbGljeShcbiAgICBhcmdzOiBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRWZmZWN0aXZlUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUhhbmRzaGFrZUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUhhbmRzaGFrZShcbiAgICBhcmdzOiBEZXNjcmliZUhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBPcmdhbml6YXRpb25hbFVuaXROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUG9saWN5KFxuICAgIGFyZ3M6IERlc2NyaWJlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBSZXNvdXJjZVBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGV0YWNoUG9saWN5KFxuICAgIGFyZ3M6IERldGFjaFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERldGFjaFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGVkRXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBkaXNhYmxlQVdTU2VydmljZUFjY2VzcyhcbiAgICBhcmdzOiBEaXNhYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2FibGVQb2xpY3lUeXBlQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVQb2xpY3lUeXBlKFxuICAgIGFyZ3M6IERpc2FibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90RW5hYmxlZEVycm9yXG4gICAgfCBSb290Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlQVdTU2VydmljZUFjY2VzcyhcbiAgICBhcmdzOiBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmR9XG4gICAqL1xuICBlbmFibGVBbGxGZWF0dXJlcyhcbiAgICBhcmdzOiBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZVBvbGljeVR5cGUoXG4gICAgYXJnczogRW5hYmxlUG9saWN5VHlwZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yXG4gICAgfCBQb2xpY3lUeXBlQWxyZWFkeUVuYWJsZWRFcnJvclxuICAgIHwgUG9saWN5VHlwZU5vdEF2YWlsYWJsZUZvck9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBSb290Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBpbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb24oXG4gICAgYXJnczogSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE93bmVyTm90VmVyaWZpZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVIYW5kc2hha2VFcnJvclxuICAgIHwgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxlYXZlT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTWFzdGVyQ2Fubm90TGVhdmVPcmdhbml6YXRpb25FcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjb3VudHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjY291bnRzKFxuICAgIGFyZ3M6IExpc3RBY2NvdW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2NvdW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjY291bnRzRm9yUGFyZW50KFxuICAgIGFyZ3M6IExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q2hpbGRyZW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdENoaWxkcmVuKFxuICAgIGFyZ3M6IExpc3RDaGlsZHJlbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDaGlsZHJlbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Q3JlYXRlQWNjb3VudFN0YXR1cyhcbiAgICBhcmdzOiBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9ycyhcbiAgICBhcmdzOiBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgbGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudChcbiAgICBhcmdzOiBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBY2NvdW50Tm90UmVnaXN0ZXJlZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBsaXN0SGFuZHNoYWtlc0ZvckFjY291bnQoXG4gICAgYXJnczogTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kfVxuICAgKi9cbiAgbGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnQoXG4gICAgYXJnczogTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UGFyZW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UGFyZW50cyhcbiAgICBhcmdzOiBMaXN0UGFyZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQYXJlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENoaWxkTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQb2xpY2llcyhcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kfVxuICAgKi9cbiAgbGlzdFBvbGljaWVzRm9yVGFyZ2V0KFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb290c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Um9vdHMoXG4gICAgYXJnczogTGlzdFJvb3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFJvb3RzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFyZ2V0c0ZvclBvbGljeShcbiAgICBhcmdzOiBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW92ZUFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgbW92ZUFjY291bnQoXG4gICAgYXJnczogTW92ZUFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb3ZlQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZXN0aW5hdGlvblBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IER1cGxpY2F0ZUFjY291bnRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgU291cmNlUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yKFxuICAgIGFyZ3M6IFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnRBbHJlYWR5UmVnaXN0ZXJlZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IFJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTWFzdGVyQ2Fubm90TGVhdmVPcmdhbml6YXRpb25FcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVPcmdhbml6YXRpb25hbFVuaXQoXG4gICAgYXJnczogVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlT3JnYW5pemF0aW9uYWxVbml0RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBPcmdhbml6YXRpb25hbFVuaXROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQb2xpY3koXG4gICAgYXJnczogVXBkYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVQb2xpY3lFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgT3JnYW5pemF0aW9uc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248T3JnYW5pemF0aW9uc1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIE9yZ2FuaXphdGlvbnNTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1vcmdhbml6YXRpb25zL09yZ2FuaXphdGlvbnNTZXJ2aWNlXCIsXG4pPE9yZ2FuaXphdGlvbnNTZXJ2aWNlLCBPcmdhbml6YXRpb25zU2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KFxuICAgIHRoaXMsXG4gICAgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlLFxuICApLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogT3JnYW5pemF0aW9uc0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnKSA9PiBPcmdhbml6YXRpb25zQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VPcmdhbml6YXRpb25zU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIE9yZ2FuaXphdGlvbnNTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBPcmdhbml6YXRpb25zID0gT3JnYW5pemF0aW9uc1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3JnYW5pemF0aW9ucy5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZU9yZ2FuaXphdGlvbnNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9yZ2FuaXphdGlvbnNTZXJ2aWNlLFxuICBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9yZ2FuaXphdGlvbnMubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uc1NlcnZpY2VMYXllciA9IEJhc2VPcmdhbml6YXRpb25zU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcmdhbml6YXRpb25zLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3JnYW5pemF0aW9uc1NlcnZpY2VMYXllciA9XG4gIE9yZ2FuaXphdGlvbnNTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./Errors";
|
|
2
|
+
export * from "./OrganizationsClientInstance";
|
|
3
|
+
export * from "./OrganizationsClientInstanceConfig";
|
|
4
|
+
export * from "./OrganizationsService";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9FcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Pcmdhbml6YXRpb25zU2VydmljZVwiO1xuIl19
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Errors"), exports);
|
|
18
|
+
__exportStar(require("./OrganizationsClientInstance"), exports);
|
|
19
|
+
__exportStar(require("./OrganizationsClientInstanceConfig"), exports);
|
|
20
|
+
__exportStar(require("./OrganizationsService"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixnRUFBOEM7QUFDOUMsc0VBQW9EO0FBQ3BELHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL09yZ2FuaXphdGlvbnNTZXJ2aWNlXCI7XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@effect-aws/client-organizations",
|
|
3
|
+
"author": {
|
|
4
|
+
"name": "Victor Korzunin",
|
|
5
|
+
"email": "ifloydrose@gmail.com",
|
|
6
|
+
"organization": false
|
|
7
|
+
},
|
|
8
|
+
"devDependencies": {
|
|
9
|
+
"@types/node": "^18",
|
|
10
|
+
"@typescript-eslint/eslint-plugin": "^7",
|
|
11
|
+
"@typescript-eslint/parser": "^7",
|
|
12
|
+
"aws-sdk-client-mock": "^4.0.2",
|
|
13
|
+
"aws-sdk-client-mock-vitest": "^4.0.0",
|
|
14
|
+
"effect": "3.0.0",
|
|
15
|
+
"eslint": "^8",
|
|
16
|
+
"eslint-config-prettier": "^9.1.0",
|
|
17
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
18
|
+
"eslint-plugin-import": "^2.29.1",
|
|
19
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
20
|
+
"prettier": "^3.2.5",
|
|
21
|
+
"typescript": "^5.4.2",
|
|
22
|
+
"vitest": "^2.0.5"
|
|
23
|
+
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"effect": ">=3.0.0 <4.0.0"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@aws-sdk/client-organizations": "^3"
|
|
29
|
+
},
|
|
30
|
+
"main": "lib/index.js",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"homepage": "https://floydspace.github.io/effect-aws",
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"version": "1.0.0",
|
|
37
|
+
"types": "lib/index.d.ts",
|
|
38
|
+
"module": "lib/esm/index.js",
|
|
39
|
+
"sideEffects": [],
|
|
40
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "npx projen build",
|
|
43
|
+
"compile": "npx projen compile",
|
|
44
|
+
"default": "npx projen default",
|
|
45
|
+
"eslint": "npx projen eslint",
|
|
46
|
+
"package": "npx projen package",
|
|
47
|
+
"post-compile": "npx projen post-compile",
|
|
48
|
+
"pre-compile": "npx projen pre-compile",
|
|
49
|
+
"test": "npx projen test",
|
|
50
|
+
"test:watch": "npx projen test:watch",
|
|
51
|
+
"watch": "npx projen watch",
|
|
52
|
+
"docgen": "docgen"
|
|
53
|
+
}
|
|
54
|
+
}
|
package/project.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@effect-aws/client-organizations",
|
|
3
|
+
"root": "packages/client-organizations",
|
|
4
|
+
"targets": {
|
|
5
|
+
"default": {
|
|
6
|
+
"executor": "nx:run-commands",
|
|
7
|
+
"options": {
|
|
8
|
+
"command": "pnpm exec projen default",
|
|
9
|
+
"cwd": "packages/client-organizations"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"pre-compile": {
|
|
13
|
+
"executor": "nx:run-commands",
|
|
14
|
+
"options": {
|
|
15
|
+
"command": "pnpm exec projen pre-compile",
|
|
16
|
+
"cwd": "packages/client-organizations"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"compile": {
|
|
20
|
+
"executor": "nx:run-commands",
|
|
21
|
+
"options": {
|
|
22
|
+
"command": "pnpm exec projen compile",
|
|
23
|
+
"cwd": "packages/client-organizations"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"post-compile": {
|
|
27
|
+
"executor": "nx:run-commands",
|
|
28
|
+
"options": {
|
|
29
|
+
"command": "pnpm exec projen post-compile",
|
|
30
|
+
"cwd": "packages/client-organizations"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"test": {
|
|
34
|
+
"executor": "nx:run-commands",
|
|
35
|
+
"options": {
|
|
36
|
+
"command": "pnpm exec projen test",
|
|
37
|
+
"cwd": "packages/client-organizations"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"package": {
|
|
41
|
+
"executor": "nx:run-commands",
|
|
42
|
+
"options": {
|
|
43
|
+
"command": "pnpm exec projen package",
|
|
44
|
+
"cwd": "packages/client-organizations"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"build": {
|
|
48
|
+
"executor": "nx:run-commands",
|
|
49
|
+
"options": {
|
|
50
|
+
"command": "pnpm exec projen build",
|
|
51
|
+
"cwd": "packages/client-organizations"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"watch": {
|
|
55
|
+
"executor": "nx:run-commands",
|
|
56
|
+
"options": {
|
|
57
|
+
"command": "pnpm exec projen watch",
|
|
58
|
+
"cwd": "packages/client-organizations"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"eslint": {
|
|
62
|
+
"executor": "nx:run-commands",
|
|
63
|
+
"options": {
|
|
64
|
+
"command": "pnpm exec projen eslint",
|
|
65
|
+
"cwd": "packages/client-organizations"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"test:watch": {
|
|
69
|
+
"executor": "nx:run-commands",
|
|
70
|
+
"options": {
|
|
71
|
+
"command": "pnpm exec projen test:watch",
|
|
72
|
+
"cwd": "packages/client-organizations"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
|
|
77
|
+
}
|
package/vitest.config.ts
ADDED