@effect-aws/client-lambda 0.4.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/LICENSE +1 -1
- package/lib/LambdaClientInstance.d.ts +32 -0
- package/lib/LambdaClientInstance.js +52 -0
- package/lib/LambdaClientInstanceConfig.d.ts +26 -0
- package/lib/LambdaClientInstanceConfig.js +58 -0
- package/lib/{Lambda.d.ts → LambdaService.d.ts} +43 -4
- package/lib/LambdaService.js +122 -0
- package/lib/esm/LambdaClientInstance.js +26 -0
- package/lib/esm/LambdaClientInstanceConfig.js +32 -0
- package/lib/esm/LambdaService.js +119 -0
- package/lib/esm/index.js +4 -3
- package/lib/index.d.ts +3 -2
- package/lib/index.js +4 -3
- package/package.json +3 -3
- package/lib/Context.d.ts +0 -15
- package/lib/Context.js +0 -49
- package/lib/Lambda.js +0 -110
- package/lib/esm/Context.js +0 -22
- package/lib/esm/Lambda.js +0 -84
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @effect-aws/client-lambda
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [`3e5d0b3`](https://github.com/floydspace/effect-aws/commit/3e5d0b3b3882e0aa6d07bc06432990551316ac30) Thanks [@floydspace](https://github.com/floydspace)! - Upgrade to effect v2 and release stable version
|
|
8
|
+
|
|
3
9
|
## 0.4.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/LICENSE
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LambdaClient } from "@aws-sdk/client-lambda";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import { LambdaClientInstanceConfig } from "./LambdaClientInstanceConfig";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
* @category tags
|
|
9
|
+
*/
|
|
10
|
+
export interface LambdaClientInstance {
|
|
11
|
+
readonly _: unique symbol;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category tags
|
|
16
|
+
*/
|
|
17
|
+
export declare const LambdaClientInstance: Context.Tag<LambdaClientInstance, LambdaClient>;
|
|
18
|
+
/**
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category constructors
|
|
21
|
+
*/
|
|
22
|
+
export declare const makeLambdaClientInstance: Effect.Effect<LambdaClientInstanceConfig, never, LambdaClient>;
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category layers
|
|
26
|
+
*/
|
|
27
|
+
export declare const LambdaClientInstanceLayer: Layer.Layer<LambdaClientInstanceConfig, never, LambdaClientInstance>;
|
|
28
|
+
/**
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category layers
|
|
31
|
+
*/
|
|
32
|
+
export declare const DefaultLambdaClientInstanceLayer: Layer.Layer<never, never, LambdaClientInstance>;
|
|
@@ -0,0 +1,52 @@
|
|
|
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.DefaultLambdaClientInstanceLayer = exports.LambdaClientInstanceLayer = exports.makeLambdaClientInstance = exports.LambdaClientInstance = void 0;
|
|
27
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
28
|
+
const Context = __importStar(require("effect/Context"));
|
|
29
|
+
const Effect = __importStar(require("effect/Effect"));
|
|
30
|
+
const Layer = __importStar(require("effect/Layer"));
|
|
31
|
+
const LambdaClientInstanceConfig_1 = require("./LambdaClientInstanceConfig");
|
|
32
|
+
/**
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category tags
|
|
35
|
+
*/
|
|
36
|
+
exports.LambdaClientInstance = Context.Tag(Symbol.for("@effect-aws/client-lambda/LambdaClientInstance"));
|
|
37
|
+
/**
|
|
38
|
+
* @since 1.0.0
|
|
39
|
+
* @category constructors
|
|
40
|
+
*/
|
|
41
|
+
exports.makeLambdaClientInstance = Effect.map(LambdaClientInstanceConfig_1.LambdaClientInstanceConfig, (config) => new client_lambda_1.LambdaClient(config));
|
|
42
|
+
/**
|
|
43
|
+
* @since 1.0.0
|
|
44
|
+
* @category layers
|
|
45
|
+
*/
|
|
46
|
+
exports.LambdaClientInstanceLayer = Layer.effect(exports.LambdaClientInstance, exports.makeLambdaClientInstance);
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category layers
|
|
50
|
+
*/
|
|
51
|
+
exports.DefaultLambdaClientInstanceLayer = exports.LambdaClientInstanceLayer.pipe(Layer.provide(LambdaClientInstanceConfig_1.DefaultLambdaClientConfigLayer));
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTGFtYmRhQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBc0Q7QUFDdEQsd0RBQTBDO0FBQzFDLHNEQUF3QztBQUN4QyxvREFBc0M7QUFDdEMsNkVBR3NDO0FBVXRDOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FHN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDLENBQUM7QUFFaEU7OztHQUdHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNoRCx1REFBMEIsRUFDMUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksNEJBQVksQ0FBQyxNQUFNLENBQUMsQ0FDckMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbkQsNEJBQW9CLEVBQ3BCLGdDQUF3QixDQUN6QixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxnQ0FBZ0MsR0FBRyxpQ0FBeUIsQ0FBQyxJQUFJLENBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsMkRBQThCLENBQUMsQ0FDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbWJkYUNsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9MYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDbGllbnRJbnN0YW5jZSB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgTGFtYmRhQ2xpZW50SW5zdGFuY2UgPSBDb250ZXh0LlRhZzxcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2UsXG4gIExhbWJkYUNsaWVudFxuPihTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWxhbWJkYS9MYW1iZGFDbGllbnRJbnN0YW5jZVwiKSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlTGFtYmRhQ2xpZW50SW5zdGFuY2UgPSBFZmZlY3QubWFwKFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IExhbWJkYUNsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIExhbWJkYUNsaWVudEluc3RhbmNlLFxuICBtYWtlTGFtYmRhQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIgPSBMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LambdaClientConfig } from "@aws-sdk/client-lambda";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
* @category tags
|
|
8
|
+
*/
|
|
9
|
+
export interface LambdaClientInstanceConfig {
|
|
10
|
+
readonly _: unique symbol;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category tags
|
|
15
|
+
*/
|
|
16
|
+
export declare const LambdaClientInstanceConfig: Context.Tag<LambdaClientInstanceConfig, LambdaClientConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category constructors
|
|
20
|
+
*/
|
|
21
|
+
export declare const makeDefaultLambdaClientInstanceConfig: Effect.Effect<never, never, LambdaClientConfig>;
|
|
22
|
+
/**
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
* @category layers
|
|
25
|
+
*/
|
|
26
|
+
export declare const DefaultLambdaClientConfigLayer: Layer.Layer<never, never, LambdaClientInstanceConfig>;
|
|
@@ -0,0 +1,58 @@
|
|
|
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.DefaultLambdaClientConfigLayer = exports.makeDefaultLambdaClientInstanceConfig = exports.LambdaClientInstanceConfig = void 0;
|
|
27
|
+
const Context = __importStar(require("effect/Context"));
|
|
28
|
+
const Effect = __importStar(require("effect/Effect"));
|
|
29
|
+
const Layer = __importStar(require("effect/Layer"));
|
|
30
|
+
const Runtime = __importStar(require("effect/Runtime"));
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
* @category tags
|
|
34
|
+
*/
|
|
35
|
+
exports.LambdaClientInstanceConfig = Context.Tag(Symbol.for("@effect-aws/client-lambda/LambdaClientInstanceConfig"));
|
|
36
|
+
/**
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
* @category constructors
|
|
39
|
+
*/
|
|
40
|
+
exports.makeDefaultLambdaClientInstanceConfig = Effect.gen(function* (_) {
|
|
41
|
+
const runtime = yield* _(Effect.runtime());
|
|
42
|
+
const runSync = Runtime.runSync(runtime);
|
|
43
|
+
return {
|
|
44
|
+
logger: {
|
|
45
|
+
info: (m) => Effect.logInfo(m).pipe(runSync),
|
|
46
|
+
warn: (m) => Effect.logWarning(m).pipe(runSync),
|
|
47
|
+
error: (m) => Effect.logError(m).pipe(runSync),
|
|
48
|
+
debug: (m) => Effect.logDebug(m).pipe(runSync),
|
|
49
|
+
trace: (m) => Effect.logTrace(m).pipe(runSync),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
* @category layers
|
|
56
|
+
*/
|
|
57
|
+
exports.DefaultLambdaClientConfigLayer = Layer.effect(exports.LambdaClientInstanceConfig, exports.makeDefaultLambdaClientInstanceConfig);
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3REFBMEM7QUFDMUMsc0RBQXdDO0FBQ3hDLG9EQUFzQztBQUN0Qyx3REFBMEM7QUFVMUM7OztHQUdHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUduRCxNQUFNLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUMsQ0FBQztBQUV0RTs7O0dBR0c7QUFDVSxRQUFBLHFDQUFxQyxHQUk5QyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQy9DO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUN4RCxrQ0FBMEIsRUFDMUIsNkNBQXFDLENBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExhbWJkYUNsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcgPSBDb250ZXh0LlRhZzxcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIExhbWJkYUNsaWVudENvbmZpZ1xuPihTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWxhbWJkYS9MYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZ1wiKSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PFxuICBuZXZlcixcbiAgbmV2ZXIsXG4gIExhbWJkYUNsaWVudENvbmZpZ1xuPiA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IHJ1bnRpbWUgPSB5aWVsZCogXyhFZmZlY3QucnVudGltZTxuZXZlcj4oKSk7XG4gIGNvbnN0IHJ1blN5bmMgPSBSdW50aW1lLnJ1blN5bmMocnVudGltZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dnZXI6IHtcbiAgICAgIGluZm86IChtKSA9PiBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgd2FybjogKG0pID0+IEVmZmVjdC5sb2dXYXJuaW5nKG0pLnBpcGUocnVuU3luYyksXG4gICAgICBlcnJvcjogKG0pID0+IEVmZmVjdC5sb2dFcnJvcihtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgZGVidWc6IChtKSA9PiBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKSxcbiAgICAgIHRyYWNlOiAobSkgPT4gRWZmZWN0LmxvZ1RyYWNlKG0pLnBpcGUocnVuU3luYyksXG4gICAgfSxcbiAgfTtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgbWFrZURlZmF1bHRMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbik7XG4iXX0=
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { AddLayerVersionPermissionCommandInput, AddLayerVersionPermissionCommandOutput, AddPermissionCommandInput, AddPermissionCommandOutput, CreateAliasCommandInput, CreateAliasCommandOutput, CreateCodeSigningConfigCommandInput, CreateCodeSigningConfigCommandOutput, CreateEventSourceMappingCommandInput, CreateEventSourceMappingCommandOutput, CreateFunctionCommandInput, CreateFunctionCommandOutput, CreateFunctionUrlConfigCommandInput, CreateFunctionUrlConfigCommandOutput, DeleteAliasCommandInput, DeleteAliasCommandOutput, DeleteCodeSigningConfigCommandInput, DeleteCodeSigningConfigCommandOutput, DeleteEventSourceMappingCommandInput, DeleteEventSourceMappingCommandOutput, DeleteFunctionCodeSigningConfigCommandInput, DeleteFunctionCodeSigningConfigCommandOutput, DeleteFunctionCommandInput, DeleteFunctionCommandOutput, DeleteFunctionConcurrencyCommandInput, DeleteFunctionConcurrencyCommandOutput, DeleteFunctionEventInvokeConfigCommandInput, DeleteFunctionEventInvokeConfigCommandOutput, DeleteFunctionUrlConfigCommandInput, DeleteFunctionUrlConfigCommandOutput, DeleteLayerVersionCommandInput, DeleteLayerVersionCommandOutput, DeleteProvisionedConcurrencyConfigCommandInput, DeleteProvisionedConcurrencyConfigCommandOutput, GetAccountSettingsCommandInput, GetAccountSettingsCommandOutput, GetAliasCommandInput, GetAliasCommandOutput, GetCodeSigningConfigCommandInput, GetCodeSigningConfigCommandOutput, GetEventSourceMappingCommandInput, GetEventSourceMappingCommandOutput, GetFunctionCodeSigningConfigCommandInput, GetFunctionCodeSigningConfigCommandOutput, GetFunctionCommandInput, GetFunctionCommandOutput, GetFunctionConcurrencyCommandInput, GetFunctionConcurrencyCommandOutput, GetFunctionConfigurationCommandInput, GetFunctionConfigurationCommandOutput, GetFunctionEventInvokeConfigCommandInput, GetFunctionEventInvokeConfigCommandOutput, GetFunctionUrlConfigCommandInput, GetFunctionUrlConfigCommandOutput, GetLayerVersionByArnCommandInput, GetLayerVersionByArnCommandOutput, GetLayerVersionCommandInput, GetLayerVersionCommandOutput, GetLayerVersionPolicyCommandInput, GetLayerVersionPolicyCommandOutput, GetPolicyCommandInput, GetPolicyCommandOutput, GetProvisionedConcurrencyConfigCommandInput, GetProvisionedConcurrencyConfigCommandOutput, GetRuntimeManagementConfigCommandInput, GetRuntimeManagementConfigCommandOutput, InvokeAsyncCommandInput, InvokeAsyncCommandOutput, InvokeCommandInput, InvokeCommandOutput, InvokeWithResponseStreamCommandInput, InvokeWithResponseStreamCommandOutput, ListAliasesCommandInput, ListAliasesCommandOutput, ListCodeSigningConfigsCommandInput, ListCodeSigningConfigsCommandOutput, ListEventSourceMappingsCommandInput, ListEventSourceMappingsCommandOutput, ListFunctionEventInvokeConfigsCommandInput, ListFunctionEventInvokeConfigsCommandOutput, ListFunctionUrlConfigsCommandInput, ListFunctionUrlConfigsCommandOutput, ListFunctionsByCodeSigningConfigCommandInput, ListFunctionsByCodeSigningConfigCommandOutput, ListFunctionsCommandInput, ListFunctionsCommandOutput, ListLayerVersionsCommandInput, ListLayerVersionsCommandOutput, ListLayersCommandInput, ListLayersCommandOutput, ListProvisionedConcurrencyConfigsCommandInput, ListProvisionedConcurrencyConfigsCommandOutput, ListTagsCommandInput, ListTagsCommandOutput, ListVersionsByFunctionCommandInput, ListVersionsByFunctionCommandOutput, PublishLayerVersionCommandInput, PublishLayerVersionCommandOutput, PublishVersionCommandInput, PublishVersionCommandOutput, PutFunctionCodeSigningConfigCommandInput, PutFunctionCodeSigningConfigCommandOutput, PutFunctionConcurrencyCommandInput, PutFunctionConcurrencyCommandOutput, PutFunctionEventInvokeConfigCommandInput, PutFunctionEventInvokeConfigCommandOutput, PutProvisionedConcurrencyConfigCommandInput, PutProvisionedConcurrencyConfigCommandOutput, PutRuntimeManagementConfigCommandInput, PutRuntimeManagementConfigCommandOutput, RemoveLayerVersionPermissionCommandInput, RemoveLayerVersionPermissionCommandOutput, RemovePermissionCommandInput, RemovePermissionCommandOutput, TagResourceCommandInput, TagResourceCommandOutput, UntagResourceCommandInput, UntagResourceCommandOutput, UpdateAliasCommandInput, UpdateAliasCommandOutput, UpdateCodeSigningConfigCommandInput, UpdateCodeSigningConfigCommandOutput, UpdateEventSourceMappingCommandInput, UpdateEventSourceMappingCommandOutput, UpdateFunctionCodeCommandInput, UpdateFunctionCodeCommandOutput, UpdateFunctionConfigurationCommandInput, UpdateFunctionConfigurationCommandOutput, UpdateFunctionEventInvokeConfigCommandInput, UpdateFunctionEventInvokeConfigCommandOutput, UpdateFunctionUrlConfigCommandInput, UpdateFunctionUrlConfigCommandOutput } from "@aws-sdk/client-lambda";
|
|
2
2
|
import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import { Cause, Context, Effect, Layer } from "effect";
|
|
4
|
+
import { LambdaClientInstance } from "./LambdaClientInstance";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
* @category models
|
|
8
|
+
*/
|
|
5
9
|
export interface LambdaService {
|
|
10
|
+
readonly _: unique symbol;
|
|
6
11
|
/**
|
|
7
12
|
* @see {@link AddLayerVersionPermissionCommand}
|
|
8
13
|
*/
|
|
@@ -268,6 +273,40 @@ export interface LambdaService {
|
|
|
268
273
|
*/
|
|
269
274
|
updateFunctionUrlConfig(args: UpdateFunctionUrlConfigCommandInput, options?: __HttpHandlerOptions): Effect.Effect<never, Cause.UnknownException, UpdateFunctionUrlConfigCommandOutput>;
|
|
270
275
|
}
|
|
271
|
-
|
|
272
|
-
|
|
276
|
+
/**
|
|
277
|
+
* @since 1.0.0
|
|
278
|
+
* @category tags
|
|
279
|
+
*/
|
|
280
|
+
export declare const LambdaService: Context.Tag<LambdaService, LambdaService>;
|
|
281
|
+
/**
|
|
282
|
+
* @since 1.0.0
|
|
283
|
+
* @category constructors
|
|
284
|
+
*/
|
|
285
|
+
export declare const makeLambdaService: Effect.Effect<LambdaClientInstance, never, LambdaService>;
|
|
286
|
+
/**
|
|
287
|
+
* @since 1.0.0
|
|
288
|
+
* @category layers
|
|
289
|
+
*/
|
|
290
|
+
export declare const BaseLambdaServiceLayer: Layer.Layer<LambdaClientInstance, never, LambdaService>;
|
|
291
|
+
/**
|
|
292
|
+
* @since 1.0.0
|
|
293
|
+
* @category layers
|
|
294
|
+
*/
|
|
295
|
+
export declare const LambdaServiceLayer: Layer.Layer<import("./LambdaClientInstanceConfig").LambdaClientInstanceConfig, never, LambdaService>;
|
|
296
|
+
/**
|
|
297
|
+
* @since 1.0.0
|
|
298
|
+
* @category layers
|
|
299
|
+
*/
|
|
300
|
+
export declare const DefaultLambdaServiceLayer: Layer.Layer<never, never, LambdaService>;
|
|
301
|
+
/**
|
|
302
|
+
* @deprecated
|
|
303
|
+
*/
|
|
304
|
+
export declare const BaseLambdaServiceEffect: Effect.Effect<LambdaClientInstance, never, LambdaService>;
|
|
305
|
+
/**
|
|
306
|
+
* @deprecated
|
|
307
|
+
*/
|
|
308
|
+
export declare const LambdaServiceEffect: Effect.Effect<import("./LambdaClientInstanceConfig").LambdaClientInstanceConfig, never, LambdaService>;
|
|
309
|
+
/**
|
|
310
|
+
* @deprecated
|
|
311
|
+
*/
|
|
273
312
|
export declare const DefaultLambdaServiceEffect: Effect.Effect<never, never, LambdaService>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultLambdaServiceEffect = exports.LambdaServiceEffect = exports.BaseLambdaServiceEffect = exports.DefaultLambdaServiceLayer = exports.LambdaServiceLayer = exports.BaseLambdaServiceLayer = exports.makeLambdaService = exports.LambdaService = void 0;
|
|
4
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
+
const effect_1 = require("effect");
|
|
6
|
+
const LambdaClientInstance_1 = require("./LambdaClientInstance");
|
|
7
|
+
const LambdaClientInstanceConfig_1 = require("./LambdaClientInstanceConfig");
|
|
8
|
+
const commands = {
|
|
9
|
+
AddLayerVersionPermissionCommand: client_lambda_1.AddLayerVersionPermissionCommand,
|
|
10
|
+
AddPermissionCommand: client_lambda_1.AddPermissionCommand,
|
|
11
|
+
CreateAliasCommand: client_lambda_1.CreateAliasCommand,
|
|
12
|
+
CreateCodeSigningConfigCommand: client_lambda_1.CreateCodeSigningConfigCommand,
|
|
13
|
+
CreateEventSourceMappingCommand: client_lambda_1.CreateEventSourceMappingCommand,
|
|
14
|
+
CreateFunctionCommand: client_lambda_1.CreateFunctionCommand,
|
|
15
|
+
CreateFunctionUrlConfigCommand: client_lambda_1.CreateFunctionUrlConfigCommand,
|
|
16
|
+
DeleteAliasCommand: client_lambda_1.DeleteAliasCommand,
|
|
17
|
+
DeleteCodeSigningConfigCommand: client_lambda_1.DeleteCodeSigningConfigCommand,
|
|
18
|
+
DeleteEventSourceMappingCommand: client_lambda_1.DeleteEventSourceMappingCommand,
|
|
19
|
+
DeleteFunctionCommand: client_lambda_1.DeleteFunctionCommand,
|
|
20
|
+
DeleteFunctionCodeSigningConfigCommand: client_lambda_1.DeleteFunctionCodeSigningConfigCommand,
|
|
21
|
+
DeleteFunctionConcurrencyCommand: client_lambda_1.DeleteFunctionConcurrencyCommand,
|
|
22
|
+
DeleteFunctionEventInvokeConfigCommand: client_lambda_1.DeleteFunctionEventInvokeConfigCommand,
|
|
23
|
+
DeleteFunctionUrlConfigCommand: client_lambda_1.DeleteFunctionUrlConfigCommand,
|
|
24
|
+
DeleteLayerVersionCommand: client_lambda_1.DeleteLayerVersionCommand,
|
|
25
|
+
DeleteProvisionedConcurrencyConfigCommand: client_lambda_1.DeleteProvisionedConcurrencyConfigCommand,
|
|
26
|
+
GetAccountSettingsCommand: client_lambda_1.GetAccountSettingsCommand,
|
|
27
|
+
GetAliasCommand: client_lambda_1.GetAliasCommand,
|
|
28
|
+
GetCodeSigningConfigCommand: client_lambda_1.GetCodeSigningConfigCommand,
|
|
29
|
+
GetEventSourceMappingCommand: client_lambda_1.GetEventSourceMappingCommand,
|
|
30
|
+
GetFunctionCommand: client_lambda_1.GetFunctionCommand,
|
|
31
|
+
GetFunctionCodeSigningConfigCommand: client_lambda_1.GetFunctionCodeSigningConfigCommand,
|
|
32
|
+
GetFunctionConcurrencyCommand: client_lambda_1.GetFunctionConcurrencyCommand,
|
|
33
|
+
GetFunctionConfigurationCommand: client_lambda_1.GetFunctionConfigurationCommand,
|
|
34
|
+
GetFunctionEventInvokeConfigCommand: client_lambda_1.GetFunctionEventInvokeConfigCommand,
|
|
35
|
+
GetFunctionUrlConfigCommand: client_lambda_1.GetFunctionUrlConfigCommand,
|
|
36
|
+
GetLayerVersionCommand: client_lambda_1.GetLayerVersionCommand,
|
|
37
|
+
GetLayerVersionByArnCommand: client_lambda_1.GetLayerVersionByArnCommand,
|
|
38
|
+
GetLayerVersionPolicyCommand: client_lambda_1.GetLayerVersionPolicyCommand,
|
|
39
|
+
GetPolicyCommand: client_lambda_1.GetPolicyCommand,
|
|
40
|
+
GetProvisionedConcurrencyConfigCommand: client_lambda_1.GetProvisionedConcurrencyConfigCommand,
|
|
41
|
+
GetRuntimeManagementConfigCommand: client_lambda_1.GetRuntimeManagementConfigCommand,
|
|
42
|
+
InvokeCommand: client_lambda_1.InvokeCommand,
|
|
43
|
+
InvokeAsyncCommand: client_lambda_1.InvokeAsyncCommand,
|
|
44
|
+
InvokeWithResponseStreamCommand: client_lambda_1.InvokeWithResponseStreamCommand,
|
|
45
|
+
ListAliasesCommand: client_lambda_1.ListAliasesCommand,
|
|
46
|
+
ListCodeSigningConfigsCommand: client_lambda_1.ListCodeSigningConfigsCommand,
|
|
47
|
+
ListEventSourceMappingsCommand: client_lambda_1.ListEventSourceMappingsCommand,
|
|
48
|
+
ListFunctionEventInvokeConfigsCommand: client_lambda_1.ListFunctionEventInvokeConfigsCommand,
|
|
49
|
+
ListFunctionsCommand: client_lambda_1.ListFunctionsCommand,
|
|
50
|
+
ListFunctionsByCodeSigningConfigCommand: client_lambda_1.ListFunctionsByCodeSigningConfigCommand,
|
|
51
|
+
ListFunctionUrlConfigsCommand: client_lambda_1.ListFunctionUrlConfigsCommand,
|
|
52
|
+
ListLayersCommand: client_lambda_1.ListLayersCommand,
|
|
53
|
+
ListLayerVersionsCommand: client_lambda_1.ListLayerVersionsCommand,
|
|
54
|
+
ListProvisionedConcurrencyConfigsCommand: client_lambda_1.ListProvisionedConcurrencyConfigsCommand,
|
|
55
|
+
ListTagsCommand: client_lambda_1.ListTagsCommand,
|
|
56
|
+
ListVersionsByFunctionCommand: client_lambda_1.ListVersionsByFunctionCommand,
|
|
57
|
+
PublishLayerVersionCommand: client_lambda_1.PublishLayerVersionCommand,
|
|
58
|
+
PublishVersionCommand: client_lambda_1.PublishVersionCommand,
|
|
59
|
+
PutFunctionCodeSigningConfigCommand: client_lambda_1.PutFunctionCodeSigningConfigCommand,
|
|
60
|
+
PutFunctionConcurrencyCommand: client_lambda_1.PutFunctionConcurrencyCommand,
|
|
61
|
+
PutFunctionEventInvokeConfigCommand: client_lambda_1.PutFunctionEventInvokeConfigCommand,
|
|
62
|
+
PutProvisionedConcurrencyConfigCommand: client_lambda_1.PutProvisionedConcurrencyConfigCommand,
|
|
63
|
+
PutRuntimeManagementConfigCommand: client_lambda_1.PutRuntimeManagementConfigCommand,
|
|
64
|
+
RemoveLayerVersionPermissionCommand: client_lambda_1.RemoveLayerVersionPermissionCommand,
|
|
65
|
+
RemovePermissionCommand: client_lambda_1.RemovePermissionCommand,
|
|
66
|
+
TagResourceCommand: client_lambda_1.TagResourceCommand,
|
|
67
|
+
UntagResourceCommand: client_lambda_1.UntagResourceCommand,
|
|
68
|
+
UpdateAliasCommand: client_lambda_1.UpdateAliasCommand,
|
|
69
|
+
UpdateCodeSigningConfigCommand: client_lambda_1.UpdateCodeSigningConfigCommand,
|
|
70
|
+
UpdateEventSourceMappingCommand: client_lambda_1.UpdateEventSourceMappingCommand,
|
|
71
|
+
UpdateFunctionCodeCommand: client_lambda_1.UpdateFunctionCodeCommand,
|
|
72
|
+
UpdateFunctionConfigurationCommand: client_lambda_1.UpdateFunctionConfigurationCommand,
|
|
73
|
+
UpdateFunctionEventInvokeConfigCommand: client_lambda_1.UpdateFunctionEventInvokeConfigCommand,
|
|
74
|
+
UpdateFunctionUrlConfigCommand: client_lambda_1.UpdateFunctionUrlConfigCommand,
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
* @category tags
|
|
79
|
+
*/
|
|
80
|
+
exports.LambdaService = effect_1.Context.Tag(Symbol.for("@effect-aws/client-lambda/LambdaService"));
|
|
81
|
+
/**
|
|
82
|
+
* @since 1.0.0
|
|
83
|
+
* @category constructors
|
|
84
|
+
*/
|
|
85
|
+
exports.makeLambdaService = effect_1.Effect.gen(function* (_) {
|
|
86
|
+
const client = yield* _(LambdaClientInstance_1.LambdaClientInstance);
|
|
87
|
+
return effect_1.ReadonlyRecord.toEntries(commands).reduce((acc, [command]) => {
|
|
88
|
+
const CommandCtor = commands[command];
|
|
89
|
+
const methodImpl = (args, options) => effect_1.Effect.tryPromise(() => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}));
|
|
90
|
+
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
91
|
+
return { ...acc, [methodName]: methodImpl };
|
|
92
|
+
}, {});
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* @since 1.0.0
|
|
96
|
+
* @category layers
|
|
97
|
+
*/
|
|
98
|
+
exports.BaseLambdaServiceLayer = effect_1.Layer.effect(exports.LambdaService, exports.makeLambdaService);
|
|
99
|
+
/**
|
|
100
|
+
* @since 1.0.0
|
|
101
|
+
* @category layers
|
|
102
|
+
*/
|
|
103
|
+
exports.LambdaServiceLayer = exports.BaseLambdaServiceLayer.pipe(effect_1.Layer.provide(LambdaClientInstance_1.LambdaClientInstanceLayer));
|
|
104
|
+
/**
|
|
105
|
+
* @since 1.0.0
|
|
106
|
+
* @category layers
|
|
107
|
+
*/
|
|
108
|
+
exports.DefaultLambdaServiceLayer = exports.LambdaServiceLayer.pipe(effect_1.Layer.provide(LambdaClientInstanceConfig_1.DefaultLambdaClientConfigLayer));
|
|
109
|
+
// -------------------- Danger Zone --------------------
|
|
110
|
+
/**
|
|
111
|
+
* @deprecated
|
|
112
|
+
*/
|
|
113
|
+
exports.BaseLambdaServiceEffect = exports.makeLambdaService;
|
|
114
|
+
/**
|
|
115
|
+
* @deprecated
|
|
116
|
+
*/
|
|
117
|
+
exports.LambdaServiceEffect = exports.BaseLambdaServiceEffect.pipe(effect_1.Effect.provide(LambdaClientInstance_1.LambdaClientInstanceLayer));
|
|
118
|
+
/**
|
|
119
|
+
* @deprecated
|
|
120
|
+
*/
|
|
121
|
+
exports.DefaultLambdaServiceEffect = exports.BaseLambdaServiceEffect.pipe(effect_1.Effect.provide(LambdaClientInstance_1.DefaultLambdaClientInstanceLayer));
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MYW1iZGFTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQXVNZ0M7QUFFaEMsbUNBQXVFO0FBQ3ZFLGlFQUlnQztBQUNoQyw2RUFBOEU7QUFFOUUsTUFBTSxRQUFRLEdBQUc7SUFDZixnQ0FBZ0MsRUFBaEMsZ0RBQWdDO0lBQ2hDLG9CQUFvQixFQUFwQixvQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLGtDQUFrQjtJQUNsQiw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLCtCQUErQixFQUEvQiwrQ0FBK0I7SUFDL0IscUJBQXFCLEVBQXJCLHFDQUFxQjtJQUNyQiw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLGtCQUFrQixFQUFsQixrQ0FBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDhDQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsK0NBQStCO0lBQy9CLHFCQUFxQixFQUFyQixxQ0FBcUI7SUFDckIsc0NBQXNDLEVBQXRDLHNEQUFzQztJQUN0QyxnQ0FBZ0MsRUFBaEMsZ0RBQWdDO0lBQ2hDLHNDQUFzQyxFQUF0QyxzREFBc0M7SUFDdEMsOEJBQThCLEVBQTlCLDhDQUE4QjtJQUM5Qix5QkFBeUIsRUFBekIseUNBQXlCO0lBQ3pCLHlDQUF5QyxFQUF6Qyx5REFBeUM7SUFDekMseUJBQXlCLEVBQXpCLHlDQUF5QjtJQUN6QixlQUFlLEVBQWYsK0JBQWU7SUFDZiwyQkFBMkIsRUFBM0IsMkNBQTJCO0lBQzNCLDRCQUE0QixFQUE1Qiw0Q0FBNEI7SUFDNUIsa0JBQWtCLEVBQWxCLGtDQUFrQjtJQUNsQixtQ0FBbUMsRUFBbkMsbURBQW1DO0lBQ25DLDZCQUE2QixFQUE3Qiw2Q0FBNkI7SUFDN0IsK0JBQStCLEVBQS9CLCtDQUErQjtJQUMvQixtQ0FBbUMsRUFBbkMsbURBQW1DO0lBQ25DLDJCQUEyQixFQUEzQiwyQ0FBMkI7SUFDM0Isc0JBQXNCLEVBQXRCLHNDQUFzQjtJQUN0QiwyQkFBMkIsRUFBM0IsMkNBQTJCO0lBQzNCLDRCQUE0QixFQUE1Qiw0Q0FBNEI7SUFDNUIsZ0JBQWdCLEVBQWhCLGdDQUFnQjtJQUNoQixzQ0FBc0MsRUFBdEMsc0RBQXNDO0lBQ3RDLGlDQUFpQyxFQUFqQyxpREFBaUM7SUFDakMsYUFBYSxFQUFiLDZCQUFhO0lBQ2Isa0JBQWtCLEVBQWxCLGtDQUFrQjtJQUNsQiwrQkFBK0IsRUFBL0IsK0NBQStCO0lBQy9CLGtCQUFrQixFQUFsQixrQ0FBa0I7SUFDbEIsNkJBQTZCLEVBQTdCLDZDQUE2QjtJQUM3Qiw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLHFDQUFxQyxFQUFyQyxxREFBcUM7SUFDckMsb0JBQW9CLEVBQXBCLG9DQUFvQjtJQUNwQix1Q0FBdUMsRUFBdkMsdURBQXVDO0lBQ3ZDLDZCQUE2QixFQUE3Qiw2Q0FBNkI7SUFDN0IsaUJBQWlCLEVBQWpCLGlDQUFpQjtJQUNqQix3QkFBd0IsRUFBeEIsd0NBQXdCO0lBQ3hCLHdDQUF3QyxFQUF4Qyx3REFBd0M7SUFDeEMsZUFBZSxFQUFmLCtCQUFlO0lBQ2YsNkJBQTZCLEVBQTdCLDZDQUE2QjtJQUM3QiwwQkFBMEIsRUFBMUIsMENBQTBCO0lBQzFCLHFCQUFxQixFQUFyQixxQ0FBcUI7SUFDckIsbUNBQW1DLEVBQW5DLG1EQUFtQztJQUNuQyw2QkFBNkIsRUFBN0IsNkNBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyxtREFBbUM7SUFDbkMsc0NBQXNDLEVBQXRDLHNEQUFzQztJQUN0QyxpQ0FBaUMsRUFBakMsaURBQWlDO0lBQ2pDLG1DQUFtQyxFQUFuQyxtREFBbUM7SUFDbkMsdUJBQXVCLEVBQXZCLHVDQUF1QjtJQUN2QixrQkFBa0IsRUFBbEIsa0NBQWtCO0lBQ2xCLG9CQUFvQixFQUFwQixvQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLGtDQUFrQjtJQUNsQiw4QkFBOEIsRUFBOUIsOENBQThCO0lBQzlCLCtCQUErQixFQUEvQiwrQ0FBK0I7SUFDL0IseUJBQXlCLEVBQXpCLHlDQUF5QjtJQUN6QixrQ0FBa0MsRUFBbEMsa0RBQWtDO0lBQ2xDLHNDQUFzQyxFQUF0QyxzREFBc0M7SUFDdEMsOEJBQThCLEVBQTlCLDhDQUE4QjtDQUMvQixDQUFDO0FBc3RCRjs7O0dBR0c7QUFDVSxRQUFBLGFBQWEsR0FBRyxnQkFBTyxDQUFDLEdBQUcsQ0FDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUN0RCxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJDQUFvQixDQUFDLENBQUM7SUFFOUMsT0FBTyx1QkFBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQVEsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUFZLEVBQUUsRUFBRSxDQUM3QyxlQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQyxDQUNsRCxDQUFDO1FBQ0osTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdEUsVUFBVSxFQUNWLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBa0IsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDaEQscUJBQWEsRUFDYix5QkFBaUIsQ0FDbEIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsa0JBQWtCLEdBQUcsOEJBQXNCLENBQUMsSUFBSSxDQUMzRCxjQUFLLENBQUMsT0FBTyxDQUFDLGdEQUF5QixDQUFDLENBQ3pDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUFHLDBCQUFrQixDQUFDLElBQUksQ0FDOUQsY0FBSyxDQUFDLE9BQU8sQ0FBQywyREFBOEIsQ0FBQyxDQUM5QyxDQUFDO0FBRUYsd0RBQXdEO0FBRXhEOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyx5QkFBaUIsQ0FBQztBQUV6RDs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUM3RCxlQUFNLENBQUMsT0FBTyxDQUFDLGdEQUF5QixDQUFDLENBQzFDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsMEJBQTBCLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUNwRSxlQUFNLENBQUMsT0FBTyxDQUFDLHVEQUFnQyxDQUFDLENBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZFBlcm1pc3Npb25Db21tYW5kLFxuICBBZGRQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICBBZGRQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kLFxuICBDcmVhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kLFxuICBDcmVhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kLFxuICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZElucHV0LFxuICBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kT3V0cHV0LFxuICBHZXRBbGlhc0NvbW1hbmQsXG4gIEdldEFsaWFzQ29tbWFuZElucHV0LFxuICBHZXRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZElucHV0LFxuICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZElucHV0LFxuICBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0LFxuICBJbnZva2VBc3luY0NvbW1hbmQsXG4gIEludm9rZUFzeW5jQ29tbWFuZElucHV0LFxuICBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQsXG4gIEludm9rZUNvbW1hbmQsXG4gIEludm9rZUNvbW1hbmRJbnB1dCxcbiAgSW52b2tlQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZElucHV0LFxuICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICBMaXN0QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZElucHV0LFxuICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kLFxuICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZElucHV0LFxuICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVuY3Rpb25zQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllclZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdExheWVyc0NvbW1hbmQsXG4gIExpc3RMYXllcnNDb21tYW5kSW5wdXQsXG4gIExpc3RMYXllcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kSW5wdXQsXG4gIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kT3V0cHV0LFxuICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0LFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiO1xuaW1wb3J0IHsgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDYXVzZSwgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUmVhZG9ubHlSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllcixcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2UsXG4gIExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0xhbWJkYUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9MYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIEFkZFBlcm1pc3Npb25Db21tYW5kLFxuICBDcmVhdGVBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kLFxuICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQsXG4gIEdldEFsaWFzQ29tbWFuZCxcbiAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kLFxuICBHZXRQb2xpY3lDb21tYW5kLFxuICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBJbnZva2VDb21tYW5kLFxuICBJbnZva2VBc3luY0NvbW1hbmQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQsXG4gIExpc3RBbGlhc2VzQ29tbWFuZCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kLFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmQsXG4gIFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kLFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG59O1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVNlcnZpY2Uge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZExheWVyVmVyc2lvblBlcm1pc3Npb24oXG4gICAgYXJnczogQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRQZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIGFkZFBlcm1pc3Npb24oXG4gICAgYXJnczogQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIEFkZFBlcm1pc3Npb25Db21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQWxpYXMoXG4gICAgYXJnczogQ3JlYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBDcmVhdGVBbGlhc0NvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgQ3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVGdW5jdGlvbihcbiAgICBhcmdzOiBDcmVhdGVGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIENyZWF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBbGlhcyhcbiAgICBhcmdzOiBEZWxldGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIERlbGV0ZUFsaWFzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgRGVsZXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMYXllclZlcnNpb24oXG4gICAgYXJnczogRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKFxuICAgIGFyZ3M6IERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZH1cbiAgICovXG4gIGdldEFjY291bnRTZXR0aW5ncyhcbiAgICBhcmdzOiBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBnZXRBbGlhcyhcbiAgICBhcmdzOiBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIEdldEFsaWFzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldENvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgR2V0RnVuY3Rpb25Db21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvbkNvbmN1cnJlbmN5KFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvbihcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBHZXRMYXllclZlcnNpb25Db21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uQnlBcm4oXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRMYXllclZlcnNpb25Qb2xpY3koXG4gICAgYXJnczogR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldFBvbGljeShcbiAgICBhcmdzOiBHZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBHZXRQb2xpY3lDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnKFxuICAgIGFyZ3M6IEdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0UnVudGltZU1hbmFnZW1lbnRDb25maWcoXG4gICAgYXJnczogR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludm9rZUNvbW1hbmR9XG4gICAqL1xuICBpbnZva2UoXG4gICAgYXJnczogSW52b2tlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgSW52b2tlQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEludm9rZUFzeW5jQ29tbWFuZH1cbiAgICovXG4gIGludm9rZUFzeW5jKFxuICAgIGFyZ3M6IEludm9rZUFzeW5jQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgSW52b2tlQXN5bmNDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGludm9rZVdpdGhSZXNwb25zZVN0cmVhbShcbiAgICBhcmdzOiBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QWxpYXNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QWxpYXNlcyhcbiAgICBhcmdzOiBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIExpc3RBbGlhc2VzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdENvZGVTaWduaW5nQ29uZmlncyhcbiAgICBhcmdzOiBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RFdmVudFNvdXJjZU1hcHBpbmdzKFxuICAgIGFyZ3M6IExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEZ1bmN0aW9ucyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgTGlzdEZ1bmN0aW9uc0NvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25VcmxDb25maWdzKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdExheWVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TGF5ZXJzKFxuICAgIGFyZ3M6IExpc3RMYXllcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBMaXN0TGF5ZXJzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMYXllclZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMYXllclZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RMYXllclZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RMYXllclZlcnNpb25zQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzKFxuICAgIGFyZ3M6IExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgTGlzdFRhZ3NDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnNCeUZ1bmN0aW9uKFxuICAgIGFyZ3M6IExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoTGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogUHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBwdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyhcbiAgICBhcmdzOiBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQWxpYXMoXG4gICAgYXJnczogVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBVcGRhdGVBbGlhc0NvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVDb2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyhcbiAgICBhcmdzOiBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25Db2RlKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZSA9IENvbnRleHQuVGFnPExhbWJkYVNlcnZpY2U+KFxuICBTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWxhbWJkYS9MYW1iZGFTZXJ2aWNlXCIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VMYW1iZGFTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oTGFtYmRhQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWFkb25seVJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9uczogYW55KSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2UoKCkgPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgTGFtYmRhU2VydmljZTtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUxhbWJkYVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgTGFtYmRhU2VydmljZSxcbiAgbWFrZUxhbWJkYVNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZUxheWVyID0gQmFzZUxhbWJkYVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFTZXJ2aWNlTGF5ZXIgPSBMYW1iZGFTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGFuZ2VyIFpvbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUxhbWJkYVNlcnZpY2VFZmZlY3QgPSBtYWtlTGFtYmRhU2VydmljZTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZUVmZmVjdCA9IEJhc2VMYW1iZGFTZXJ2aWNlRWZmZWN0LnBpcGUoXG4gIEVmZmVjdC5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdExhbWJkYVNlcnZpY2VFZmZlY3QgPSBCYXNlTGFtYmRhU2VydmljZUVmZmVjdC5waXBlKFxuICBFZmZlY3QucHJvdmlkZShEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LambdaClient } from "@aws-sdk/client-lambda";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import { DefaultLambdaClientConfigLayer, LambdaClientInstanceConfig, } from "./LambdaClientInstanceConfig";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
* @category tags
|
|
9
|
+
*/
|
|
10
|
+
export const LambdaClientInstance = Context.Tag(Symbol.for("@effect-aws/client-lambda/LambdaClientInstance"));
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category constructors
|
|
14
|
+
*/
|
|
15
|
+
export const makeLambdaClientInstance = Effect.map(LambdaClientInstanceConfig, (config) => new LambdaClient(config));
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category layers
|
|
19
|
+
*/
|
|
20
|
+
export const LambdaClientInstanceLayer = Layer.effect(LambdaClientInstance, makeLambdaClientInstance);
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category layers
|
|
24
|
+
*/
|
|
25
|
+
export const DefaultLambdaClientInstanceLayer = LambdaClientInstanceLayer.pipe(Layer.provide(DefaultLambdaClientConfigLayer));
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTGFtYmRhQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QiwwQkFBMEIsR0FDM0IsTUFBTSw4QkFBOEIsQ0FBQztBQVV0Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUc3QyxNQUFNLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUMsQ0FBQztBQUVoRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNoRCwwQkFBMEIsRUFDMUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUNyQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbkQsb0JBQW9CLEVBQ3BCLHdCQUF3QixDQUN6QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUM1RSxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW1iZGFDbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyLFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhQ2xpZW50SW5zdGFuY2Uge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IExhbWJkYUNsaWVudEluc3RhbmNlID0gQ29udGV4dC5UYWc8XG4gIExhbWJkYUNsaWVudEluc3RhbmNlLFxuICBMYW1iZGFDbGllbnRcbj4oU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1sYW1iZGEvTGFtYmRhQ2xpZW50SW5zdGFuY2VcIikpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUxhbWJkYUNsaWVudEluc3RhbmNlID0gRWZmZWN0Lm1hcChcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIChjb25maWcpID0+IG5ldyBMYW1iZGFDbGllbnQoY29uZmlnKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZSxcbiAgbWFrZUxhbWJkYUNsaWVudEluc3RhbmNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyID0gTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRMYW1iZGFDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Runtime from "effect/Runtime";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
* @category tags
|
|
8
|
+
*/
|
|
9
|
+
export const LambdaClientInstanceConfig = Context.Tag(Symbol.for("@effect-aws/client-lambda/LambdaClientInstanceConfig"));
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category constructors
|
|
13
|
+
*/
|
|
14
|
+
export const makeDefaultLambdaClientInstanceConfig = Effect.gen(function* (_) {
|
|
15
|
+
const runtime = yield* _(Effect.runtime());
|
|
16
|
+
const runSync = Runtime.runSync(runtime);
|
|
17
|
+
return {
|
|
18
|
+
logger: {
|
|
19
|
+
info: (m) => Effect.logInfo(m).pipe(runSync),
|
|
20
|
+
warn: (m) => Effect.logWarning(m).pipe(runSync),
|
|
21
|
+
error: (m) => Effect.logError(m).pipe(runSync),
|
|
22
|
+
debug: (m) => Effect.logDebug(m).pipe(runSync),
|
|
23
|
+
trace: (m) => Effect.logTrace(m).pipe(runSync),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category layers
|
|
30
|
+
*/
|
|
31
|
+
export const DefaultLambdaClientConfigLayer = Layer.effect(LambdaClientInstanceConfig, makeDefaultLambdaClientInstanceConfig);
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBVTFDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBR25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQyxDQUFDO0FBRXRFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUk5QyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQy9DO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDeEQsMEJBQTBCLEVBQzFCLHFDQUFxQyxDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYW1iZGFDbGllbnRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0ICogYXMgUnVudGltZSBmcm9tIFwiZWZmZWN0L1J1bnRpbWVcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnID0gQ29udGV4dC5UYWc8XG4gIExhbWJkYUNsaWVudEluc3RhbmNlQ29uZmlnLFxuICBMYW1iZGFDbGllbnRDb25maWdcbj4oU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1sYW1iZGEvTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWdcIikpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZURlZmF1bHRMYW1iZGFDbGllbnRJbnN0YW5jZUNvbmZpZzogRWZmZWN0LkVmZmVjdDxcbiAgbmV2ZXIsXG4gIG5ldmVyLFxuICBMYW1iZGFDbGllbnRDb25maWdcbj4gPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBydW50aW1lID0geWllbGQqIF8oRWZmZWN0LnJ1bnRpbWU8bmV2ZXI+KCkpO1xuICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gIHJldHVybiB7XG4gICAgbG9nZ2VyOiB7XG4gICAgICBpbmZvOiAobSkgPT4gRWZmZWN0LmxvZ0luZm8obSkucGlwZShydW5TeW5jKSxcbiAgICAgIHdhcm46IChtKSA9PiBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgZXJyb3I6IChtKSA9PiBFZmZlY3QubG9nRXJyb3IobSkucGlwZShydW5TeW5jKSxcbiAgICAgIGRlYnVnOiAobSkgPT4gRWZmZWN0LmxvZ0RlYnVnKG0pLnBpcGUocnVuU3luYyksXG4gICAgICB0cmFjZTogKG0pID0+IEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpLFxuICAgIH0sXG4gIH07XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFDbGllbnRDb25maWdMYXllciA9IExheWVyLmVmZmVjdChcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIG1ha2VEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19
|