aws-cdk-neuronx-patterns 0.1.1 → 0.2.1
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/.jsii +384 -82
- package/AGENT.md +11 -0
- package/API.md +237 -1
- package/lib/base/aws-batch/neuronx-batch-compute-environment.js +1 -1
- package/lib/base/aws-batch/neuronx-batch-ecs-job-definition.js +1 -1
- package/lib/base/aws-batch/neuronx-batch.js +1 -1
- package/lib/base/aws-ecs-patterns/application-load-balanced-neuronx-service.js +2 -2
- package/lib/base/neuronx/calculator.test.js +61 -1
- package/lib/base/neuronx/deep-learning-containers.d.ts +21 -3
- package/lib/base/neuronx/deep-learning-containers.js +25 -7
- package/lib/base/neuronx/deep-learning-containers.test.js +80 -3
- package/lib/base/neuronx/model.js +2 -2
- package/lib/base/neuronx/neuron-optimized-machine-image.js +1 -1
- package/lib/base/neuronx/neuronx-instance-type.d.ts +18 -0
- package/lib/base/neuronx/neuronx-instance-type.js +60 -7
- package/lib/base/neuronx/neuronx-instance-type.test.js +80 -1
- package/lib/base/neuronx-compiler/neuronx-compiler.js +1 -1
- package/lib/base/server-engine/vllm-engine/vllm-engine-argments.js +1 -1
- package/lib/vllm-nxd-inference/vllm-nxd-inference-compiler.js +5 -3
- package/lib/vllm-nxd-inference/vllm-nxd-inference-ecs-patterns.js +4 -4
- package/package.json +6 -6
|
@@ -23,6 +23,14 @@ class PytorchNeuronxImage extends NeuronxImage {
|
|
|
23
23
|
}
|
|
24
24
|
_a = PytorchNeuronxImage;
|
|
25
25
|
PytorchNeuronxImage.size = aws_cdk_lib_1.Size.gibibytes(30);
|
|
26
|
+
/** Neuron SDK 2.28.0 */
|
|
27
|
+
PytorchNeuronxImage.SDK_2_28_0 = _a.fromNeuronSdkVersion("2.28.0", "3.12", "2.9.0", "24.04");
|
|
28
|
+
/** Neuron SDK 2.27.1 */
|
|
29
|
+
PytorchNeuronxImage.SDK_2_27_1 = _a.fromNeuronSdkVersion("2.27.1", "3.12", "2.9.0", "24.04");
|
|
30
|
+
/** Neuron SDK 2.26.1 */
|
|
31
|
+
PytorchNeuronxImage.SDK_2_26_1 = _a.fromNeuronSdkVersion("2.26.1", "3.11", "2.8.0", "22.04");
|
|
32
|
+
/** Neuron SDK 2.25.0 */
|
|
33
|
+
PytorchNeuronxImage.SDK_2_25_0 = _a.fromNeuronSdkVersion("2.25.0", "3.10", "2.7.0", "22.04");
|
|
26
34
|
/** Neuron SDK 2.24.0 */
|
|
27
35
|
PytorchNeuronxImage.SDK_2_24_0 = _a.fromNeuronSdkVersion("2.24.0", "3.10", "2.7.0", "22.04");
|
|
28
36
|
/** Neuron SDK 2.23.0 */
|
|
@@ -55,7 +63,7 @@ class PytorchInferenceNeuronxImage extends PytorchNeuronxImage {
|
|
|
55
63
|
}
|
|
56
64
|
exports.PytorchInferenceNeuronxImage = PytorchInferenceNeuronxImage;
|
|
57
65
|
_b = PytorchInferenceNeuronxImage, _c = JSII_RTTI_SYMBOL_1;
|
|
58
|
-
PytorchInferenceNeuronxImage[_c] = { fqn: "aws-cdk-neuronx-patterns.PytorchInferenceNeuronxImage", version: "0.
|
|
66
|
+
PytorchInferenceNeuronxImage[_c] = { fqn: "aws-cdk-neuronx-patterns.PytorchInferenceNeuronxImage", version: "0.2.1" };
|
|
59
67
|
PytorchInferenceNeuronxImage.imageName = "public.ecr.aws/neuron/pytorch-inference-neuronx";
|
|
60
68
|
/** Neuron SDK 2.28.0 */
|
|
61
69
|
PytorchInferenceNeuronxImage.SDK_2_28_0 = _b.fromNeuronSdkVersion("2.28.0", "3.12", "2.9.0", "24.04");
|
|
@@ -79,7 +87,7 @@ class PytorchTrainingNeuronxImage extends PytorchNeuronxImage {
|
|
|
79
87
|
}
|
|
80
88
|
exports.PytorchTrainingNeuronxImage = PytorchTrainingNeuronxImage;
|
|
81
89
|
_d = JSII_RTTI_SYMBOL_1;
|
|
82
|
-
PytorchTrainingNeuronxImage[_d] = { fqn: "aws-cdk-neuronx-patterns.PytorchTrainingNeuronxImage", version: "0.
|
|
90
|
+
PytorchTrainingNeuronxImage[_d] = { fqn: "aws-cdk-neuronx-patterns.PytorchTrainingNeuronxImage", version: "0.2.1" };
|
|
83
91
|
PytorchTrainingNeuronxImage.imageName = "public.ecr.aws/neuron/pytorch-training-neuronx";
|
|
84
92
|
class VllmInferenceNeuronxImage extends NeuronxImage {
|
|
85
93
|
static fromNeuronSdkVersion(neuronSdkVersion, vllmVersion, pythonVersion, ubuntuVersion) {
|
|
@@ -93,11 +101,21 @@ class VllmInferenceNeuronxImage extends NeuronxImage {
|
|
|
93
101
|
}
|
|
94
102
|
exports.VllmInferenceNeuronxImage = VllmInferenceNeuronxImage;
|
|
95
103
|
_e = VllmInferenceNeuronxImage, _f = JSII_RTTI_SYMBOL_1;
|
|
96
|
-
VllmInferenceNeuronxImage[_f] = { fqn: "aws-cdk-neuronx-patterns.VllmInferenceNeuronxImage", version: "0.
|
|
97
|
-
/**
|
|
98
|
-
|
|
99
|
-
*/
|
|
104
|
+
VllmInferenceNeuronxImage[_f] = { fqn: "aws-cdk-neuronx-patterns.VllmInferenceNeuronxImage", version: "0.2.1" };
|
|
105
|
+
/** Neuron SDK 2.28.0 with vLLM 0.13.0 */
|
|
106
|
+
VllmInferenceNeuronxImage.SDK_2_28_0 = _e.fromNeuronSdkVersion("2.28.0", "0.13.0", "3.12", "24.04");
|
|
107
|
+
/** Neuron SDK 2.27.1 with vLLM 0.13.0 */
|
|
108
|
+
VllmInferenceNeuronxImage.SDK_2_27_1_VLLM_0_13_0 = _e.fromNeuronSdkVersion("2.27.1", "0.13.0", "3.12", "24.04");
|
|
109
|
+
/** Neuron SDK 2.27.1 with vLLM 0.11.0 */
|
|
110
|
+
VllmInferenceNeuronxImage.SDK_2_27_1_VLLM_0_11_0 = _e.fromNeuronSdkVersion("2.27.1", "0.11.0", "3.12", "24.04");
|
|
111
|
+
/** Neuron SDK 2.26.1 with vLLM 0.9.1 */
|
|
112
|
+
VllmInferenceNeuronxImage.SDK_2_26_1 = _e.fromNeuronSdkVersion("2.26.1", "0.9.1", "3.11", "22.04");
|
|
113
|
+
/** Neuron SDK 2.26.0 with vLLM 0.9.1 */
|
|
100
114
|
VllmInferenceNeuronxImage.SDK_2_26_0 = _e.fromNeuronSdkVersion("2.26.0", "0.9.1", "3.11", "22.04");
|
|
115
|
+
/** Neuron SDK 2.25.0 with vLLM 0.9.1 */
|
|
116
|
+
VllmInferenceNeuronxImage.SDK_2_25_0 = _e.fromNeuronSdkVersion("2.25.0", "0.9.1", "3.10", "22.04");
|
|
117
|
+
/** Neuron SDK 2.24.1 with vLLM 0.7.2 */
|
|
118
|
+
VllmInferenceNeuronxImage.SDK_2_24_1 = _e.fromNeuronSdkVersion("2.24.1", "0.7.2", "3.10", "22.04");
|
|
101
119
|
/** Latest Neuron SDK */
|
|
102
120
|
VllmInferenceNeuronxImage.LATEST = getLatestVersion(_e);
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1sZWFybmluZy1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9kZWVwLWxlYXJuaW5nLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFRbkMsTUFBZSxZQUFZO0NBQUc7QUFFOUIsU0FBUyxnQkFBZ0IsQ0FDdkIsaUJBQXlDO0lBRXpDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztTQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFlLG1CQUFvQixTQUFRLFlBQVk7SUFnR3JELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsZ0JBQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLGFBQXFCO1FBRXJCLE9BQU87WUFDTCxnQkFBZ0I7WUFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxHQUFHLGNBQWMsY0FBYyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxnQkFBZ0IsVUFBVSxhQUFhLEVBQUU7U0FDeEgsQ0FBQztJQUNKLENBQUM7OztBQTFHZSx3QkFBSSxHQUFHLGtCQUFJ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YSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sZ0JBQWdCLFVBQVUsYUFBYSxFQUFFO1lBQ3BILFdBQVc7U0FDWixDQUFDO0lBQ0osQ0FBQzs7QUF6QkgsOERBMEJDOzs7QUF6QkM7O0dBRUc7QUFDYSxvQ0FBVSxHQUFHLEVBQXlCLENBQUMsb0JBQW9CLENBQ3pFLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLGdDQUFNLEdBQUcsZ0JBQWdCLENBQTZCLEVBQUksQ0FBQyxBQUFyRCxDQUFzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueEltYWdlIHtcbiAgcmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVGFnOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldXJvblNka1ZlcnNpb246IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgTmV1cm9ueEltYWdlIHt9XG5cbmZ1bmN0aW9uIGdldExhdGVzdFZlcnNpb248VCBleHRlbmRzIElOZXVyb254SW1hZ2UgPSBJTmV1cm9ueEltYWdlPihcbiAgbmV1cm9ueEltYWdlQ2xhc3M6IGFic3RyYWN0IG5ldyAoKSA9PiBhbnksXG4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG5ldXJvbnhJbWFnZUNsYXNzKVxuICAgIC5maWx0ZXIoKFtrXSkgPT4gay5zdGFydHNXaXRoKFwiU0RLX1wiKSlcbiAgICAuc29ydCgoW2sxXSwgW2syXSkgPT4gKGsxIDwgazIgPyAxIDogLTEpKVxuICAgIC5tYXAoKFtfLCB2XSkgPT4gdilbMF0gYXMgVDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgUHl0b3JjaE5ldXJvbnhJbWFnZSBleHRlbmRzIE5ldXJvbnhJbWFnZSB7XG4gIHN0YXRpYyByZWFkb25seSBzaXplID0gU2l6ZS5naWJpYnl0ZXMoMzApO1xuICAvKiogTmV1cm9uIFNESyAyLjI0LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI0XzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yNC4wXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjcuMFwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMy4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yM18wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjMuMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi42LjBcIixcbiAgICBcIjIyLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjIuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjJfMCA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjIyLjBcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuNS4xXCIsXG4gICAgXCIyMi4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIxLjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIxXzEgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yMS4xXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjUuMVwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMS4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMV8wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjEuMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi41LjFcIixcbiAgICBcIjIyLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjAuMiAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjBfMiA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjIwLjJcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuMS4yXCIsXG4gICAgXCIyMC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIwLjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIwXzEgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yMC4xXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMC4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMF8wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjAuMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi4xLjJcIixcbiAgICBcIjIwLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMTkuMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMTlfMSA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjE5LjFcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuMS4yXCIsXG4gICAgXCIyMC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjE5LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzE5XzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4xOS4wXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4xOC4yICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8xOF8yID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMTguMlwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi4xLjJcIixcbiAgICBcIjIwLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMTguMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMThfMSA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjE4LjFcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuMS4yXCIsXG4gICAgXCIyMC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjE4LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzE4XzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4xOC4wXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIExhdGVzdCBOZXVyb24gU0RLICovXG4gIHN0YXRpYyByZWFkb25seSBMQVRFU1QgPSBnZXRMYXRlc3RWZXJzaW9uKHRoaXMpO1xuXG4gIHN0YXRpYyBmcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBuZXVyb25TZGtWZXJzaW9uOiBzdHJpbmcsXG4gICAgcHl0aG9uVmVyc2lvbjogc3RyaW5nLFxuICAgIHB5dG9yY2hWZXJzaW9uOiBzdHJpbmcsXG4gICAgdWJ1bnR1VmVyc2lvbjogc3RyaW5nLFxuICApOiBJTmV1cm9ueEltYWdlIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV1cm9uU2RrVmVyc2lvbixcbiAgICAgIGltYWdlTmFtZTogdGhpcy5pbWFnZU5hbWUsXG4gICAgICBpbWFnZVRhZzogYCR7cHl0b3JjaFZlcnNpb259LW5ldXJvbngtcHkke3B5dGhvblZlcnNpb24ucmVwbGFjZShcIi5cIiwgXCJcIil9LXNkayR7bmV1cm9uU2RrVmVyc2lvbn0tdWJ1bnR1JHt1YnVudHVWZXJzaW9ufWAsXG4gICAgfTtcbiAgfVxuICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZSBleHRlbmRzIFB5dG9yY2hOZXVyb254SW1hZ2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgaW1hZ2VOYW1lID0gXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiO1xuICAvKiogTmV1cm9uIFNESyAyLjI4LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI4XzAgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjguMFwiLFxuICAgICAgXCIzLjEyXCIsXG4gICAgICBcIjIuOS4wXCIsXG4gICAgICBcIjI0LjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNy4xICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yN18xID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjI3LjFcIixcbiAgICAgIFwiMy4xMlwiLFxuICAgICAgXCIyLjkuMFwiLFxuICAgICAgXCIyNC4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjYuMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjZfMSA9XG4gICAgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICAgIFwiMi4yNi4xXCIsXG4gICAgICBcIjMuMTFcIixcbiAgICAgIFwiMi44LjBcIixcbiAgICAgIFwiMjIuMDRcIixcbiAgICApO1xuICAvKiogTmV1cm9uIFNESyAyLjI1LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI1XzAgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjUuMFwiLFxuICAgICAgXCIzLjEwXCIsXG4gICAgICBcIjIuNy4wXCIsXG4gICAgICBcIjIyLjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMy4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yM18wID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjIzLjBcIixcbiAgICAgIFwiMy4xMFwiLFxuICAgICAgXCIyLjYuMFwiLFxuICAgICAgXCIyMi4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjIuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjJfMCA9XG4gICAgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICAgIFwiMi4yMi4wXCIsXG4gICAgICBcIjMuMTBcIixcbiAgICAgIFwiMi41LjFcIixcbiAgICAgIFwiMjIuMDRcIixcbiAgICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIwLjIgKFB5VG9yY2ggMi4xLjIpICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMF8yX1BZVE9SQ0hfMl8xXzIgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjAuMlwiLFxuICAgICAgXCIzLjEwXCIsXG4gICAgICBcIjIuMS4yXCIsXG4gICAgICBcIjIwLjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMC4yIChQeVRvcmNoIDEuMTMuMSkgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIwXzJfUFlUT1JDSF8xXzEzXzEgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjAuMlwiLFxuICAgICAgXCIzLjEwXCIsXG4gICAgICBcIjEuMTMuMVwiLFxuICAgICAgXCIyMC4wNFwiLFxuICAgICk7XG4gIC8qKiBMYXRlc3QgTmV1cm9uIFNESyAqL1xuICBzdGF0aWMgcmVhZG9ubHkgTEFURVNUID0gZ2V0TGF0ZXN0VmVyc2lvbih0aGlzKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZSBleHRlbmRzIFB5dG9yY2hOZXVyb254SW1hZ2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgaW1hZ2VOYW1lID0gXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC10cmFpbmluZy1uZXVyb254XCI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UgZXh0ZW5kcyBJTmV1cm9ueEltYWdlIHtcbiAgcmVhZG9ubHkgdmxsbVZlcnNpb246IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlIGV4dGVuZHMgTmV1cm9ueEltYWdlIHtcbiAgLyoqXG4gICAqIE5ldXJvbiBTREsgMi4yNi4wIHdpdGggdkxMTSAwLjkuMVxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI2XzAgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yNi4wXCIsXG4gICAgXCIwLjkuMVwiLFxuICAgIFwiMy4xMVwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIExhdGVzdCBOZXVyb24gU0RLICovXG4gIHN0YXRpYyByZWFkb25seSBMQVRFU1QgPSBnZXRMYXRlc3RWZXJzaW9uPElWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlPih0aGlzKTtcblxuICBzdGF0aWMgZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgbmV1cm9uU2RrVmVyc2lvbjogc3RyaW5nLFxuICAgIHZsbG1WZXJzaW9uOiBzdHJpbmcsXG4gICAgcHl0aG9uVmVyc2lvbjogc3RyaW5nLFxuICAgIHVidW50dVZlcnNpb246IHN0cmluZyxcbiAgKTogSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2Uge1xuICAgIHJldHVybiB7XG4gICAgICBuZXVyb25TZGtWZXJzaW9uLFxuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS12bGxtLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBgJHt2bGxtVmVyc2lvbn0tbmV1cm9ueC1weSR7cHl0aG9uVmVyc2lvbi5yZXBsYWNlKFwiLlwiLCBcIlwiKX0tc2RrJHtuZXVyb25TZGtWZXJzaW9ufS11YnVudHUke3VidW50dVZlcnNpb259YCxcbiAgICAgIHZsbG1WZXJzaW9uLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1sZWFybmluZy1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9kZWVwLWxlYXJuaW5nLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFRbkMsTUFBZSxZQUFZO0NBQUc7QUFFOUIsU0FBUyxnQkFBZ0IsQ0FDdkIsaUJBQXlDO0lBRXpDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztTQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFlLG1CQUFvQixTQUFRLFlBQVk7SUE0SHJELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsZ0JBQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLGFBQXFCO1FBRXJCLE9BQU87WUFDTCxnQkFBZ0I7WUFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxHQUFHLGNBQWMsY0FBYyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxnQkFBZ0IsVUFBVSxhQUFhLEVBQUU7U0FDeEgsQ0FBQztJQUNKLENBQUM7OztBQXRJZSx3QkFBSSxHQUFHLGtCQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxBQUFyQixDQUFzQjtBQUMxQyx3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsOEJBQVUsR0FBRyxFQUFtQixDQUFDLG9CQUFvQixDQUNuRSxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLENBQ1IsQUFMeUIsQ0FLeEI7QUFDRix3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsOEJBQVUsR0FBRyxFQUFtQixDQUFDLG9CQUFvQixDQUNuRSxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLENBQ1IsQUFMeUIsQ0FLeEI7QUFDRix3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsOEJBQVUsR0FBRyxFQUFtQixDQUFDLG9CQUFvQixDQUNuRSxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLENBQ1IsQUFMeUIsQ0FLeEI7QUFDRix3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsOEJBQVUsR0FBRyxFQUFtQixDQUFDLG9CQUFvQixDQUNuRSxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLENBQ1IsQUFMeUIsQ0FLeEI7QUFDRix3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsOEJBQVUsR0FBRyxFQUFtQixDQUFDLG9CQUFvQixDQUNuRSxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLENBQ1IsQUFMeUIsQ0FLeEI7QUFDRix3QkFBd0I7QUFDUiw4QkFBVSxHQUFHLEVBQW1CLENBQUMsb0JBQW9CLENBQ25FLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLDhCQUFVLEdBQUcsRUFBbUIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0Ysd0JBQXdCO0FBQ1IsMEJBQU0sR0FBRyxnQkFBZ0IsQ0FBQyxFQUFJLENBQUMsQUFBekIsQ0FBMEI7QUFpQmxELE1BQXNCLDRCQUE2QixTQUFRLG1CQUFtQjs7QUFBOUUsb0VBb0VDOzs7QUFuRWlCLHNDQUFTLEdBQUcsaURBQWlELEFBQXBELENBQXFEO0FBQzlFLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdCQUF3QjtBQUNSLHVDQUFVLEdBQ3hCLEVBQTRCLENBQUMsb0JBQW9CLENBQy9DLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLE9BQU8sQ0FDUixBQU51QixDQU10QjtBQUNKLHdDQUF3QztBQUN4QixxREFBd0IsR0FDdEMsRUFBNEIsQ0FBQyxvQkFBb0IsQ0FDL0MsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxDQUNSLEFBTnFDLENBTXBDO0FBQ0oseUNBQXlDO0FBQ3pCLHNEQUF5QixHQUN2QyxFQUE0QixDQUFDLG9CQUFvQixDQUMvQyxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixPQUFPLENBQ1IsQUFOc0MsQ0FNckM7QUFDSix3QkFBd0I7QUFDUixtQ0FBTSxHQUFHLGdCQUFnQixDQUFDLEVBQUksQ0FBQyxBQUF6QixDQUEwQjtBQUdsRCxNQUFzQiwyQkFBNEIsU0FBUSxtQkFBbUI7O0FBQTdFLGtFQUVDOzs7QUFEaUIscUNBQVMsR0FBRyxnREFBZ0QsQ0FBQztBQU0vRSxNQUFhLHlCQUEwQixTQUFRLFlBQVk7SUF1RHpELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsZ0JBQXdCLEVBQ3hCLFdBQW1CLEVBQ25CLGFBQXFCLEVBQ3JCLGFBQXFCO1FBRXJCLE9BQU87WUFDTCxnQkFBZ0I7WUFDaEIsU0FBUyxFQUFFLHNEQUFzRDtZQUNqRSxRQUFRLEVBQUUsR0FBRyxXQUFXLGNBQWMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sZ0JBQWdCLFVBQVUsYUFBYSxFQUFFO1lBQ3BILFdBQVc7U0FDWixDQUFDO0lBQ0osQ0FBQzs7QUFuRUgsOERBb0VDOzs7QUFuRUMseUNBQXlDO0FBQ3pCLG9DQUFVLEdBQUcsRUFBeUIsQ0FBQyxvQkFBb0IsQ0FDekUsUUFBUSxFQUNSLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxDQUNSLEFBTHlCLENBS3hCO0FBQ0YseUNBQXlDO0FBQ3pCLGdEQUFzQixHQUNwQyxFQUF5QixDQUFDLG9CQUFvQixDQUM1QyxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLENBQ1IsQUFObUMsQ0FNbEM7QUFDSix5Q0FBeUM7QUFDekIsZ0RBQXNCLEdBQ3BDLEVBQXlCLENBQUMsb0JBQW9CLENBQzVDLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQU5tQyxDQU1sQztBQUNKLHdDQUF3QztBQUN4QixvQ0FBVSxHQUFHLEVBQXlCLENBQUMsb0JBQW9CLENBQ3pFLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdDQUF3QztBQUN4QixvQ0FBVSxHQUFHLEVBQXlCLENBQUMsb0JBQW9CLENBQ3pFLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdDQUF3QztBQUN4QixvQ0FBVSxHQUFHLEVBQXlCLENBQUMsb0JBQW9CLENBQ3pFLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdDQUF3QztBQUN4QixvQ0FBVSxHQUFHLEVBQXlCLENBQUMsb0JBQW9CLENBQ3pFLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sQ0FDUixBQUx5QixDQUt4QjtBQUNGLHdCQUF3QjtBQUNSLGdDQUFNLEdBQUcsZ0JBQWdCLENBQTZCLEVBQUksQ0FBQyxBQUFyRCxDQUFzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueEltYWdlIHtcbiAgcmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlVGFnOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldXJvblNka1ZlcnNpb246IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgTmV1cm9ueEltYWdlIHt9XG5cbmZ1bmN0aW9uIGdldExhdGVzdFZlcnNpb248VCBleHRlbmRzIElOZXVyb254SW1hZ2UgPSBJTmV1cm9ueEltYWdlPihcbiAgbmV1cm9ueEltYWdlQ2xhc3M6IGFic3RyYWN0IG5ldyAoKSA9PiBhbnksXG4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG5ldXJvbnhJbWFnZUNsYXNzKVxuICAgIC5maWx0ZXIoKFtrXSkgPT4gay5zdGFydHNXaXRoKFwiU0RLX1wiKSlcbiAgICAuc29ydCgoW2sxXSwgW2syXSkgPT4gKGsxIDwgazIgPyAxIDogLTEpKVxuICAgIC5tYXAoKFtfLCB2XSkgPT4gdilbMF0gYXMgVDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgUHl0b3JjaE5ldXJvbnhJbWFnZSBleHRlbmRzIE5ldXJvbnhJbWFnZSB7XG4gIHN0YXRpYyByZWFkb25seSBzaXplID0gU2l6ZS5naWJpYnl0ZXMoMzApO1xuICAvKiogTmV1cm9uIFNESyAyLjI4LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI4XzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yOC4wXCIsXG4gICAgXCIzLjEyXCIsXG4gICAgXCIyLjkuMFwiLFxuICAgIFwiMjQuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNy4xICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yN18xID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjcuMVwiLFxuICAgIFwiMy4xMlwiLFxuICAgIFwiMi45LjBcIixcbiAgICBcIjI0LjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjYuMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjZfMSA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjI2LjFcIixcbiAgICBcIjMuMTFcIixcbiAgICBcIjIuOC4wXCIsXG4gICAgXCIyMi4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjI1LjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI1XzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yNS4wXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjcuMFwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNC4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yNF8wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjQuMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi43LjBcIixcbiAgICBcIjIyLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjMuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjNfMCA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjIzLjBcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuNi4wXCIsXG4gICAgXCIyMi4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIyLjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIyXzAgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yMi4wXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjUuMVwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMS4xICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMV8xID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjEuMVwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi41LjFcIixcbiAgICBcIjIyLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjEuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjFfMCA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjIxLjBcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuNS4xXCIsXG4gICAgXCIyMi4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIwLjIgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIwXzIgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yMC4yXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMC4xICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMF8xID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjAuMVwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi4xLjJcIixcbiAgICBcIjIwLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjAuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjBfMCA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjIwLjBcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuMS4yXCIsXG4gICAgXCIyMC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjE5LjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzE5XzEgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4xOS4xXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4xOS4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8xOV8wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMTkuMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi4xLjJcIixcbiAgICBcIjIwLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMTguMiAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMThfMiA9IFB5dG9yY2hOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjE4LjJcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIuMS4yXCIsXG4gICAgXCIyMC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjE4LjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzE4XzEgPSBQeXRvcmNoTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4xOC4xXCIsXG4gICAgXCIzLjEwXCIsXG4gICAgXCIyLjEuMlwiLFxuICAgIFwiMjAuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4xOC4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8xOF8wID0gUHl0b3JjaE5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMTguMFwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMi4xLjJcIixcbiAgICBcIjIwLjA0XCIsXG4gICk7XG4gIC8qKiBMYXRlc3QgTmV1cm9uIFNESyAqL1xuICBzdGF0aWMgcmVhZG9ubHkgTEFURVNUID0gZ2V0TGF0ZXN0VmVyc2lvbih0aGlzKTtcblxuICBzdGF0aWMgZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgbmV1cm9uU2RrVmVyc2lvbjogc3RyaW5nLFxuICAgIHB5dGhvblZlcnNpb246IHN0cmluZyxcbiAgICBweXRvcmNoVmVyc2lvbjogc3RyaW5nLFxuICAgIHVidW50dVZlcnNpb246IHN0cmluZyxcbiAgKTogSU5ldXJvbnhJbWFnZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ldXJvblNka1ZlcnNpb24sXG4gICAgICBpbWFnZU5hbWU6IHRoaXMuaW1hZ2VOYW1lLFxuICAgICAgaW1hZ2VUYWc6IGAke3B5dG9yY2hWZXJzaW9ufS1uZXVyb254LXB5JHtweXRob25WZXJzaW9uLnJlcGxhY2UoXCIuXCIsIFwiXCIpfS1zZGske25ldXJvblNka1ZlcnNpb259LXVidW50dSR7dWJ1bnR1VmVyc2lvbn1gLFxuICAgIH07XG4gIH1cbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UgZXh0ZW5kcyBQeXRvcmNoTmV1cm9ueEltYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IGltYWdlTmFtZSA9IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIjtcbiAgLyoqIE5ldXJvbiBTREsgMi4yOC4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yOF8wID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjI4LjBcIixcbiAgICAgIFwiMy4xMlwiLFxuICAgICAgXCIyLjkuMFwiLFxuICAgICAgXCIyNC4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjcuMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjdfMSA9XG4gICAgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICAgIFwiMi4yNy4xXCIsXG4gICAgICBcIjMuMTJcIixcbiAgICAgIFwiMi45LjBcIixcbiAgICAgIFwiMjQuMDRcIixcbiAgICApO1xuICAvKiogTmV1cm9uIFNESyAyLjI2LjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI2XzEgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjYuMVwiLFxuICAgICAgXCIzLjExXCIsXG4gICAgICBcIjIuOC4wXCIsXG4gICAgICBcIjIyLjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNS4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yNV8wID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjI1LjBcIixcbiAgICAgIFwiMy4xMFwiLFxuICAgICAgXCIyLjcuMFwiLFxuICAgICAgXCIyMi4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjMuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjNfMCA9XG4gICAgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICAgIFwiMi4yMy4wXCIsXG4gICAgICBcIjMuMTBcIixcbiAgICAgIFwiMi42LjBcIixcbiAgICAgIFwiMjIuMDRcIixcbiAgICApO1xuICAvKiogTmV1cm9uIFNESyAyLjIyLjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzIyXzAgPVxuICAgIFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjIuMFwiLFxuICAgICAgXCIzLjEwXCIsXG4gICAgICBcIjIuNS4xXCIsXG4gICAgICBcIjIyLjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yMC4yIChQeVRvcmNoIDIuMS4yKSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjBfMl9QWVRPUkNIXzJfMV8yID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjIwLjJcIixcbiAgICAgIFwiMy4xMFwiLFxuICAgICAgXCIyLjEuMlwiLFxuICAgICAgXCIyMC4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjAuMiAoUHlUb3JjaCAxLjEzLjEpICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yMF8yX1BZVE9SQ0hfMV8xM18xID1cbiAgICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgICAgXCIyLjIwLjJcIixcbiAgICAgIFwiMy4xMFwiLFxuICAgICAgXCIxLjEzLjFcIixcbiAgICAgIFwiMjAuMDRcIixcbiAgICApO1xuICAvKiogTGF0ZXN0IE5ldXJvbiBTREsgKi9cbiAgc3RhdGljIHJlYWRvbmx5IExBVEVTVCA9IGdldExhdGVzdFZlcnNpb24odGhpcyk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UgZXh0ZW5kcyBQeXRvcmNoTmV1cm9ueEltYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IGltYWdlTmFtZSA9IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtdHJhaW5pbmctbmV1cm9ueFwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlIGV4dGVuZHMgSU5ldXJvbnhJbWFnZSB7XG4gIHJlYWRvbmx5IHZsbG1WZXJzaW9uOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSBleHRlbmRzIE5ldXJvbnhJbWFnZSB7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjguMCB3aXRoIHZMTE0gMC4xMy4wICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yOF8wID0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjguMFwiLFxuICAgIFwiMC4xMy4wXCIsXG4gICAgXCIzLjEyXCIsXG4gICAgXCIyNC4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjI3LjEgd2l0aCB2TExNIDAuMTMuMCAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjdfMV9WTExNXzBfMTNfMCA9XG4gICAgVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICAgIFwiMi4yNy4xXCIsXG4gICAgICBcIjAuMTMuMFwiLFxuICAgICAgXCIzLjEyXCIsXG4gICAgICBcIjI0LjA0XCIsXG4gICAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNy4xIHdpdGggdkxMTSAwLjExLjAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI3XzFfVkxMTV8wXzExXzAgPVxuICAgIFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgICBcIjIuMjcuMVwiLFxuICAgICAgXCIwLjExLjBcIixcbiAgICAgIFwiMy4xMlwiLFxuICAgICAgXCIyNC4wNFwiLFxuICAgICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjYuMSB3aXRoIHZMTE0gMC45LjEgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI2XzEgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yNi4xXCIsXG4gICAgXCIwLjkuMVwiLFxuICAgIFwiMy4xMVwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIE5ldXJvbiBTREsgMi4yNi4wIHdpdGggdkxMTSAwLjkuMSAqL1xuICBzdGF0aWMgcmVhZG9ubHkgU0RLXzJfMjZfMCA9IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgXCIyLjI2LjBcIixcbiAgICBcIjAuOS4xXCIsXG4gICAgXCIzLjExXCIsXG4gICAgXCIyMi4wNFwiLFxuICApO1xuICAvKiogTmV1cm9uIFNESyAyLjI1LjAgd2l0aCB2TExNIDAuOS4xICovXG4gIHN0YXRpYyByZWFkb25seSBTREtfMl8yNV8wID0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5mcm9tTmV1cm9uU2RrVmVyc2lvbihcbiAgICBcIjIuMjUuMFwiLFxuICAgIFwiMC45LjFcIixcbiAgICBcIjMuMTBcIixcbiAgICBcIjIyLjA0XCIsXG4gICk7XG4gIC8qKiBOZXVyb24gU0RLIDIuMjQuMSB3aXRoIHZMTE0gMC43LjIgKi9cbiAgc3RhdGljIHJlYWRvbmx5IFNES18yXzI0XzEgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmZyb21OZXVyb25TZGtWZXJzaW9uKFxuICAgIFwiMi4yNC4xXCIsXG4gICAgXCIwLjcuMlwiLFxuICAgIFwiMy4xMFwiLFxuICAgIFwiMjIuMDRcIixcbiAgKTtcbiAgLyoqIExhdGVzdCBOZXVyb24gU0RLICovXG4gIHN0YXRpYyByZWFkb25seSBMQVRFU1QgPSBnZXRMYXRlc3RWZXJzaW9uPElWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlPih0aGlzKTtcblxuICBzdGF0aWMgZnJvbU5ldXJvblNka1ZlcnNpb24oXG4gICAgbmV1cm9uU2RrVmVyc2lvbjogc3RyaW5nLFxuICAgIHZsbG1WZXJzaW9uOiBzdHJpbmcsXG4gICAgcHl0aG9uVmVyc2lvbjogc3RyaW5nLFxuICAgIHVidW50dVZlcnNpb246IHN0cmluZyxcbiAgKTogSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2Uge1xuICAgIHJldHVybiB7XG4gICAgICBuZXVyb25TZGtWZXJzaW9uLFxuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS12bGxtLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBgJHt2bGxtVmVyc2lvbn0tbmV1cm9ueC1weSR7cHl0aG9uVmVyc2lvbi5yZXBsYWNlKFwiLlwiLCBcIlwiKX0tc2RrJHtuZXVyb25TZGtWZXJzaW9ufS11YnVudHUke3VidW50dVZlcnNpb259YCxcbiAgICAgIHZsbG1WZXJzaW9uLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -84,8 +84,42 @@ describe("VllmInferenceNeuronxImage", () => {
|
|
|
84
84
|
vllmVersion: expect.any(String),
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
it("SDK 2.28.0 is defined", () => {
|
|
88
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_28_0;
|
|
89
|
+
expect(image).toStrictEqual({
|
|
90
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
91
|
+
imageTag: "0.13.0-neuronx-py312-sdk2.28.0-ubuntu24.04",
|
|
92
|
+
neuronSdkVersion: "2.28.0",
|
|
93
|
+
vllmVersion: "0.13.0",
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it("SDK 2.27.1 with vLLM 0.13.0 is defined", () => {
|
|
97
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_27_1_VLLM_0_13_0;
|
|
98
|
+
expect(image).toStrictEqual({
|
|
99
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
100
|
+
imageTag: "0.13.0-neuronx-py312-sdk2.27.1-ubuntu24.04",
|
|
101
|
+
neuronSdkVersion: "2.27.1",
|
|
102
|
+
vllmVersion: "0.13.0",
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
it("SDK 2.27.1 with vLLM 0.11.0 is defined", () => {
|
|
106
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_27_1_VLLM_0_11_0;
|
|
107
|
+
expect(image).toStrictEqual({
|
|
108
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
109
|
+
imageTag: "0.11.0-neuronx-py312-sdk2.27.1-ubuntu24.04",
|
|
110
|
+
neuronSdkVersion: "2.27.1",
|
|
111
|
+
vllmVersion: "0.11.0",
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
it("SDK 2.26.1 is defined", () => {
|
|
115
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_26_1;
|
|
116
|
+
expect(image).toStrictEqual({
|
|
117
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
118
|
+
imageTag: "0.9.1-neuronx-py311-sdk2.26.1-ubuntu22.04",
|
|
119
|
+
neuronSdkVersion: "2.26.1",
|
|
120
|
+
vllmVersion: "0.9.1",
|
|
121
|
+
});
|
|
122
|
+
});
|
|
89
123
|
it("SDK 2.26.0 is defined", () => {
|
|
90
124
|
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_26_0;
|
|
91
125
|
expect(image).toStrictEqual({
|
|
@@ -95,5 +129,48 @@ describe("VllmInferenceNeuronxImage", () => {
|
|
|
95
129
|
vllmVersion: "0.9.1",
|
|
96
130
|
});
|
|
97
131
|
});
|
|
132
|
+
it("SDK 2.25.0 is defined", () => {
|
|
133
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_25_0;
|
|
134
|
+
expect(image).toStrictEqual({
|
|
135
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
136
|
+
imageTag: "0.9.1-neuronx-py310-sdk2.25.0-ubuntu22.04",
|
|
137
|
+
neuronSdkVersion: "2.25.0",
|
|
138
|
+
vllmVersion: "0.9.1",
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
it("SDK 2.24.1 is defined", () => {
|
|
142
|
+
const image = deep_learning_containers_1.VllmInferenceNeuronxImage.SDK_2_24_1;
|
|
143
|
+
expect(image).toStrictEqual({
|
|
144
|
+
imageName: "public.ecr.aws/neuron/pytorch-inference-vllm-neuronx",
|
|
145
|
+
imageTag: "0.7.2-neuronx-py310-sdk2.24.1-ubuntu22.04",
|
|
146
|
+
neuronSdkVersion: "2.24.1",
|
|
147
|
+
vllmVersion: "0.7.2",
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
it("LATEST points to the highest SDK version", () => {
|
|
151
|
+
expect(deep_learning_containers_1.VllmInferenceNeuronxImage.LATEST.neuronSdkVersion).toBe("2.28.0");
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe("PytorchTrainingNeuronxImage", () => {
|
|
155
|
+
it("Can get LATEST version", () => {
|
|
156
|
+
const image = deep_learning_containers_1.PytorchTrainingNeuronxImage.LATEST;
|
|
157
|
+
expect(image).not.toBeUndefined();
|
|
158
|
+
expect(image).toStrictEqual({
|
|
159
|
+
imageName: undefined,
|
|
160
|
+
imageTag: expect.any(String),
|
|
161
|
+
neuronSdkVersion: expect.any(String),
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
it("SDK 2.28.0 is defined", () => {
|
|
165
|
+
const image = deep_learning_containers_1.PytorchTrainingNeuronxImage.SDK_2_28_0;
|
|
166
|
+
expect(image).toStrictEqual({
|
|
167
|
+
imageName: undefined,
|
|
168
|
+
imageTag: "2.9.0-neuronx-py312-sdk2.28.0-ubuntu24.04",
|
|
169
|
+
neuronSdkVersion: "2.28.0",
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
it("LATEST points to the highest SDK version", () => {
|
|
173
|
+
expect(deep_learning_containers_1.PytorchTrainingNeuronxImage.LATEST.neuronSdkVersion).toBe("2.28.0");
|
|
174
|
+
});
|
|
98
175
|
});
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1sZWFybmluZy1jb250YWluZXJzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9uZXVyb254L2RlZXAtbGVhcm5pbmctY29udGFpbmVycy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUVBR29DO0FBRXBDLFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyx1REFBNEIsQ0FBQyxNQUFNLENBQUM7UUFDbEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sS0FBSyxHQUFHLHVEQUE0QixDQUFDLFVBQVUsQ0FBQztRQUN0RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxpREFBaUQ7WUFDNUQsUUFBUSxFQUFFLDJDQUEyQztZQUNyRCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLEtBQUssR0FBRyx1REFBNEIsQ0FBQyxVQUFVLENBQUM7UUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFB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Q0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3BDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sS0FBSyxHQUFHLG9EQUF5QixDQUFDLFVBQVUsQ0FBQztRQUNuRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxzREFBc0Q7WUFDakUsUUFBUSxFQUFFLDJDQUEyQztZQUNyRCxnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLFdBQVcsRUFBRSxPQUFPO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxuICBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxufSBmcm9tIFwiLi9kZWVwLWxlYXJuaW5nLWNvbnRhaW5lcnNcIjtcblxuZGVzY3JpYmUoXCJQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlXCIsICgpID0+IHtcbiAgaXQoXCJDYW4gZ2V0IExBVEVTVCB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIGV4cGVjdChpbWFnZSkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgICBleHBlY3QoaW1hZ2UuaW1hZ2VUYWcpLnRvRXF1YWwoZXhwZWN0LmFueShTdHJpbmcpKTtcbiAgICBleHBlY3QoaW1hZ2UubmV1cm9uU2RrVmVyc2lvbikudG9FcXVhbChleHBlY3QuYW55KFN0cmluZykpO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI4LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI4XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi45LjAtbmV1cm9ueC1weTMxMi1zZGsyLjI4LjAtdWJ1bnR1MjQuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yOC4wXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjcuMSBpcyBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuU0RLXzJfMjdfMTtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIyLjkuMC1uZXVyb254LXB5MzEyLXNkazIuMjcuMS11YnVudHUyNC4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjI3LjFcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNi4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yNl8xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjIuOC4wLW5ldXJvbngtcHkzMTEtc2RrMi4yNi4xLXVidW50dTIyLjA0XCIsXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBcIjIuMjYuMVwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI1LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI1XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi43LjAtbmV1cm9ueC1weTMxMC1zZGsyLjI1LjAtdWJ1bnR1MjIuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNS4wXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjMuMCBpcyBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuU0RLXzJfMjNfMDtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIyLjYuMC1uZXVyb254LXB5MzEwLXNkazIuMjMuMC11YnVudHUyMi4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjIzLjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yMi4wIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMl8wO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjIuNS4xLW5ldXJvbngtcHkzMTAtc2RrMi4yMi4wLXVidW50dTIyLjA0XCIsXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBcIjIuMjIuMFwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjIwLjIgd2l0aCBQeVRvcmNoIDIuMS4yIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMF8yX1BZVE9SQ0hfMl8xXzI7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi4xLjItbmV1cm9ueC1weTMxMC1zZGsyLjIwLjItdWJ1bnR1MjAuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yMC4yXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjAuMiB3aXRoIFB5VG9yY2ggMS4xMy4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMF8yX1BZVE9SQ0hfMV8xM18xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjEuMTMuMS1uZXVyb254LXB5MzEwLXNkazIuMjAuMi11YnVudHUyMC4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjIwLjJcIixcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlXCIsICgpID0+IHtcbiAgaXQoXCJDYW4gZ2V0IExBVEVTVCB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIGV4cGVjdChpbWFnZSkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS12bGxtLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBleHBlY3QuYW55KFN0cmluZyksXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBleHBlY3QuYW55KFN0cmluZyksXG4gICAgICB2bGxtVmVyc2lvbjogZXhwZWN0LmFueShTdHJpbmcpLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIlZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2VcIiwgKCkgPT4ge1xuICBpdChcIlNESyAyLjI2LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI2XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtdmxsbS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIwLjkuMS1uZXVyb254LXB5MzExLXNkazIuMjYuMC11YnVudHUyMi4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjI2LjBcIixcbiAgICAgIHZsbG1WZXJzaW9uOiBcIjAuOS4xXCIsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1sZWFybmluZy1jb250YWluZXJzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9uZXVyb254L2RlZXAtbGVhcm5pbmctY29udGFpbmVycy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUVBSW9DO0FBRXBDLFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyx1REFBNEIsQ0FBQyxNQUFNLENBQUM7UUFDbEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sS0FBSyxHQUFHLHVEQUE0QixDQUFDLFVBQVUsQ0FBQztRQUN0RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQzFCLFNBQVMsRUFBRSxpREFBaUQ7WUFDNUQsUUFBUSxFQUFFLDJDQUEyQztZQUNyRCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLEtBQUssR0FBRyx1REFBNEIsQ0FBQyxVQUFVLENBQUM7UUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFB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Q0FBQztJQUM3RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxufSBmcm9tIFwiLi9kZWVwLWxlYXJuaW5nLWNvbnRhaW5lcnNcIjtcblxuZGVzY3JpYmUoXCJQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlXCIsICgpID0+IHtcbiAgaXQoXCJDYW4gZ2V0IExBVEVTVCB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIGV4cGVjdChpbWFnZSkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgICBleHBlY3QoaW1hZ2UuaW1hZ2VUYWcpLnRvRXF1YWwoZXhwZWN0LmFueShTdHJpbmcpKTtcbiAgICBleHBlY3QoaW1hZ2UubmV1cm9uU2RrVmVyc2lvbikudG9FcXVhbChleHBlY3QuYW55KFN0cmluZykpO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI4LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI4XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi45LjAtbmV1cm9ueC1weTMxMi1zZGsyLjI4LjAtdWJ1bnR1MjQuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yOC4wXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjcuMSBpcyBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuU0RLXzJfMjdfMTtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIyLjkuMC1uZXVyb254LXB5MzEyLXNkazIuMjcuMS11YnVudHUyNC4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjI3LjFcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNi4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yNl8xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjIuOC4wLW5ldXJvbngtcHkzMTEtc2RrMi4yNi4xLXVidW50dTIyLjA0XCIsXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBcIjIuMjYuMVwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI1LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI1XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi43LjAtbmV1cm9ueC1weTMxMC1zZGsyLjI1LjAtdWJ1bnR1MjIuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNS4wXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjMuMCBpcyBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFB5dG9yY2hJbmZlcmVuY2VOZXVyb254SW1hZ2UuU0RLXzJfMjNfMDtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIyLjYuMC1uZXVyb254LXB5MzEwLXNkazIuMjMuMC11YnVudHUyMi4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjIzLjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yMi4wIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMl8wO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjIuNS4xLW5ldXJvbngtcHkzMTAtc2RrMi4yMi4wLXVidW50dTIyLjA0XCIsXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBcIjIuMjIuMFwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjIwLjIgd2l0aCBQeVRvcmNoIDIuMS4yIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMF8yX1BZVE9SQ0hfMl8xXzI7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMi4xLjItbmV1cm9ueC1weTMxMC1zZGsyLjIwLjItdWJ1bnR1MjAuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yMC4yXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjAuMiB3aXRoIFB5VG9yY2ggMS4xMy4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gUHl0b3JjaEluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yMF8yX1BZVE9SQ0hfMV8xM18xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjEuMTMuMS1uZXVyb254LXB5MzEwLXNkazIuMjAuMi11YnVudHUyMC4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjIwLjJcIixcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlXCIsICgpID0+IHtcbiAgaXQoXCJDYW4gZ2V0IExBVEVTVCB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIGV4cGVjdChpbWFnZSkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS12bGxtLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBleHBlY3QuYW55KFN0cmluZyksXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBleHBlY3QuYW55KFN0cmluZyksXG4gICAgICB2bGxtVmVyc2lvbjogZXhwZWN0LmFueShTdHJpbmcpLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI4LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI4XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtdmxsbS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIwLjEzLjAtbmV1cm9ueC1weTMxMi1zZGsyLjI4LjAtdWJ1bnR1MjQuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yOC4wXCIsXG4gICAgICB2bGxtVmVyc2lvbjogXCIwLjEzLjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNy4xIHdpdGggdkxMTSAwLjEzLjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI3XzFfVkxMTV8wXzEzXzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtdmxsbS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIwLjEzLjAtbmV1cm9ueC1weTMxMi1zZGsyLjI3LjEtdWJ1bnR1MjQuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNy4xXCIsXG4gICAgICB2bGxtVmVyc2lvbjogXCIwLjEzLjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNy4xIHdpdGggdkxMTSAwLjExLjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI3XzFfVkxMTV8wXzExXzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtdmxsbS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIwLjExLjAtbmV1cm9ueC1weTMxMi1zZGsyLjI3LjEtdWJ1bnR1MjQuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNy4xXCIsXG4gICAgICB2bGxtVmVyc2lvbjogXCIwLjExLjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNi4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yNl8xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLXZsbG0tbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMC45LjEtbmV1cm9ueC1weTMxMS1zZGsyLjI2LjEtdWJ1bnR1MjIuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNi4xXCIsXG4gICAgICB2bGxtVmVyc2lvbjogXCIwLjkuMVwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI2LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLlNES18yXzI2XzA7XG4gICAgZXhwZWN0KGltYWdlKS50b1N0cmljdEVxdWFsKHtcbiAgICAgIGltYWdlTmFtZTogXCJwdWJsaWMuZWNyLmF3cy9uZXVyb24vcHl0b3JjaC1pbmZlcmVuY2UtdmxsbS1uZXVyb254XCIsXG4gICAgICBpbWFnZVRhZzogXCIwLjkuMS1uZXVyb254LXB5MzExLXNkazIuMjYuMC11YnVudHUyMi4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjI2LjBcIixcbiAgICAgIHZsbG1WZXJzaW9uOiBcIjAuOS4xXCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiU0RLIDIuMjUuMCBpcyBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuU0RLXzJfMjVfMDtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiBcInB1YmxpYy5lY3IuYXdzL25ldXJvbi9weXRvcmNoLWluZmVyZW5jZS12bGxtLW5ldXJvbnhcIixcbiAgICAgIGltYWdlVGFnOiBcIjAuOS4xLW5ldXJvbngtcHkzMTAtc2RrMi4yNS4wLXVidW50dTIyLjA0XCIsXG4gICAgICBuZXVyb25TZGtWZXJzaW9uOiBcIjIuMjUuMFwiLFxuICAgICAgdmxsbVZlcnNpb246IFwiMC45LjFcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJTREsgMi4yNC4xIGlzIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGltYWdlID0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5TREtfMl8yNF8xO1xuICAgIGV4cGVjdChpbWFnZSkudG9TdHJpY3RFcXVhbCh7XG4gICAgICBpbWFnZU5hbWU6IFwicHVibGljLmVjci5hd3MvbmV1cm9uL3B5dG9yY2gtaW5mZXJlbmNlLXZsbG0tbmV1cm9ueFwiLFxuICAgICAgaW1hZ2VUYWc6IFwiMC43LjItbmV1cm9ueC1weTMxMC1zZGsyLjI0LjEtdWJ1bnR1MjIuMDRcIixcbiAgICAgIG5ldXJvblNka1ZlcnNpb246IFwiMi4yNC4xXCIsXG4gICAgICB2bGxtVmVyc2lvbjogXCIwLjcuMlwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIkxBVEVTVCBwb2ludHMgdG8gdGhlIGhpZ2hlc3QgU0RLIHZlcnNpb25cIiwgKCkgPT4ge1xuICAgIGV4cGVjdChWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVC5uZXVyb25TZGtWZXJzaW9uKS50b0JlKFwiMi4yOC4wXCIpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIlB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZVwiLCAoKSA9PiB7XG4gIGl0KFwiQ2FuIGdldCBMQVRFU1QgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIGV4cGVjdChpbWFnZSkubm90LnRvQmVVbmRlZmluZWQoKTtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiB1bmRlZmluZWQsXG4gICAgICBpbWFnZVRhZzogZXhwZWN0LmFueShTdHJpbmcpLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogZXhwZWN0LmFueShTdHJpbmcpLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIlNESyAyLjI4LjAgaXMgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2UgPSBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UuU0RLXzJfMjhfMDtcbiAgICBleHBlY3QoaW1hZ2UpLnRvU3RyaWN0RXF1YWwoe1xuICAgICAgaW1hZ2VOYW1lOiB1bmRlZmluZWQsXG4gICAgICBpbWFnZVRhZzogXCIyLjkuMC1uZXVyb254LXB5MzEyLXNkazIuMjguMC11YnVudHUyNC4wNFwiLFxuICAgICAgbmV1cm9uU2RrVmVyc2lvbjogXCIyLjI4LjBcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJMQVRFU1QgcG9pbnRzIHRvIHRoZSBoaWdoZXN0IFNESyB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICBleHBlY3QoUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLkxBVEVTVC5uZXVyb25TZGtWZXJzaW9uKS50b0JlKFwiMi4yOC4wXCIpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -84,7 +84,7 @@ class Parameters {
|
|
|
84
84
|
}
|
|
85
85
|
exports.Parameters = Parameters;
|
|
86
86
|
_a = JSII_RTTI_SYMBOL_1;
|
|
87
|
-
Parameters[_a] = { fqn: "aws-cdk-neuronx-patterns.Parameters", version: "0.
|
|
87
|
+
Parameters[_a] = { fqn: "aws-cdk-neuronx-patterns.Parameters", version: "0.2.1" };
|
|
88
88
|
/**
|
|
89
89
|
* Compile target model.
|
|
90
90
|
*/
|
|
@@ -149,5 +149,5 @@ class Model {
|
|
|
149
149
|
}
|
|
150
150
|
exports.Model = Model;
|
|
151
151
|
_b = JSII_RTTI_SYMBOL_1;
|
|
152
|
-
Model[_b] = { fqn: "aws-cdk-neuronx-patterns.Model", version: "0.
|
|
152
|
+
Model[_b] = { fqn: "aws-cdk-neuronx-patterns.Model", version: "0.2.1" };
|
|
153
153
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9uZXVyb254L21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBRzFDLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixnRUFBaUIsQ0FBQTtJQUNqQiw2REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxZQUFZLDRCQUFaLFlBQVksUUFHdkI7QUFFRDs7R0FFRztBQUNILElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHVCQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsVUFBVSwwQkFBVixVQUFVLFFBS3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFFBYVg7QUFiRCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCw2RUFBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILHVEQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gscUZBQStCLENBQUE7QUFDakMsQ0FBQyxFQWJXLFFBQVEsd0JBQVIsUUFBUSxRQWFuQjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBQ3JCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQWtCO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFrQjtRQUMvQixPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0Q7SUFDRTs7T0FFRztJQUNjLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDbEMsQ0FBQztJQUNKOzs7T0FHRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFDRDs7O09BR0c7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TixNQUFNLENBQVU7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUN2QixDQUFDOztBQWxFTixzQkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcblxuZXhwb3J0IGVudW0gRGF0YVR5cGVCaXRzIHtcbiAgQkYxNl9PUl9GUDE2ID0gMTYsXG4gIEZQOF9PUl9JTlQ4ID0gOCxcbn1cblxuLyoqXG4gKiBRdWFudCBkYXRhIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIFF1YW50RHR5cGUge1xuICAvKipcbiAgICogaW50OCB3ZWlnaHQgc3RvcmFnZS5cbiAgICovXG4gIFM4ID0gXCJzOFwiLFxufVxuXG4vKipcbiAqIE9wdGltaXphdGlvbiBsZXZlbC5cbiAqL1xuZXhwb3J0IGVudW0gT3B0TGV2ZWwge1xuICAvKipcbiAgICogZW5hYmxlcyB0aGUgY29yZSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zIGluIHRoZSBjb21waWxlciwgd2hpbGUgYWxzbyBtaW5pbWl6aW5nIGNvbXBpbGUgdGltZS5cbiAgICovXG4gIE1JTklNSVpJTkdfQ09NUElMRV9USU1FID0gMSxcbiAgLyoqXG4gICAqIHByb3ZpZGVzIHRoZSBiZXN0IGJhbGFuY2UgYmV0d2VlbiBtb2RlbCBwZXJmb3JtYW5jZSBhbmQgY29tcGlsZSB0aW1lLlxuICAgKi9cbiAgQkVTVF9CQUxBTkNFID0gMixcbiAgLyoqXG4gICAqIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgbW9kZWwgZXhlY3V0aW9uIHBlcmZvcm1hbmNlIGJ1dCBtYXkgaW5jdXIgbG9uZ2VyIGNvbXBpbGUgdGltZXMgYW5kIGhpZ2hlciBob3N0IG1lbW9yeSB1c2FnZSBkdXJpbmcgbW9kZWwgY29tcGlsYXRpb24uXG4gICAqL1xuICBNT0RFTF9FWEVDVVRJT05fUEVSRk9STUFOQ0UgPSAzLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBQYXJhbWV0ZXJzIHJlcHJlc2VudGluZyBhbiBhbW91bnQgbWlsbGlvbi5cbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgbnVtYmVyIG9mIHBhcmFtZXRlcnMgbWlsbGlvblhcbiAgICogQHJldHVybnMgcGFyYW1ldGVyc1xuICAgKi9cbiAgc3RhdGljIG1pbGxpb24ocGFyYW1ldGVyczogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJzKHBhcmFtZXRlcnMgKiAxMDAwMDAwKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlIGEgUGFyYW1ldGVycyByZXByZXNlbnRpbmcgYW4gYW1vdW50IGJpbGxpb24uXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGJpbGxpb25YXG4gICAqIEByZXR1cm5zIHBhcmFtZXRlcnNcbiAgICovXG4gIHN0YXRpYyBiaWxsaW9uKHBhcmFtZXRlcnM6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUGFyYW1ldGVycyhwYXJhbWV0ZXJzICogMTAwMDAwMDAwMCk7XG4gIH1cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBudW1iZXIgb2YgcGFyZW10ZXJzLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1ldGVyczogbnVtYmVyLFxuICApIHt9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhpcyBudW1iZXIgb2YgcGFyYW1ldGVycyBhcyBtaWxsaW9uLlxuICAgKiBAcmV0dXJucyBUaGlzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGFzIG1pbGxpb24uXG4gICAqL1xuICB0b01pbGxpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycyAvIDEwMDAwMDA7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybiB0aGlzIG51bWJlciBvZiBwYXJhbWV0ZXJzIGFzIGJpbGxpb24uXG4gICAqIEByZXR1cm5zIFRoaXMgbnVtYmVyIG9mIHBhcmFtZXRlcnMgYXMgYmlsbGlvbi5cbiAgICovXG4gIHRvQmlsbGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzIC8gMTAwMDAwMDAwMDtcbiAgfVxuICB3ZWlnaHRTaXplKCkge1xuICAgIHJldHVybiBTaXplLmdpYmlieXRlcyh0aGlzLnRvQmlsbGlvbigpICogMi41KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsQ29uZmlnIHtcbiAgcmVhZG9ubHkgbGF5ZXJzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVtYmVkZGluZ0RpbWVuc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBhdHRlbnRpb25IZWFkczogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXBpbGUgdGFyZ2V0IG1vZGVsIGJhc2ljIGluZnJvbWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxPcHRpb25zIHtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogTW9kZWxDb25maWc7XG4gIHJlYWRvbmx5IG1vZGVsTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21waWxlIHRhcmdldCBtb2RlbC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vZGVsIHtcbiAgLyoqXG4gICAqIG1vZGVsIGluZm9ybWF0aW9ucyBhdCBIdWdnaW5nRmFjZVxuICAgKiBAcGFyYW0gbW9kZWxJZCBtb2RlbCBpZCBvbiB0aGUgSHVnZ2luZ0ZhY2VcbiAgICogQHBhcmFtIG9wdGlvbnMgbW9kZWwgYmFzaWMgaW5mb3JtYXRpb25cbiAgICogQHJldHVybnMgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBmcm9tSHVnZ2luZ0ZhY2UobW9kZWxJZDogc3RyaW5nLCBvcHRpb25zPzogTW9kZWxPcHRpb25zKSB7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IG9wdGlvbnM/LnBhcmFtZXRlcnMgPz8gTW9kZWwubWF5YmVQYXJhbXMobW9kZWxJZCk7XG4gICAgaWYgKCFwYXJhbWV0ZXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBtb2RlbCBJRC4gU2V0IG9wdGlvbmFsIHBhcmFtZXRlcnMuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE1vZGVsKG1vZGVsSWQsIG9wdGlvbnM/Lm1vZGVsTmFtZSA/PyBtb2RlbElkLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcGFyYW1ldGVycyxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogbW9kZWwgaW5mb3JtYXRpb25zIGF0IFMzIEJ1Y2tldFxuICAgKiBAcGFyYW0gYnVja2V0IE1vZGVsIHN0b3JlZCBTMyBCdWNrZXRcbiAgICogQHBhcmFtIHByZWZpeCBNb2RlbCBzdG9yZWQgb2JqZWN0cyBwcmVmaXhcbiAgICogQHBhcmFtIG9wdGlvbnMgbW9kZWwgYmFzaWMgaW5mb3JtYXRpb25cbiAgICogQHJldHVybnMgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBmcm9tQnVja2V0KGJ1Y2tldDogSUJ1Y2tldCwgcHJlZml4OiBzdHJpbmcsIG9wdGlvbnM/OiBNb2RlbE9wdGlvbnMpIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHByZWZpeCkgJiYgIW9wdGlvbnM/Lm1vZGVsTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTW9kZWxOYW1lIGlzIHJlcXVpcmVkIHdoZW4gcHJlZml4IGlzIHVucmVzb2x2ZWRcIik7XG4gICAgfVxuICAgIGNvbnN0IG1vZGVsTmFtZSA9IG9wdGlvbnM/Lm1vZGVsTmFtZSA/PyBwcmVmaXguc3BsaXQoXCIvXCIpLnNsaWNlKC0xKVswXTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gb3B0aW9ucz8ucGFyYW1ldGVycyA/PyBNb2RlbC5tYXliZVBhcmFtcyhtb2RlbE5hbWUpO1xuICAgIGlmICghcGFyYW1ldGVycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBjYW5ub3QgYmUgaW5mZXJyZWQgZnJvbSB0aGUgbW9kZWwgSUQuIFNldCBvcHRpb25hbCBwYXJhbWV0ZXJzLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBNb2RlbChcbiAgICAgIGJ1Y2tldC5zM1VybEZvck9iamVjdChwcmVmaXgpLFxuICAgICAgbW9kZWxOYW1lLFxuICAgICAgeyAuLi5vcHRpb25zLCBwYXJhbWV0ZXJzIH0sXG4gICAgICBidWNrZXQsXG4gICAgICBwcmVmaXgsXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyBtYXliZVBhcmFtcyhzb3VyY2U6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiaWxsaW9uID0gc291cmNlLm1hdGNoKC8tKFxcZCspW2JCXS8pO1xuICAgICAgaWYgKGJpbGxpb24/LlsxXSkge1xuICAgICAgICByZXR1cm4gUGFyYW1ldGVycy5iaWxsaW9uKHBhcnNlSW50KGJpbGxpb25bMV0pKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbGxpb24gPSBzb3VyY2UubWF0Y2goLy0oXFxkKylbbU1dLyk7XG4gICAgICBpZiAobWlsbGlvbj8uWzFdKSB7XG4gICAgICAgIHJldHVybiBQYXJhbWV0ZXJzLm1pbGxpb24ocGFyc2VJbnQobWlsbGlvblsxXSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTk9QXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBtb2RlbElkOiBzdHJpbmcsXG4gICAgcmVhZG9ubHkgbW9kZWxOYW1lOiBzdHJpbmcsXG4gICAgcmVhZG9ubHkgb3B0aW9uczogTW9kZWxPcHRpb25zLFxuICAgIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQsXG4gICAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nLFxuICApIHt9XG59XG4iXX0=
|
|
@@ -42,6 +42,6 @@ class NeuronOptimizedMachineImage extends constructs_1.Construct {
|
|
|
42
42
|
}
|
|
43
43
|
exports.NeuronOptimizedMachineImage = NeuronOptimizedMachineImage;
|
|
44
44
|
_a = JSII_RTTI_SYMBOL_1;
|
|
45
|
-
NeuronOptimizedMachineImage[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronOptimizedMachineImage", version: "0.
|
|
45
|
+
NeuronOptimizedMachineImage[_a] = { fqn: "aws-cdk-neuronx-patterns.NeuronOptimizedMachineImage", version: "0.2.1" };
|
|
46
46
|
NeuronOptimizedMachineImage.size = aws_cdk_lib_1.Size.gibibytes(30);
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9uLW9wdGltaXplZC1tYWNoaW5lLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9uZXVyb24tb3B0aW1pemVkLW1hY2hpbmUtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUQ7QUFDbkQsaURBSzZCO0FBQzdCLHVEQUEwRTtBQUMxRSwyQ0FBMkM7QUFDM0MsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFFN0IsTUFBYSwyQkFDWCxTQUFRLHNCQUFTO0lBS2pCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUN4RCxjQUFjLEVBQUUsSUFBSSw4QkFBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ2hFLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsYUFBYTtnQkFDOUIsSUFBSSxFQUFFLHNDQUFzQzthQUM3QyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRCxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQ2hELElBQUksRUFDSixPQUFPLEVBQ1AscUVBQXFFLENBQ3RFLENBQUMsV0FBVzthQUNkO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSw2QkFBbUIsQ0FBQyxLQUFLO1lBQ2pDLFFBQVEsRUFBRSxrQkFBUSxDQUFDLFFBQVEsRUFBRTtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUF2Q0gsa0VBd0NDOzs7QUFwQ2lCLGdDQUFJLEdBQUcsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgSU1hY2hpbmVJbWFnZSxcbiAgTWFjaGluZUltYWdlQ29uZmlnLFxuICBPcGVyYXRpbmdTeXN0ZW1UeXBlLFxuICBVc2VyRGF0YSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvZGUsIFJ1bnRpbWUsIFNpbmdsZXRvbkZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIHNzbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGNsYXNzIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZVxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElNYWNoaW5lSW1hZ2VcbntcbiAgc3RhdGljIHJlYWRvbmx5IHNpemUgPSBTaXplLmdpYmlieXRlcygzMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IEN1c3RvbVJlc291cmNlO1xuICBnZXQgaW1hZ2VJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJpbWFnZV9pZFwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgXCJOZXVyb254QW1pUHJvdmlkZXJcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG5ldyBTaW5nbGV0b25GdW5jdGlvbih0aGlzLCBcIk5ldXJvbnhBbWlGdW5jdGlvblwiLCB7XG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwicHJpdmF0ZS9uZXVyb254LWFtaVwiKSksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXgub25FdmVudFwiLFxuICAgICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU19MQVRFU1QsXG4gICAgICAgIHV1aWQ6IFwiMDhjOTg1MGEtNmYxMy00ZWQ0LTllMmQtNzg4OGQ3YjVhMjU4XCIsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiTmV1cm9ueEFtaVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206Ok5ldXJvbnhBbWlcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW1hZ2U6IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkltYWdlXCIsXG4gICAgICAgICAgXCIvYXdzL3NlcnZpY2UvZWNzL29wdGltaXplZC1hbWkvYW1hem9uLWxpbnV4LTIwMjMvbmV1cm9uL3JlY29tbWVuZGVkXCIsXG4gICAgICAgICkuc3RyaW5nVmFsdWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldEltYWdlKF9zY29wZTogQ29uc3RydWN0KTogTWFjaGluZUltYWdlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2VJZDogdGhpcy5pbWFnZUlkLFxuICAgICAgb3NUeXBlOiBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYLFxuICAgICAgdXNlckRhdGE6IFVzZXJEYXRhLmZvckxpbnV4KCksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -20,6 +20,12 @@ export declare class Trainium1Chips implements IAcceleratorChips {
|
|
|
20
20
|
readonly acceleratorMemory: Size;
|
|
21
21
|
constructor(chips: number);
|
|
22
22
|
}
|
|
23
|
+
export declare class Trainium2Chips implements IAcceleratorChips {
|
|
24
|
+
readonly chips: number;
|
|
25
|
+
readonly neuronxCores: number;
|
|
26
|
+
readonly acceleratorMemory: Size;
|
|
27
|
+
constructor(chips: number);
|
|
28
|
+
}
|
|
23
29
|
export interface INeuronxInstanceType {
|
|
24
30
|
readonly supportedTensorParallelism: number[];
|
|
25
31
|
readonly instanceType: ec2.InstanceType;
|
|
@@ -52,4 +58,16 @@ export declare abstract class NeuronxInstanceType {
|
|
|
52
58
|
* trn1.32xlarge
|
|
53
59
|
*/
|
|
54
60
|
static readonly TRN1_32XLARGE: INeuronxInstanceType;
|
|
61
|
+
/**
|
|
62
|
+
* trn2.3xlarge
|
|
63
|
+
*/
|
|
64
|
+
static readonly TRN2_3XLARGE: INeuronxInstanceType;
|
|
65
|
+
/**
|
|
66
|
+
* trn2.48xlarge
|
|
67
|
+
*/
|
|
68
|
+
static readonly TRN2_48XLARGE: INeuronxInstanceType;
|
|
69
|
+
/**
|
|
70
|
+
* trn2u.48xlarge
|
|
71
|
+
*/
|
|
72
|
+
static readonly TRN2U_48XLARGE: INeuronxInstanceType;
|
|
55
73
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.NeuronxInstanceType = exports.Trainium1Chips = exports.Inferentia2Chips = void 0;
|
|
4
|
+
exports.NeuronxInstanceType = exports.Trainium2Chips = exports.Trainium1Chips = exports.Inferentia2Chips = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
@@ -14,7 +14,7 @@ class Inferentia2Chips {
|
|
|
14
14
|
}
|
|
15
15
|
exports.Inferentia2Chips = Inferentia2Chips;
|
|
16
16
|
_a = JSII_RTTI_SYMBOL_1;
|
|
17
|
-
Inferentia2Chips[_a] = { fqn: "aws-cdk-neuronx-patterns.Inferentia2Chips", version: "0.
|
|
17
|
+
Inferentia2Chips[_a] = { fqn: "aws-cdk-neuronx-patterns.Inferentia2Chips", version: "0.2.1" };
|
|
18
18
|
class Trainium1Chips {
|
|
19
19
|
constructor(chips) {
|
|
20
20
|
this.chips = chips;
|
|
@@ -24,7 +24,20 @@ class Trainium1Chips {
|
|
|
24
24
|
}
|
|
25
25
|
exports.Trainium1Chips = Trainium1Chips;
|
|
26
26
|
_b = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
Trainium1Chips[_b] = { fqn: "aws-cdk-neuronx-patterns.Trainium1Chips", version: "0.
|
|
27
|
+
Trainium1Chips[_b] = { fqn: "aws-cdk-neuronx-patterns.Trainium1Chips", version: "0.2.1" };
|
|
28
|
+
class Trainium2Chips {
|
|
29
|
+
constructor(chips) {
|
|
30
|
+
this.chips = chips;
|
|
31
|
+
// Each Trainium2 chip has 8 physical NeuronCore-v3.
|
|
32
|
+
// With LNC=2 (default), 2 physical cores are combined into 1 logical core,
|
|
33
|
+
// resulting in 4 logical NeuronCores per chip, each with 24 GiB of memory.
|
|
34
|
+
this.neuronxCores = chips * 4;
|
|
35
|
+
this.acceleratorMemory = aws_cdk_lib_1.Size.gibibytes(24 * this.neuronxCores);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Trainium2Chips = Trainium2Chips;
|
|
39
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
40
|
+
Trainium2Chips[_c] = { fqn: "aws-cdk-neuronx-patterns.Trainium2Chips", version: "0.2.1" };
|
|
28
41
|
class NeuronxInstanceTypeBase {
|
|
29
42
|
constructor(props) {
|
|
30
43
|
this.instanceType = props.instanceType;
|
|
@@ -66,11 +79,24 @@ class Trainium1InstanceType extends NeuronxInstanceTypeBase {
|
|
|
66
79
|
});
|
|
67
80
|
}
|
|
68
81
|
}
|
|
82
|
+
class Trainium2InstanceType extends NeuronxInstanceTypeBase {
|
|
83
|
+
get supportedTensorParallelism() {
|
|
84
|
+
return [1, 2, 4, 8, 16, 32, 64].filter((tp) => tp <= this.acceleratorChips.neuronxCores);
|
|
85
|
+
}
|
|
86
|
+
constructor(props) {
|
|
87
|
+
super({
|
|
88
|
+
instanceType: props.instanceType,
|
|
89
|
+
vCpu: props.vCpu,
|
|
90
|
+
memory: props.memory,
|
|
91
|
+
acceleratorChips: new Trainium2Chips(props.chips),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
69
95
|
class NeuronxInstanceType {
|
|
70
96
|
}
|
|
71
97
|
exports.NeuronxInstanceType = NeuronxInstanceType;
|
|
72
|
-
|
|
73
|
-
NeuronxInstanceType[
|
|
98
|
+
_d = JSII_RTTI_SYMBOL_1;
|
|
99
|
+
NeuronxInstanceType[_d] = { fqn: "aws-cdk-neuronx-patterns.NeuronxInstanceType", version: "0.2.1" };
|
|
74
100
|
/**
|
|
75
101
|
* inf2.xlarge
|
|
76
102
|
*/
|
|
@@ -125,4 +151,31 @@ NeuronxInstanceType.TRN1_32XLARGE = new Trainium1InstanceType({
|
|
|
125
151
|
memory: aws_cdk_lib_1.Size.gibibytes(512),
|
|
126
152
|
chips: 16,
|
|
127
153
|
});
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1pbnN0YW5jZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9uZXVyb254LWluc3RhbmNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFDbkMsMkNBQTJDO0FBVzNDLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQXFCLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRSxDQUFDOztBQU5ILDRDQU9DOzs7QUFFRCxNQUFhLGNBQWM7SUFHekIsWUFBcUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O0FBTkgsd0NBT0M7OztBQVNELE1BQWUsdUJBQXVCO0lBTXBDLFlBQVksS0FLWDtRQUNDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7SUFDakQsQ0FBQztJQUNEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFF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WUFBWSxDQUFDLFFBQVEsQ0FDMUI7SUFDRCxJQUFJLEVBQUUsR0FBRztJQUNULE1BQU0sRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDM0IsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDLENBQUM7QUFDTDs7R0FFRztBQUNvQixnQ0FBWSxHQUNqQyxJQUFJLHFCQUFxQixDQUFDO0lBQ3hCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDL0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQ3RCLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUN6QjtJQUNELElBQUksRUFBRSxDQUFDO0lBQ1AsTUFBTSxFQUFFLGtCQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMxQixLQUFLLEVBQUUsQ0FBQztDQUNULENBQUMsQ0FBQztBQUNMOztHQUVHO0FBQ29CLGlDQUFhLEdBQ2xDLElBQUkscUJBQXFCLENBQUM7SUFDeEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFDdEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQzFCO0lBQ0QsSUFBSSxFQUFFLEdBQUc7SUFDVCxNQUFNLEVBQUUsa0JBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzNCLEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWNjZWxlcmF0b3JDaGlwcyB7XG4gIHJlYWRvbmx5IGNoaXBzOiBudW1iZXI7XG4gIHJlYWRvbmx5IG5ldXJvbnhDb3JlczogbnVtYmVyO1xuICByZWFkb25seSBhY2NlbGVyYXRvck1lbW9yeTogU2l6ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEluZmVyZW50aWEyQ2hpcHMgaW1wbGVtZW50cyBJQWNjZWxlcmF0b3JDaGlwcyB7XG4gIHJlYWRvbmx5IG5ldXJvbnhDb3JlczogbnVtYmVyO1xuICByZWFkb25seSBhY2NlbGVyYXRvck1lbW9yeTogU2l6ZTtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY2hpcHM6IG51bWJlcikge1xuICAgIHRoaXMubmV1cm9ueENvcmVzID0gY2hpcHMgKiAyO1xuICAgIHRoaXMuYWNjZWxlcmF0b3JNZW1vcnkgPSBTaXplLmdpYmlieXRlcygxNiAqIHRoaXMubmV1cm9ueENvcmVzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhaW5pdW0xQ2hpcHMgaW1wbGVtZW50cyBJQWNjZWxlcmF0b3JDaGlwcyB7XG4gIHJlYWRvbmx5IG5ldXJvbnhDb3JlczogbnVtYmVyO1xuICByZWFkb25seSBhY2NlbGVyYXRvck1lbW9yeTogU2l6ZTtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY2hpcHM6IG51bWJlcikge1xuICAgIHRoaXMubmV1cm9ueENvcmVzID0gY2hpcHMgKiAyO1xuICAgIHRoaXMuYWNjZWxlcmF0b3JNZW1vcnkgPSBTaXplLmdpYmlieXRlcygxNiAqIHRoaXMubmV1cm9ueENvcmVzKTtcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueEluc3RhbmNlVHlwZSB7XG4gIHJlYWRvbmx5IHN1cHBvcnRlZFRlbnNvclBhcmFsbGVsaXNtOiBudW1iZXJbXTtcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB2Q3B1OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1lbW9yeTogU2l6ZTtcbiAgcmVhZG9ubHkgYWNjZWxlcmF0b3JDaGlwczogSUFjY2VsZXJhdG9yQ2hpcHM7XG59XG5cbmFic3RyYWN0IGNsYXNzIE5ldXJvbnhJbnN0YW5jZVR5cGVCYXNlIGltcGxlbWVudHMgSU5ldXJvbnhJbnN0YW5jZVR5cGUge1xuICByZWFkb25seSBhY2NlbGVyYXRvckNoaXBzOiBJQWNjZWxlcmF0b3JDaGlwcztcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB2Q3B1OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1lbW9yeTogU2l6ZTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc3VwcG9ydGVkVGVuc29yUGFyYWxsZWxpc206IG51bWJlcltdO1xuICBjb25zdHJ1Y3Rvcihwcm9wczoge1xuICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZTtcbiAgICB2Q3B1OiBudW1iZXI7XG4gICAgbWVtb3J5OiBTaXplO1xuICAgIGFjY2VsZXJhdG9yQ2hpcHM6IElBY2NlbGVyYXRvckNoaXBzO1xuICB9KSB7XG4gICAgdGhpcy5pbnN0YW5jZVR5cGUgPSBwcm9wcy5pbnN0YW5jZVR5cGU7XG4gICAgdGhpcy52Q3B1ID0gcHJvcHMudkNwdTtcbiAgICB0aGlzLm1lbW9yeSA9IHByb3BzLm1lbW9yeTtcbiAgICB0aGlzLmFjY2VsZXJhdG9yQ2hpcHMgPSBwcm9wcy5hY2NlbGVyYXRvckNoaXBzO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGluc3RhbmNlIHR5cGUgYXMgYSBzdHJpbmdcbiAgICogQHJldHVybnMgVGhlIGluc3RhbmNlIHR5cGUgYXMgYSBzdHJpbmdcbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpO1xuICB9XG59XG5cbmNsYXNzIEluZmVyZW50aWEySW5zdGFuY2VUeXBlIGV4dGVuZHMgTmV1cm9ueEluc3RhbmNlVHlwZUJhc2Uge1xuICBnZXQgc3VwcG9ydGVkVGVuc29yUGFyYWxsZWxpc20oKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBbMSwgMiwgNCwgOCwgMjRdLmZpbHRlcihcbiAgICAgICh0cCkgPT4gdHAgPD0gdGhpcy5hY2NlbGVyYXRvckNoaXBzLm5ldXJvbnhDb3JlcyxcbiAgICApO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByb3BzOiB7XG4gICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICAgIHZDcHU6IG51bWJlcjtcbiAgICBtZW1vcnk6IFNpemU7XG4gICAgY2hpcHM6IG51bWJlcjtcbiAgfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgdkNwdTogcHJvcHMudkNwdSxcbiAgICAgIG1lbW9yeTogcHJvcHMubWVtb3J5LFxuICAgICAgYWNjZWxlcmF0b3JDaGlwczogbmV3IEluZmVyZW50aWEyQ2hpcHMocHJvcHMuY2hpcHMpLFxuICAgIH0pO1xuICB9XG59XG5jbGFzcyBUcmFpbml1bTFJbnN0YW5jZVR5cGUgZXh0ZW5kcyBOZXVyb254SW5zdGFuY2VUeXBlQmFzZSB7XG4gIGdldCBzdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIFsxLCAyLCA4LCAxNiwgMzJdLmZpbHRlcihcbiAgICAgICh0cCkgPT4gdHAgPD0gdGhpcy5hY2NlbGVyYXRvckNoaXBzLm5ldXJvbnhDb3JlcyxcbiAgICApO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByb3BzOiB7XG4gICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICAgIHZDcHU6IG51bWJlcjtcbiAgICBtZW1vcnk6IFNpemU7XG4gICAgY2hpcHM6IG51bWJlcjtcbiAgfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgdkNwdTogcHJvcHMudkNwdSxcbiAgICAgIG1lbW9yeTogcHJvcHMubWVtb3J5LFxuICAgICAgYWNjZWxlcmF0b3JDaGlwczogbmV3IFRyYWluaXVtMUNoaXBzKHByb3BzLmNoaXBzKSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmV1cm9ueEluc3RhbmNlVHlwZSB7XG4gIC8qKlxuICAgKiBpbmYyLnhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTkYyX1hMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBJbmZlcmVudGlhMkluc3RhbmNlVHlwZSh7XG4gICAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLklORjIsXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFLFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDQsXG4gICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDE2KSxcbiAgICAgIGNoaXBzOiAxLFxuICAgIH0pO1xuICAvKipcbiAgICogaW5mMi44eGxhcmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElORjJfOFhMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBJbmZlcmVudGlhMkluc3RhbmNlVHlwZSh7XG4gICAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLklORjIsXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFOCxcbiAgICAgICksXG4gICAgICB2Q3B1OiAzMixcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMTI4KSxcbiAgICAgIGNoaXBzOiAxLFxuICAgIH0pO1xuICAvKipcbiAgICogaW5mMi4yNHhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTkYyXzI0WExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IEluZmVyZW50aWEySW5zdGFuY2VUeXBlKHtcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuSU5GMixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0UyNCxcbiAgICAgICksXG4gICAgICB2Q3B1OiA5NixcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMzg0KSxcbiAgICAgIGNoaXBzOiA2LFxuICAgIH0pO1xuICAvKipcbiAgICogaW5mMi40OHhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTkYyXzQ4WExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IEluZmVyZW50aWEySW5zdGFuY2VUeXBlKHtcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuSU5GMixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0U0OCxcbiAgICAgICksXG4gICAgICB2Q3B1OiAxOTIsXG4gICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDc2OCksXG4gICAgICBjaGlwczogMTIsXG4gICAgfSk7XG4gIC8qKlxuICAgKiB0cm4xLjJ4bGFyZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJOMV8yWExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IFRyYWluaXVtMUluc3RhbmNlVHlwZSh7XG4gICAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLlRSTjEsXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFMixcbiAgICAgICksXG4gICAgICB2Q3B1OiA4LFxuICAgICAgbWVtb3J5OiBTaXplLmdpYmlieXRlcygzMiksXG4gICAgICBjaGlwczogMSxcbiAgICB9KTtcbiAgLyoqXG4gICAqIHRybjEuMzJ4bGFyZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJOMV8zMlhMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBUcmFpbml1bTFJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UUk4xLFxuICAgICAgICBlYzIuSW5zdGFuY2VTaXplLlhMQVJHRTMyLFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDEyOCxcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoNTEyKSxcbiAgICAgIGNoaXBzOiAxNixcbiAgICB9KTtcbn1cbiJdfQ==
|
|
154
|
+
/**
|
|
155
|
+
* trn2.3xlarge
|
|
156
|
+
*/
|
|
157
|
+
NeuronxInstanceType.TRN2_3XLARGE = new Trainium2InstanceType({
|
|
158
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.TRN2, ec2.InstanceSize.XLARGE3),
|
|
159
|
+
vCpu: 12,
|
|
160
|
+
memory: aws_cdk_lib_1.Size.gibibytes(128),
|
|
161
|
+
chips: 1,
|
|
162
|
+
});
|
|
163
|
+
/**
|
|
164
|
+
* trn2.48xlarge
|
|
165
|
+
*/
|
|
166
|
+
NeuronxInstanceType.TRN2_48XLARGE = new Trainium2InstanceType({
|
|
167
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.TRN2, ec2.InstanceSize.XLARGE48),
|
|
168
|
+
vCpu: 192,
|
|
169
|
+
memory: aws_cdk_lib_1.Size.gibibytes(2048),
|
|
170
|
+
chips: 16,
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* trn2u.48xlarge
|
|
174
|
+
*/
|
|
175
|
+
NeuronxInstanceType.TRN2U_48XLARGE = new Trainium2InstanceType({
|
|
176
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.TRN2U, ec2.InstanceSize.XLARGE48),
|
|
177
|
+
vCpu: 192,
|
|
178
|
+
memory: aws_cdk_lib_1.Size.gibibytes(2048),
|
|
179
|
+
chips: 16,
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1pbnN0YW5jZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jhc2UvbmV1cm9ueC9uZXVyb254LWluc3RhbmNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFDbkMsMkNBQTJDO0FBVzNDLE1BQWEsZ0JBQWdCO0lBRzNCLFlBQXFCLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRSxDQUFDOztBQU5ILDRDQU9DOzs7QUFFRCxNQUFhLGNBQWM7SUFHekIsWUFBcUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O0FBTkgsd0NBT0M7OztBQUVELE1BQWEsY0FBYztJQUd6QixZQUFxQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNoQyxvREFBb0Q7UUFDcEQsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGtCQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7QUFUSCx3Q0FVQzs7O0FBU0QsTUFBZSx1QkFBdUI7SUFNcEMsWUFBWSxLQUtYO1FBQ0MsSUFB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QUFDO0lBQzVCLEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFDO0FBQ0w7O0dBRUc7QUFDb0Isa0NBQWMsR0FDbkMsSUFBSSxxQkFBcUIsQ0FBQztJQUN4QixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQy9CLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUN2QixHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDMUI7SUFDRCxJQUFJLEVBQUUsR0FBRztJQUNULE1BQU0sRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDNUIsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBY2NlbGVyYXRvckNoaXBzIHtcbiAgcmVhZG9ubHkgY2hpcHM6IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV1cm9ueENvcmVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplO1xufVxuXG5leHBvcnQgY2xhc3MgSW5mZXJlbnRpYTJDaGlwcyBpbXBsZW1lbnRzIElBY2NlbGVyYXRvckNoaXBzIHtcbiAgcmVhZG9ubHkgbmV1cm9ueENvcmVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplO1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjaGlwczogbnVtYmVyKSB7XG4gICAgdGhpcy5uZXVyb254Q29yZXMgPSBjaGlwcyAqIDI7XG4gICAgdGhpcy5hY2NlbGVyYXRvck1lbW9yeSA9IFNpemUuZ2liaWJ5dGVzKDE2ICogdGhpcy5uZXVyb254Q29yZXMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFpbml1bTFDaGlwcyBpbXBsZW1lbnRzIElBY2NlbGVyYXRvckNoaXBzIHtcbiAgcmVhZG9ubHkgbmV1cm9ueENvcmVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplO1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjaGlwczogbnVtYmVyKSB7XG4gICAgdGhpcy5uZXVyb254Q29yZXMgPSBjaGlwcyAqIDI7XG4gICAgdGhpcy5hY2NlbGVyYXRvck1lbW9yeSA9IFNpemUuZ2liaWJ5dGVzKDE2ICogdGhpcy5uZXVyb254Q29yZXMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFpbml1bTJDaGlwcyBpbXBsZW1lbnRzIElBY2NlbGVyYXRvckNoaXBzIHtcbiAgcmVhZG9ubHkgbmV1cm9ueENvcmVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplO1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjaGlwczogbnVtYmVyKSB7XG4gICAgLy8gRWFjaCBUcmFpbml1bTIgY2hpcCBoYXMgOCBwaHlzaWNhbCBOZXVyb25Db3JlLXYzLlxuICAgIC8vIFdpdGggTE5DPTIgKGRlZmF1bHQpLCAyIHBoeXNpY2FsIGNvcmVzIGFyZSBjb21iaW5lZCBpbnRvIDEgbG9naWNhbCBjb3JlLFxuICAgIC8vIHJlc3VsdGluZyBpbiA0IGxvZ2ljYWwgTmV1cm9uQ29yZXMgcGVyIGNoaXAsIGVhY2ggd2l0aCAyNCBHaUIgb2YgbWVtb3J5LlxuICAgIHRoaXMubmV1cm9ueENvcmVzID0gY2hpcHMgKiA0O1xuICAgIHRoaXMuYWNjZWxlcmF0b3JNZW1vcnkgPSBTaXplLmdpYmlieXRlcygyNCAqIHRoaXMubmV1cm9ueENvcmVzKTtcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJTmV1cm9ueEluc3RhbmNlVHlwZSB7XG4gIHJlYWRvbmx5IHN1cHBvcnRlZFRlbnNvclBhcmFsbGVsaXNtOiBudW1iZXJbXTtcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB2Q3B1OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1lbW9yeTogU2l6ZTtcbiAgcmVhZG9ubHkgYWNjZWxlcmF0b3JDaGlwczogSUFjY2VsZXJhdG9yQ2hpcHM7XG59XG5cbmFic3RyYWN0IGNsYXNzIE5ldXJvbnhJbnN0YW5jZVR5cGVCYXNlIGltcGxlbWVudHMgSU5ldXJvbnhJbnN0YW5jZVR5cGUge1xuICByZWFkb25seSBhY2NlbGVyYXRvckNoaXBzOiBJQWNjZWxlcmF0b3JDaGlwcztcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICByZWFkb25seSB2Q3B1OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1lbW9yeTogU2l6ZTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc3VwcG9ydGVkVGVuc29yUGFyYWxsZWxpc206IG51bWJlcltdO1xuICBjb25zdHJ1Y3Rvcihwcm9wczoge1xuICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZTtcbiAgICB2Q3B1OiBudW1iZXI7XG4gICAgbWVtb3J5OiBTaXplO1xuICAgIGFjY2VsZXJhdG9yQ2hpcHM6IElBY2NlbGVyYXRvckNoaXBzO1xuICB9KSB7XG4gICAgdGhpcy5pbnN0YW5jZVR5cGUgPSBwcm9wcy5pbnN0YW5jZVR5cGU7XG4gICAgdGhpcy52Q3B1ID0gcHJvcHMudkNwdTtcbiAgICB0aGlzLm1lbW9yeSA9IHByb3BzLm1lbW9yeTtcbiAgICB0aGlzLmFjY2VsZXJhdG9yQ2hpcHMgPSBwcm9wcy5hY2NlbGVyYXRvckNoaXBzO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGluc3RhbmNlIHR5cGUgYXMgYSBzdHJpbmdcbiAgICogQHJldHVybnMgVGhlIGluc3RhbmNlIHR5cGUgYXMgYSBzdHJpbmdcbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpO1xuICB9XG59XG5cbmNsYXNzIEluZmVyZW50aWEySW5zdGFuY2VUeXBlIGV4dGVuZHMgTmV1cm9ueEluc3RhbmNlVHlwZUJhc2Uge1xuICBnZXQgc3VwcG9ydGVkVGVuc29yUGFyYWxsZWxpc20oKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBbMSwgMiwgNCwgOCwgMjRdLmZpbHRlcihcbiAgICAgICh0cCkgPT4gdHAgPD0gdGhpcy5hY2NlbGVyYXRvckNoaXBzLm5ldXJvbnhDb3JlcyxcbiAgICApO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByb3BzOiB7XG4gICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICAgIHZDcHU6IG51bWJlcjtcbiAgICBtZW1vcnk6IFNpemU7XG4gICAgY2hpcHM6IG51bWJlcjtcbiAgfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgdkNwdTogcHJvcHMudkNwdSxcbiAgICAgIG1lbW9yeTogcHJvcHMubWVtb3J5LFxuICAgICAgYWNjZWxlcmF0b3JDaGlwczogbmV3IEluZmVyZW50aWEyQ2hpcHMocHJvcHMuY2hpcHMpLFxuICAgIH0pO1xuICB9XG59XG5jbGFzcyBUcmFpbml1bTFJbnN0YW5jZVR5cGUgZXh0ZW5kcyBOZXVyb254SW5zdGFuY2VUeXBlQmFzZSB7XG4gIGdldCBzdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbSgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIFsxLCAyLCA4LCAxNiwgMzJdLmZpbHRlcihcbiAgICAgICh0cCkgPT4gdHAgPD0gdGhpcy5hY2NlbGVyYXRvckNoaXBzLm5ldXJvbnhDb3JlcyxcbiAgICApO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByb3BzOiB7XG4gICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlO1xuICAgIHZDcHU6IG51bWJlcjtcbiAgICBtZW1vcnk6IFNpemU7XG4gICAgY2hpcHM6IG51bWJlcjtcbiAgfSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgdkNwdTogcHJvcHMudkNwdSxcbiAgICAgIG1lbW9yeTogcHJvcHMubWVtb3J5LFxuICAgICAgYWNjZWxlcmF0b3JDaGlwczogbmV3IFRyYWluaXVtMUNoaXBzKHByb3BzLmNoaXBzKSxcbiAgICB9KTtcbiAgfVxufVxuY2xhc3MgVHJhaW5pdW0ySW5zdGFuY2VUeXBlIGV4dGVuZHMgTmV1cm9ueEluc3RhbmNlVHlwZUJhc2Uge1xuICBnZXQgc3VwcG9ydGVkVGVuc29yUGFyYWxsZWxpc20oKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBbMSwgMiwgNCwgOCwgMTYsIDMyLCA2NF0uZmlsdGVyKFxuICAgICAgKHRwKSA9PiB0cCA8PSB0aGlzLmFjY2VsZXJhdG9yQ2hpcHMubmV1cm9ueENvcmVzLFxuICAgICk7XG4gIH1cbiAgY29uc3RydWN0b3IocHJvcHM6IHtcbiAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGU7XG4gICAgdkNwdTogbnVtYmVyO1xuICAgIG1lbW9yeTogU2l6ZTtcbiAgICBjaGlwczogbnVtYmVyO1xuICB9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUsXG4gICAgICB2Q3B1OiBwcm9wcy52Q3B1LFxuICAgICAgbWVtb3J5OiBwcm9wcy5tZW1vcnksXG4gICAgICBhY2NlbGVyYXRvckNoaXBzOiBuZXcgVHJhaW5pdW0yQ2hpcHMocHJvcHMuY2hpcHMpLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZXVyb254SW5zdGFuY2VUeXBlIHtcbiAgLyoqXG4gICAqIGluZjIueGxhcmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElORjJfWExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IEluZmVyZW50aWEySW5zdGFuY2VUeXBlKHtcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuSU5GMixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0UsXG4gICAgICApLFxuICAgICAgdkNwdTogNCxcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMTYpLFxuICAgICAgY2hpcHM6IDEsXG4gICAgfSk7XG4gIC8qKlxuICAgKiBpbmYyLjh4bGFyZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5GMl84WExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IEluZmVyZW50aWEySW5zdGFuY2VUeXBlKHtcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuSU5GMixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0U4LFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDMyLFxuICAgICAgbWVtb3J5OiBTaXplLmdpYmlieXRlcygxMjgpLFxuICAgICAgY2hpcHM6IDEsXG4gICAgfSk7XG4gIC8qKlxuICAgKiBpbmYyLjI0eGxhcmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElORjJfMjRYTEFSR0U6IElOZXVyb254SW5zdGFuY2VUeXBlID1cbiAgICBuZXcgSW5mZXJlbnRpYTJJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5JTkYyLFxuICAgICAgICBlYzIuSW5zdGFuY2VTaXplLlhMQVJHRTI0LFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDk2LFxuICAgICAgbWVtb3J5OiBTaXplLmdpYmlieXRlcygzODQpLFxuICAgICAgY2hpcHM6IDYsXG4gICAgfSk7XG4gIC8qKlxuICAgKiBpbmYyLjQ4eGxhcmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElORjJfNDhYTEFSR0U6IElOZXVyb254SW5zdGFuY2VUeXBlID1cbiAgICBuZXcgSW5mZXJlbnRpYTJJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5JTkYyLFxuICAgICAgICBlYzIuSW5zdGFuY2VTaXplLlhMQVJHRTQ4LFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDE5MixcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoNzY4KSxcbiAgICAgIGNoaXBzOiAxMixcbiAgICB9KTtcbiAgLyoqXG4gICAqIHRybjEuMnhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUUk4xXzJYTEFSR0U6IElOZXVyb254SW5zdGFuY2VUeXBlID1cbiAgICBuZXcgVHJhaW5pdW0xSW5zdGFuY2VUeXBlKHtcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuVFJOMSxcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0UyLFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDgsXG4gICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDMyKSxcbiAgICAgIGNoaXBzOiAxLFxuICAgIH0pO1xuICAvKipcbiAgICogdHJuMS4zMnhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUUk4xXzMyWExBUkdFOiBJTmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgbmV3IFRyYWluaXVtMUluc3RhbmNlVHlwZSh7XG4gICAgICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLlRSTjEsXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFMzIsXG4gICAgICApLFxuICAgICAgdkNwdTogMTI4LFxuICAgICAgbWVtb3J5OiBTaXplLmdpYmlieXRlcyg1MTIpLFxuICAgICAgY2hpcHM6IDE2LFxuICAgIH0pO1xuICAvKipcbiAgICogdHJuMi4zeGxhcmdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSTjJfM1hMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBUcmFpbml1bTJJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UUk4yLFxuICAgICAgICBlYzIuSW5zdGFuY2VTaXplLlhMQVJHRTMsXG4gICAgICApLFxuICAgICAgdkNwdTogMTIsXG4gICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDEyOCksXG4gICAgICBjaGlwczogMSxcbiAgICB9KTtcbiAgLyoqXG4gICAqIHRybjIuNDh4bGFyZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJOMl80OFhMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBUcmFpbml1bTJJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UUk4yLFxuICAgICAgICBlYzIuSW5zdGFuY2VTaXplLlhMQVJHRTQ4LFxuICAgICAgKSxcbiAgICAgIHZDcHU6IDE5MixcbiAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMjA0OCksXG4gICAgICBjaGlwczogMTYsXG4gICAgfSk7XG4gIC8qKlxuICAgKiB0cm4ydS40OHhsYXJnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUUk4yVV80OFhMQVJHRTogSU5ldXJvbnhJbnN0YW5jZVR5cGUgPVxuICAgIG5ldyBUcmFpbml1bTJJbnN0YW5jZVR5cGUoe1xuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UUk4yVSxcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5YTEFSR0U0OCxcbiAgICAgICksXG4gICAgICB2Q3B1OiAxOTIsXG4gICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDIwNDgpLFxuICAgICAgY2hpcHM6IDE2LFxuICAgIH0pO1xufVxuIl19
|