@effect-aws/client-organizations 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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # @effect-aws/client-organizations
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#93](https://github.com/floydspace/effect-aws/pull/93) [`a96fbd8`](https://github.com/floydspace/effect-aws/commit/a96fbd8840a7a6cfb795a2a6ab96aa32d32a3525) Thanks [@godu](https://github.com/godu)! - Destroy client after layer lifecycle to release idle connections.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`ca9ea34`](https://github.com/floydspace/effect-aws/commit/ca9ea3451567a2ab25a5919ea79b9169605890d6) Thanks [@floydspace](https://github.com/floydspace)! - updates is sdk client functions
12
+
3
13
  ## 1.0.0
4
14
 
5
15
  ### Major Changes
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2024 Victor Korzunin
1
+ Copyright (c) 2025 Victor Korzunin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -17,7 +17,7 @@ export declare class OrganizationsClientInstance extends OrganizationsClientInst
17
17
  * @since 1.0.0
18
18
  * @category constructors
19
19
  */
20
- export declare const makeOrganizationsClientInstance: Effect.Effect<OrganizationsClient, never, OrganizationsClientInstanceConfig>;
20
+ export declare const makeOrganizationsClientInstance: Effect.Effect<OrganizationsClient, never, import("effect/Scope").Scope | OrganizationsClientInstanceConfig>;
21
21
  /**
22
22
  * @since 1.0.0
23
23
  * @category layers
@@ -43,15 +43,15 @@ exports.OrganizationsClientInstance = OrganizationsClientInstance;
43
43
  * @since 1.0.0
44
44
  * @category constructors
45
45
  */
46
- exports.makeOrganizationsClientInstance = Effect.map(OrganizationsClientInstanceConfig_1.OrganizationsClientInstanceConfig, (config) => new client_organizations_1.OrganizationsClient(config));
46
+ exports.makeOrganizationsClientInstance = Effect.flatMap(OrganizationsClientInstanceConfig_1.OrganizationsClientInstanceConfig, (config) => Effect.acquireRelease(Effect.sync(() => new client_organizations_1.OrganizationsClient(config)), (client) => Effect.sync(() => client.destroy())));
47
47
  /**
48
48
  * @since 1.0.0
49
49
  * @category layers
50
50
  */
51
- exports.OrganizationsClientInstanceLayer = Layer.effect(OrganizationsClientInstance, exports.makeOrganizationsClientInstance);
51
+ exports.OrganizationsClientInstanceLayer = Layer.scoped(OrganizationsClientInstance, exports.makeOrganizationsClientInstance);
52
52
  /**
53
53
  * @since 1.0.0
54
54
  * @category layers
55
55
  */
