@effect-aws/client-kms 1.1.0 → 1.9.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.
Files changed (69) hide show
  1. package/Errors/package.json +6 -0
  2. package/KMSClientInstance/package.json +6 -0
  3. package/KMSService/package.json +6 -0
  4. package/KMSServiceConfig/package.json +6 -0
  5. package/LICENSE +1 -1
  6. package/{lib → dist/cjs}/Errors.d.ts +7 -12
  7. package/dist/cjs/Errors.d.ts.map +1 -0
  8. package/dist/cjs/Errors.js +56 -0
  9. package/dist/cjs/Errors.js.map +1 -0
  10. package/dist/cjs/KMSClientInstance.d.ts +24 -0
  11. package/dist/cjs/KMSClientInstance.d.ts.map +1 -0
  12. package/dist/cjs/KMSClientInstance.js +50 -0
  13. package/dist/cjs/KMSClientInstance.js.map +1 -0
  14. package/{lib → dist/cjs}/KMSService.d.ts +16 -38
  15. package/dist/cjs/KMSService.d.ts.map +1 -0
  16. package/dist/cjs/KMSService.js +109 -0
  17. package/dist/cjs/KMSService.js.map +1 -0
  18. package/dist/cjs/KMSServiceConfig.d.ts +25 -0
  19. package/dist/cjs/KMSServiceConfig.d.ts.map +1 -0
  20. package/dist/cjs/KMSServiceConfig.js +35 -0
  21. package/dist/cjs/KMSServiceConfig.js.map +1 -0
  22. package/dist/cjs/index.d.ts +39 -0
  23. package/dist/cjs/index.d.ts.map +1 -0
  24. package/dist/cjs/index.js +56 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/dts/Errors.d.ts +55 -0
  27. package/dist/dts/Errors.d.ts.map +1 -0
  28. package/dist/dts/KMSClientInstance.d.ts +24 -0
  29. package/dist/dts/KMSClientInstance.d.ts.map +1 -0
  30. package/dist/dts/KMSService.d.ts +308 -0
  31. package/dist/dts/KMSService.d.ts.map +1 -0
  32. package/dist/dts/KMSServiceConfig.d.ts +25 -0
  33. package/dist/dts/KMSServiceConfig.d.ts.map +1 -0
  34. package/dist/dts/index.d.ts +39 -0
  35. package/dist/dts/index.d.ts.map +1 -0
  36. package/dist/esm/Errors.js +53 -0
  37. package/dist/esm/Errors.js.map +1 -0
  38. package/dist/esm/KMSClientInstance.js +23 -0
  39. package/dist/esm/KMSClientInstance.js.map +1 -0
  40. package/dist/esm/KMSService.js +82 -0
  41. package/dist/esm/KMSService.js.map +1 -0
  42. package/dist/esm/KMSServiceConfig.js +31 -0
  43. package/dist/esm/KMSServiceConfig.js.map +1 -0
  44. package/dist/esm/index.js +27 -0
  45. package/dist/esm/index.js.map +1 -0
  46. package/dist/esm/package.json +4 -0
  47. package/package.json +60 -43
  48. package/src/Errors.ts +159 -0
  49. package/src/KMSClientInstance.ts +33 -0
  50. package/src/KMSService.ts +1224 -0
  51. package/src/KMSServiceConfig.ts +51 -0
  52. package/src/index.ts +44 -0
  53. package/CHANGELOG.md +0 -29
  54. package/docgen.json +0 -8
  55. package/lib/Errors.js +0 -56
  56. package/lib/KMSClientInstance.d.ts +0 -31
  57. package/lib/KMSClientInstance.js +0 -57
  58. package/lib/KMSClientInstanceConfig.d.ts +0 -23
  59. package/lib/KMSClientInstanceConfig.js +0 -44
  60. package/lib/KMSService.js +0 -141
  61. package/lib/esm/Errors.js +0 -53
  62. package/lib/esm/KMSClientInstance.js +0 -30
  63. package/lib/esm/KMSClientInstanceConfig.js +0 -40
  64. package/lib/esm/KMSService.js +0 -137
  65. package/lib/esm/index.js +0 -5
  66. package/lib/index.d.ts +0 -4
  67. package/lib/index.js +0 -21
  68. package/project.json +0 -77
  69. package/vitest.config.ts +0 -3
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { KMSClientConfig } from "@aws-sdk/client-kms";
5
+ import { ServiceLogger } from "@effect-aws/commons";
6
+ import { Effect, FiberRef, Layer } from "effect";
7
+ import { dual } from "effect/Function";
8
+ import { globalValue } from "effect/GlobalValue";
9
+ import type { KMSService } from "./KMSService.js";
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ * @category kms service config
14
+ */
15
+ const currentKMSServiceConfig = globalValue(
16
+ "@effect-aws/client-kms/currentKMSServiceConfig",
17
+ () => FiberRef.unsafeMake<KMSService.Config>({}),
18
+ );
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category kms service config
23
+ */
24
+ export const withKMSServiceConfig: {
25
+ (config: KMSService.Config): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
26
+ <A, E, R>(effect: Effect.Effect<A, E, R>, config: KMSService.Config): Effect.Effect<A, E, R>;
27
+ } = dual(
28
+ 2,
29
+ <A, E, R>(effect: Effect.Effect<A, E, R>, config: KMSService.Config): Effect.Effect<A, E, R> =>
30
+ Effect.locally(effect, currentKMSServiceConfig, config),
31
+ );
32
+
33
+ /**
34
+ * @since 1.0.0
35
+ * @category kms service config
36
+ */
37
+ export const setKMSServiceConfig = (config: KMSService.Config) => Layer.locallyScoped(currentKMSServiceConfig, config);
38
+
39
+ /**
40
+ * @since 1.0.0
41
+ * @category adapters
42
+ */
43
+ export const toKMSClientConfig: Effect.Effect<KMSClientConfig> = Effect.gen(function*() {
44
+ const { logger: serviceLogger, ...config } = yield* FiberRef.get(currentKMSServiceConfig);
45
+
46
+ const logger = serviceLogger === true
47
+ ? yield* ServiceLogger.toClientLogger(ServiceLogger.defaultServiceLogger)
48
+ : (serviceLogger ? yield* ServiceLogger.toClientLogger(ServiceLogger.make(serviceLogger)) : undefined);
49
+
50
+ return { logger, ...config };
51
+ });
package/src/index.ts ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { KMSService } from "./KMSService.js";
5
+
6
+ /**
7
+ * @since 1.0.0
8
+ */
9
+ export * from "./Errors.js";
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export * as KMSClientInstance from "./KMSClientInstance.js";
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+ export * as KMSServiceConfig from "./KMSServiceConfig.js";
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * from "./KMSService.js";
25
+
26
+ /**
27
+ * @since 1.0.0
28
+ * @category exports
29
+ * @alias KMSService
30
+ */
31
+ export declare namespace KMS {
32
+ /**
33
+ * @since 1.0.0
34
+ * @alias KMSService.Config
35
+ */
36
+ export type Config = KMSService.Config;
37
+ }
38
+
39
+ /**
40
+ * @since 1.0.0
41
+ * @category exports
42
+ * @alias KMSService
43
+ */
44
+ export const KMS = KMSService;
package/CHANGELOG.md DELETED
@@ -1,29 +0,0 @@
1
- # @effect-aws/client-kms
2
-
3
- ## 1.1.0
4
-
5
- ### Minor Changes
6
-
7
- - [#80](https://github.com/floydspace/effect-aws/pull/80) [`4b16fbe`](https://github.com/floydspace/effect-aws/commit/4b16fbebce8131df7798ee92f43cf6b7df3e907c) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
8
-
9
- ## 1.0.1
10
-
11
- ### Patch Changes
12
-
13
- - [#75](https://github.com/floydspace/effect-aws/pull/75) [`9dc170d`](https://github.com/floydspace/effect-aws/commit/9dc170d975c04888bbc7ca7b241b4b5265668fb5) Thanks [@godu](https://github.com/godu)! - export the HttpHandlerOptions type
14
-
15
- ## 1.0.0
16
-
17
- ### Major Changes
18
-
19
- - [#69](https://github.com/floydspace/effect-aws/pull/69) [`0cf6af5`](https://github.com/floydspace/effect-aws/commit/0cf6af591e45f0d8838b26493525db5ef389a90f) Thanks [@godu](https://github.com/godu)! - implement effectful account client
20
- implement effectful cloudtrail client
21
- implement effectful cloudwatch client
22
- implement effectful cloudwatch-events client
23
- implement effectful cloudwatch-logs client
24
- implement effectful cognito-identity-provider client
25
- implement effectful kms client
26
- implement effectful mq client
27
- implement effectful cloudsearch client
28
- implement effectful rds client
29
- implement effectful sts client
package/docgen.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/@effect/docgen/schema.json",
3
- "exclude": [
4
- "src/index.ts",
5
- "src/Errors.ts"
6
- ],
7
- "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
8
- }
package/lib/Errors.js DELETED
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SdkError = exports.AllServiceErrors = void 0;
4
- const effect_1 = require("effect");
5
- exports.AllServiceErrors = [
6
- "AlreadyExistsException",
7
- "CloudHsmClusterInUseException",
8
- "CloudHsmClusterInvalidConfigurationException",
9
- "CloudHsmClusterNotActiveException",
10
- "CloudHsmClusterNotFoundException",
11
- "CloudHsmClusterNotRelatedException",
12
- "ConflictException",
13
- "CustomKeyStoreHasCMKsException",
14
- "CustomKeyStoreInvalidStateException",
15
- "CustomKeyStoreNameInUseException",
16
- "CustomKeyStoreNotFoundException",
17
- "DependencyTimeoutException",
18
- "DisabledException",
19
- "DryRunOperationException",
20
- "ExpiredImportTokenException",
21
- "IncorrectKeyException",
22
- "IncorrectKeyMaterialException",
23
- "IncorrectTrustAnchorException",
24
- "InvalidAliasNameException",
25
- "InvalidArnException",
26
- "InvalidCiphertextException",
27
- "InvalidGrantIdException",
28
- "InvalidGrantTokenException",
29
- "InvalidImportTokenException",
30
- "InvalidKeyUsageException",
31
- "InvalidMarkerException",
32
- "KMSInternalException",
33
- "KMSInvalidMacException",
34
- "KMSInvalidSignatureException",
35
- "KMSInvalidStateException",
36
- "KeyUnavailableException",
37
- "LimitExceededException",
38
- "MalformedPolicyDocumentException",
39
- "NotFoundException",
40
- "TagException",
41
- "UnsupportedOperationException",
42
- "XksKeyAlreadyInUseException",
43
- "XksKeyInvalidConfigurationException",
44
- "XksKeyNotFoundException",
45
- "XksProxyIncorrectAuthenticationCredentialException",
46
- "XksProxyInvalidConfigurationException",
47
- "XksProxyInvalidResponseException",
48
- "XksProxyUriEndpointInUseException",
49
- "XksProxyUriInUseException",
50
- "XksProxyUriUnreachableException",
51
- "XksProxyVpcEndpointServiceInUseException",
52
- "XksProxyVpcEndpointServiceInvalidConfigurationException",
53
- "XksProxyVpcEndpointServiceNotFoundException",
54
- ];
55
- exports.SdkError = effect_1.Data.tagged("SdkError");
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrREEsbUNBQThCO0FBRWpCLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQiw4Q0FBOEM7SUFDOUMsbUNBQW1DO0lBQ25DLGtDQUFrQztJQUNsQyxvQ0FBb0M7SUFDcEMsbUJBQW1CO0lBQ25CLGdDQUFnQztJQUNoQyxxQ0FBcUM7SUFDckMsa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQyw0QkFBNEI7SUFDNUIsbUJBQW1CO0lBQ25CLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFDN0IsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4QixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QixrQ0FBa0M7SUFDbEMsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCwrQkFBK0I7SUFDL0IsNkJBQTZCO0lBQzdCLHFDQUFxQztJQUNyQyx5QkFBeUI7SUFDekIsb0RBQW9EO0lBQ3BELHVDQUF1QztJQUN2QyxrQ0FBa0M7SUFDbEMsbUNBQW1DO0lBQ25DLDJCQUEyQjtJQUMzQixpQ0FBaUM7SUFDakMsMENBQTBDO0lBQzFDLHlEQUF5RDtJQUN6RCw2Q0FBNkM7Q0FDOUMsQ0FBQztBQXFGVyxRQUFBLFFBQVEsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLFxuICBDbG91ZEhzbUNsdXN0ZXJJblVzZUV4Y2VwdGlvbixcbiAgQ2xvdWRIc21DbHVzdGVySW52YWxpZENvbmZpZ3VyYXRpb25FeGNlcHRpb24sXG4gIENsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUV4Y2VwdGlvbixcbiAgQ2xvdWRIc21DbHVzdGVyTm90Rm91bmRFeGNlcHRpb24sXG4gIENsb3VkSHNtQ2x1c3Rlck5vdFJlbGF0ZWRFeGNlcHRpb24sXG4gIENvbmZsaWN0RXhjZXB0aW9uLFxuICBDdXN0b21LZXlTdG9yZUhhc0NNS3NFeGNlcHRpb24sXG4gIEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXhjZXB0aW9uLFxuICBDdXN0b21LZXlTdG9yZU5hbWVJblVzZUV4Y2VwdGlvbixcbiAgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEV4Y2VwdGlvbixcbiAgRGVwZW5kZW5jeVRpbWVvdXRFeGNlcHRpb24sXG4gIERpc2FibGVkRXhjZXB0aW9uLFxuICBEcnlSdW5PcGVyYXRpb25FeGNlcHRpb24sXG4gIEV4cGlyZWRJbXBvcnRUb2tlbkV4Y2VwdGlvbixcbiAgSW5jb3JyZWN0S2V5RXhjZXB0aW9uLFxuICBJbmNvcnJlY3RLZXlNYXRlcmlhbEV4Y2VwdGlvbixcbiAgSW5jb3JyZWN0VHJ1c3RBbmNob3JFeGNlcHRpb24sXG4gIEludmFsaWRBbGlhc05hbWVFeGNlcHRpb24sXG4gIEludmFsaWRBcm5FeGNlcHRpb24sXG4gIEludmFsaWRDaXBoZXJ0ZXh0RXhjZXB0aW9uLFxuICBJbnZhbGlkR3JhbnRJZEV4Y2VwdGlvbixcbiAgSW52YWxpZEdyYW50VG9rZW5FeGNlcHRpb24sXG4gIEludmFsaWRJbXBvcnRUb2tlbkV4Y2VwdGlvbixcbiAgSW52YWxpZEtleVVzYWdlRXhjZXB0aW9uLFxuICBJbnZhbGlkTWFya2VyRXhjZXB0aW9uLFxuICBLTVNJbnRlcm5hbEV4Y2VwdGlvbixcbiAgS01TSW52YWxpZE1hY0V4Y2VwdGlvbixcbiAgS01TSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvbixcbiAgS01TSW52YWxpZFN0YXRlRXhjZXB0aW9uLFxuICBLZXlVbmF2YWlsYWJsZUV4Y2VwdGlvbixcbiAgTGltaXRFeGNlZWRlZEV4Y2VwdGlvbixcbiAgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24sXG4gIE5vdEZvdW5kRXhjZXB0aW9uLFxuICBUYWdFeGNlcHRpb24sXG4gIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLFxuICBYa3NLZXlBbHJlYWR5SW5Vc2VFeGNlcHRpb24sXG4gIFhrc0tleUludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uLFxuICBYa3NLZXlOb3RGb3VuZEV4Y2VwdGlvbixcbiAgWGtzUHJveHlJbmNvcnJlY3RBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWxFeGNlcHRpb24sXG4gIFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FeGNlcHRpb24sXG4gIFhrc1Byb3h5SW52YWxpZFJlc3BvbnNlRXhjZXB0aW9uLFxuICBYa3NQcm94eVVyaUVuZHBvaW50SW5Vc2VFeGNlcHRpb24sXG4gIFhrc1Byb3h5VXJpSW5Vc2VFeGNlcHRpb24sXG4gIFhrc1Byb3h5VXJpVW5yZWFjaGFibGVFeGNlcHRpb24sXG4gIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW5Vc2VFeGNlcHRpb24sXG4gIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FeGNlcHRpb24sXG4gIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQta21zXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBbHJlYWR5RXhpc3RzRXhjZXB0aW9uXCIsXG4gIFwiQ2xvdWRIc21DbHVzdGVySW5Vc2VFeGNlcHRpb25cIixcbiAgXCJDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkV4Y2VwdGlvblwiLFxuICBcIkNsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUV4Y2VwdGlvblwiLFxuICBcIkNsb3VkSHNtQ2x1c3Rlck5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gIFwiQ2xvdWRIc21DbHVzdGVyTm90UmVsYXRlZEV4Y2VwdGlvblwiLFxuICBcIkNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gIFwiQ3VzdG9tS2V5U3RvcmVIYXNDTUtzRXhjZXB0aW9uXCIsXG4gIFwiQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgXCJDdXN0b21LZXlTdG9yZU5hbWVJblVzZUV4Y2VwdGlvblwiLFxuICBcIkN1c3RvbUtleVN0b3JlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgXCJEZXBlbmRlbmN5VGltZW91dEV4Y2VwdGlvblwiLFxuICBcIkRpc2FibGVkRXhjZXB0aW9uXCIsXG4gIFwiRHJ5UnVuT3BlcmF0aW9uRXhjZXB0aW9uXCIsXG4gIFwiRXhwaXJlZEltcG9ydFRva2VuRXhjZXB0aW9uXCIsXG4gIFwiSW5jb3JyZWN0S2V5RXhjZXB0aW9uXCIsXG4gIFwiSW5jb3JyZWN0S2V5TWF0ZXJpYWxFeGNlcHRpb25cIixcbiAgXCJJbmNvcnJlY3RUcnVzdEFuY2hvckV4Y2VwdGlvblwiLFxuICBcIkludmFsaWRBbGlhc05hbWVFeGNlcHRpb25cIixcbiAgXCJJbnZhbGlkQXJuRXhjZXB0aW9uXCIsXG4gIFwiSW52YWxpZENpcGhlcnRleHRFeGNlcHRpb25cIixcbiAgXCJJbnZhbGlkR3JhbnRJZEV4Y2VwdGlvblwiLFxuICBcIkludmFsaWRHcmFudFRva2VuRXhjZXB0aW9uXCIsXG4gIFwiSW52YWxpZEltcG9ydFRva2VuRXhjZXB0aW9uXCIsXG4gIFwiSW52YWxpZEtleVVzYWdlRXhjZXB0aW9uXCIsXG4gIFwiSW52YWxpZE1hcmtlckV4Y2VwdGlvblwiLFxuICBcIktNU0ludGVybmFsRXhjZXB0aW9uXCIsXG4gIFwiS01TSW52YWxpZE1hY0V4Y2VwdGlvblwiLFxuICBcIktNU0ludmFsaWRTaWduYXR1cmVFeGNlcHRpb25cIixcbiAgXCJLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb25cIixcbiAgXCJLZXlVbmF2YWlsYWJsZUV4Y2VwdGlvblwiLFxuICBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiLFxuICBcIk5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gIFwiVGFnRXhjZXB0aW9uXCIsXG4gIFwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb25cIixcbiAgXCJYa3NLZXlBbHJlYWR5SW5Vc2VFeGNlcHRpb25cIixcbiAgXCJYa3NLZXlJbnZhbGlkQ29uZmlndXJhdGlvbkV4Y2VwdGlvblwiLFxuICBcIlhrc0tleU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gIFwiWGtzUHJveHlJbmNvcnJlY3RBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWxFeGNlcHRpb25cIixcbiAgXCJYa3NQcm94eUludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uXCIsXG4gIFwiWGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFeGNlcHRpb25cIixcbiAgXCJYa3NQcm94eVVyaUVuZHBvaW50SW5Vc2VFeGNlcHRpb25cIixcbiAgXCJYa3NQcm94eVVyaUluVXNlRXhjZXB0aW9uXCIsXG4gIFwiWGtzUHJveHlVcmlVbnJlYWNoYWJsZUV4Y2VwdGlvblwiLFxuICBcIlhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW5Vc2VFeGNlcHRpb25cIixcbiAgXCJYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uXCIsXG4gIFwiWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWxyZWFkeUV4aXN0c0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEFscmVhZHlFeGlzdHNFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgQ2xvdWRIc21DbHVzdGVySW5Vc2VFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxDbG91ZEhzbUNsdXN0ZXJJblVzZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkSHNtQ2x1c3RlckludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBDbG91ZEhzbUNsdXN0ZXJOb3RGb3VuZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkSHNtQ2x1c3Rlck5vdEZvdW5kRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENsb3VkSHNtQ2x1c3Rlck5vdFJlbGF0ZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxDbG91ZEhzbUNsdXN0ZXJOb3RSZWxhdGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgQ3VzdG9tS2V5U3RvcmVIYXNDTUtzRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q3VzdG9tS2V5U3RvcmVIYXNDTUtzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgQ3VzdG9tS2V5U3RvcmVOYW1lSW5Vc2VFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxDdXN0b21LZXlTdG9yZU5hbWVJblVzZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBDdXN0b21LZXlTdG9yZU5vdEZvdW5kRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248Q3VzdG9tS2V5U3RvcmVOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBEZXBlbmRlbmN5VGltZW91dEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPERlcGVuZGVuY3lUaW1lb3V0RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIERpc2FibGVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RGlzYWJsZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgRHJ5UnVuT3BlcmF0aW9uRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RHJ5UnVuT3BlcmF0aW9uRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEV4cGlyZWRJbXBvcnRUb2tlbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEV4cGlyZWRJbXBvcnRUb2tlbkV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbmNvcnJlY3RLZXlFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbmNvcnJlY3RLZXlFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW5jb3JyZWN0S2V5TWF0ZXJpYWxFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxJbmNvcnJlY3RLZXlNYXRlcmlhbEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbmNvcnJlY3RUcnVzdEFuY2hvckVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEluY29ycmVjdFRydXN0QW5jaG9yRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRBbGlhc05hbWVFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkQWxpYXNOYW1lRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRBcm5FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkQXJuRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRDaXBoZXJ0ZXh0RXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248SW52YWxpZENpcGhlcnRleHRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW52YWxpZEdyYW50SWRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkR3JhbnRJZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkR3JhbnRUb2tlbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRHcmFudFRva2VuRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRJbXBvcnRUb2tlbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRJbXBvcnRUb2tlbkV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkS2V5VXNhZ2VFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkS2V5VXNhZ2VFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW52YWxpZE1hcmtlckVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRNYXJrZXJFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgS01TSW50ZXJuYWxFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxLTVNJbnRlcm5hbEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBLTVNJbnZhbGlkTWFjRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248S01TSW52YWxpZE1hY0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBLTVNJbnZhbGlkU2lnbmF0dXJlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248S01TSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBLTVNJbnZhbGlkU3RhdGVFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxLTVNJbnZhbGlkU3RhdGVFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgS2V5VW5hdmFpbGFibGVFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxLZXlVbmF2YWlsYWJsZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBMaW1pdEV4Y2VlZGVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248TGltaXRFeGNlZWRlZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIE5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Tm90Rm91bmRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgVGFnRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGFnRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgWGtzS2V5QWxyZWFkeUluVXNlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248WGtzS2V5QWxyZWFkeUluVXNlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc0tleUludmFsaWRDb25maWd1cmF0aW9uRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248WGtzS2V5SW52YWxpZENvbmZpZ3VyYXRpb25FeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgWGtzS2V5Tm90Rm91bmRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxYa3NLZXlOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBYa3NQcm94eUluY29ycmVjdEF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFhrc1Byb3h5SW5jb3JyZWN0QXV0aGVudGljYXRpb25DcmVkZW50aWFsRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eUludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5SW52YWxpZFJlc3BvbnNlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248WGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgWGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248WGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5VXJpSW5Vc2VFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eVVyaUluVXNlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5VXJpVW5yZWFjaGFibGVFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eVVyaVVucmVhY2hhYmxlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW5Vc2VFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUluVXNlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUludmFsaWRDb25maWd1cmF0aW9uRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlTm90Rm91bmRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZU5vdEZvdW5kRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19
@@ -1,31 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import { KMSClient } from "@aws-sdk/client-kms";
5
- import * as Context from "effect/Context";
6
- import * as Effect from "effect/Effect";
7
- import * as Layer from "effect/Layer";
8
- import { KMSClientInstanceConfig } from "./KMSClientInstanceConfig";
9
- declare const KMSClientInstance_base: Context.TagClass<KMSClientInstance, "@effect-aws/client-kms/KMSClientInstance", KMSClient>;
10
- /**
11
- * @since 1.0.0
12
- * @category tags
13
- */
14
- export declare class KMSClientInstance extends KMSClientInstance_base {
15
- }
16
- /**
17
- * @since 1.0.0
18
- * @category constructors
19
- */
20
- export declare const makeKMSClientInstance: Effect.Effect<KMSClient, never, KMSClientInstanceConfig>;
21
- /**
22
- * @since 1.0.0
23
- * @category layers
24
- */
25
- export declare const KMSClientInstanceLayer: Layer.Layer<KMSClientInstance, never, KMSClientInstanceConfig>;
26
- /**
27
- * @since 1.0.0
28
- * @category layers
29
- */
30
- export declare const DefaultKMSClientInstanceLayer: Layer.Layer<KMSClientInstance, never, never>;
31
- export {};
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DefaultKMSClientInstanceLayer = exports.KMSClientInstanceLayer = exports.makeKMSClientInstance = exports.KMSClientInstance = void 0;
27
- /**
28
- * @since 1.0.0
29
- */
30
- const client_kms_1 = require("@aws-sdk/client-kms");
31
- const Context = __importStar(require("effect/Context"));
32
- const Effect = __importStar(require("effect/Effect"));
33
- const Layer = __importStar(require("effect/Layer"));
34
- const KMSClientInstanceConfig_1 = require("./KMSClientInstanceConfig");
35
- /**
36
- * @since 1.0.0
37
- * @category tags
38
- */
39
- class KMSClientInstance extends Context.Tag("@effect-aws/client-kms/KMSClientInstance")() {
40
- }
41
- exports.KMSClientInstance = KMSClientInstance;
42
- /**
43
- * @since 1.0.0
44
- * @category constructors
45
- */
46
- exports.makeKMSClientInstance = Effect.map(KMSClientInstanceConfig_1.KMSClientInstanceConfig, (config) => new client_kms_1.KMSClient(config));
47
- /**
48
- * @since 1.0.0
49
- * @category layers
50
- */
51
- exports.KMSClientInstanceLayer = Layer.effect(KMSClientInstance, exports.makeKMSClientInstance);
52
- /**
53
- * @since 1.0.0
54
- * @category layers
55
- */
56
- exports.DefaultKMSClientInstanceLayer = exports.KMSClientInstanceLayer.pipe(Layer.provide(KMSClientInstanceConfig_1.DefaultKMSClientConfigLayer));
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS01TQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvS01TQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILG9EQUFnRDtBQUNoRCx3REFBMEM7QUFDMUMsc0RBQXdDO0FBQ3hDLG9EQUFzQztBQUN0Qyx1RUFHbUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxPQUFPLENBQUMsR0FBRyxDQUNoRCwwQ0FBMEMsQ0FDM0MsRUFBZ0M7Q0FBRztBQUZwQyw4Q0FFb0M7QUFFcEM7OztHQUdHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUM3QyxpREFBdUIsRUFDdkIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDbEMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDaEQsaUJBQWlCLEVBQ2pCLDZCQUFxQixDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FBRyw4QkFBc0IsQ0FBQyxJQUFJLENBQ3RFLEtBQUssQ0FBQyxPQUFPLENBQUMscURBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7IEtNU0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQta21zXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0S01TQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIEtNU0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9LTVNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIEtNU0NsaWVudEluc3RhbmNlIGV4dGVuZHMgQ29udGV4dC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWttcy9LTVNDbGllbnRJbnN0YW5jZVwiLFxuKTxLTVNDbGllbnRJbnN0YW5jZSwgS01TQ2xpZW50PigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlS01TQ2xpZW50SW5zdGFuY2UgPSBFZmZlY3QubWFwKFxuICBLTVNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IEtNU0NsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEtNU0NsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEtNU0NsaWVudEluc3RhbmNlLFxuICBtYWtlS01TQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEtNU0NsaWVudEluc3RhbmNlTGF5ZXIgPSBLTVNDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdEtNU0NsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
@@ -1,23 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { KMSClientConfig } from "@aws-sdk/client-kms";
5
- import { Context, Effect, Layer } from "effect";
6
- declare const KMSClientInstanceConfig_base: Context.TagClass<KMSClientInstanceConfig, "@effect-aws/client-kms/KMSClientInstanceConfig", KMSClientConfig>;
7
- /**
8
- * @since 1.0.0
9
- * @category tags
10
- */
11
- export declare class KMSClientInstanceConfig extends KMSClientInstanceConfig_base {
12
- }
13
- /**
14
- * @since 1.0.0
15
- * @category constructors
16
- */
17
- export declare const makeDefaultKMSClientInstanceConfig: Effect.Effect<KMSClientConfig>;
18
- /**
19
- * @since 1.0.0
20
- * @category layers
21
- */
22
- export declare const DefaultKMSClientConfigLayer: Layer.Layer<KMSClientInstanceConfig, never, never>;
23
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultKMSClientConfigLayer = exports.makeDefaultKMSClientInstanceConfig = exports.KMSClientInstanceConfig = void 0;
4
- const effect_1 = require("effect");
5
- /**
6
- * @since 1.0.0
7
- * @category tags
8
- */
9
- class KMSClientInstanceConfig extends effect_1.Context.Tag("@effect-aws/client-kms/KMSClientInstanceConfig")() {
10
- }
11
- exports.KMSClientInstanceConfig = KMSClientInstanceConfig;
12
- /**
13
- * @since 1.0.0
14
- * @category constructors
15
- */
16
- exports.makeDefaultKMSClientInstanceConfig = effect_1.Effect.gen(function* (_) {
17
- const runtime = yield* _(effect_1.Effect.runtime());
18
- const runSync = effect_1.Runtime.runSync(runtime);
19
- return {
20
- logger: {
21
- info(m) {
22
- effect_1.Effect.logInfo(m).pipe(runSync);
23
- },
24
- warn(m) {
25
- effect_1.Effect.logWarning(m).pipe(runSync);
26
- },
27
- error(m) {
28
- effect_1.Effect.logError(m).pipe(runSync);
29
- },
30
- debug(m) {
31
- effect_1.Effect.logDebug(m).pipe(runSync);
32
- },
33
- trace(m) {
34
- effect_1.Effect.logTrace(m).pipe(runSync);
35
- },
36
- },
37
- };
38
- });
39
- /**
40
- * @since 1.0.0
41
- * @category layers
42
- */
43
- exports.DefaultKMSClientConfigLayer = effect_1.Layer.effect(KMSClientInstanceConfig, exports.makeDefaultKMSClientInstanceConfig);
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS01TQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvS01TQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsbUNBQXlEO0FBRXpEOzs7R0FHRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsZ0JBQU8sQ0FBQyxHQUFHLENBQ3RELGdEQUFnRCxDQUNqRCxFQUE0QztDQUFHO0FBRmhELDBEQUVnRDtBQUVoRDs7O0dBR0c7QUFDVSxRQUFBLGtDQUFrQyxHQUM3QyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLGdCQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE9BQU87UUFDTCxNQUFNLEVBQUU7WUFDTixJQUFJLENBQUMsQ0FBQztnQkFDSixlQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUM7Z0JBQ0osZUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLGVBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxlQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsZUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUw7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUNyRCx1QkFBdUIsRUFDdkIsMENBQWtDLENBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgdHlwZSB7IEtNU0NsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQta21zXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCBSdW50aW1lIH0gZnJvbSBcImVmZmVjdFwiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIEtNU0NsaWVudEluc3RhbmNlQ29uZmlnIGV4dGVuZHMgQ29udGV4dC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWttcy9LTVNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiLFxuKTxLTVNDbGllbnRJbnN0YW5jZUNvbmZpZywgS01TQ2xpZW50Q29uZmlnPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVmYXVsdEtNU0NsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PEtNU0NsaWVudENvbmZpZz4gPVxuICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICAgIGNvbnN0IHJ1bnRpbWUgPSB5aWVsZCogXyhFZmZlY3QucnVudGltZTxuZXZlcj4oKSk7XG4gICAgY29uc3QgcnVuU3luYyA9IFJ1bnRpbWUucnVuU3luYyhydW50aW1lKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2dnZXI6IHtcbiAgICAgICAgaW5mbyhtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0luZm8obSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2FybihtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ1dhcm5pbmcobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IobSkge1xuICAgICAgICAgIEVmZmVjdC5sb2dFcnJvcihtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICBkZWJ1ZyhtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0RlYnVnKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIHRyYWNlKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nVHJhY2UobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0S01TQ2xpZW50Q29uZmlnTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEtNU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBtYWtlRGVmYXVsdEtNU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuKTtcbiJdfQ==
package/lib/KMSService.js DELETED
@@ -1,141 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DefaultKMSServiceLayer = exports.KMSServiceLayer = exports.BaseKMSServiceLayer = exports.KMS = exports.KMSService = exports.makeKMSService = void 0;
5
- /**
6
- * @since 1.0.0
7
- */
8
- const client_kms_1 = require("@aws-sdk/client-kms");
9
- const effect_1 = require("effect");
10
- const Errors_1 = require("./Errors");
11
- const KMSClientInstance_1 = require("./KMSClientInstance");
12
- const KMSClientInstanceConfig_1 = require("./KMSClientInstanceConfig");
13
- const commands = {
14
- CancelKeyDeletionCommand: client_kms_1.CancelKeyDeletionCommand,
15
- ConnectCustomKeyStoreCommand: client_kms_1.ConnectCustomKeyStoreCommand,
16
- CreateAliasCommand: client_kms_1.CreateAliasCommand,
17
- CreateCustomKeyStoreCommand: client_kms_1.CreateCustomKeyStoreCommand,
18
- CreateGrantCommand: client_kms_1.CreateGrantCommand,
19
- CreateKeyCommand: client_kms_1.CreateKeyCommand,
20
- DecryptCommand: client_kms_1.DecryptCommand,
21
- DeleteAliasCommand: client_kms_1.DeleteAliasCommand,
22
- DeleteCustomKeyStoreCommand: client_kms_1.DeleteCustomKeyStoreCommand,
23
- DeleteImportedKeyMaterialCommand: client_kms_1.DeleteImportedKeyMaterialCommand,
24
- DeriveSharedSecretCommand: client_kms_1.DeriveSharedSecretCommand,
25
- DescribeCustomKeyStoresCommand: client_kms_1.DescribeCustomKeyStoresCommand,
26
- DescribeKeyCommand: client_kms_1.DescribeKeyCommand,
27
- DisableKeyCommand: client_kms_1.DisableKeyCommand,
28
- DisableKeyRotationCommand: client_kms_1.DisableKeyRotationCommand,
29
- DisconnectCustomKeyStoreCommand: client_kms_1.DisconnectCustomKeyStoreCommand,
30
- EnableKeyCommand: client_kms_1.EnableKeyCommand,
31
- EnableKeyRotationCommand: client_kms_1.EnableKeyRotationCommand,
32
- EncryptCommand: client_kms_1.EncryptCommand,
33
- GenerateDataKeyCommand: client_kms_1.GenerateDataKeyCommand,
34
- GenerateDataKeyPairCommand: client_kms_1.GenerateDataKeyPairCommand,
35
- GenerateDataKeyPairWithoutPlaintextCommand: client_kms_1.GenerateDataKeyPairWithoutPlaintextCommand,
36
- GenerateDataKeyWithoutPlaintextCommand: client_kms_1.GenerateDataKeyWithoutPlaintextCommand,
37
- GenerateMacCommand: client_kms_1.GenerateMacCommand,
38
- GenerateRandomCommand: client_kms_1.GenerateRandomCommand,
39
- GetKeyPolicyCommand: client_kms_1.GetKeyPolicyCommand,
40
- GetKeyRotationStatusCommand: client_kms_1.GetKeyRotationStatusCommand,
41
- GetParametersForImportCommand: client_kms_1.GetParametersForImportCommand,
42
- GetPublicKeyCommand: client_kms_1.GetPublicKeyCommand,
43
- ImportKeyMaterialCommand: client_kms_1.ImportKeyMaterialCommand,
44
- ListAliasesCommand: client_kms_1.ListAliasesCommand,
45
- ListGrantsCommand: client_kms_1.ListGrantsCommand,
46
- ListKeyPoliciesCommand: client_kms_1.ListKeyPoliciesCommand,
47
- ListKeyRotationsCommand: client_kms_1.ListKeyRotationsCommand,
48
- ListKeysCommand: client_kms_1.ListKeysCommand,
49
- ListResourceTagsCommand: client_kms_1.ListResourceTagsCommand,
50
- ListRetirableGrantsCommand: client_kms_1.ListRetirableGrantsCommand,
51
- PutKeyPolicyCommand: client_kms_1.PutKeyPolicyCommand,
52
- ReEncryptCommand: client_kms_1.ReEncryptCommand,
53
- ReplicateKeyCommand: client_kms_1.ReplicateKeyCommand,
54
- RetireGrantCommand: client_kms_1.RetireGrantCommand,
55
- RevokeGrantCommand: client_kms_1.RevokeGrantCommand,
56
- RotateKeyOnDemandCommand: client_kms_1.RotateKeyOnDemandCommand,
57
- ScheduleKeyDeletionCommand: client_kms_1.ScheduleKeyDeletionCommand,
58
- SignCommand: client_kms_1.SignCommand,
59
- TagResourceCommand: client_kms_1.TagResourceCommand,
60
- UntagResourceCommand: client_kms_1.UntagResourceCommand,
61
- UpdateAliasCommand: client_kms_1.UpdateAliasCommand,
62
- UpdateCustomKeyStoreCommand: client_kms_1.UpdateCustomKeyStoreCommand,
63
- UpdateKeyDescriptionCommand: client_kms_1.UpdateKeyDescriptionCommand,
64
- UpdatePrimaryRegionCommand: client_kms_1.UpdatePrimaryRegionCommand,
65
- VerifyCommand: client_kms_1.VerifyCommand,
66
- VerifyMacCommand: client_kms_1.VerifyMacCommand,
67
- };
68
- /**
69
- * @since 1.0.0
70
- * @category constructors
71
- */
72
- exports.makeKMSService = effect_1.Effect.gen(function* (_) {
73
- const client = yield* _(KMSClientInstance_1.KMSClientInstance);
74
- return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
75
- const CommandCtor = commands[command];
76
- const methodImpl = (args, options) => effect_1.Effect.tryPromise({
77
- try: (abortSignal) => client.send(new CommandCtor(args), {
78
- ...(options !== null && options !== void 0 ? options : {}),
79
- abortSignal,
80
- }),
81
- catch: (e) => {
82
- if (e instanceof client_kms_1.KMSServiceException &&
83
- Errors_1.AllServiceErrors.includes(e.name)) {
84
- const ServiceException = effect_1.Data.tagged(e.name);
85
- return ServiceException({
86
- ...e,
87
- message: e.message,
88
- stack: e.stack,
89
- });
90
- }
91
- if (e instanceof Error) {
92
- return (0, Errors_1.SdkError)({
93
- ...e,
94
- name: "SdkError",
95
- message: e.message,
96
- stack: e.stack,
97
- });
98
- }
99
- throw e;
100
- },
101
- });
102
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
103
- return { ...acc, [methodName]: methodImpl };
104
- }, {});
105
- });
106
- /**
107
- * @since 1.0.0
108
- * @category models
109
- */
110
- class KMSService extends effect_1.Effect.Tag("@effect-aws/client-kms/KMSService")() {
111
- }
112
- exports.KMSService = KMSService;
113
- _a = KMSService;
114
- KMSService.defaultLayer = effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer), effect_1.Layer.provide(KMSClientInstanceConfig_1.DefaultKMSClientConfigLayer));
115
- KMSService.layer = (config) => effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(KMSClientInstanceConfig_1.KMSClientInstanceConfig, KMSClientInstanceConfig_1.makeDefaultKMSClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
116
- KMSService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeKMSService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(KMSClientInstance_1.KMSClientInstance, effect_1.Effect.map(KMSClientInstanceConfig_1.makeDefaultKMSClientInstanceConfig, evaluate))));
117
- /**
118
- * @since 1.0.0
119
- * @category models
120
- * @alias KMSService
121
- */
122
- exports.KMS = KMSService;
123
- /**
124
- * @since 1.0.0
125
- * @category layers
126
- * @deprecated use KMS.baseLayer instead
127
- */
128
- exports.BaseKMSServiceLayer = effect_1.Layer.effect(KMSService, exports.makeKMSService);
129
- /**
130
- * @since 1.0.0
131
- * @category layers
132
- * @deprecated use KMS.layer instead
133
- */
134
- exports.KMSServiceLayer = exports.BaseKMSServiceLayer.pipe(effect_1.Layer.provide(KMSClientInstance_1.KMSClientInstanceLayer));
135
- /**
136
- * @since 1.0.0
137
- * @category layers
138
- * @deprecated use KMS.defaultLayer instead
139
- */
140
- exports.DefaultKMSServiceLayer = KMSService.defaultLayer;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS01TU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9LTVNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7R0FFRztBQUNILG9EQW1LNkI7QUFDN0IsbUNBQXFEO0FBQ3JELHFDQW9Ea0I7QUFDbEIsMkRBQWdGO0FBQ2hGLHVFQUltQztBQWFuQyxNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsNEJBQTRCLEVBQTVCLHlDQUE0QjtJQUM1QixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0Isa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLGNBQWMsRUFBZCwyQkFBYztJQUNkLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsMkJBQTJCLEVBQTNCLHdDQUEyQjtJQUMzQixnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5QixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIseUJBQXlCLEVBQXpCLHNDQUF5QjtJQUN6QiwrQkFBK0IsRUFBL0IsNENBQStCO0lBQy9CLGdCQUFnQixFQUFoQiw2QkFBZ0I7SUFDaEIsd0JBQXdCLEVBQXhCLHFDQUF3QjtJQUN4QixjQUFjLEVBQWQsMkJBQWM7SUFDZCxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsMENBQTBDLEVBQTFDLHVEQUEwQztJQUMxQyxzQ0FBc0MsRUFBdEMsbURBQXNDO0lBQ3RDLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IsNkJBQTZCLEVBQTdCLDBDQUE2QjtJQUM3QixtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixpQkFBaUIsRUFBakIsOEJBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixlQUFlLEVBQWYsNEJBQWU7SUFDZix1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLG1CQUFtQixFQUFuQixnQ0FBbUI7SUFDbkIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixXQUFXLEVBQVgsd0JBQVc7SUFDWCxrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLDJCQUEyQixFQUEzQix3Q0FBMkI7SUFDM0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixhQUFhLEVBQWIsMEJBQWE7SUFDYixnQkFBZ0IsRUFBaEIsNkJBQWdCO0NBQ2pCLENBQUM7QUE2OEJGOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQWlCLENBQUMsQ0FBQztJQUUzQyxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBNEIsRUFBRSxFQUFFLENBQzdELGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsR0FBRyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztnQkFDbEIsV0FBVzthQUNaLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSxnQ0FBbUI7b0JBQ2hDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWdCLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxlQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLEVBRzVFOztBQUhILGdDQStCQzs7QUEzQmlCLHVCQUFZLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FDcEUsY0FBSyxDQUFDLE9BQU8sQ0FBQywwQ0FBc0IsQ0FBQyxFQUNyQyxjQUFLLENBQUMsT0FBTyxDQUFDLHFEQUEyQixDQUFDLENBQzNDLEFBSDJCLENBRzFCO0FBQ2MsZ0JBQUssR0FBRyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUNsRCxjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSxzQkFBYyxDQUFDLENBQUMsSUFBSSxDQUNyQyxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLEVBQ3JDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVixpREFBdUIsRUFDdkIsNERBQWtDLENBQUMsSUFBSSxDQUNyQyxlQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksb0JBQVMsR0FBRyxDQUMxQixRQUF1RCxFQUN2RCxFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckMsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLHFDQUFpQixFQUNqQixlQUFNLENBQUMsR0FBRyxDQUFDLDREQUFrQyxFQUFFLFFBQVEsQ0FBQyxDQUN6RCxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxHQUFHLEdBQUcsVUFBVSxDQUFDO0FBRTlCOzs7O0dBSUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLHNCQUFjLENBQUMsQ0FBQztBQUU1RTs7OztHQUlHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsMkJBQW1CLENBQUMsSUFBSSxDQUNyRCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgS01TU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBLTVNDbGllbnQsXG4gIHR5cGUgS01TQ2xpZW50Q29uZmlnLFxuICBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kT3V0cHV0LFxuICBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICB0eXBlIENvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHcmFudENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVLZXlDb21tYW5kLFxuICB0eXBlIENyZWF0ZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVLZXlDb21tYW5kT3V0cHV0LFxuICBEZWNyeXB0Q29tbWFuZCxcbiAgdHlwZSBEZWNyeXB0Q29tbWFuZElucHV0LFxuICB0eXBlIERlY3J5cHRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kT3V0cHV0LFxuICBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kLFxuICB0eXBlIERlcml2ZVNoYXJlZFNlY3JldENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUN1c3RvbUtleVN0b3Jlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUtleUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlS2V5Q29tbWFuZCxcbiAgdHlwZSBEaXNhYmxlS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVLZXlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kLFxuICB0eXBlIERpc2FibGVLZXlSb3RhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICB0eXBlIERpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBFbmFibGVLZXlDb21tYW5kLFxuICB0eXBlIEVuYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVLZXlDb21tYW5kT3V0cHV0LFxuICBFbmFibGVLZXlSb3RhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICBFbmNyeXB0Q29tbWFuZCxcbiAgdHlwZSBFbmNyeXB0Q29tbWFuZElucHV0LFxuICB0eXBlIEVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVEYXRhS2V5UGFpcldpdGhvdXRQbGFpbnRleHRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVEYXRhS2V5UGFpcldpdGhvdXRQbGFpbnRleHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZCxcbiAgdHlwZSBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZU1hY0NvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVNYWNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVNYWNDb21tYW5kT3V0cHV0LFxuICBHZW5lcmF0ZVJhbmRvbUNvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVSYW5kb21Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVSYW5kb21Db21tYW5kT3V0cHV0LFxuICBHZXRLZXlQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRLZXlQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZCxcbiAgdHlwZSBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBhcmFtZXRlcnNGb3JJbXBvcnRDb21tYW5kT3V0cHV0LFxuICBHZXRQdWJsaWNLZXlDb21tYW5kLFxuICB0eXBlIEdldFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQdWJsaWNLZXlDb21tYW5kT3V0cHV0LFxuICBJbXBvcnRLZXlNYXRlcmlhbENvbW1hbmQsXG4gIHR5cGUgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0R3JhbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JhbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHcmFudHNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RLZXlQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0S2V5UG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5Um90YXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0S2V5Um90YXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RLZXlSb3RhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0S2V5c0NvbW1hbmQsXG4gIHR5cGUgTGlzdEtleXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEtleXNDb21tYW5kT3V0cHV0LFxuICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSZXNvdXJjZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSZXRpcmFibGVHcmFudHNDb21tYW5kT3V0cHV0LFxuICBQdXRLZXlQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRLZXlQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZUVuY3J5cHRDb21tYW5kLFxuICB0eXBlIFJlRW5jcnlwdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZUVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICBSZXBsaWNhdGVLZXlDb21tYW5kLFxuICB0eXBlIFJlcGxpY2F0ZUtleUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXBsaWNhdGVLZXlDb21tYW5kT3V0cHV0LFxuICBSZXRpcmVHcmFudENvbW1hbmQsXG4gIHR5cGUgUmV0aXJlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV0aXJlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBSZXZva2VHcmFudENvbW1hbmQsXG4gIHR5cGUgUmV2b2tlR3JhbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlR3JhbnRDb21tYW5kT3V0cHV0LFxuICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmQsXG4gIHR5cGUgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kT3V0cHV0LFxuICBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZCxcbiAgdHlwZSBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kT3V0cHV0LFxuICBTaWduQ29tbWFuZCxcbiAgdHlwZSBTaWduQ29tbWFuZElucHV0LFxuICB0eXBlIFNpZ25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBbGlhc0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlS2V5RGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlS2V5RGVzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVByaW1hcnlSZWdpb25Db21tYW5kT3V0cHV0LFxuICBWZXJpZnlDb21tYW5kLFxuICB0eXBlIFZlcmlmeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBWZXJpZnlDb21tYW5kT3V0cHV0LFxuICBWZXJpZnlNYWNDb21tYW5kLFxuICB0eXBlIFZlcmlmeU1hY0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBWZXJpZnlNYWNDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWttc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJJblVzZUVycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkVycm9yLFxuICBDbG91ZEhzbUNsdXN0ZXJOb3RBY3RpdmVFcnJvcixcbiAgQ2xvdWRIc21DbHVzdGVyTm90Rm91bmRFcnJvcixcbiAgQ2xvdWRIc21DbHVzdGVyTm90UmVsYXRlZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBDdXN0b21LZXlTdG9yZUhhc0NNS3NFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVOYW1lSW5Vc2VFcnJvcixcbiAgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yLFxuICBEZXBlbmRlbmN5VGltZW91dEVycm9yLFxuICBEaXNhYmxlZEVycm9yLFxuICBEcnlSdW5PcGVyYXRpb25FcnJvcixcbiAgRXhwaXJlZEltcG9ydFRva2VuRXJyb3IsXG4gIEluY29ycmVjdEtleUVycm9yLFxuICBJbmNvcnJlY3RLZXlNYXRlcmlhbEVycm9yLFxuICBJbmNvcnJlY3RUcnVzdEFuY2hvckVycm9yLFxuICBJbnZhbGlkQWxpYXNOYW1lRXJyb3IsXG4gIEludmFsaWRBcm5FcnJvcixcbiAgSW52YWxpZENpcGhlcnRleHRFcnJvcixcbiAgSW52YWxpZEdyYW50SWRFcnJvcixcbiAgSW52YWxpZEdyYW50VG9rZW5FcnJvcixcbiAgSW52YWxpZEltcG9ydFRva2VuRXJyb3IsXG4gIEludmFsaWRLZXlVc2FnZUVycm9yLFxuICBJbnZhbGlkTWFya2VyRXJyb3IsXG4gIEtNU0ludGVybmFsRXJyb3IsXG4gIEtNU0ludmFsaWRNYWNFcnJvcixcbiAgS01TSW52YWxpZFNpZ25hdHVyZUVycm9yLFxuICBLTVNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS2V5VW5hdmFpbGFibGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBUYWdFcnJvcixcbiAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcixcbiAgWGtzS2V5QWxyZWFkeUluVXNlRXJyb3IsXG4gIFhrc0tleUludmFsaWRDb25maWd1cmF0aW9uRXJyb3IsXG4gIFhrc0tleU5vdEZvdW5kRXJyb3IsXG4gIFhrc1Byb3h5SW5jb3JyZWN0QXV0aGVudGljYXRpb25DcmVkZW50aWFsRXJyb3IsXG4gIFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvcixcbiAgWGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFcnJvcixcbiAgWGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXJyb3IsXG4gIFhrc1Byb3h5VXJpSW5Vc2VFcnJvcixcbiAgWGtzUHJveHlVcmlVbnJlYWNoYWJsZUVycm9yLFxuICBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUluVXNlRXJyb3IsXG4gIFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FcnJvcixcbiAgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VOb3RGb3VuZEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IEtNU0NsaWVudEluc3RhbmNlLCBLTVNDbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vS01TQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRLTVNDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRLTVNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgS01TQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0tNU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQ2FuY2VsS2V5RGVsZXRpb25Db21tYW5kLFxuICBDb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kLFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZCxcbiAgQ3JlYXRlR3JhbnRDb21tYW5kLFxuICBDcmVhdGVLZXlDb21tYW5kLFxuICBEZWNyeXB0Q29tbWFuZCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kLFxuICBEZWxldGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kLFxuICBEZXJpdmVTaGFyZWRTZWNyZXRDb21tYW5kLFxuICBEZXNjcmliZUN1c3RvbUtleVN0b3Jlc0NvbW1hbmQsXG4gIERlc2NyaWJlS2V5Q29tbWFuZCxcbiAgRGlzYWJsZUtleUNvbW1hbmQsXG4gIERpc2FibGVLZXlSb3RhdGlvbkNvbW1hbmQsXG4gIERpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIEVuYWJsZUtleUNvbW1hbmQsXG4gIEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZCxcbiAgRW5jcnlwdENvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleUNvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kLFxuICBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmQsXG4gIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kLFxuICBHZW5lcmF0ZU1hY0NvbW1hbmQsXG4gIEdlbmVyYXRlUmFuZG9tQ29tbWFuZCxcbiAgR2V0S2V5UG9saWN5Q29tbWFuZCxcbiAgR2V0S2V5Um90YXRpb25TdGF0dXNDb21tYW5kLFxuICBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZCxcbiAgR2V0UHVibGljS2V5Q29tbWFuZCxcbiAgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RHcmFudHNDb21tYW5kLFxuICBMaXN0S2V5UG9saWNpZXNDb21tYW5kLFxuICBMaXN0S2V5Um90YXRpb25zQ29tbWFuZCxcbiAgTGlzdEtleXNDb21tYW5kLFxuICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZCxcbiAgTGlzdFJldGlyYWJsZUdyYW50c0NvbW1hbmQsXG4gIFB1dEtleVBvbGljeUNvbW1hbmQsXG4gIFJlRW5jcnlwdENvbW1hbmQsXG4gIFJlcGxpY2F0ZUtleUNvbW1hbmQsXG4gIFJldGlyZUdyYW50Q29tbWFuZCxcbiAgUmV2b2tlR3JhbnRDb21tYW5kLFxuICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmQsXG4gIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kLFxuICBTaWduQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmQsXG4gIFVwZGF0ZUtleURlc2NyaXB0aW9uQ29tbWFuZCxcbiAgVXBkYXRlUHJpbWFyeVJlZ2lvbkNvbW1hbmQsXG4gIFZlcmlmeUNvbW1hbmQsXG4gIFZlcmlmeU1hY0NvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgS01TU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxLZXlEZWxldGlvbihcbiAgICBhcmdzOiBDYW5jZWxLZXlEZWxldGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbEtleURlbGV0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvbm5lY3RDdXN0b21LZXlTdG9yZUNvbW1hbmR9XG4gICAqL1xuICBjb25uZWN0Q3VzdG9tS2V5U3RvcmUoXG4gICAgYXJnczogQ29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJJbnZhbGlkQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJOb3RBY3RpdmVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFsaWFzTmFtZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUN1c3RvbUtleVN0b3JlKFxuICAgIGFyZ3M6IENyZWF0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckluVXNlRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdEFjdGl2ZUVycm9yXG4gICAgfCBDbG91ZEhzbUNsdXN0ZXJOb3RGb3VuZEVycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZU5hbWVJblVzZUVycm9yXG4gICAgfCBJbmNvcnJlY3RUcnVzdEFuY2hvckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFhrc1Byb3h5SW5jb3JyZWN0QXV0aGVudGljYXRpb25DcmVkZW50aWFsRXJyb3JcbiAgICB8IFhrc1Byb3h5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzUHJveHlJbnZhbGlkUmVzcG9uc2VFcnJvclxuICAgIHwgWGtzUHJveHlVcmlFbmRwb2ludEluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpSW5Vc2VFcnJvclxuICAgIHwgWGtzUHJveHlVcmlVbnJlYWNoYWJsZUVycm9yXG4gICAgfCBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlSW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdyYW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUdyYW50KFxuICAgIGFyZ3M6IENyZWF0ZUdyYW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR3JhbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlS2V5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUtleShcbiAgICBhcmdzOiBDcmVhdGVLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3RlckludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IFRhZ0Vycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBYa3NLZXlBbHJlYWR5SW5Vc2VFcnJvclxuICAgIHwgWGtzS2V5SW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgWGtzS2V5Tm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyeXB0Q29tbWFuZH1cbiAgICovXG4gIGRlY3J5cHQoXG4gICAgYXJnczogRGVjcnlwdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3J5cHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbmNvcnJlY3RLZXlFcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbUtleVN0b3JlKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbUtleVN0b3JlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSGFzQ01Lc0Vycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZUludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBDdXN0b21LZXlTdG9yZU5vdEZvdW5kRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW1wb3J0ZWRLZXlNYXRlcmlhbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsKFxuICAgIGFyZ3M6IERlbGV0ZUltcG9ydGVkS2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcml2ZVNoYXJlZFNlY3JldENvbW1hbmR9XG4gICAqL1xuICBkZXJpdmVTaGFyZWRTZWNyZXQoXG4gICAgYXJnczogRGVyaXZlU2hhcmVkU2VjcmV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyaXZlU2hhcmVkU2VjcmV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ3VzdG9tS2V5U3RvcmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDdXN0b21LZXlTdG9yZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlS2V5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlS2V5KFxuICAgIGFyZ3M6IERlc2NyaWJlS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlS2V5Q29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVLZXkoXG4gICAgYXJnczogRGlzYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZUtleVJvdGF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVLZXlSb3RhdGlvbihcbiAgICBhcmdzOiBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzY29ubmVjdEN1c3RvbUtleVN0b3JlQ29tbWFuZH1cbiAgICovXG4gIGRpc2Nvbm5lY3RDdXN0b21LZXlTdG9yZShcbiAgICBhcmdzOiBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNjb25uZWN0Q3VzdG9tS2V5U3RvcmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVLZXlDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlS2V5KFxuICAgIGFyZ3M6IEVuYWJsZUtleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUtleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUtleVJvdGF0aW9uKFxuICAgIGFyZ3M6IEVuYWJsZUtleVJvdGF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlS2V5Um90YXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5jcnlwdENvbW1hbmR9XG4gICAqL1xuICBlbmNyeXB0KFxuICAgIGFyZ3M6IEVuY3J5cHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmNyeXB0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleUNvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZURhdGFLZXkoXG4gICAgYXJnczogR2VuZXJhdGVEYXRhS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleVBhaXJDb21tYW5kfVxuICAgKi9cbiAgZ2VuZXJhdGVEYXRhS2V5UGFpcihcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlQYWlyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5UGFpckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dChcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlQYWlyV2l0aG91dFBsYWludGV4dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlRGF0YUtleVBhaXJXaXRob3V0UGxhaW50ZXh0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRDb21tYW5kfVxuICAgKi9cbiAgZ2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dChcbiAgICBhcmdzOiBHZW5lcmF0ZURhdGFLZXlXaXRob3V0UGxhaW50ZXh0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZU1hY0NvbW1hbmR9XG4gICAqL1xuICBnZW5lcmF0ZU1hYyhcbiAgICBhcmdzOiBHZW5lcmF0ZU1hY0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdlbmVyYXRlTWFjQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlUmFuZG9tQ29tbWFuZH1cbiAgICovXG4gIGdlbmVyYXRlUmFuZG9tKFxuICAgIGFyZ3M6IEdlbmVyYXRlUmFuZG9tQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2VuZXJhdGVSYW5kb21Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEN1c3RvbUtleVN0b3JlTm90Rm91bmRFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRLZXlQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0S2V5UG9saWN5KFxuICAgIGFyZ3M6IEdldEtleVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEtleVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRLZXlSb3RhdGlvblN0YXR1cyhcbiAgICBhcmdzOiBHZXRLZXlSb3RhdGlvblN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEtleVJvdGF0aW9uU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBhcmFtZXRlcnNGb3JJbXBvcnRDb21tYW5kfVxuICAgKi9cbiAgZ2V0UGFyYW1ldGVyc0ZvckltcG9ydChcbiAgICBhcmdzOiBHZXRQYXJhbWV0ZXJzRm9ySW1wb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UGFyYW1ldGVyc0ZvckltcG9ydENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgZ2V0UHVibGljS2V5KFxuICAgIGFyZ3M6IEdldFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkS2V5VXNhZ2VFcnJvclxuICAgIHwgS2V5VW5hdmFpbGFibGVFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kfVxuICAgKi9cbiAgaW1wb3J0S2V5TWF0ZXJpYWwoXG4gICAgYXJnczogSW1wb3J0S2V5TWF0ZXJpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbXBvcnRLZXlNYXRlcmlhbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRXhwaXJlZEltcG9ydFRva2VuRXJyb3JcbiAgICB8IEluY29ycmVjdEtleU1hdGVyaWFsRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEltcG9ydFRva2VuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RHcmFudHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEdyYW50cyhcbiAgICBhcmdzOiBMaXN0R3JhbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEdyYW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRJZEVycm9yXG4gICAgfCBJbnZhbGlkTWFya2VyRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0S2V5UG9saWNpZXMoXG4gICAgYXJnczogTGlzdEtleVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlSb3RhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEtleVJvdGF0aW9ucyhcbiAgICBhcmdzOiBMaXN0S2V5Um90YXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleVJvdGF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkTWFya2VyRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RLZXlzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RLZXlzKFxuICAgIGFyZ3M6IExpc3RLZXlzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEtleXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvciB8IEludmFsaWRNYXJrZXJFcnJvciB8IEtNU0ludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJlc291cmNlVGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UmVzb3VyY2VUYWdzKFxuICAgIGFyZ3M6IExpc3RSZXNvdXJjZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UmVzb3VyY2VUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRNYXJrZXJFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UmV0aXJhYmxlR3JhbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RSZXRpcmFibGVHcmFudHMoXG4gICAgYXJnczogTGlzdFJldGlyYWJsZUdyYW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RSZXRpcmFibGVHcmFudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE1hcmtlckVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEtleVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRLZXlQb2xpY3koXG4gICAgYXJnczogUHV0S2V5UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0S2V5UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVFbmNyeXB0Q29tbWFuZH1cbiAgICovXG4gIHJlRW5jcnlwdChcbiAgICBhcmdzOiBSZUVuY3J5cHRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZUVuY3J5cHRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbmNvcnJlY3RLZXlFcnJvclxuICAgIHwgSW52YWxpZENpcGhlcnRleHRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlcGxpY2F0ZUtleUNvbW1hbmR9XG4gICAqL1xuICByZXBsaWNhdGVLZXkoXG4gICAgYXJnczogUmVwbGljYXRlS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVwbGljYXRlS2V5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVGFnRXJyb3JcbiAgICB8IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV0aXJlR3JhbnRDb21tYW5kfVxuICAgKi9cbiAgcmV0aXJlR3JhbnQoXG4gICAgYXJnczogUmV0aXJlR3JhbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXRpcmVHcmFudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEdyYW50SWRFcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlR3JhbnRDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlR3JhbnQoXG4gICAgYXJnczogUmV2b2tlR3JhbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VHcmFudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEdyYW50SWRFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUm90YXRlS2V5T25EZW1hbmRDb21tYW5kfVxuICAgKi9cbiAgcm90YXRlS2V5T25EZW1hbmQoXG4gICAgYXJnczogUm90YXRlS2V5T25EZW1hbmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSb3RhdGVLZXlPbkRlbWFuZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNjaGVkdWxlS2V5RGVsZXRpb25Db21tYW5kfVxuICAgKi9cbiAgc2NoZWR1bGVLZXlEZWxldGlvbihcbiAgICBhcmdzOiBTY2hlZHVsZUtleURlbGV0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2NoZWR1bGVLZXlEZWxldGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaWduQ29tbWFuZH1cbiAgICovXG4gIHNpZ24oXG4gICAgYXJnczogU2lnbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNpZ25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IERpc2FibGVkRXJyb3JcbiAgICB8IERyeVJ1bk9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkR3JhbnRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkS2V5VXNhZ2VFcnJvclxuICAgIHwgS2V5VW5hdmFpbGFibGVFcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBUYWdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS01TSW50ZXJuYWxFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFRhZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFsaWFzKFxuICAgIGFyZ3M6IFVwZGF0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlcGVuZGVuY3lUaW1lb3V0RXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQ3VzdG9tS2V5U3RvcmUoXG4gICAgYXJnczogVXBkYXRlQ3VzdG9tS2V5U3RvcmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVDdXN0b21LZXlTdG9yZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2xvdWRIc21DbHVzdGVySW52YWxpZENvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgQ2xvdWRIc21DbHVzdGVyTm90QWN0aXZlRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdEZvdW5kRXJyb3JcbiAgICB8IENsb3VkSHNtQ2x1c3Rlck5vdFJlbGF0ZWRFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOYW1lSW5Vc2VFcnJvclxuICAgIHwgQ3VzdG9tS2V5U3RvcmVOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBYa3NQcm94eUluY29ycmVjdEF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbEVycm9yXG4gICAgfCBYa3NQcm94eUludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IFhrc1Byb3h5SW52YWxpZFJlc3BvbnNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpRW5kcG9pbnRJblVzZUVycm9yXG4gICAgfCBYa3NQcm94eVVyaUluVXNlRXJyb3JcbiAgICB8IFhrc1Byb3h5VXJpVW5yZWFjaGFibGVFcnJvclxuICAgIHwgWGtzUHJveHlWcGNFbmRwb2ludFNlcnZpY2VJblVzZUVycm9yXG4gICAgfCBYa3NQcm94eVZwY0VuZHBvaW50U2VydmljZUludmFsaWRDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IFhrc1Byb3h5VnBjRW5kcG9pbnRTZXJ2aWNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVLZXlEZXNjcmlwdGlvbihcbiAgICBhcmdzOiBVcGRhdGVLZXlEZXNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUtleURlc2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZXBlbmRlbmN5VGltZW91dEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVByaW1hcnlSZWdpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUHJpbWFyeVJlZ2lvbihcbiAgICBhcmdzOiBVcGRhdGVQcmltYXJ5UmVnaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUHJpbWFyeVJlZ2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvclxuICAgIHwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBWZXJpZnlDb21tYW5kfVxuICAgKi9cbiAgdmVyaWZ5KFxuICAgIGFyZ3M6IFZlcmlmeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFZlcmlmeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVwZW5kZW5jeVRpbWVvdXRFcnJvclxuICAgIHwgRGlzYWJsZWRFcnJvclxuICAgIHwgRHJ5UnVuT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRHcmFudFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRLZXlVc2FnZUVycm9yXG4gICAgfCBLZXlVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBLTVNJbnRlcm5hbEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU2lnbmF0dXJlRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFZlcmlmeU1hY0NvbW1hbmR9XG4gICAqL1xuICB2ZXJpZnlNYWMoXG4gICAgYXJnczogVmVyaWZ5TWFjQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVmVyaWZ5TWFjQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZEVycm9yXG4gICAgfCBEcnlSdW5PcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEdyYW50VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEtleVVzYWdlRXJyb3JcbiAgICB8IEtleVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IEtNU0ludGVybmFsRXJyb3JcbiAgICB8IEtNU0ludmFsaWRNYWNFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VLTVNTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oS01TQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBLTVNTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEtNU1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEtNU1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBLTVNTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcIkBlZmZlY3QtYXdzL2NsaWVudC1rbXMvS01TU2VydmljZVwiKTxcbiAgS01TU2VydmljZSxcbiAgS01TU2VydmljZSRcbj4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QodGhpcywgbWFrZUtNU1NlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShLTVNDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRLTVNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IEtNU0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUtNU1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKEtNU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEtNU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0S01TQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKGRlZmF1bHRDb25maWc6IEtNU0NsaWVudENvbmZpZykgPT4gS01TQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VLTVNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEtNU0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRLTVNDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIEtNU1NlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEtNUyA9IEtNU1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgS01TLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlS01TU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KEtNU1NlcnZpY2UsIG1ha2VLTVNTZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLTVMubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgS01TU2VydmljZUxheWVyID0gQmFzZUtNU1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEtNU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLTVMuZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRLTVNTZXJ2aWNlTGF5ZXIgPSBLTVNTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==