56
56
  exports.DefaultOrganizationsClientInstanceLayer = exports.OrganizationsClientInstanceLayer.pipe(Layer.provide(OrganizationsClientInstanceConfig_1.DefaultOrganizationsClientConfigLayer));
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsd0VBQW9FO0FBQ3BFLHdEQUEwQztBQUMxQyxzREFBd0M7QUFDeEMsb0RBQXNDO0FBQ3RDLDJGQUc2QztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQzFELDhEQUE4RCxDQUMvRCxFQUFvRDtDQUFHO0FBRnhELGtFQUV3RDtBQUV4RDs7O0dBR0c7QUFDVSxRQUFBLCtCQUErQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ3ZELHFFQUFpQyxFQUNqQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSwwQ0FBbUIsQ0FBQyxNQUFNLENBQUMsQ0FDNUMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsZ0NBQWdDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDMUQsMkJBQTJCLEVBQzNCLHVDQUErQixDQUNoQyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSx1Q0FBdUMsR0FDbEQsd0NBQWdDLENBQUMsSUFBSSxDQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLHlFQUFxQyxDQUFDLENBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zQ2xpZW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcmdhbml6YXRpb25zXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudENvbmZpZ0xheWVyLFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSBleHRlbmRzIENvbnRleHQuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1vcmdhbml6YXRpb25zL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZVwiLFxuKTxPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsIE9yZ2FuaXphdGlvbnNDbGllbnQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UgPSBFZmZlY3QubWFwKFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIChjb25maWcpID0+IG5ldyBPcmdhbml6YXRpb25zQ2xpZW50KGNvbmZpZyksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbiAgbWFrZU9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIgPVxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllci5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsd0VBQW9FO0FBQ3BFLHdEQUEwQztBQUMxQyxzREFBd0M7QUFDeEMsb0RBQXNDO0FBQ3RDLDJGQUc2QztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQzFELDhEQUE4RCxDQUMvRCxFQUFvRDtDQUFHO0FBRnhELGtFQUV3RDtBQUV4RDs7O0dBR0c7QUFDVSxRQUFBLCtCQUErQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQzNELHFFQUFpQyxFQUNqQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBDQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ2xELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUNoRCxDQUNKLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLGdDQUFnQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQzFELDJCQUEyQixFQUMzQix1Q0FBK0IsQ0FDaEMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsdUNBQXVDLEdBQ2xELHdDQUFnQyxDQUFDLElBQUksQ0FDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx5RUFBcUMsQ0FBQyxDQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllcixcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtb3JnYW5pemF0aW9ucy9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VcIixcbik8T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLCBPcmdhbml6YXRpb25zQ2xpZW50PigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlID0gRWZmZWN0LmZsYXRNYXAoXG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT5cbiAgICBFZmZlY3QuYWNxdWlyZVJlbGVhc2UoXG4gICAgICBFZmZlY3Quc3luYygoKSA9PiBuZXcgT3JnYW5pemF0aW9uc0NsaWVudChjb25maWcpKSxcbiAgICAgIChjbGllbnQpID0+IEVmZmVjdC5zeW5jKCgpID0+IGNsaWVudC5kZXN0cm95KCkpLFxuICAgICksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5zY29wZWQoXG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbiAgbWFrZU9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIgPVxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllci5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4iXX0=
@@ -129,7 +129,7 @@ interface OrganizationsService$ {
129
129
  /**
130
130
  * @see {@link EnableAllFeaturesCommand}
131
131
  */
132
- enableAllFeatures(args: EnableAllFeaturesCommandInput, options?: HttpHandlerOptions): Effect.Effect<EnableAllFeaturesCommandOutput, SdkError | AccessDeniedError | AWSOrganizationsNotInUseError | ConcurrentModificationError | HandshakeConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError>;
132
+ enableAllFeatures(args: EnableAllFeaturesCommandInput, options?: HttpHandlerOptions): Effect.Effect<EnableAllFeaturesCommandOutput, SdkError | AccessDeniedError | AWSOrganizationsNotInUseError | ConcurrentModificationError | ConstraintViolationError | HandshakeConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError>;
133
133
  /**
134
134
  * @see {@link EnablePolicyTypeCommand}
135
135
  */
@@ -273,7 +273,7 @@ declare const OrganizationsService_base: import("effect/Context").TagClass<Organ
273
273
  disableAWSServiceAccess: (args: DisableAWSServiceAccessCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DisableAWSServiceAccessCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | ConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError | UnsupportedAPIEndpointError | SdkError, OrganizationsService>;
274
274
  disablePolicyType: (args: DisablePolicyTypeCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DisablePolicyTypeCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | ConstraintViolationError | InvalidInputError | PolicyChangesInProgressError | PolicyTypeNotEnabledError | RootNotFoundError | ServiceError | TooManyRequestsError | UnsupportedAPIEndpointError | SdkError, OrganizationsService>;
275
275
  enableAWSServiceAccess: (args: EnableAWSServiceAccessCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnableAWSServiceAccessCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | ConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError | UnsupportedAPIEndpointError | SdkError, OrganizationsService>;
276
- enableAllFeatures: (args: EnableAllFeaturesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnableAllFeaturesCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | HandshakeConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError | SdkError, OrganizationsService>;
276
+ enableAllFeatures: (args: EnableAllFeaturesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnableAllFeaturesCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | ConstraintViolationError | HandshakeConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError | SdkError, OrganizationsService>;
277
277
  enablePolicyType: (args: EnablePolicyTypeCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<EnablePolicyTypeCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | ConcurrentModificationError | ConstraintViolationError | InvalidInputError | PolicyChangesInProgressError | PolicyTypeAlreadyEnabledError | PolicyTypeNotAvailableForOrganizationError | RootNotFoundError | ServiceError | TooManyRequestsError | UnsupportedAPIEndpointError | SdkError, OrganizationsService>;
278
278
  inviteAccountToOrganization: (args: InviteAccountToOrganizationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<InviteAccountToOrganizationCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | AccountOwnerNotVerifiedError | ConcurrentModificationError | ConstraintViolationError | DuplicateHandshakeError | FinalizingOrganizationError | HandshakeConstraintViolationError | InvalidInputError | ServiceError | TooManyRequestsError | SdkError, OrganizationsService>;
279
279
  leaveOrganization: (args: LeaveOrganizationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<LeaveOrganizationCommandOutput, AWSOrganizationsNotInUseError | AccessDeniedError | AccountNotFoundError | ConcurrentModificationError | ConstraintViolationError | InvalidInputError | MasterCannotLeaveOrganizationError | ServiceError | TooManyRequestsError | SdkError, OrganizationsService>;
@@ -140,4 +140,4 @@ exports.OrganizationsServiceLayer = exports.BaseOrganizationsServiceLayer.pipe(e
140
140
  * @deprecated use Organizations.defaultLayer instead
141
141
  */
142
142
  exports.DefaultOrganizationsServiceLayer = OrganizationsService.defaultLayer;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3JnYW5pemF0aW9uc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsd0VBeUt1QztBQUN2QyxtQ0FBcUQ7QUFDckQscUNBbURrQjtBQUNsQiwrRUFHdUM7QUFDdkMsMkZBSTZDO0FBYTdDLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysc0JBQXNCLEVBQXRCLDZDQUFzQjtJQUN0QixtQkFBbUIsRUFBbkIsMENBQW1CO0lBQ25CLHNCQUFzQixFQUF0Qiw2Q0FBc0I7SUFDdEIsbUJBQW1CLEVBQW5CLDBDQUFtQjtJQUNuQixvQkFBb0IsRUFBcEIsMkNBQW9CO0lBQ3BCLDRCQUE0QixFQUE1QixtREFBNEI7SUFDNUIseUJBQXlCLEVBQXpCLGdEQUF5QjtJQUN6QiwrQkFBK0IsRUFBL0Isc0RBQStCO0lBQy9CLG1CQUFtQixFQUFuQiwwQ0FBbUI7SUFDbkIsdUJBQXVCLEVBQXZCLDhDQUF1QjtJQUN2Qix5QkFBeUIsRUFBekIsZ0RBQXlCO0lBQ3pCLCtCQUErQixFQUEvQixzREFBK0I7SUFDL0IsbUJBQW1CLEVBQW5CLDBDQUFtQjtJQUNuQiwyQkFBMkIsRUFBM0Isa0RBQTJCO0lBQzNCLHVDQUF1QyxFQUF2Qyw4REFBdUM7SUFDdkMsc0JBQXNCLEVBQXRCLDZDQUFzQjtJQUN0QixrQ0FBa0MsRUFBbEMseURBQWtDO0lBQ2xDLDhCQUE4QixFQUE5QixxREFBOEI7SUFDOUIsd0JBQXdCLEVBQXhCLCtDQUF3QjtJQUN4QiwyQkFBMkIsRUFBM0Isa0RBQTJCO0lBQzNCLGlDQUFpQyxFQUFqQyx3REFBaUM7SUFDakMscUJBQXFCLEVBQXJCLDRDQUFxQjtJQUNyQiw2QkFBNkIsRUFBN0Isb0RBQTZCO0lBQzdCLG1CQUFtQixFQUFuQiwwQ0FBbUI7SUFDbkIsOEJBQThCLEVBQTlCLHFEQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIs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LENBQ0YsQUFYa0IsQ0FXakI7QUFDWSw4QkFBUyxHQUFHLENBQzFCLFFBQTJFLEVBQzNFLEVBQUUsQ0FDRixjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSxnQ0FBd0IsQ0FBQyxDQUFDLElBQUksQ0FDL0MsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLHlEQUEyQixFQUMzQixlQUFNLENBQUMsR0FBRyxDQUFDLGdGQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUNuRSxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDdkQsb0JBQW9CLEVBQ3BCLGdDQUF3QixDQUN6QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEseUJBQXlCLEdBQUcscUNBQTZCLENBQUMsSUFBSSxDQUN6RSxjQUFLLENBQUMsT0FBTyxDQUFDLDhEQUFnQyxDQUFDLENBQ2hELENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxnQ0FBZ0MsR0FDM0Msb0JBQW9CLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uc1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgT3JnYW5pemF0aW9uc0NsaWVudCxcbiAgdHlwZSBPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnLFxuICBBY2NlcHRIYW5kc2hha2VDb21tYW5kLFxuICB0eXBlIEFjY2VwdEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBY2NlcHRIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBBdHRhY2hQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxIYW5kc2hha2VDb21tYW5kLFxuICB0eXBlIENhbmNlbEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBDbG9zZUFjY291bnRDb21tYW5kLFxuICB0eXBlIENsb3NlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDbG9zZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIENyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZCxcbiAgdHlwZSBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICB0eXBlIERlY2xpbmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIERlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUFjY291bnRDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUhhbmRzaGFrZUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXRhY2hQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlUG9saWN5VHlwZUNvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmQsXG4gIHR5cGUgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kT3V0cHV0LFxuICBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICB0eXBlIExpc3RBY2NvdW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjb3VudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kLFxuICB0eXBlIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICBMaXN0Q2hpbGRyZW5Db21tYW5kLFxuICB0eXBlIExpc3RDaGlsZHJlbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q2hpbGRyZW5Db21tYW5kT3V0cHV0LFxuICBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kLFxuICB0eXBlIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kLFxuICB0eXBlIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmQsXG4gIHR5cGUgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFyZW50c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBhcmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBhcmVudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kT3V0cHV0LFxuICBMaXN0Um9vdHNDb21tYW5kLFxuICB0eXBlIExpc3RSb290c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9vdHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBNb3ZlQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgTW92ZUFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW92ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQWNjZXNzRGVuaWVkRm9yRGVwZW5kZW5jeUVycm9yLFxuICBBY2NvdW50QWxyZWFkeUNsb3NlZEVycm9yLFxuICBBY2NvdW50QWxyZWFkeVJlZ2lzdGVyZWRFcnJvcixcbiAgQWNjb3VudE5vdEZvdW5kRXJyb3IsXG4gIEFjY291bnROb3RSZWdpc3RlcmVkRXJyb3IsXG4gIEFjY291bnRPd25lck5vdFZlcmlmaWVkRXJyb3IsXG4gIEFscmVhZHlJbk9yZ2FuaXphdGlvbkVycm9yLFxuICBDaGlsZE5vdEZvdW5kRXJyb3IsXG4gIENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yLFxuICBDcmVhdGVBY2NvdW50U3RhdHVzTm90Rm91bmRFcnJvcixcbiAgRGVzdGluYXRpb25QYXJlbnROb3RGb3VuZEVycm9yLFxuICBEdXBsaWNhdGVBY2NvdW50RXJyb3IsXG4gIER1cGxpY2F0ZUhhbmRzaGFrZUVycm9yLFxuICBEdXBsaWNhdGVPcmdhbml6YXRpb25hbFVuaXRFcnJvcixcbiAgRHVwbGljYXRlUG9saWN5QXR0YWNobWVudEVycm9yLFxuICBEdXBsaWNhdGVQb2xpY3lFcnJvcixcbiAgRWZmZWN0aXZlUG9saWN5Tm90Rm91bmRFcnJvcixcbiAgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yLFxuICBIYW5kc2hha2VBbHJlYWR5SW5TdGF0ZUVycm9yLFxuICBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3IsXG4gIEhhbmRzaGFrZU5vdEZvdW5kRXJyb3IsXG4gIEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3IsXG4gIEludmFsaWRJbnB1dEVycm9yLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yLFxuICBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yLFxuICBPcmdhbml6YXRpb25Ob3RFbXB0eUVycm9yLFxuICBPcmdhbml6YXRpb25hbFVuaXROb3RFbXB0eUVycm9yLFxuICBPcmdhbml6YXRpb25hbFVuaXROb3RGb3VuZEVycm9yLFxuICBQYXJlbnROb3RGb3VuZEVycm9yLFxuICBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yLFxuICBQb2xpY3lJblVzZUVycm9yLFxuICBQb2xpY3lOb3RBdHRhY2hlZEVycm9yLFxuICBQb2xpY3lOb3RGb3VuZEVycm9yLFxuICBQb2xpY3lUeXBlQWxyZWFkeUVuYWJsZWRFcnJvcixcbiAgUG9saWN5VHlwZU5vdEF2YWlsYWJsZUZvck9yZ2FuaXphdGlvbkVycm9yLFxuICBQb2xpY3lUeXBlTm90RW5hYmxlZEVycm9yLFxuICBSZXNvdXJjZVBvbGljeU5vdEZvdW5kRXJyb3IsXG4gIFJvb3ROb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlRXJyb3IsXG4gIFNvdXJjZVBhcmVudE5vdEZvdW5kRXJyb3IsXG4gIFRhcmdldE5vdEZvdW5kRXJyb3IsXG4gIFRvb01hbnlSZXF1ZXN0c0Vycm9yLFxuICBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBY2NlcHRIYW5kc2hha2VDb21tYW5kLFxuICBBdHRhY2hQb2xpY3lDb21tYW5kLFxuICBDYW5jZWxIYW5kc2hha2VDb21tYW5kLFxuICBDbG9zZUFjY291bnRDb21tYW5kLFxuICBDcmVhdGVBY2NvdW50Q29tbWFuZCxcbiAgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgRGVjbGluZUhhbmRzaGFrZUNvbW1hbmQsXG4gIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIERlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRDb21tYW5kLFxuICBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kLFxuICBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmQsXG4gIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZCxcbiAgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kLFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIERlc2NyaWJlUG9saWN5Q29tbWFuZCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERldGFjaFBvbGljeUNvbW1hbmQsXG4gIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kLFxuICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kLFxuICBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZCxcbiAgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kLFxuICBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIExpc3RBY2NvdW50c0NvbW1hbmQsXG4gIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmQsXG4gIExpc3RDaGlsZHJlbkNvbW1hbmQsXG4gIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZCxcbiAgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZCxcbiAgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmQsXG4gIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmQsXG4gIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kLFxuICBMaXN0UGFyZW50c0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmQsXG4gIExpc3RSb290c0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmQsXG4gIE1vdmVBY2NvdW50Q29tbWFuZCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIFVwZGF0ZVBvbGljeUNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGFjY2VwdEhhbmRzaGFrZShcbiAgICBhcmdzOiBBY2NlcHRIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBY2NlcHRIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRGb3JEZXBlbmRlbmN5RXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUFscmVhZHlJblN0YXRlRXJyb3JcbiAgICB8IEhhbmRzaGFrZUNvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZEhhbmRzaGFrZVRyYW5zaXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGF0dGFjaFBvbGljeShcbiAgICBhcmdzOiBBdHRhY2hQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdHRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZVBvbGljeUF0dGFjaG1lbnRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFBvbGljeVR5cGVOb3RFbmFibGVkRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxIYW5kc2hha2VDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsSGFuZHNoYWtlKFxuICAgIGFyZ3M6IENhbmNlbEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEhhbmRzaGFrZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlQWxyZWFkeUluU3RhdGVFcnJvclxuICAgIHwgSGFuZHNoYWtlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZEhhbmRzaGFrZVRyYW5zaXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2xvc2VBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGNsb3NlQWNjb3VudChcbiAgICBhcmdzOiBDbG9zZUFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDbG9zZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50QWxyZWFkeUNsb3NlZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWNjb3VudChcbiAgICBhcmdzOiBDcmVhdGVBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHb3ZDbG91ZEFjY291bnQoXG4gICAgYXJnczogQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBGaW5hbGl6aW5nT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRGb3JEZXBlbmRlbmN5RXJyb3JcbiAgICB8IEFscmVhZHlJbk9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZU9yZ2FuaXphdGlvbmFsVW5pdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUG9saWN5KFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlUG9saWN5RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90QXZhaWxhYmxlRm9yT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGRlY2xpbmVIYW5kc2hha2UoXG4gICAgYXJnczogRGVjbGluZUhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY2xpbmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUFscmVhZHlJblN0YXRlRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPcmdhbml6YXRpb24oXG4gICAgYXJnczogRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbk5vdEVtcHR5RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgT3JnYW5pemF0aW9uYWxVbml0Tm90RW1wdHlFcnJvclxuICAgIHwgT3JnYW5pemF0aW9uYWxVbml0Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lJblVzZUVycm9yXG4gICAgfCBQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgUmVzb3VyY2VQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3IoXG4gICAgYXJnczogRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBY2NvdW50Tm90UmVnaXN0ZXJlZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQWNjb3VudChcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXMoXG4gICAgYXJnczogRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENyZWF0ZUFjY291bnRTdGF0dXNOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRWZmZWN0aXZlUG9saWN5KFxuICAgIGFyZ3M6IERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBFZmZlY3RpdmVQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSGFuZHNoYWtlKFxuICAgIGFyZ3M6IERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0KFxuICAgIGFyZ3M6IERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQb2xpY3koXG4gICAgYXJnczogRGVzY3JpYmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IFJlc291cmNlUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZXRhY2hQb2xpY3koXG4gICAgYXJnczogRGV0YWNoUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGV0YWNoUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoZWRFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVBV1NTZXJ2aWNlQWNjZXNzKFxuICAgIGFyZ3M6IERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kfVxuICAgKi9cbiAgZGlzYWJsZVBvbGljeVR5cGUoXG4gICAgYXJnczogRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlUG9saWN5VHlwZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeVR5cGVOb3RFbmFibGVkRXJyb3JcbiAgICB8IFJvb3ROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBlbmFibGVBV1NTZXJ2aWNlQWNjZXNzKFxuICAgIGFyZ3M6IEVuYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUFsbEZlYXR1cmVzKFxuICAgIGFyZ3M6IEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZVBvbGljeVR5cGVDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlUG9saWN5VHlwZShcbiAgICBhcmdzOiBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeVR5cGVBbHJlYWR5RW5hYmxlZEVycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90QXZhaWxhYmxlRm9yT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFJvb3ROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50T3duZXJOb3RWZXJpZmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZUhhbmRzaGFrZUVycm9yXG4gICAgfCBGaW5hbGl6aW5nT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUNvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgbGVhdmVPcmdhbml6YXRpb24oXG4gICAgYXJnczogTGVhdmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2NvdW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWNjb3VudHMoXG4gICAgYXJnczogTGlzdEFjY291bnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFjY291bnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmR9XG4gICAqL1xuICBsaXN0QWNjb3VudHNGb3JQYXJlbnQoXG4gICAgYXJnczogTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDaGlsZHJlbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0Q2hpbGRyZW4oXG4gICAgYXJnczogTGlzdENoaWxkcmVuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdENoaWxkcmVuQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDcmVhdGVBY2NvdW50U3RhdHVzKFxuICAgIGFyZ3M6IExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzKFxuICAgIGFyZ3M6IExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBsaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50KFxuICAgIGFyZ3M6IExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFjY291bnROb3RSZWdpc3RlcmVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGxpc3RIYW5kc2hha2VzRm9yQWNjb3VudChcbiAgICBhcmdzOiBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmR9XG4gICAqL1xuICBsaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudChcbiAgICBhcmdzOiBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQYXJlbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQYXJlbnRzKFxuICAgIGFyZ3M6IExpc3RQYXJlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBhcmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ2hpbGROb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmR9XG4gICAqL1xuICBsaXN0UG9saWNpZXNGb3JUYXJnZXQoXG4gICAgYXJnczogTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvb3RzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RSb290cyhcbiAgICBhcmdzOiBMaXN0Um9vdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Um9vdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGxpc3RUYXJnZXRzRm9yUG9saWN5KFxuICAgIGFyZ3M6IExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb3ZlQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBtb3ZlQWNjb3VudChcbiAgICBhcmdzOiBNb3ZlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vdmVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlc3RpbmF0aW9uUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgRHVwbGljYXRlQWNjb3VudEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTb3VyY2VQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmR9XG4gICAqL1xuICByZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3IoXG4gICAgYXJnczogUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudEFscmVhZHlSZWdpc3RlcmVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb24oXG4gICAgYXJnczogUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVPcmdhbml6YXRpb25hbFVuaXRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBvbGljeShcbiAgICBhcmdzOiBVcGRhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZVBvbGljeUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBPcmdhbml6YXRpb25zU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxPcmdhbml6YXRpb25zU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgT3JnYW5pemF0aW9uc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25zU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9yZ2FuaXphdGlvbnMvT3JnYW5pemF0aW9uc1NlcnZpY2VcIixcbik8T3JnYW5pemF0aW9uc1NlcnZpY2UsIE9yZ2FuaXphdGlvbnNTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gICAgdGhpcyxcbiAgICBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UsXG4gICkucGlwZShcbiAgICBMYXllci5wcm92aWRlKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKGRlZmF1bHRDb25maWc6IE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWcpID0+IE9yZ2FuaXphdGlvbnNDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgT3JnYW5pemF0aW9uc1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbnMgPSBPcmdhbml6YXRpb25zU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcmdhbml6YXRpb25zLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlT3JnYW5pemF0aW9uc1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgT3JnYW5pemF0aW9uc1NlcnZpY2UsXG4gIG1ha2VPcmdhbml6YXRpb25zU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3JnYW5pemF0aW9ucy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBPcmdhbml6YXRpb25zU2VydmljZUxheWVyID0gQmFzZU9yZ2FuaXphdGlvbnNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9yZ2FuaXphdGlvbnMuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcmdhbml6YXRpb25zU2VydmljZUxheWVyID1cbiAgT3JnYW5pemF0aW9uc1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3JnYW5pemF0aW9uc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsd0VBeUt1QztBQUN2QyxtQ0FBcUQ7QUFDckQscUNBbURrQjtBQUNsQiwrRUFHdUM7QUFDdkMsMkZBSTZDO0FBYTdDLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysc0JBQXNCLEVBQXRCLDZDQUFzQjtJQUN0QixtQkFBbUIsRUFBbkIsMENBQW1CO0lBQ25CLHNCQUFzQixFQUF0Qiw2Q0FBc0I7SUFDdEIsbUJBQW1CLEVBQW5CLDBDQUFtQjtJQUNuQixvQkFBb0IsRUFBcEIsMkNBQW9CO0lBQ3BCLDRCQUE0QixFQUE1QixtREFBNEI7SUFDNUIseUJBQXlCLEVBQXpCLGdEQUF5QjtJQUN6QiwrQkFBK0IsRUFBL0Isc0RBQStCO0lBQy9CLG1CQUFtQixFQUFuQiwwQ0FBbUI7SUFDbkIsdUJBQXVCLEVBQXZCLDhDQUF1QjtJQUN2Qix5QkFBeUIsRUFBekIsZ0RBQXlCO0lBQ3pCLCtCQUErQixFQUEvQixzREFBK0I7SUFDL0IsbUJBQW1CLEVBQW5CLDBDQUFtQjtJQUNuQiwyQkFBMkIsRUFBM0Isa0RBQTJCO0lBQzNCLHVDQUF1QyxFQUF2Qyw4REFBdUM7SUFDdkMsc0JBQXNCLEVBQXRCLDZDQUFzQjtJQUN0QixrQ0FBa0MsRUFBbEMseURBQWtDO0lBQ2xDLDhCQUE4QixFQUE5QixxREFBOEI7SUFDOUIsd0JBQXdCLEVBQXhCLCtDQUF3QjtJQUN4QiwyQkFBMkIsRUFBM0Isa0RBQTJCO0lBQzNCLGlDQUFpQyxFQUFqQyx3REFBaUM7SUFDakMscUJBQXFCLEVBQXJCLDRDQUFxQjtJQUNyQiw2QkFBNkIsRUFBN0Isb0RBQTZCO0lBQzdCLG1CQUFtQixFQUFuQiwwQ0FBbUI7SUFDbkIsOEJBQThCLEVBQTlCLHFEQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIs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LENBQ0YsQUFYa0IsQ0FXakI7QUFDWSw4QkFBUyxHQUFHLENBQzFCLFFBQTJFLEVBQzNFLEVBQUUsQ0FDRixjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSxnQ0FBd0IsQ0FBQyxDQUFDLElBQUksQ0FDL0MsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLHlEQUEyQixFQUMzQixlQUFNLENBQUMsR0FBRyxDQUFDLGdGQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUNuRSxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDdkQsb0JBQW9CLEVBQ3BCLGdDQUF3QixDQUN6QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEseUJBQXlCLEdBQUcscUNBQTZCLENBQUMsSUFBSSxDQUN6RSxjQUFLLENBQUMsT0FBTyxDQUFDLDhEQUFnQyxDQUFDLENBQ2hELENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxnQ0FBZ0MsR0FDM0Msb0JBQW9CLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uc1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgT3JnYW5pemF0aW9uc0NsaWVudCxcbiAgdHlwZSBPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnLFxuICBBY2NlcHRIYW5kc2hha2VDb21tYW5kLFxuICB0eXBlIEFjY2VwdEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBY2NlcHRIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBBdHRhY2hQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxIYW5kc2hha2VDb21tYW5kLFxuICB0eXBlIENhbmNlbEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBDbG9zZUFjY291bnRDb21tYW5kLFxuICB0eXBlIENsb3NlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDbG9zZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHb3ZDbG91ZEFjY291bnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIENyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZCxcbiAgdHlwZSBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICB0eXBlIERlY2xpbmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIERlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUFjY291bnRDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUhhbmRzaGFrZUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZXRhY2hQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlUG9saWN5VHlwZUNvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmQsXG4gIHR5cGUgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kT3V0cHV0LFxuICBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZVBvbGljeVR5cGVDb21tYW5kT3V0cHV0LFxuICBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kLFxuICB0eXBlIEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICB0eXBlIExpc3RBY2NvdW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjb3VudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kLFxuICB0eXBlIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICBMaXN0Q2hpbGRyZW5Db21tYW5kLFxuICB0eXBlIExpc3RDaGlsZHJlbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q2hpbGRyZW5Db21tYW5kT3V0cHV0LFxuICBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kLFxuICB0eXBlIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZCxcbiAgdHlwZSBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kLFxuICB0eXBlIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmQsXG4gIHR5cGUgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFyZW50c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBhcmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBhcmVudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kLFxuICB0eXBlIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kT3V0cHV0LFxuICBMaXN0Um9vdHNDb21tYW5kLFxuICB0eXBlIExpc3RSb290c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Um9vdHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBNb3ZlQWNjb3VudENvbW1hbmQsXG4gIHR5cGUgTW92ZUFjY291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW92ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQWNjZXNzRGVuaWVkRm9yRGVwZW5kZW5jeUVycm9yLFxuICBBY2NvdW50QWxyZWFkeUNsb3NlZEVycm9yLFxuICBBY2NvdW50QWxyZWFkeVJlZ2lzdGVyZWRFcnJvcixcbiAgQWNjb3VudE5vdEZvdW5kRXJyb3IsXG4gIEFjY291bnROb3RSZWdpc3RlcmVkRXJyb3IsXG4gIEFjY291bnRPd25lck5vdFZlcmlmaWVkRXJyb3IsXG4gIEFscmVhZHlJbk9yZ2FuaXphdGlvbkVycm9yLFxuICBDaGlsZE5vdEZvdW5kRXJyb3IsXG4gIENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yLFxuICBDcmVhdGVBY2NvdW50U3RhdHVzTm90Rm91bmRFcnJvcixcbiAgRGVzdGluYXRpb25QYXJlbnROb3RGb3VuZEVycm9yLFxuICBEdXBsaWNhdGVBY2NvdW50RXJyb3IsXG4gIER1cGxpY2F0ZUhhbmRzaGFrZUVycm9yLFxuICBEdXBsaWNhdGVPcmdhbml6YXRpb25hbFVuaXRFcnJvcixcbiAgRHVwbGljYXRlUG9saWN5QXR0YWNobWVudEVycm9yLFxuICBEdXBsaWNhdGVQb2xpY3lFcnJvcixcbiAgRWZmZWN0aXZlUG9saWN5Tm90Rm91bmRFcnJvcixcbiAgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yLFxuICBIYW5kc2hha2VBbHJlYWR5SW5TdGF0ZUVycm9yLFxuICBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3IsXG4gIEhhbmRzaGFrZU5vdEZvdW5kRXJyb3IsXG4gIEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3IsXG4gIEludmFsaWRJbnB1dEVycm9yLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yLFxuICBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yLFxuICBPcmdhbml6YXRpb25Ob3RFbXB0eUVycm9yLFxuICBPcmdhbml6YXRpb25hbFVuaXROb3RFbXB0eUVycm9yLFxuICBPcmdhbml6YXRpb25hbFVuaXROb3RGb3VuZEVycm9yLFxuICBQYXJlbnROb3RGb3VuZEVycm9yLFxuICBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yLFxuICBQb2xpY3lJblVzZUVycm9yLFxuICBQb2xpY3lOb3RBdHRhY2hlZEVycm9yLFxuICBQb2xpY3lOb3RGb3VuZEVycm9yLFxuICBQb2xpY3lUeXBlQWxyZWFkeUVuYWJsZWRFcnJvcixcbiAgUG9saWN5VHlwZU5vdEF2YWlsYWJsZUZvck9yZ2FuaXphdGlvbkVycm9yLFxuICBQb2xpY3lUeXBlTm90RW5hYmxlZEVycm9yLFxuICBSZXNvdXJjZVBvbGljeU5vdEZvdW5kRXJyb3IsXG4gIFJvb3ROb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlRXJyb3IsXG4gIFNvdXJjZVBhcmVudE5vdEZvdW5kRXJyb3IsXG4gIFRhcmdldE5vdEZvdW5kRXJyb3IsXG4gIFRvb01hbnlSZXF1ZXN0c0Vycm9yLFxuICBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBY2NlcHRIYW5kc2hha2VDb21tYW5kLFxuICBBdHRhY2hQb2xpY3lDb21tYW5kLFxuICBDYW5jZWxIYW5kc2hha2VDb21tYW5kLFxuICBDbG9zZUFjY291bnRDb21tYW5kLFxuICBDcmVhdGVBY2NvdW50Q29tbWFuZCxcbiAgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgRGVjbGluZUhhbmRzaGFrZUNvbW1hbmQsXG4gIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIERlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRDb21tYW5kLFxuICBEZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kLFxuICBEZXNjcmliZUVmZmVjdGl2ZVBvbGljeUNvbW1hbmQsXG4gIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZCxcbiAgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kLFxuICBEZXNjcmliZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIERlc2NyaWJlUG9saWN5Q29tbWFuZCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERldGFjaFBvbGljeUNvbW1hbmQsXG4gIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kLFxuICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kLFxuICBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZCxcbiAgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kLFxuICBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIExpc3RBY2NvdW50c0NvbW1hbmQsXG4gIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmQsXG4gIExpc3RDaGlsZHJlbkNvbW1hbmQsXG4gIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZCxcbiAgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZCxcbiAgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmQsXG4gIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmQsXG4gIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZCxcbiAgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kLFxuICBMaXN0UGFyZW50c0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmQsXG4gIExpc3RSb290c0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmQsXG4gIE1vdmVBY2NvdW50Q29tbWFuZCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kLFxuICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmQsXG4gIFVwZGF0ZVBvbGljeUNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWNjZXB0SGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGFjY2VwdEhhbmRzaGFrZShcbiAgICBhcmdzOiBBY2NlcHRIYW5kc2hha2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBY2NlcHRIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRGb3JEZXBlbmRlbmN5RXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUFscmVhZHlJblN0YXRlRXJyb3JcbiAgICB8IEhhbmRzaGFrZUNvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZEhhbmRzaGFrZVRyYW5zaXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGF0dGFjaFBvbGljeShcbiAgICBhcmdzOiBBdHRhY2hQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdHRhY2hQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZVBvbGljeUF0dGFjaG1lbnRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFBvbGljeVR5cGVOb3RFbmFibGVkRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxIYW5kc2hha2VDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsSGFuZHNoYWtlKFxuICAgIGFyZ3M6IENhbmNlbEhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEhhbmRzaGFrZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlQWxyZWFkeUluU3RhdGVFcnJvclxuICAgIHwgSGFuZHNoYWtlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZEhhbmRzaGFrZVRyYW5zaXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2xvc2VBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGNsb3NlQWNjb3VudChcbiAgICBhcmdzOiBDbG9zZUFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDbG9zZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50QWxyZWFkeUNsb3NlZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWNjb3VudChcbiAgICBhcmdzOiBDcmVhdGVBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRmluYWxpemluZ09yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdvdkNsb3VkQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHb3ZDbG91ZEFjY291bnQoXG4gICAgYXJnczogQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR292Q2xvdWRBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBGaW5hbGl6aW5nT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRGb3JEZXBlbmRlbmN5RXJyb3JcbiAgICB8IEFscmVhZHlJbk9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZU9yZ2FuaXphdGlvbmFsVW5pdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUG9saWN5KFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlUG9saWN5RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90QXZhaWxhYmxlRm9yT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNsaW5lSGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGRlY2xpbmVIYW5kc2hha2UoXG4gICAgYXJnczogRGVjbGluZUhhbmRzaGFrZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY2xpbmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUFscmVhZHlJblN0YXRlRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRIYW5kc2hha2VUcmFuc2l0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPcmdhbml6YXRpb24oXG4gICAgYXJnczogRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbk5vdEVtcHR5RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgT3JnYW5pemF0aW9uYWxVbml0Tm90RW1wdHlFcnJvclxuICAgIHwgT3JnYW5pemF0aW9uYWxVbml0Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQb2xpY3lJblVzZUVycm9yXG4gICAgfCBQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgUmVzb3VyY2VQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3IoXG4gICAgYXJnczogRGVyZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBY2NvdW50Tm90UmVnaXN0ZXJlZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQWNjb3VudChcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNyZWF0ZUFjY291bnRTdGF0dXMoXG4gICAgYXJnczogRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENyZWF0ZUFjY291bnRTdGF0dXNOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRWZmZWN0aXZlUG9saWN5KFxuICAgIGFyZ3M6IERlc2NyaWJlRWZmZWN0aXZlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFZmZlY3RpdmVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBFZmZlY3RpdmVQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSGFuZHNoYWtlKFxuICAgIGFyZ3M6IERlc2NyaWJlSGFuZHNoYWtlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVIYW5kc2hha2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZU5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0KFxuICAgIGFyZ3M6IERlc2NyaWJlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQb2xpY3koXG4gICAgYXJnczogRGVzY3JpYmVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZXNjcmliZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IFJlc291cmNlUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZXRhY2hQb2xpY3koXG4gICAgYXJnczogRGV0YWNoUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGV0YWNoUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoZWRFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVBV1NTZXJ2aWNlQWNjZXNzKFxuICAgIGFyZ3M6IERpc2FibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kfVxuICAgKi9cbiAgZGlzYWJsZVBvbGljeVR5cGUoXG4gICAgYXJnczogRGlzYWJsZVBvbGljeVR5cGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlUG9saWN5VHlwZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeVR5cGVOb3RFbmFibGVkRXJyb3JcbiAgICB8IFJvb3ROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlQVdTU2VydmljZUFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBlbmFibGVBV1NTZXJ2aWNlQWNjZXNzKFxuICAgIGFyZ3M6IEVuYWJsZUFXU1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVBV1NTZXJ2aWNlQWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUFsbEZlYXR1cmVzKFxuICAgIGFyZ3M6IEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlQWxsRmVhdHVyZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUNvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmR9XG4gICAqL1xuICBlbmFibGVQb2xpY3lUeXBlKFxuICAgIGFyZ3M6IEVuYWJsZVBvbGljeVR5cGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvclxuICAgIHwgUG9saWN5VHlwZUFscmVhZHlFbmFibGVkRXJyb3JcbiAgICB8IFBvbGljeVR5cGVOb3RBdmFpbGFibGVGb3JPcmdhbml6YXRpb25FcnJvclxuICAgIHwgUm9vdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgaW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnRPd25lck5vdFZlcmlmaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlSGFuZHNoYWtlRXJyb3JcbiAgICB8IEZpbmFsaXppbmdPcmdhbml6YXRpb25FcnJvclxuICAgIHwgSGFuZHNoYWtlQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsZWF2ZU9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExlYXZlT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE1hc3RlckNhbm5vdExlYXZlT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgbGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb24oXG4gICAgYXJnczogTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QVdTU2VydmljZUFjY2Vzc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY291bnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBY2NvdW50cyhcbiAgICBhcmdzOiBMaXN0QWNjb3VudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWNjb3VudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZH1cbiAgICovXG4gIGxpc3RBY2NvdW50c0ZvclBhcmVudChcbiAgICBhcmdzOiBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWNjb3VudHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdENoaWxkcmVuQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDaGlsZHJlbihcbiAgICBhcmdzOiBMaXN0Q2hpbGRyZW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Q2hpbGRyZW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdENyZWF0ZUFjY291bnRTdGF0dXMoXG4gICAgYXJnczogTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Q3JlYXRlQWNjb3VudFN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnMoXG4gICAgYXJnczogTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGxpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnQoXG4gICAgYXJnczogTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQWNjb3VudE5vdFJlZ2lzdGVyZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kfVxuICAgKi9cbiAgbGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50KFxuICAgIGFyZ3M6IExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RIYW5kc2hha2VzRm9yQWNjb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgbGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb24oXG4gICAgYXJnczogTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SGFuZHNoYWtlc0Zvck9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZH1cbiAgICovXG4gIGxpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50KFxuICAgIGFyZ3M6IExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE9yZ2FuaXphdGlvbmFsVW5pdHNGb3JQYXJlbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhcmVudHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFBhcmVudHMoXG4gICAgYXJnczogTGlzdFBhcmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UGFyZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDaGlsZE5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UG9saWNpZXMoXG4gICAgYXJnczogTGlzdFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZH1cbiAgICovXG4gIGxpc3RQb2xpY2llc0ZvclRhcmdldChcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UG9saWNpZXNGb3JUYXJnZXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9vdHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFJvb3RzKFxuICAgIGFyZ3M6IExpc3RSb290c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RSb290c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhcmdldHNGb3JQb2xpY3koXG4gICAgYXJnczogTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFyZ2V0c0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vdmVBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIG1vdmVBY2NvdW50KFxuICAgIGFyZ3M6IE1vdmVBY2NvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW92ZUFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50Tm90Rm91bmRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVzdGluYXRpb25QYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBEdXBsaWNhdGVBY2NvdW50RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFNvdXJjZVBhcmVudE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZH1cbiAgICovXG4gIHJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvcihcbiAgICBhcmdzOiBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50QWxyZWFkeVJlZ2lzdGVyZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZUFjY291bnRGcm9tT3JnYW5pemF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE1hc3RlckNhbm5vdExlYXZlT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUYXJnZXROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlT3JnYW5pemF0aW9uYWxVbml0KFxuICAgIGFyZ3M6IFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZU9yZ2FuaXphdGlvbmFsVW5pdEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgT3JnYW5pemF0aW9uYWxVbml0Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUG9saWN5KFxuICAgIGFyZ3M6IFVwZGF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlUG9saWN5RXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBQb2xpY3lDaGFuZ2VzSW5Qcm9ncmVzc0Vycm9yXG4gICAgfCBQb2xpY3lOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VPcmdhbml6YXRpb25zU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIE9yZ2FuaXphdGlvbnNTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPE9yZ2FuaXphdGlvbnNTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBPcmdhbml6YXRpb25zU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtb3JnYW5pemF0aW9ucy9Pcmdhbml6YXRpb25zU2VydmljZVwiLFxuKTxPcmdhbml6YXRpb25zU2VydmljZSwgT3JnYW5pemF0aW9uc1NlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdChcbiAgICB0aGlzLFxuICAgIG1ha2VPcmdhbml6YXRpb25zU2VydmljZSxcbiAgKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VPcmdhbml6YXRpb25zU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogT3JnYW5pemF0aW9uc0NsaWVudENvbmZpZykgPT4gT3JnYW5pemF0aW9uc0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBPcmdhbml6YXRpb25zU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgT3JnYW5pemF0aW9ucyA9IE9yZ2FuaXphdGlvbnNTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9yZ2FuaXphdGlvbnMuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VPcmdhbml6YXRpb25zU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBPcmdhbml6YXRpb25zU2VydmljZSxcbiAgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcmdhbml6YXRpb25zLmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbnNTZXJ2aWNlTGF5ZXIgPSBCYXNlT3JnYW5pemF0aW9uc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3JnYW5pemF0aW9ucy5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdE9yZ2FuaXphdGlvbnNTZXJ2aWNlTGF5ZXIgPVxuICBPcmdhbml6YXRpb25zU2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=
@@ -16,15 +16,15 @@ export class OrganizationsClientInstance extends Context.Tag("@effect-aws/client
16
16
  * @since 1.0.0
17
17
  * @category constructors
18
18
  */
19
- export const makeOrganizationsClientInstance = Effect.map(OrganizationsClientInstanceConfig, (config) => new OrganizationsClient(config));
19
+ export const makeOrganizationsClientInstance = Effect.flatMap(OrganizationsClientInstanceConfig, (config) => Effect.acquireRelease(Effect.sync(() => new OrganizationsClient(config)), (client) => Effect.sync(() => client.destroy())));
20
20
  /**
21
21
  * @since 1.0.0
22
22
  * @category layers
23
23
  */
24
- export const OrganizationsClientInstanceLayer = Layer.effect(OrganizationsClientInstance, makeOrganizationsClientInstance);
24
+ export const OrganizationsClientInstanceLayer = Layer.scoped(OrganizationsClientInstance, makeOrganizationsClientInstance);
25
25
  /**
26
26
  * @since 1.0.0
27
27
  * @category layers
28
28
  */
29
29
  export const DefaultOrganizationsClientInstanceLayer = OrganizationsClientInstanceLayer.pipe(Layer.provide(DefaultOrganizationsClientConfigLayer));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLHFDQUFxQyxFQUNyQyxpQ0FBaUMsR0FDbEMsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsT0FBTyxDQUFDLEdBQUcsQ0FDMUQsOERBQThELENBQy9ELEVBQW9EO0NBQUc7QUFFeEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDdkQsaUNBQWlDLEVBQ2pDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUM1QyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDMUQsMkJBQTJCLEVBQzNCLCtCQUErQixDQUNoQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQ2xELGdDQUFnQyxDQUFDLElBQUksQ0FDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWdMYXllcixcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtb3JnYW5pemF0aW9ucy9Pcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VcIixcbik8T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLCBPcmdhbml6YXRpb25zQ2xpZW50PigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlID0gRWZmZWN0Lm1hcChcbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAoY29uZmlnKSA9PiBuZXcgT3JnYW5pemF0aW9uc0NsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsXG4gIG1ha2VPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyID1cbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIucGlwZShcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL09yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLHFDQUFxQyxFQUNyQyxpQ0FBaUMsR0FDbEMsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsT0FBTyxDQUFDLEdBQUcsQ0FDMUQsOERBQThELENBQy9ELEVBQW9EO0NBQUc7QUFFeEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDM0QsaUNBQWlDLEVBQ2pDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsY0FBYyxDQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDbEQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ2hELENBQ0osQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQzFELDJCQUEyQixFQUMzQiwrQkFBK0IsQ0FDaEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUNsRCxnQ0FBZ0MsQ0FBQyxJQUFJLENBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7IE9yZ2FuaXphdGlvbnNDbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIExheWVyIGZyb20gXCJlZmZlY3QvTGF5ZXJcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlIGV4dGVuZHMgQ29udGV4dC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9yZ2FuaXphdGlvbnMvT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlXCIsXG4pPE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSwgT3JnYW5pemF0aW9uc0NsaWVudD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSA9IEVmZmVjdC5mbGF0TWFwKFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIChjb25maWcpID0+XG4gICAgRWZmZWN0LmFjcXVpcmVSZWxlYXNlKFxuICAgICAgRWZmZWN0LnN5bmMoKCkgPT4gbmV3IE9yZ2FuaXphdGlvbnNDbGllbnQoY29uZmlnKSksXG4gICAgICAoY2xpZW50KSA9PiBFZmZlY3Quc3luYygoKSA9PiBjbGllbnQuZGVzdHJveSgpKSxcbiAgICApLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuc2NvcGVkKFxuICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsXG4gIG1ha2VPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyID1cbiAgT3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlTGF5ZXIucGlwZShcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuIl19
@@ -136,4 +136,4 @@ export const OrganizationsServiceLayer = BaseOrganizationsServiceLayer.pipe(Laye
136
136
  * @deprecated use Organizations.defaultLayer instead
137
137
  */
138
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==
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+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmR9XG4gICAqL1xuICBlbmFibGVBbGxGZWF0dXJlcyhcbiAgICBhcmdzOiBFbmFibGVBbGxGZWF0dXJlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUFsbEZlYXR1cmVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBIYW5kc2hha2VDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZVBvbGljeVR5cGVDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlUG9saWN5VHlwZShcbiAgICBhcmdzOiBFbmFibGVQb2xpY3lUeXBlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlUG9saWN5VHlwZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeUNoYW5nZXNJblByb2dyZXNzRXJyb3JcbiAgICB8IFBvbGljeVR5cGVBbHJlYWR5RW5hYmxlZEVycm9yXG4gICAgfCBQb2xpY3lUeXBlTm90QXZhaWxhYmxlRm9yT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IFJvb3ROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52aXRlQWNjb3VudFRvT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGludml0ZUFjY291bnRUb09yZ2FuaXphdGlvbihcbiAgICBhcmdzOiBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbnZpdGVBY2NvdW50VG9Pcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBY2NvdW50T3duZXJOb3RWZXJpZmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZUhhbmRzaGFrZUVycm9yXG4gICAgfCBGaW5hbGl6aW5nT3JnYW5pemF0aW9uRXJyb3JcbiAgICB8IEhhbmRzaGFrZUNvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGVhdmVPcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgbGVhdmVPcmdhbml6YXRpb24oXG4gICAgYXJnczogTGVhdmVPcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMZWF2ZU9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IExpc3RBV1NTZXJ2aWNlQWNjZXNzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFXU1NlcnZpY2VBY2Nlc3NGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2NvdW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWNjb3VudHMoXG4gICAgYXJnczogTGlzdEFjY291bnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFjY291bnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2NvdW50c0ZvclBhcmVudENvbW1hbmR9XG4gICAqL1xuICBsaXN0QWNjb3VudHNGb3JQYXJlbnQoXG4gICAgYXJnczogTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFjY291bnRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDaGlsZHJlbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0Q2hpbGRyZW4oXG4gICAgYXJnczogTGlzdENoaWxkcmVuQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdENoaWxkcmVuQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDcmVhdGVBY2NvdW50U3RhdHVzKFxuICAgIGFyZ3M6IExpc3RDcmVhdGVBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdENyZWF0ZUFjY291bnRTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGVsZWdhdGVkQWRtaW5pc3RyYXRvcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERlbGVnYXRlZEFkbWluaXN0cmF0b3JzKFxuICAgIGFyZ3M6IExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERlbGVnYXRlZFNlcnZpY2VzRm9yQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBsaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50KFxuICAgIGFyZ3M6IExpc3REZWxlZ2F0ZWRTZXJ2aWNlc0ZvckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGVsZWdhdGVkU2VydmljZXNGb3JBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFjY291bnROb3RSZWdpc3RlcmVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEhhbmRzaGFrZXNGb3JBY2NvdW50Q29tbWFuZH1cbiAgICovXG4gIGxpc3RIYW5kc2hha2VzRm9yQWNjb3VudChcbiAgICBhcmdzOiBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SGFuZHNoYWtlc0ZvckFjY291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uKFxuICAgIGFyZ3M6IExpc3RIYW5kc2hha2VzRm9yT3JnYW5pemF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEhhbmRzaGFrZXNGb3JPcmdhbml6YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmR9XG4gICAqL1xuICBsaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudChcbiAgICBhcmdzOiBMaXN0T3JnYW5pemF0aW9uYWxVbml0c0ZvclBhcmVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RPcmdhbml6YXRpb25hbFVuaXRzRm9yUGFyZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQYXJlbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQYXJlbnRzKFxuICAgIGFyZ3M6IExpc3RQYXJlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBhcmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ2hpbGROb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFBvbGljaWVzKFxuICAgIGFyZ3M6IExpc3RQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0ZvclRhcmdldENvbW1hbmR9XG4gICAqL1xuICBsaXN0UG9saWNpZXNGb3JUYXJnZXQoXG4gICAgYXJnczogTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBvbGljaWVzRm9yVGFyZ2V0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvb3RzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RSb290cyhcbiAgICBhcmdzOiBMaXN0Um9vdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0Um9vdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGxpc3RUYXJnZXRzRm9yUG9saWN5KFxuICAgIGFyZ3M6IExpc3RUYXJnZXRzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhcmdldHNGb3JQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFBvbGljeU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkQVBJRW5kcG9pbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb3ZlQWNjb3VudENvbW1hbmR9XG4gICAqL1xuICBtb3ZlQWNjb3VudChcbiAgICBhcmdzOiBNb3ZlQWNjb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vdmVBY2NvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudE5vdEZvdW5kRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlc3RpbmF0aW9uUGFyZW50Tm90Rm91bmRFcnJvclxuICAgIHwgRHVwbGljYXRlQWNjb3VudEVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBTb3VyY2VQYXJlbnROb3RGb3VuZEVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQVdTT3JnYW5pemF0aW9uc05vdEluVXNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyRGVsZWdhdGVkQWRtaW5pc3RyYXRvckNvbW1hbmR9XG4gICAqL1xuICByZWdpc3RlckRlbGVnYXRlZEFkbWluaXN0cmF0b3IoXG4gICAgYXJnczogUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJEZWxlZ2F0ZWRBZG1pbmlzdHJhdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQWNjb3VudEFscmVhZHlSZWdpc3RlcmVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZEFQSUVuZHBvaW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb24oXG4gICAgYXJnczogUmVtb3ZlQWNjb3VudEZyb21Pcmdhbml6YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVBY2NvdW50RnJvbU9yZ2FuaXphdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFjY291bnROb3RGb3VuZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBNYXN0ZXJDYW5ub3RMZWF2ZU9yZ2FuaXphdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBTZXJ2aWNlRXJyb3JcbiAgICB8IFRhcmdldE5vdEZvdW5kRXJyb3JcbiAgICB8IFRvb01hbnlSZXF1ZXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEFXU09yZ2FuaXphdGlvbnNOb3RJblVzZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IENvbnN0cmFpbnRWaW9sYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVGFyZ2V0Tm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlT3JnYW5pemF0aW9uYWxVbml0Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZU9yZ2FuaXphdGlvbmFsVW5pdChcbiAgICBhcmdzOiBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVPcmdhbml6YXRpb25hbFVuaXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEdXBsaWNhdGVPcmdhbml6YXRpb25hbFVuaXRFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE9yZ2FuaXphdGlvbmFsVW5pdE5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VFcnJvclxuICAgIHwgVG9vTWFueVJlcXVlc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBvbGljeShcbiAgICBhcmdzOiBVcGRhdGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBBV1NPcmdhbml6YXRpb25zTm90SW5Vc2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBDb25zdHJhaW50VmlvbGF0aW9uRXJyb3JcbiAgICB8IER1cGxpY2F0ZVBvbGljeUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgUG9saWN5Q2hhbmdlc0luUHJvZ3Jlc3NFcnJvclxuICAgIHwgUG9saWN5Tm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZUVycm9yXG4gICAgfCBUb29NYW55UmVxdWVzdHNFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRBUElFbmRwb2ludEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBPcmdhbml6YXRpb25zU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxPcmdhbml6YXRpb25zU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgT3JnYW5pemF0aW9uc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25zU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9yZ2FuaXphdGlvbnMvT3JnYW5pemF0aW9uc1NlcnZpY2VcIixcbik8T3JnYW5pemF0aW9uc1NlcnZpY2UsIE9yZ2FuaXphdGlvbnNTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gICAgdGhpcyxcbiAgICBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UsXG4gICkucGlwZShcbiAgICBMYXllci5wcm92aWRlKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBPcmdhbml6YXRpb25zQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlT3JnYW5pemF0aW9uc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKGRlZmF1bHRDb25maWc6IE9yZ2FuaXphdGlvbnNDbGllbnRDb25maWcpID0+IE9yZ2FuaXphdGlvbnNDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZU9yZ2FuaXphdGlvbnNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIE9yZ2FuaXphdGlvbnNDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0T3JnYW5pemF0aW9uc0NsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgT3JnYW5pemF0aW9uc1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbnMgPSBPcmdhbml6YXRpb25zU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcmdhbml6YXRpb25zLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlT3JnYW5pemF0aW9uc1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgT3JnYW5pemF0aW9uc1NlcnZpY2UsXG4gIG1ha2VPcmdhbml6YXRpb25zU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3JnYW5pemF0aW9ucy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBPcmdhbml6YXRpb25zU2VydmljZUxheWVyID0gQmFzZU9yZ2FuaXphdGlvbnNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShPcmdhbml6YXRpb25zQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9yZ2FuaXphdGlvbnMuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcmdhbml6YXRpb25zU2VydmljZUxheWVyID1cbiAgT3JnYW5pemF0aW9uc1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.0.0",
36
+ "version": "1.1.0",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],