projen 0.99.80 → 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/.jsii +1677 -3664
  2. package/BREAKING_CHANGES.md +855 -0
  3. package/lib/ai-instructions.d.ts +0 -1
  4. package/lib/ai-instructions.js +6 -12
  5. package/lib/awscdk/auto-discover.js +7 -14
  6. package/lib/awscdk/awscdk-app-java.d.ts +0 -7
  7. package/lib/awscdk/awscdk-app-java.js +28 -21
  8. package/lib/awscdk/awscdk-app-py.d.ts +0 -12
  9. package/lib/awscdk/awscdk-app-py.js +27 -24
  10. package/lib/awscdk/awscdk-app-ts.d.ts +0 -5
  11. package/lib/awscdk/awscdk-app-ts.js +57 -31
  12. package/lib/awscdk/awscdk-construct.d.ts +0 -26
  13. package/lib/awscdk/awscdk-construct.js +4 -44
  14. package/lib/awscdk/awscdk-deps-java.js +2 -6
  15. package/lib/awscdk/awscdk-deps-js.js +2 -7
  16. package/lib/awscdk/awscdk-deps-py.js +2 -7
  17. package/lib/awscdk/awscdk-deps.d.ts +1 -90
  18. package/lib/awscdk/awscdk-deps.js +68 -114
  19. package/lib/awscdk/cdk-config.d.ts +0 -21
  20. package/lib/awscdk/cdk-config.js +44 -51
  21. package/lib/awscdk/cdk-tasks.js +26 -4
  22. package/lib/awscdk/integration-test.js +10 -15
  23. package/lib/awscdk/internal.js +5 -2
  24. package/lib/awscdk/lambda-extension.js +4 -16
  25. package/lib/awscdk/lambda-function.d.ts +0 -10
  26. package/lib/awscdk/lambda-function.js +88 -78
  27. package/lib/awscdk/private/feature-flags-v2.const.d.ts +1 -1
  28. package/lib/awscdk/private/feature-flags-v2.const.js +2 -2
  29. package/lib/build/build-workflow.js +51 -6
  30. package/lib/builtin-example.task.d.ts +1 -0
  31. package/lib/builtin-example.task.js +2 -1
  32. package/lib/cdk/auto-discover-base.js +43 -8
  33. package/lib/cdk/construct-lib.js +2 -4
  34. package/lib/cdk/integration-test-base.js +26 -4
  35. package/lib/cdk/jsii-build.d.ts +0 -1
  36. package/lib/cdk/jsii-build.js +4 -4
  37. package/lib/cdk/jsii-docgen.js +2 -4
  38. package/lib/cdk/jsii-project.d.ts +12 -9
  39. package/lib/cdk/jsii-project.js +22 -7
  40. package/lib/cdk8s/auto-discover.js +3 -6
  41. package/lib/cdk8s/cdk8s-app-py.js +7 -4
  42. package/lib/cdk8s/cdk8s-app-ts.js +43 -6
  43. package/lib/cdk8s/cdk8s-construct.js +44 -5
  44. package/lib/cdk8s/cdk8s-deps-py.js +2 -4
  45. package/lib/cdk8s/cdk8s-deps.js +50 -5
  46. package/lib/cdk8s/integration-test.js +2 -4
  47. package/lib/cdktf/cdktf-construct.js +36 -5
  48. package/lib/circleci/circleci.js +66 -44
  49. package/lib/cleanup.js +38 -5
  50. package/lib/cli/cmds/new.js +51 -20
  51. package/lib/cli/cmds/run-task.js +107 -0
  52. package/lib/cli/{synth.d.ts → cmds/synth.d.ts} +0 -5
  53. package/lib/cli/cmds/synth.js +90 -0
  54. package/lib/cli/index.js +47 -22
  55. package/lib/cli/macros.js +35 -2
  56. package/lib/{task-runtime.d.ts → cli/task-runtime.d.ts} +13 -2
  57. package/lib/cli/task-runtime.js +411 -0
  58. package/lib/cli/util.js +37 -4
  59. package/lib/component.js +3 -4
  60. package/lib/dependencies.js +43 -12
  61. package/lib/dev-env.js +10 -4
  62. package/lib/docker-compose/docker-compose-service.js +54 -4
  63. package/lib/docker-compose/docker-compose.js +8 -4
  64. package/lib/file.js +60 -5
  65. package/lib/gitattributes.js +7 -5
  66. package/lib/github/actions-provider.js +3 -7
  67. package/lib/github/auto-approve.js +3 -4
  68. package/lib/github/auto-merge.js +3 -5
  69. package/lib/github/auto-queue.js +36 -5
  70. package/lib/github/dependabot.js +13 -4
  71. package/lib/github/dependency-review.js +2 -4
  72. package/lib/github/github-credentials.js +37 -5
  73. package/lib/github/github-project.d.ts +1 -32
  74. package/lib/github/github-project.js +30 -8
  75. package/lib/github/github.d.ts +0 -9
  76. package/lib/github/github.js +27 -14
  77. package/lib/github/index.js +24 -2
  78. package/lib/github/merge-queue.js +3 -4
  79. package/lib/github/mergify.d.ts +0 -7
  80. package/lib/github/mergify.js +6 -13
  81. package/lib/github/pr-template.js +2 -4
  82. package/lib/github/pull-request-backport.js +4 -4
  83. package/lib/github/pull-request-lint.js +4 -4
  84. package/lib/github/stale.js +2 -4
  85. package/lib/github/task-workflow-job.js +20 -4
  86. package/lib/github/task-workflow.js +4 -4
  87. package/lib/github/workflow-actions.d.ts +0 -8
  88. package/lib/github/workflow-actions.js +2 -14
  89. package/lib/github/workflow-jobs.js +2 -4
  90. package/lib/github/workflow-steps.js +2 -4
  91. package/lib/github/workflows-model.d.ts +0 -8
  92. package/lib/github/workflows-model.js +1 -1
  93. package/lib/github/workflows.js +39 -6
  94. package/lib/gitlab/configuration-model.d.ts +0 -4
  95. package/lib/gitlab/configuration-model.js +1 -1
  96. package/lib/gitlab/configuration.js +125 -41
  97. package/lib/gitlab/gitlab-configuration.js +3 -5
  98. package/lib/gitlab/nested-configuration.js +3 -4
  99. package/lib/gitpod.js +11 -7
  100. package/lib/ignore-file.js +5 -4
  101. package/lib/index.d.ts +1 -2
  102. package/lib/index.js +38 -18
  103. package/lib/ini.js +36 -5
  104. package/lib/inventory.d.ts +32 -23
  105. package/lib/inventory.js +37 -4
  106. package/lib/java/java-project.js +26 -4
  107. package/lib/java/junit.js +2 -4
  108. package/lib/java/maven-compile.js +2 -4
  109. package/lib/java/maven-packaging.js +6 -4
  110. package/lib/java/maven-sample.js +2 -4
  111. package/lib/java/pom.js +45 -12
  112. package/lib/java/projenrc.js +10 -4
  113. package/lib/javascript/biome/biome.js +48 -6
  114. package/lib/javascript/bundler.d.ts +0 -8
  115. package/lib/javascript/bundler.js +48 -11
  116. package/lib/javascript/eslint.d.ts +0 -13
  117. package/lib/javascript/eslint.js +38 -37
  118. package/lib/javascript/index.js +24 -2
  119. package/lib/javascript/jest.d.ts +0 -20
  120. package/lib/javascript/jest.js +71 -15
  121. package/lib/javascript/license-checker.js +3 -4
  122. package/lib/javascript/node-package.d.ts +0 -28
  123. package/lib/javascript/node-package.js +136 -38
  124. package/lib/javascript/node-project.d.ts +5 -76
  125. package/lib/javascript/node-project.js +88 -81
  126. package/lib/javascript/npm-config.js +7 -9
  127. package/lib/javascript/prettier.js +16 -4
  128. package/lib/javascript/projenrc.js +3 -4
  129. package/lib/javascript/render-options.d.ts +2 -2
  130. package/lib/javascript/render-options.js +36 -5
  131. package/lib/javascript/typescript-config.js +45 -8
  132. package/lib/javascript/upgrade-dependencies.js +56 -36
  133. package/lib/javascript/util.js +35 -2
  134. package/lib/javascript/yarnrc.d.ts +1 -28
  135. package/lib/javascript/yarnrc.js +3 -45
  136. package/lib/json-patch.js +3 -4
  137. package/lib/json.js +4 -5
  138. package/lib/license.js +37 -5
  139. package/lib/logger.js +14 -11
  140. package/lib/logging.js +10 -7
  141. package/lib/makefile.js +7 -4
  142. package/lib/object-file.js +19 -4
  143. package/lib/project-build.js +26 -4
  144. package/lib/project-tree.js +3 -4
  145. package/lib/project.d.ts +0 -35
  146. package/lib/project.js +105 -58
  147. package/lib/projects.js +37 -6
  148. package/lib/projenrc-json.d.ts +0 -10
  149. package/lib/projenrc-json.js +4 -13
  150. package/lib/projenrc.js +2 -4
  151. package/lib/python/index.js +24 -2
  152. package/lib/python/pip.js +5 -4
  153. package/lib/python/poetry.js +63 -7
  154. package/lib/python/projenrc.js +10 -4
  155. package/lib/python/pyproject-toml-file.js +2 -4
  156. package/lib/python/pytest-sample.js +2 -4
  157. package/lib/python/pytest.d.ts +0 -12
  158. package/lib/python/pytest.js +3 -5
  159. package/lib/python/python-project.js +33 -10
  160. package/lib/python/python-sample.js +2 -4
  161. package/lib/python/requirements-file.js +4 -5
  162. package/lib/python/setuppy.d.ts +0 -8
  163. package/lib/python/setuppy.js +3 -4
  164. package/lib/python/setuptools.js +8 -4
  165. package/lib/python/uv.js +11 -4
  166. package/lib/python/venv.js +45 -6
  167. package/lib/readme.js +2 -4
  168. package/lib/release/bump-version.js +36 -3
  169. package/lib/release/bump-version.task.js +35 -2
  170. package/lib/release/commit-tag-version.js +39 -3
  171. package/lib/release/publisher.d.ts +0 -49
  172. package/lib/release/publisher.js +24 -22
  173. package/lib/release/release-trigger.js +33 -4
  174. package/lib/release/release.d.ts +0 -24
  175. package/lib/release/release.js +66 -31
  176. package/lib/release/tag-version.js +35 -2
  177. package/lib/release/update-changelog.js +36 -3
  178. package/lib/renovatebot.js +14 -4
  179. package/lib/run-projenrc-json.task.js +35 -2
  180. package/lib/run-task.cjs +12567 -271
  181. package/lib/sample-file.js +43 -9
  182. package/lib/smithy/smithy-build.js +46 -1
  183. package/lib/source-code.js +6 -5
  184. package/lib/task-runner.d.ts +25 -0
  185. package/lib/task-runner.js +92 -0
  186. package/lib/task.d.ts +0 -7
  187. package/lib/task.js +13 -13
  188. package/lib/tasks.d.ts +5 -9
  189. package/lib/tasks.js +64 -23
  190. package/lib/testing.js +2 -4
  191. package/lib/textfile.js +3 -4
  192. package/lib/toml.js +36 -5
  193. package/lib/typescript/projenrc-ts.js +8 -4
  194. package/lib/typescript/projenrc.js +6 -4
  195. package/lib/typescript/typescript-typedoc.js +2 -4
  196. package/lib/typescript/typescript.d.ts +0 -10
  197. package/lib/typescript/typescript.js +75 -29
  198. package/lib/util/synth.js +39 -6
  199. package/lib/util.js +38 -5
  200. package/lib/version.d.ts +0 -4
  201. package/lib/version.js +24 -10
  202. package/lib/vscode/devcontainer.js +11 -4
  203. package/lib/vscode/extensions.js +17 -18
  204. package/lib/vscode/launch-config.js +5 -6
  205. package/lib/vscode/settings.js +4 -4
  206. package/lib/vscode/vscode.js +5 -4
  207. package/lib/web/next.js +38 -8
  208. package/lib/web/postcss.js +5 -4
  209. package/lib/web/react.d.ts +0 -14
  210. package/lib/web/react.js +51 -25
  211. package/lib/web/tailwind.js +4 -4
  212. package/lib/xmlfile.js +2 -4
  213. package/lib/yaml.js +40 -5
  214. package/package.json +8 -9
  215. package/lib/cli/synth.js +0 -105
  216. package/lib/cli/tasks.js +0 -71
  217. package/lib/semver.d.ts +0 -34
  218. package/lib/semver.js +0 -56
  219. package/lib/task-runtime.js +0 -317
  220. /package/lib/cli/{tasks.d.ts → cmds/run-task.d.ts} +0 -0
@@ -1,18 +1,70 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.AwsCdkDeps = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const semver = require("semver");
38
+ const semver = __importStar(require("semver"));
7
39
  const component_1 = require("../component");
8
40
  const dependencies_1 = require("../dependencies");
9
41
  /**
10
42
  * Manages dependencies on the AWS CDK.
11
43
  */
12
44
  class AwsCdkDeps extends component_1.Component {
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.100.0" };
46
+ /**
47
+ * The dependency requirement for AWS CDK (e.g. `^2.0.0`).
48
+ */
49
+ cdkVersion;
50
+ /**
51
+ * The dependency requirement for the CDK CLI (e.g. '^2.3.4').
52
+ *
53
+ * Will return `^2` if the version was unspecified by the user.
54
+ */
55
+ cdkCliVersion;
56
+ /**
57
+ * The minimum version of the AWS CDK (e.g. `2.0.0`).
58
+ */
59
+ cdkMinimumVersion;
60
+ /**
61
+ * The major version of the AWS CDK (e.g. 1, 2, ...)
62
+ */
63
+ cdkMajorVersion;
64
+ dependencyType;
65
+ _packageNames;
13
66
  constructor(project, options) {
14
67
  super(project);
15
- this.cdkDependenciesAsDeps = options.cdkDependenciesAsDeps ?? true;
16
68
  this.dependencyType = options.dependencyType;
17
69
  this._packageNames = this.packageNames();
18
70
  const framework = determineFrameworkVersion(options);
@@ -20,14 +72,12 @@ class AwsCdkDeps extends component_1.Component {
20
72
  this.cdkVersion = framework.range;
21
73
  this.cdkMajorVersion = framework.major;
22
74
  this.cdkMinimumVersion = framework.minimum;
23
- this.addFrameworkDependency(options);
24
- // assert/assertions library
25
- this.addV1AssertionLibraryDependency(options);
75
+ if (this.cdkMajorVersion !== 2) {
76
+ throw new Error(`AWS CDK v${this.cdkMajorVersion} is not supported. Use "cdkVersion" 2.x (AWS CDK v1 has reached end-of-support).`);
77
+ }
78
+ this.addFrameworkDependency();
26
79
  // constructs library
27
80
  this.addConstructsDependency(options.constructsVersion);
28
- // user-defined v1 dependencies (will only fail in CDK v2 if these have values)
29
- this.addV1Dependencies(...(options.cdkDependencies ?? []));
30
- this.addV1DevDependencies(...(options.cdkTestDependencies ?? []));
31
81
  }
32
82
  preSynthesize() {
33
83
  // Log a warning if any AWS CDK v1-only deps are found in the dependencies.
@@ -39,63 +89,17 @@ class AwsCdkDeps extends component_1.Component {
39
89
  this.project.logger.warn(`WARNING: Found CDK v1 deps in your project, even though your "cdkVersion" is 2.x: [${v1Deps.join(", ")}]. Check out https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html for more information about using CDK v2 dependencies.`);
40
90
  }
41
91
  }
42
- /**
43
- * Adds dependencies to AWS CDK modules.
44
- *
45
- * The type of dependency is determined by the `dependencyType` option.
46
- *
47
- * This method is not supported in CDK v2. Use `project.addPeerDeps()` or
48
- * `project.addDeps()` as appropriate.
49
- *
50
- * @param deps names of cdk modules (e.g. `@aws-cdk/aws-lambda`).
51
- */
52
- addV1Dependencies(...deps) {
53
- if (deps.length > 0 && this.cdkMajorVersion !== 1) {
54
- throw new Error("addV1Dependencies() is not supported for CDK 2.x and above, use addDeps() or addPeerDeps() instead");
55
- }
56
- // this will add dependencies based on the type requested by the user
57
- // for libraries, this will be "peer" and for apps it will be "runtime"
58
- this.addV1DependenciesByType(this.dependencyType, ...deps);
59
- // add deps as runtime deps if `cdkDepsAsDeps` is true
60
- if (this.cdkDependenciesAsDeps) {
61
- this.addV1DependenciesByType(dependencies_1.DependencyType.RUNTIME, ...deps);
62
- }
63
- }
64
- /**
65
- * Adds AWS CDK modules as dev dependencies.
66
- *
67
- * This method is not supported in CDK v2. Use `project.addPeerDeps()` or
68
- * `project.addDeps()` as appropriate.
69
- *
70
- * @param deps fully qualified names of cdk modules (e.g. `@aws-cdk/aws-lambda`).
71
- */
72
- addV1DevDependencies(...deps) {
73
- if (deps.length > 0 && this.cdkMajorVersion !== 1) {
74
- throw new Error("addV1DevDependencies() is not supported for CDK 2.x and above, use addDevDeps()/addTestDeps() instead");
75
- }
76
- this.addV1DependenciesByType(dependencies_1.DependencyType.BUILD, ...deps);
77
- }
78
92
  addConstructsDependency(requestedVersion) {
79
93
  if (requestedVersion && !semver.parse(requestedVersion)) {
80
94
  throw new Error(`"constructsVersion" cannot be parsed as a semver version: ${requestedVersion}`);
81
95
  }
82
- const defaultVersion = this.cdkMajorVersion === 1 ? "3.2.27" : "10.5.1";
83
- const versionRequirement = `^${requestedVersion ?? defaultVersion}`;
96
+ const versionRequirement = `^${requestedVersion ?? "10.5.1"}`;
84
97
  const constructsMajorVersion = semver.minVersion(versionRequirement)?.major;
85
98
  if (!constructsMajorVersion) {
86
99
  throw new Error(`Cannot determine major version of constructs version '${versionRequirement}'`);
87
100
  }
88
- switch (this.cdkMajorVersion) {
89
- case 1:
90
- if (constructsMajorVersion !== 3) {
91
- throw new Error("AWS CDK 1.x requires constructs 3.x");
92
- }
93
- break;
94
- case 2:
95
- if (constructsMajorVersion !== 10) {
96
- throw new Error("AWS CDK 2.x requires constructs 10.x");
97
- }
98
- break;
101
+ if (constructsMajorVersion !== 10) {
102
+ throw new Error("AWS CDK 2.x requires constructs 10.x");
99
103
  }
100
104
  // First remove the version added by projen
101
105
  this.project.deps.removeDependency("constructs", dependencies_1.DependencyType.BUILD);
@@ -104,63 +108,13 @@ class AwsCdkDeps extends component_1.Component {
104
108
  return versionRequirement;
105
109
  }
106
110
  /**
107
- * Adds a dependency on the AWS CDK framework (e.g. `@aws-cdk/core` for V1 or `aws-cdk-lib` for V1).
111
+ * Adds a dependency on the AWS CDK framework (`aws-cdk-lib` for V2).
108
112
  */
109
- addFrameworkDependency(options) {
110
- switch (this.cdkMajorVersion) {
111
- case 1:
112
- this.addV1Dependencies(this._packageNames.coreV1);
113
- break;
114
- case 2:
115
- if (options.cdkDependencies !== undefined) {
116
- throw new Error('cdkDependencies is not used for CDK 2.x. Use "peerDeps" or "deps" instead');
117
- }
118
- if (options.cdkDependenciesAsDeps !== undefined) {
119
- throw new Error("cdkDependenciesAsDeps is not used for CDK 2.x");
120
- }
121
- if (options.cdkTestDependencies !== undefined) {
122
- throw new Error('cdkTestDependencies is not used for CDK 2.x. Use "devDeps" or "testDeps" instead');
123
- }
124
- this.project.deps.addDependency(`${this._packageNames.coreV2}@${this.cdkVersion}`, this.dependencyType);
125
- break;
126
- default:
127
- throw new Error(`Unsupported AWS CDK major version ${this.cdkMajorVersion}.x`);
128
- }
129
- }
130
- addV1AssertionLibraryDependency(options) {
131
- if (this.cdkMajorVersion !== 1) {
132
- if (options.cdkAssert !== undefined) {
133
- throw new Error("cdkAssert is not used for CDK 2.x. Use the assertions library that is provided in aws-cdk-lib");
134
- }
135
- if (options.cdkAssertions !== undefined) {
136
- throw new Error("cdkAssertion is not used for CDK 2.x. Use the assertions library that is provided in aws-cdk-lib");
137
- }
138
- return;
139
- }
140
- const testDeps = new Array();
141
- if ((options.cdkAssert ?? true) && this._packageNames.assert) {
142
- testDeps.push(this._packageNames.assert);
143
- }
144
- // @aws-cdk/assertions is only available starting v1.111.0
145
- if (semver.gte(this.cdkMinimumVersion, "1.111.0") &&
146
- (options.cdkAssertions ?? true)) {
147
- testDeps.push(this._packageNames.assertions);
148
- }
149
- this.addV1DependenciesByType(dependencies_1.DependencyType.TEST, ...testDeps);
150
- }
151
- /**
152
- * Adds a set of dependencies with the user-specified dependency type.
153
- * @param deps The set of dependency specifications
154
- */
155
- addV1DependenciesByType(type, ...modules) {
156
- for (const module of modules) {
157
- this.project.deps.addDependency(`${module}@${this.cdkVersion}`, type);
158
- }
113
+ addFrameworkDependency() {
114
+ this.project.deps.addDependency(`${this._packageNames.coreV2}@${this.cdkVersion}`, this.dependencyType);
159
115
  }
160
116
  }
161
117
  exports.AwsCdkDeps = AwsCdkDeps;
162
- _a = JSII_RTTI_SYMBOL_1;
163
- AwsCdkDeps[_a] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.99.80" };
164
118
  /**
165
119
  * Which AWS CDK version a construct library package belongs to.
166
120
  */
@@ -197,9 +151,9 @@ function cdkVersionOfPackage(packageName) {
197
151
  const AWS_CDK_V1_V2_SCOPED_PACKAGES = [
198
152
  // aws/aws-cdk
199
153
  // @see https://github.com/aws/aws-cdk/tree/main/packages/%40aws-cdk
200
- "@aws-cdk/assert", // deprecated
154
+ "@aws-cdk/assert", // EOL package
201
155
  "@aws-cdk/cfn-property-mixins",
202
- "@aws-cdk/cfnspec", // deprecated
156
+ "@aws-cdk/cfnspec", // EOL package
203
157
  "@aws-cdk/cx-api",
204
158
  "@aws-cdk/mixins-preview",
205
159
  "@aws-cdk/region-info",
@@ -226,4 +180,4 @@ function determineFrameworkVersion(options) {
226
180
  major: ver.major,
227
181
  };
228
182
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2F3c2Nkay1kZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUFpSWpEOztHQUVHO0FBQ0gsTUFBc0IsVUFBVyxTQUFRLHFCQUFTO0lBaUNoRCxZQUFZLE9BQWdCLEVBQUUsT0FBMEI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7UUFFbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpDLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUUzQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhELCtFQUErRTtRQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLElB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aW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQXdzQ2RrRGVwc2BcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDZGtEZXBzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIEFXUyBDREsgdG8gZGVwZW5kIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIjIuMTg5LjFcIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIHJhbmdlIG9mIHRoZSBBV1MgQ0RLIENMSSB0byBkZXBlbmQgb24uXG4gICAqXG4gICAqIENhbiBiZSBlaXRoZXIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBvciBhbiBOUE0gdmVyc2lvbiByYW5nZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIGxhdGVzdCAyLnggdmVyc2lvbiB3aWxsIGJlIGluc3RhbGxlZDsgeW91IGNhbiB1c2UgdGhpc1xuICAgKiBvcHRpb24gdG8gcmVzdHJpY3QgaXQgdG8gYSBzcGVjaWZpYyB2ZXJzaW9uIG9yIHZlcnNpb24gcmFuZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiXjJcIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQ2xpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTWluaW11bSB2ZXJzaW9uIG9mIHRoZSBgY29uc3RydWN0c2AgbGlicmFyeSB0byBkZXBlbmQgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZm9yIENESyAxLnggdGhlIGRlZmF1bHQgaXMgXCIzLjIuMjdcIiwgZm9yIENESyAyLnggdGhlIGRlZmF1bHQgaXNcbiAgICogXCIxMC41LjFcIi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdHNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBDREsuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCBtaXhlZCB2ZXJzaW9ucyBmb3IgeW91ciBDREsgZGVwZW5kZW5jaWVzIGFuZCB0byBwcmV2ZW50IGF1dG8tdXBkYXRlcy5cbiAgICogSWYgeW91IHVzZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhpcyB3aWxsIGxldCB5b3UgZGVmaW5lIHRoZSBtb21lbnQgeW91IGluY2x1ZGUgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hpY2ggQVdTIENES3YxIG1vZHVsZXMgdGhpcyBwcm9qZWN0IHJlcXVpcmVzXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIEZvciBDREsgMi54IHVzZSBcImRlcHNcIiBpbnN0ZWFkLiAob3IgXCJwZWVyRGVwc1wiIGlmIHlvdSdyZSBidWlsZGluZyBhIGxpYnJhcnkpXG4gICAqL1xuICByZWFkb25seSBjZGtEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBlbmFibGVkIChkZWZhdWx0KSwgYWxsIG1vZHVsZXMgZGVjbGFyZWQgaW4gYGNka0RlcGVuZGVuY2llc2Agd2lsbCBiZSBhbHNvIGFkZGVkIGFzXG4gICAqIG5vcm1hbCBgZGVwZW5kZW5jaWVzYCAoYXMgd2VsbCBhcyBgcGVlckRlcGVuZGVuY2llc2ApLlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IGRvd25zdHJlYW0gY29uc3VtZXJzIGFjdHVhbGx5IGhhdmUgeW91ciBDREsgZGVwZW5kZW5jaWVzIGluc3RhbGxlZFxuICAgKiB3aGVuIHVzaW5nIG5wbSA8IDcgb3IgeWFybiwgd2hlcmUgcGVlciBkZXBlbmRlbmNpZXMgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC5cbiAgICogSWYgdGhpcyBpcyBkaXNhYmxlZCwgYGNka0RlcGVuZGVuY2llc2Agd2lsbCBiZSBhZGRlZCB0byBgZGV2RGVwZW5kZW5jaWVzYCB0byBlbnN1cmVcbiAgICogdGhleSBhcmUgcHJlc2VudCBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIE5vdGU6IHRoaXMgc2V0dGluZyBvbmx5IGFwcGxpZXMgdG8gY29uc3RydWN0IGxpYnJhcnkgcHJvamVjdHNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAZGVwcmVjYXRlZCBOb3Qgc3VwcG9ydGVkIGluIENESyB2Mi5cbiAgICovXG4gIHJlYWRvbmx5IGNka0RlcGVuZGVuY2llc0FzRGVwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdhcm5pbmc6IE5vZGVKUyBvbmx5LlxuICAgKiBJbnN0YWxsIHRoZSBAYXdzLWNkay9hc3NlcnQgbGlicmFyeT9cbiAgICpcbiAgICogQGRlZmF1bHQgLSB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQgZm9yIEFXUyBDREsgPj0gMS4wLjAgPCAyLjAuMFxuICAgKiBAZGVwcmVjYXRlZCBUaGUgQGF3cy1jZGsvYXNzZXJ0IGxpYnJhcnkgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZlxuICAgKiBAYXdzLWNkay9hc3NlcnRpb25zIChpbiBWMSkgYW5kIGluY2x1ZGVkIGluIGBhd3MtY2RrLWxpYmAgZm9yIFYyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQXNzZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGFsbCB0aGUgYXNzZXJ0aW9ucyBsaWJyYXJ5P1xuICAgKlxuICAgKiBPbmx5IG5lZWRlZCBmb3IgQ0RLIDEueC4gSWYgdXNpbmcgQ0RLIDIueCB0aGVuXG4gICAqIGFzc2VydGlvbnMgaXMgYWxyZWFkeSBpbmNsdWRlZCBpbiAnYXdzLWNkay1saWInXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gd2lsbCBiZSBpbmNsdWRlZCBieSBkZWZhdWx0IGZvciBBV1MgQ0RLID49IDEuMTExLjAgPCAyLjAuMFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQXNzZXJ0aW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFXUyBDREsgbW9kdWxlcyByZXF1aXJlZCBmb3IgdGVzdGluZy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgRm9yIENESyAyLnggdXNlICdkZXZEZXBzJyAoaW4gbm9kZS5qcyBwcm9qZWN0cykgb3IgJ3Rlc3REZXBzJyAoaW4gamF2YSBwcm9qZWN0cykgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrVGVzdERlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0RlcHNPcHRpb25zIGV4dGVuZHMgQXdzQ2RrRGVwc0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGVwZW5kZW5jeSB0byB1c2UgZm9yIHJ1bnRpbWUgQVdTIENESyBhbmQgYGNvbnN0cnVjdHNgIG1vZHVsZXMuXG4gICAqXG4gICAqIEZvciBsaWJyYXJpZXMsIHVzZSBwZWVyIGRlcGVuZGVuY2llcyBhbmQgZm9yIGFwcHMgdXNlIHJ1bnRpbWUgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlO1xufVxuXG4vKipcbiAqIExhbmd1YWdlLXNwZWNpZmljIEFXUyBDREsgcGFja2FnZSBuYW1lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDZGtQYWNrYWdlTmFtZXMge1xuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGNvcmUgZnJhbWV3b3JrIHBhY2thZ2UgZm9yIENES3YxXG4gICAqL1xuICByZWFkb25seSBjb3JlVjE6IHN0cmluZztcbiAgLyoqXG4gICAqIEZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBjb3JlIGZyYW1ld29yayBwYWNrYWdlIGZvciBDREt2MlxuICAgKi9cbiAgcmVhZG9ubHkgY29yZVYyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgY29uc3RydWN0cyBsaWJyYXJ5IHBhY2thZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdHM6IHN0cmluZztcbiAgLyoqXG4gICAqIEZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBhc3NlcnRpb25zIGxpYnJhcnkgcGFja2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXJ0aW9uczogc3RyaW5nO1xuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGFzc2VydCBsaWJyYXJ5IHBhY2thZ2VcbiAgICogQ2FuIGJlIGVtcHR5IGFzIGl0J3Mgb25seSByZWFsbHkgYXZhaWxhYmxlIGZvciBqYXZhc2NyaXB0IHByb2plY3RzXG4gICAqL1xuICByZWFkb25seSBhc3NlcnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWFuYWdlcyBkZXBlbmRlbmNpZXMgb24gdGhlIEFXUyBDREsuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBd3NDZGtEZXBzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBkZXBlbmRlbmN5IHJlcXVpcmVtZW50IGZvciBBV1MgQ0RLIChlLmcuIGBeMi4wLjBgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXBlbmRlbmN5IHJlcXVpcmVtZW50IGZvciB0aGUgQ0RLIENMSSAoZS5nLiAnXjIuMy40JykuXG4gICAqXG4gICAqIFdpbGwgcmV0dXJuIGBeMmAgaWYgdGhlIHZlcnNpb24gd2FzIHVuc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka0NsaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgQVdTIENESyAoZS5nLiBgMi4wLjBgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtNaW5pbXVtVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIENESyBkZXBlbmRlbmNpZXMgYXJlIGFkZGVkIGFzIG5vcm1hbCBkZXBlbmRlbmNpZXMgKGFuZCBwZWVyIGRlcGVuZGVuY2llcykuXG4gICAqIEBkZXByZWNhdGVkIE5vdCB1c2VkIGZvciBDREsgMi54XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrRGVwZW5kZW5jaWVzQXNEZXBzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFqb3IgdmVyc2lvbiBvZiB0aGUgQVdTIENESyAoZS5nLiAxLCAyLCAuLi4pXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrTWFqb3JWZXJzaW9uOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbmN5VHlwZTogRGVwZW5kZW5jeVR5cGU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFja2FnZU5hbWVzOiBBd3NDZGtQYWNrYWdlTmFtZXM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQXdzQ2RrRGVwc09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuY2RrRGVwZW5kZW5jaWVzQXNEZXBzID0gb3B0aW9ucy5jZGtEZXBlbmRlbmNpZXNBc0RlcHMgPz8gdHJ1ZTtcblxuICAgIHRoaXMuZGVwZW5kZW5jeVR5cGUgPSBvcHRpb25zLmRlcGVuZGVuY3lUeXBlO1xuICAgIHRoaXMuX3BhY2thZ2VOYW1lcyA9IHRoaXMucGFja2FnZU5hbWVzKCk7XG5cbiAgICBjb25zdCBmcmFtZXdvcmsgPSBkZXRlcm1pbmVGcmFtZXdvcmtWZXJzaW9uKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5jZGtDbGlWZXJzaW9uID0gb3B0aW9ucy5jZGtDbGlWZXJzaW9uID8/IFwiXjJcIjtcbiAgICB0aGlzLmNka1ZlcnNpb24gPSBmcmFtZXdvcmsucmFuZ2U7XG4gICAgdGhpcy5jZGtNYWpvclZlcnNpb24gPSBmcmFtZXdvcmsubWFqb3I7XG4gICAgdGhpcy5jZGtNaW5pbXVtVmVyc2lvbiA9IGZyYW1ld29yay5taW5pbXVtO1xuXG4gICAgdGhpcy5hZGRGcmFtZXdvcmtEZXBlbmRlbmN5KG9wdGlvbnMpO1xuXG4gICAgLy8gYXNzZXJ0L2Fzc2VydGlvbnMgbGlicmFyeVxuICAgIHRoaXMuYWRkVjFBc3NlcnRpb25MaWJyYXJ5RGVwZW5kZW5jeShvcHRpb25zKTtcblxuICAgIC8vIGNvbnN0cnVjdHMgbGlicmFyeVxuICAgIHRoaXMuYWRkQ29uc3RydWN0c0RlcGVuZGVuY3kob3B0aW9ucy5jb25zdHJ1Y3RzVmVyc2lvbik7XG5cbiAgICAvLyB1c2VyLWRlZmluZWQgdjEgZGVwZW5kZW5jaWVzICh3aWxsIG9ubHkgZmFpbCBpbiBDREsgdjIgaWYgdGhlc2UgaGF2ZSB2YWx1ZXMpXG4gICAgdGhpcy5hZGRWMURlcGVuZGVuY2llcyguLi4ob3B0aW9ucy5jZGtEZXBlbmRlbmNpZXMgPz8gW10pKTtcbiAgICB0aGlzLmFkZFYxRGV2RGVwZW5kZW5jaWVzKC4uLihvcHRpb25zLmNka1Rlc3REZXBlbmRlbmNpZXMgPz8gW10pKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIC8vIExvZyBhIHdhcm5pbmcgaWYgYW55IEFXUyBDREsgdjEtb25seSBkZXBzIGFyZSBmb3VuZCBpbiB0aGUgZGVwZW5kZW5jaWVzLlxuICAgIGNvbnN0IGRlcE5hbWVzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQodGhpcy5wcm9qZWN0LmRlcHMuYWxsLm1hcCgoZGVwKSA9PiBkZXAubmFtZSkpLFxuICAgICk7XG4gICAgY29uc3QgdjFEZXBzID0gZGVwTmFtZXNcbiAgICAgIC5maWx0ZXIoKGRlcCkgPT5cbiAgICAgICAgW1BBQ0tBR0VfQVdTX0NES19WRVJTSU9OLlYxXS5pbmNsdWRlcyhjZGtWZXJzaW9uT2ZQYWNrYWdlKGRlcCkpLFxuICAgICAgKVxuICAgICAgLnNvcnQoKTtcbiAgICBpZiAodGhpcy5jZGtNYWpvclZlcnNpb24gPT09IDIgJiYgdjFEZXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgYFdBUk5JTkc6IEZvdW5kIENESyB2MSBkZXBzIGluIHlvdXIgcHJvamVjdCwgZXZlbiB0aG91Z2ggeW91ciBcImNka1ZlcnNpb25cIiBpcyAyLng6IFske3YxRGVwcy5qb2luKFxuICAgICAgICAgIFwiLCBcIixcbiAgICAgICAgKX1dLiBDaGVjayBvdXQgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9taWdyYXRpbmctdjIuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBDREsgdjIgZGVwZW5kZW5jaWVzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGRlcGVuZGVuY2llcyB0byBBV1MgQ0RLIG1vZHVsZXMuXG4gICAqXG4gICAqIFRoZSB0eXBlIG9mIGRlcGVuZGVuY3kgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYGRlcGVuZGVuY3lUeXBlYCBvcHRpb24uXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gQ0RLIHYyLiBVc2UgYHByb2plY3QuYWRkUGVlckRlcHMoKWAgb3JcbiAgICogYHByb2plY3QuYWRkRGVwcygpYCBhcyBhcHByb3ByaWF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGRlcHMgbmFtZXMgb2YgY2RrIG1vZHVsZXMgKGUuZy4gYEBhd3MtY2RrL2F3cy1sYW1iZGFgKS5cbiAgICovXG4gIHB1YmxpYyBhZGRWMURlcGVuZGVuY2llcyguLi5kZXBzOiBzdHJpbmdbXSkge1xuICAgIGlmIChkZXBzLmxlbmd0aCA+IDAgJiYgdGhpcy5jZGtNYWpvclZlcnNpb24gIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJhZGRWMURlcGVuZGVuY2llcygpIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIENESyAyLnggYW5kIGFib3ZlLCB1c2UgYWRkRGVwcygpIG9yIGFkZFBlZXJEZXBzKCkgaW5zdGVhZFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIHdpbGwgYWRkIGRlcGVuZGVuY2llcyBiYXNlZCBvbiB0aGUgdHlwZSByZXF1ZXN0ZWQgYnkgdGhlIHVzZXJcbiAgICAvLyBmb3IgbGlicmFyaWVzLCB0aGlzIHdpbGwgYmUgXCJwZWVyXCIgYW5kIGZvciBhcHBzIGl0IHdpbGwgYmUgXCJydW50aW1lXCJcbiAgICB0aGlzLmFkZFYxRGVwZW5kZW5jaWVzQnlUeXBlKHRoaXMuZGVwZW5kZW5jeVR5cGUsIC4uLmRlcHMpO1xuXG4gICAgLy8gYWRkIGRlcHMgYXMgcnVudGltZSBkZXBzIGlmIGBjZGtEZXBzQXNEZXBzYCBpcyB0cnVlXG4gICAgaWYgKHRoaXMuY2RrRGVwZW5kZW5jaWVzQXNEZXBzKSB7XG4gICAgICB0aGlzLmFkZFYxRGVwZW5kZW5jaWVzQnlUeXBlKERlcGVuZGVuY3lUeXBlLlJVTlRJTUUsIC4uLmRlcHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIEFXUyBDREsgbW9kdWxlcyBhcyBkZXYgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGluIENESyB2Mi4gVXNlIGBwcm9qZWN0LmFkZFBlZXJEZXBzKClgIG9yXG4gICAqIGBwcm9qZWN0LmFkZERlcHMoKWAgYXMgYXBwcm9wcmlhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBkZXBzIGZ1bGx5IHF1YWxpZmllZCBuYW1lcyBvZiBjZGsgbW9kdWxlcyAoZS5nLiBgQGF3cy1jZGsvYXdzLWxhbWJkYWApLlxuICAgKi9cbiAgcHVibGljIGFkZFYxRGV2RGVwZW5kZW5jaWVzKC4uLmRlcHM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGRlcHMubGVuZ3RoID4gMCAmJiB0aGlzLmNka01ham9yVmVyc2lvbiAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImFkZFYxRGV2RGVwZW5kZW5jaWVzKCkgaXMgbm90IHN1cHBvcnRlZCBmb3IgQ0RLIDIueCBhbmQgYWJvdmUsIHVzZSBhZGREZXZEZXBzKCkvYWRkVGVzdERlcHMoKSBpbnN0ZWFkXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVjFEZXBlbmRlbmNpZXNCeVR5cGUoRGVwZW5kZW5jeVR5cGUuQlVJTEQsIC4uLmRlcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb25zdHJ1Y3RzRGVwZW5kZW5jeShyZXF1ZXN0ZWRWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAocmVxdWVzdGVkVmVyc2lvbiAmJiAhc2VtdmVyLnBhcnNlKHJlcXVlc3RlZFZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBcImNvbnN0cnVjdHNWZXJzaW9uXCIgY2Fubm90IGJlIHBhcnNlZCBhcyBhIHNlbXZlciB2ZXJzaW9uOiAke3JlcXVlc3RlZFZlcnNpb259YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFZlcnNpb24gPSB0aGlzLmNka01ham9yVmVyc2lvbiA9PT0gMSA/IFwiMy4yLjI3XCIgOiBcIjEwLjUuMVwiO1xuICAgIGNvbnN0IHZlcnNpb25SZXF1aXJlbWVudCA9IGBeJHtyZXF1ZXN0ZWRWZXJzaW9uID8/IGRlZmF1bHRWZXJzaW9ufWA7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RzTWFqb3JWZXJzaW9uID0gc2VtdmVyLm1pblZlcnNpb24odmVyc2lvblJlcXVpcmVtZW50KT8ubWFqb3I7XG4gICAgaWYgKCFjb25zdHJ1Y3RzTWFqb3JWZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgZGV0ZXJtaW5lIG1ham9yIHZlcnNpb24gb2YgY29uc3RydWN0cyB2ZXJzaW9uICcke3ZlcnNpb25SZXF1aXJlbWVudH0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLmNka01ham9yVmVyc2lvbikge1xuICAgICAgY2FzZSAxOlxuICAgICAgICBpZiAoY29uc3RydWN0c01ham9yVmVyc2lvbiAhPT0gMykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFXUyBDREsgMS54IHJlcXVpcmVzIGNvbnN0cnVjdHMgMy54XCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDI6XG4gICAgICAgIGlmIChjb25zdHJ1Y3RzTWFqb3JWZXJzaW9uICE9PSAxMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFXUyBDREsgMi54IHJlcXVpcmVzIGNvbnN0cnVjdHMgMTAueFwiKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGaXJzdCByZW1vdmUgdGhlIHZlcnNpb24gYWRkZWQgYnkgcHJvamVuXG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShcImNvbnN0cnVjdHNcIiwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuXG4gICAgLy8gQWRkIHRoZSB2ZXJzaW9uIGZvciBDREtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYCR7dGhpcy5fcGFja2FnZU5hbWVzLmNvbnN0cnVjdHN9QCR7dmVyc2lvblJlcXVpcmVtZW50fWAsXG4gICAgICB0aGlzLmRlcGVuZGVuY3lUeXBlLFxuICAgICk7XG5cbiAgICByZXR1cm4gdmVyc2lvblJlcXVpcmVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZXBlbmRlbmN5IG9uIHRoZSBBV1MgQ0RLIGZyYW1ld29yayAoZS5nLiBgQGF3cy1jZGsvY29yZWAgZm9yIFYxIG9yIGBhd3MtY2RrLWxpYmAgZm9yIFYxKS5cbiAgICovXG4gIHByaXZhdGUgYWRkRnJhbWV3b3JrRGVwZW5kZW5jeShvcHRpb25zOiBBd3NDZGtEZXBzT3B0aW9ucykge1xuICAgIHN3aXRjaCAodGhpcy5jZGtNYWpvclZlcnNpb24pIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdGhpcy5hZGRWMURlcGVuZGVuY2llcyh0aGlzLl9wYWNrYWdlTmFtZXMuY29yZVYxKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaWYgKG9wdGlvbnMuY2RrRGVwZW5kZW5jaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnY2RrRGVwZW5kZW5jaWVzIGlzIG5vdCB1c2VkIGZvciBDREsgMi54LiBVc2UgXCJwZWVyRGVwc1wiIG9yIFwiZGVwc1wiIGluc3RlYWQnLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuY2RrRGVwZW5kZW5jaWVzQXNEZXBzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjZGtEZXBlbmRlbmNpZXNBc0RlcHMgaXMgbm90IHVzZWQgZm9yIENESyAyLnhcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuY2RrVGVzdERlcGVuZGVuY2llcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ2Nka1Rlc3REZXBlbmRlbmNpZXMgaXMgbm90IHVzZWQgZm9yIENESyAyLnguIFVzZSBcImRldkRlcHNcIiBvciBcInRlc3REZXBzXCIgaW5zdGVhZCcsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICAgICAgYCR7dGhpcy5fcGFja2FnZU5hbWVzLmNvcmVWMn1AJHt0aGlzLmNka1ZlcnNpb259YCxcbiAgICAgICAgICB0aGlzLmRlcGVuZGVuY3lUeXBlLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbnN1cHBvcnRlZCBBV1MgQ0RLIG1ham9yIHZlcnNpb24gJHt0aGlzLmNka01ham9yVmVyc2lvbn0ueGAsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRWMUFzc2VydGlvbkxpYnJhcnlEZXBlbmRlbmN5KG9wdGlvbnM6IEF3c0Nka0RlcHNPcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuY2RrTWFqb3JWZXJzaW9uICE9PSAxKSB7XG4gICAgICBpZiAob3B0aW9ucy5jZGtBc3NlcnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJjZGtBc3NlcnQgaXMgbm90IHVzZWQgZm9yIENESyAyLnguIFVzZSB0aGUgYXNzZXJ0aW9ucyBsaWJyYXJ5IHRoYXQgaXMgcHJvdmlkZWQgaW4gYXdzLWNkay1saWJcIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLmNka0Fzc2VydGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJjZGtBc3NlcnRpb24gaXMgbm90IHVzZWQgZm9yIENESyAyLnguIFVzZSB0aGUgYXNzZXJ0aW9ucyBsaWJyYXJ5IHRoYXQgaXMgcHJvdmlkZWQgaW4gYXdzLWNkay1saWJcIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRlc3REZXBzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGlmICgob3B0aW9ucy5jZGtBc3NlcnQgPz8gdHJ1ZSkgJiYgdGhpcy5fcGFja2FnZU5hbWVzLmFzc2VydCkge1xuICAgICAgdGVzdERlcHMucHVzaCh0aGlzLl9wYWNrYWdlTmFtZXMuYXNzZXJ0KTtcbiAgICB9XG5cbiAgICAvLyBAYXdzLWNkay9hc3NlcnRpb25zIGlzIG9ubHkgYXZhaWxhYmxlIHN0YXJ0aW5nIHYxLjExMS4wXG4gICAgaWYgKFxuICAgICAgc2VtdmVyLmd0ZSh0aGlzLmNka01pbmltdW1WZXJzaW9uLCBcIjEuMTExLjBcIikgJiZcbiAgICAgIChvcHRpb25zLmNka0Fzc2VydGlvbnMgPz8gdHJ1ZSlcbiAgICApIHtcbiAgICAgIHRlc3REZXBzLnB1c2godGhpcy5fcGFja2FnZU5hbWVzLmFzc2VydGlvbnMpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVjFEZXBlbmRlbmNpZXNCeVR5cGUoRGVwZW5kZW5jeVR5cGUuVEVTVCwgLi4udGVzdERlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzZXQgb2YgZGVwZW5kZW5jaWVzIHdpdGggdGhlIHVzZXItc3BlY2lmaWVkIGRlcGVuZGVuY3kgdHlwZS5cbiAgICogQHBhcmFtIGRlcHMgVGhlIHNldCBvZiBkZXBlbmRlbmN5IHNwZWNpZmljYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGFkZFYxRGVwZW5kZW5jaWVzQnlUeXBlKHR5cGU6IERlcGVuZGVuY3lUeXBlLCAuLi5tb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcbiAgICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koYCR7bW9kdWxlfUAke3RoaXMuY2RrVmVyc2lvbn1gLCB0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgY29uZmlndXJhdGlvbiBvYmplY3Qgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBwYWNrYWdlIG5hbWluZyBpbiB2YXJpb3VzIGxhbmd1YWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHBhY2thZ2VOYW1lcygpOiBBd3NDZGtQYWNrYWdlTmFtZXM7XG59XG5cbi8qKlxuICogV2hpY2ggQVdTIENESyB2ZXJzaW9uIGEgY29uc3RydWN0IGxpYnJhcnkgcGFja2FnZSBiZWxvbmdzIHRvLlxuICovXG5lbnVtIFBBQ0tBR0VfQVdTX0NES19WRVJTSU9OIHtcbiAgVjEgPSBcInYxXCIsXG4gIFYyID0gXCJ2MlwiLFxuICBFSVRIRVIgPSBcImVpdGhlclwiLCAvLyBUaGlzIHBhY2thZ2UgaGFzIGJlZW4gcHVibGlzaGVkIGJvdGggZm9yIHYxIGFuZCB2Mi5cbiAgVU5LTk9XTiA9IFwidW5rbm93blwiLFxufVxuXG5mdW5jdGlvbiBjZGtWZXJzaW9uT2ZQYWNrYWdlKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKHBhY2thZ2VOYW1lID09PSBcImF3cy1jZGstbGliXCIpIHtcbiAgICByZXR1cm4gUEFDS0FHRV9BV1NfQ0RLX1ZFUlNJT04uVjI7XG4gIH0gZWxzZSBpZiAocGFja2FnZU5hbWUuc3RhcnRzV2l0aChcIkBhd3MtY2RrL1wiKSkge1xuICAgIGlmIChwYWNrYWdlTmFtZS5lbmRzV2l0aChcIi1hbHBoYVwiKSkge1xuICAgICAgcmV0dXJuIFBBQ0tBR0VfQVdTX0NES19WRVJTSU9OLlYyO1xuICAgIH0gZWxzZSBpZiAoQVdTX0NES19WMV9WMl9TQ09QRURfUEFDS0FHRVMuaW5jbHVkZXMocGFja2FnZU5hbWUpKSB7XG4gICAgICByZXR1cm4gUEFDS0FHRV9BV1NfQ0RLX1ZFUlNJT04uRUlUSEVSO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUEFDS0FHRV9BV1NfQ0RLX1ZFUlNJT04uVjE7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBQQUNLQUdFX0FXU19DREtfVkVSU0lPTi5VTktOT1dOO1xuICB9XG59XG5cbi8qKlxuICogQSBsaXN0IG9mIGFsbCBrbm93biBwYWNrYWdlcyBpbiB0aGUgXCJAYXdzLWNkay9cIiBzY29wZSB0aGF0IGFyZSBwdWJsaXNoZWRcbiAqIGJvdGggZm9yIHYxIGFuZCB2Mi5cbiAqL1xuY29uc3QgQVdTX0NES19WMV9WMl9TQ09QRURfUEFDS0FHRVMgPSBbXG4gIC8vIGF3cy9hd3MtY2RrXG4gIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3RyZWUvbWFpbi9wYWNrYWdlcy8lNDBhd3MtY2RrXG4gIFwiQGF3cy1jZGsvYXNzZXJ0XCIsIC8vIGRlcHJlY2F0ZWRcbiAgXCJAYXdzLWNkay9jZm4tcHJvcGVydHktbWl4aW5zXCIsXG4gIFwiQGF3cy1jZGsvY2Zuc3BlY1wiLCAvLyBkZXByZWNhdGVkXG4gIFwiQGF3cy1jZGsvY3gtYXBpXCIsXG4gIFwiQGF3cy1jZGsvbWl4aW5zLXByZXZpZXdcIixcbiAgXCJAYXdzLWNkay9yZWdpb24taW5mb1wiLFxuXG4gIC8vIGF3cy9hd3MtY2RrLWNsaVxuICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay1jbGkvdHJlZS9tYWluL3BhY2thZ2VzLyU0MGF3cy1jZGtcbiAgXCJAYXdzLWNkay9jZGstYXNzZXRzLWxpYlwiLFxuICBcIkBhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3RcIixcbiAgXCJAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGlcIixcbiAgXCJAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWFcIixcbiAgXCJAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmXCIsXG4gIFwiQGF3cy1jZGsvaW50ZWctcnVubmVyXCIsXG4gIFwiQGF3cy1jZGsvdG9vbGtpdC1saWJcIixcbl07XG5cbmZ1bmN0aW9uIGRldGVybWluZUZyYW1ld29ya1ZlcnNpb24ob3B0aW9uczogQXdzQ2RrRGVwc09wdGlvbnMpIHtcbiAgY29uc3QgdmVyID0gc2VtdmVyLnBhcnNlKG9wdGlvbnMuY2RrVmVyc2lvbik7XG4gIGlmICghdmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFwiY2RrVmVyc2lvblwiIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBzZW12ZXIgdmVyc2lvbjogJHtvcHRpb25zLmNka1ZlcnNpb259YCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtaW5pbXVtOiB2ZXIuZm9ybWF0KCksXG4gICAgcmFuZ2U6IG9wdGlvbnMuY2RrVmVyc2lvblBpbm5pbmdcbiAgICAgID8gb3B0aW9ucy5jZGtWZXJzaW9uXG4gICAgICA6IGBeJHtvcHRpb25zLmNka1ZlcnNpb259YCxcbiAgICBtYWpvcjogdmVyLm1ham9yLFxuICB9O1xufVxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2F3c2Nkay1kZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFDakMsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQWtFakQ7O0dBRUc7QUFDSCxNQUFzQixVQUFXLFNBQVEscUJBQVM7O0lBQ2hEOztPQUVHO0lBQ2EsVUFBVSxDQUFTO0lBRW5DOzs7O09BSUc7SUFDYSxhQUFhLENBQVM7SUFFdEM7O09BRUc7SUFDYSxpQkFBaUIsQ0FBUztJQUUxQzs7T0FFRztJQUNhLGVBQWUsQ0FBUztJQUV2QixjQUFjLENBQWlCO0lBRS9CLGFBQWEsQ0FBcUI7SUFFbkQsWUFBWSxPQUFnQixFQUFFLE9BQTBCO1FBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6QyxNQUFNLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsWUFBWSxJQUFJLENBQUMsZUFBZSxrRkFBa0YsQ0FDbkgsQ0FBQztRQUNKLENB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RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUU7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDNUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQXdzQ2RrRGVwc2BcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDZGtEZXBzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHZlcnNpb24gb2YgdGhlIEFXUyBDREsgdG8gZGVwZW5kIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIjIuMTg5LjFcIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIHJhbmdlIG9mIHRoZSBBV1MgQ0RLIENMSSB0byBkZXBlbmQgb24uXG4gICAqXG4gICAqIENhbiBiZSBlaXRoZXIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBvciBhbiBOUE0gdmVyc2lvbiByYW5nZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIGxhdGVzdCAyLnggdmVyc2lvbiB3aWxsIGJlIGluc3RhbGxlZDsgeW91IGNhbiB1c2UgdGhpc1xuICAgKiBvcHRpb24gdG8gcmVzdHJpY3QgaXQgdG8gYSBzcGVjaWZpYyB2ZXJzaW9uIG9yIHZlcnNpb24gcmFuZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiXjJcIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrQ2xpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTWluaW11bSB2ZXJzaW9uIG9mIHRoZSBgY29uc3RydWN0c2AgbGlicmFyeSB0byBkZXBlbmQgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZm9yIENESyAxLnggdGhlIGRlZmF1bHQgaXMgXCIzLjIuMjdcIiwgZm9yIENESyAyLnggdGhlIGRlZmF1bHQgaXNcbiAgICogXCIxMC41LjFcIi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdHNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgcGlubmVkIHZlcnNpb24gaW5zdGVhZCBvZiBjYXJldCB2ZXJzaW9uIGZvciBDREsuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCBtaXhlZCB2ZXJzaW9ucyBmb3IgeW91ciBDREsgZGVwZW5kZW5jaWVzIGFuZCB0byBwcmV2ZW50IGF1dG8tdXBkYXRlcy5cbiAgICogSWYgeW91IHVzZSBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhpcyB3aWxsIGxldCB5b3UgZGVmaW5lIHRoZSBtb21lbnQgeW91IGluY2x1ZGUgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb25QaW5uaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NDZGtEZXBzT3B0aW9ucyBleHRlbmRzIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGRlcGVuZGVuY3kgdG8gdXNlIGZvciBydW50aW1lIEFXUyBDREsgYW5kIGBjb25zdHJ1Y3RzYCBtb2R1bGVzLlxuICAgKlxuICAgKiBGb3IgbGlicmFyaWVzLCB1c2UgcGVlciBkZXBlbmRlbmNpZXMgYW5kIGZvciBhcHBzIHVzZSBydW50aW1lIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZTtcbn1cblxuLyoqXG4gKiBMYW5ndWFnZS1zcGVjaWZpYyBBV1MgQ0RLIHBhY2thZ2UgbmFtZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrUGFja2FnZU5hbWVzIHtcbiAgLyoqXG4gICAqIEZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBjb3JlIGZyYW1ld29yayBwYWNrYWdlIGZvciBDREt2MlxuICAgKi9cbiAgcmVhZG9ubHkgY29yZVYyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgY29uc3RydWN0cyBsaWJyYXJ5IHBhY2thZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdHM6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNYW5hZ2VzIGRlcGVuZGVuY2llcyBvbiB0aGUgQVdTIENESy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF3c0Nka0RlcHMgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGRlcGVuZGVuY3kgcmVxdWlyZW1lbnQgZm9yIEFXUyBDREsgKGUuZy4gYF4yLjAuMGApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlcGVuZGVuY3kgcmVxdWlyZW1lbnQgZm9yIHRoZSBDREsgQ0xJIChlLmcuICdeMi4zLjQnKS5cbiAgICpcbiAgICogV2lsbCByZXR1cm4gYF4yYCBpZiB0aGUgdmVyc2lvbiB3YXMgdW5zcGVjaWZpZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrQ2xpVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIHRoZSBBV1MgQ0RLIChlLmcuIGAyLjAuMGApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka01pbmltdW1WZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoZSBBV1MgQ0RLIChlLmcuIDEsIDIsIC4uLilcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtNYWpvclZlcnNpb246IG51bWJlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wYWNrYWdlTmFtZXM6IEF3c0Nka1BhY2thZ2VOYW1lcztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBBd3NDZGtEZXBzT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5kZXBlbmRlbmN5VHlwZSA9IG9wdGlvbnMuZGVwZW5kZW5jeVR5cGU7XG4gICAgdGhpcy5fcGFja2FnZU5hbWVzID0gdGhpcy5wYWNrYWdlTmFtZXMoKTtcblxuICAgIGNvbnN0IGZyYW1ld29yayA9IGRldGVybWluZUZyYW1ld29ya1ZlcnNpb24ob3B0aW9ucyk7XG5cbiAgICB0aGlzLmNka0NsaVZlcnNpb24gPSBvcHRpb25zLmNka0NsaVZlcnNpb24gPz8gXCJeMlwiO1xuICAgIHRoaXMuY2RrVmVyc2lvbiA9IGZyYW1ld29yay5yYW5nZTtcbiAgICB0aGlzLmNka01ham9yVmVyc2lvbiA9IGZyYW1ld29yay5tYWpvcjtcbiAgICB0aGlzLmNka01pbmltdW1WZXJzaW9uID0gZnJhbWV3b3JrLm1pbmltdW07XG5cbiAgICBpZiAodGhpcy5jZGtNYWpvclZlcnNpb24gIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFXUyBDREsgdiR7dGhpcy5jZGtNYWpvclZlcnNpb259IGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBcImNka1ZlcnNpb25cIiAyLnggKEFXUyBDREsgdjEgaGFzIHJlYWNoZWQgZW5kLW9mLXN1cHBvcnQpLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkRnJhbWV3b3JrRGVwZW5kZW5jeSgpO1xuXG4gICAgLy8gY29uc3RydWN0cyBsaWJyYXJ5XG4gICAgdGhpcy5hZGRDb25zdHJ1Y3RzRGVwZW5kZW5jeShvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIC8vIExvZyBhIHdhcm5pbmcgaWYgYW55IEFXUyBDREsgdjEtb25seSBkZXBzIGFyZSBmb3VuZCBpbiB0aGUgZGVwZW5kZW5jaWVzLlxuICAgIGNvbnN0IGRlcE5hbWVzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQodGhpcy5wcm9qZWN0LmRlcHMuYWxsLm1hcCgoZGVwKSA9PiBkZXAubmFtZSkpLFxuICAgICk7XG4gICAgY29uc3QgdjFEZXBzID0gZGVwTmFtZXNcbiAgICAgIC5maWx0ZXIoKGRlcCkgPT5cbiAgICAgICAgW1BBQ0tBR0VfQVdTX0NES19WRVJTSU9OLlYxXS5pbmNsdWRlcyhjZGtWZXJzaW9uT2ZQYWNrYWdlKGRlcCkpLFxuICAgICAgKVxuICAgICAgLnNvcnQoKTtcbiAgICBpZiAodGhpcy5jZGtNYWpvclZlcnNpb24gPT09IDIgJiYgdjFEZXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgYFdBUk5JTkc6IEZvdW5kIENESyB2MSBkZXBzIGluIHlvdXIgcHJvamVjdCwgZXZlbiB0aG91Z2ggeW91ciBcImNka1ZlcnNpb25cIiBpcyAyLng6IFske3YxRGVwcy5qb2luKFxuICAgICAgICAgIFwiLCBcIixcbiAgICAgICAgKX1dLiBDaGVjayBvdXQgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay92Mi9ndWlkZS9taWdyYXRpbmctdjIuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBDREsgdjIgZGVwZW5kZW5jaWVzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29uc3RydWN0c0RlcGVuZGVuY3kocmVxdWVzdGVkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHJlcXVlc3RlZFZlcnNpb24gJiYgIXNlbXZlci5wYXJzZShyZXF1ZXN0ZWRWZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgXCJjb25zdHJ1Y3RzVmVyc2lvblwiIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBzZW12ZXIgdmVyc2lvbjogJHtyZXF1ZXN0ZWRWZXJzaW9ufWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb25SZXF1aXJlbWVudCA9IGBeJHtyZXF1ZXN0ZWRWZXJzaW9uID8/IFwiMTAuNS4xXCJ9YDtcblxuICAgIGNvbnN0IGNvbnN0cnVjdHNNYWpvclZlcnNpb24gPSBzZW12ZXIubWluVmVyc2lvbih2ZXJzaW9uUmVxdWlyZW1lbnQpPy5tYWpvcjtcbiAgICBpZiAoIWNvbnN0cnVjdHNNYWpvclZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBkZXRlcm1pbmUgbWFqb3IgdmVyc2lvbiBvZiBjb25zdHJ1Y3RzIHZlcnNpb24gJyR7dmVyc2lvblJlcXVpcmVtZW50fSdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uc3RydWN0c01ham9yVmVyc2lvbiAhPT0gMTApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFXUyBDREsgMi54IHJlcXVpcmVzIGNvbnN0cnVjdHMgMTAueFwiKTtcbiAgICB9XG5cbiAgICAvLyBGaXJzdCByZW1vdmUgdGhlIHZlcnNpb24gYWRkZWQgYnkgcHJvamVuXG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShcImNvbnN0cnVjdHNcIiwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuXG4gICAgLy8gQWRkIHRoZSB2ZXJzaW9uIGZvciBDREtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYCR7dGhpcy5fcGFja2FnZU5hbWVzLmNvbnN0cnVjdHN9QCR7dmVyc2lvblJlcXVpcmVtZW50fWAsXG4gICAgICB0aGlzLmRlcGVuZGVuY3lUeXBlLFxuICAgICk7XG5cbiAgICByZXR1cm4gdmVyc2lvblJlcXVpcmVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZXBlbmRlbmN5IG9uIHRoZSBBV1MgQ0RLIGZyYW1ld29yayAoYGF3cy1jZGstbGliYCBmb3IgVjIpLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRGcmFtZXdvcmtEZXBlbmRlbmN5KCkge1xuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHt0aGlzLl9wYWNrYWdlTmFtZXMuY29yZVYyfUAke3RoaXMuY2RrVmVyc2lvbn1gLFxuICAgICAgdGhpcy5kZXBlbmRlbmN5VHlwZSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgcGFja2FnZSBuYW1pbmcgaW4gdmFyaW91cyBsYW5ndWFnZXNcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwYWNrYWdlTmFtZXMoKTogQXdzQ2RrUGFja2FnZU5hbWVzO1xufVxuXG4vKipcbiAqIFdoaWNoIEFXUyBDREsgdmVyc2lvbiBhIGNvbnN0cnVjdCBsaWJyYXJ5IHBhY2thZ2UgYmVsb25ncyB0by5cbiAqL1xuZW51bSBQQUNLQUdFX0FXU19DREtfVkVSU0lPTiB7XG4gIFYxID0gXCJ2MVwiLFxuICBWMiA9IFwidjJcIixcbiAgRUlUSEVSID0gXCJlaXRoZXJcIiwgLy8gVGhpcyBwYWNrYWdlIGhhcyBiZWVuIHB1Ymxpc2hlZCBib3RoIGZvciB2MSBhbmQgdjIuXG4gIFVOS05PV04gPSBcInVua25vd25cIixcbn1cblxuZnVuY3Rpb24gY2RrVmVyc2lvbk9mUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGlmIChwYWNrYWdlTmFtZSA9PT0gXCJhd3MtY2RrLWxpYlwiKSB7XG4gICAgcmV0dXJuIFBBQ0tBR0VfQVdTX0NES19WRVJTSU9OLlYyO1xuICB9IGVsc2UgaWYgKHBhY2thZ2VOYW1lLnN0YXJ0c1dpdGgoXCJAYXdzLWNkay9cIikpIHtcbiAgICBpZiAocGFja2FnZU5hbWUuZW5kc1dpdGgoXCItYWxwaGFcIikpIHtcbiAgICAgIHJldHVybiBQQUNLQUdFX0FXU19DREtfVkVSU0lPTi5WMjtcbiAgICB9IGVsc2UgaWYgKEFXU19DREtfVjFfVjJfU0NPUEVEX1BBQ0tBR0VTLmluY2x1ZGVzKHBhY2thZ2VOYW1lKSkge1xuICAgICAgcmV0dXJuIFBBQ0tBR0VfQVdTX0NES19WRVJTSU9OLkVJVEhFUjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFBBQ0tBR0VfQVdTX0NES19WRVJTSU9OLlYxO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gUEFDS0FHRV9BV1NfQ0RLX1ZFUlNJT04uVU5LTk9XTjtcbiAgfVxufVxuXG4vKipcbiAqIEEgbGlzdCBvZiBhbGwga25vd24gcGFja2FnZXMgaW4gdGhlIFwiQGF3cy1jZGsvXCIgc2NvcGUgdGhhdCBhcmUgcHVibGlzaGVkXG4gKiBib3RoIGZvciB2MSBhbmQgdjIuXG4gKi9cbmNvbnN0IEFXU19DREtfVjFfVjJfU0NPUEVEX1BBQ0tBR0VTID0gW1xuICAvLyBhd3MvYXdzLWNka1xuICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay90cmVlL21haW4vcGFja2FnZXMvJTQwYXdzLWNka1xuICBcIkBhd3MtY2RrL2Fzc2VydFwiLCAvLyBFT0wgcGFja2FnZVxuICBcIkBhd3MtY2RrL2Nmbi1wcm9wZXJ0eS1taXhpbnNcIixcbiAgXCJAYXdzLWNkay9jZm5zcGVjXCIsIC8vIEVPTCBwYWNrYWdlXG4gIFwiQGF3cy1jZGsvY3gtYXBpXCIsXG4gIFwiQGF3cy1jZGsvbWl4aW5zLXByZXZpZXdcIixcbiAgXCJAYXdzLWNkay9yZWdpb24taW5mb1wiLFxuXG4gIC8vIGF3cy9hd3MtY2RrLWNsaVxuICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay1jbGkvdHJlZS9tYWluL3BhY2thZ2VzLyU0MGF3cy1jZGtcbiAgXCJAYXdzLWNkay9jZGstYXNzZXRzLWxpYlwiLFxuICBcIkBhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3RcIixcbiAgXCJAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGlcIixcbiAgXCJAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWFcIixcbiAgXCJAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmXCIsXG4gIFwiQGF3cy1jZGsvaW50ZWctcnVubmVyXCIsXG4gIFwiQGF3cy1jZGsvdG9vbGtpdC1saWJcIixcbl07XG5cbmZ1bmN0aW9uIGRldGVybWluZUZyYW1ld29ya1ZlcnNpb24ob3B0aW9uczogQXdzQ2RrRGVwc09wdGlvbnMpIHtcbiAgY29uc3QgdmVyID0gc2VtdmVyLnBhcnNlKG9wdGlvbnMuY2RrVmVyc2lvbik7XG4gIGlmICghdmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFwiY2RrVmVyc2lvblwiIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBzZW12ZXIgdmVyc2lvbjogJHtvcHRpb25zLmNka1ZlcnNpb259YCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtaW5pbXVtOiB2ZXIuZm9ybWF0KCksXG4gICAgcmFuZ2U6IG9wdGlvbnMuY2RrVmVyc2lvblBpbm5pbmdcbiAgICAgID8gb3B0aW9ucy5jZGtWZXJzaW9uXG4gICAgICA6IGBeJHtvcHRpb25zLmNka1ZlcnNpb259YCxcbiAgICBtYWpvcjogdmVyLm1ham9yLFxuICB9O1xufVxuIl19
@@ -1,22 +1,6 @@
1
1
  import { Component } from "../component";
2
2
  import { JsonFile } from "../json";
3
3
  import type { Project } from "../project";
4
- /**
5
- * CDK V1 feature flags configuration.
6
- * @deprecated CDK V1 is EOS. Upgrade to CDK V2.
7
- */
8
- export declare class CdkFeatureFlagsV1 implements ICdkFeatureFlags {
9
- /**
10
- * Disable all feature flags.
11
- */
12
- static readonly NONE: CdkFeatureFlagsV1;
13
- /**
14
- * Enable all CDK V1 feature flags.
15
- */
16
- static readonly ALL: CdkFeatureFlagsV1;
17
- readonly flags: Record<string, unknown>;
18
- private constructor();
19
- }
20
4
  /**
21
5
  * CDK V2 feature flags configuration.
22
6
  */
@@ -55,11 +39,6 @@ export interface ICdkFeatureFlags {
55
39
  * CDK feature flags configuration.
56
40
  */
57
41
  export declare class CdkFeatureFlags implements ICdkFeatureFlags {
58
- /**
59
- * CDK V1 feature flags configuration.
60
- * @deprecated CDK V1 is EOS. Upgrade to CDK V2.
61
- */
62
- static readonly V1: typeof CdkFeatureFlagsV1;
63
42
  /**
64
43
  * CDK V2 feature flags configuration.
65
44
  */
@@ -1,37 +1,30 @@
1
1
  "use strict";
2
- var _a, _b, _c, _d;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ApprovalLevel = exports.CdkConfig = exports.CdkFeatureFlags = exports.CdkFeatureFlagsV2 = exports.CdkFeatureFlagsV1 = void 0;
3
+ exports.ApprovalLevel = exports.CdkConfig = exports.CdkFeatureFlags = exports.CdkFeatureFlagsV2 = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
5
  const fast_json_patch_1 = require("fast-json-patch");
7
6
  const component_1 = require("../component");
8
7
  const json_1 = require("../json");
9
8
  const util_1 = require("../util");
10
9
  const internal_1 = require("./internal");
11
- /**
12
- * CDK V1 feature flags configuration.
13
- * @deprecated CDK V1 is EOS. Upgrade to CDK V2.
14
- */
15
- class CdkFeatureFlagsV1 {
16
- constructor(flags) {
17
- this.flags = flags;
18
- }
19
- }
20
- exports.CdkFeatureFlagsV1 = CdkFeatureFlagsV1;
21
- _a = JSII_RTTI_SYMBOL_1;
22
- CdkFeatureFlagsV1[_a] = { fqn: "projen.awscdk.CdkFeatureFlagsV1", version: "0.99.80" };
23
- /**
24
- * Disable all feature flags.
25
- */
26
- CdkFeatureFlagsV1.NONE = new CdkFeatureFlagsV1({});
27
- /**
28
- * Enable all CDK V1 feature flags.
29
- */
30
- CdkFeatureFlagsV1.ALL = new CdkFeatureFlagsV1(internal_1.FEATURE_FLAGS_V1);
31
10
  /**
32
11
  * CDK V2 feature flags configuration.
33
12
  */
34
13
  class CdkFeatureFlagsV2 {
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.100.0" };
15
+ /**
16
+ * Disable all feature flags.
17
+ */
18
+ static NONE = new CdkFeatureFlagsV2({});
19
+ /**
20
+ * Enable all CDK V2 feature flags known to projen.
21
+ * These might not include feature flags, if your version of projen isn't up-to-date.
22
+ *
23
+ * Make sure to double-check any changes to feature flags in `cdk.json` before deploying.
24
+ * Unexpected changes may cause breaking changes in your CDK app.
25
+ * You can overwrite any feature flag by passing it into the context field.
26
+ */
27
+ static ALL = new CdkFeatureFlagsV2(internal_1.FEATURE_FLAGS_V2);
35
28
  /**
36
29
  * Attempt to load the feature flags from the `aws-cdk-lib/recommended-feature-flags.json` in a locally available npm package.
37
30
  * This file is typically only present in AWS CDK TypeScript projects, but can yield more accurate results.
@@ -49,50 +42,52 @@ class CdkFeatureFlagsV2 {
49
42
  return CdkFeatureFlags.V2.ALL;
50
43
  }
51
44
  }
45
+ flags;
52
46
  constructor(flags) {
53
47
  this.flags = flags;
54
48
  }
55
49
  }
56
50
  exports.CdkFeatureFlagsV2 = CdkFeatureFlagsV2;
57
- _b = JSII_RTTI_SYMBOL_1;
58
- CdkFeatureFlagsV2[_b] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.99.80" };
59
- /**
60
- * Disable all feature flags.
61
- */
62
- CdkFeatureFlagsV2.NONE = new CdkFeatureFlagsV2({});
63
- /**
64
- * Enable all CDK V2 feature flags known to projen.
65
- * These might not include feature flags, if your version of projen isn't up-to-date.
66
- *
67
- * Make sure to double-check any changes to feature flags in `cdk.json` before deploying.
68
- * Unexpected changes may cause breaking changes in your CDK app.
69
- * You can overwrite any feature flag by passing it into the context field.
70
- */
71
- CdkFeatureFlagsV2.ALL = new CdkFeatureFlagsV2(internal_1.FEATURE_FLAGS_V2);
72
51
  /**
73
52
  * CDK feature flags configuration.
74
53
  */
75
54
  class CdkFeatureFlags {
55
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.100.0" };
56
+ /**
57
+ * CDK V2 feature flags configuration.
58
+ */
59
+ static V2 = CdkFeatureFlagsV2;
60
+ flags;
76
61
  constructor(flags) {
77
62
  this.flags = flags;
78
63
  }
79
64
  }
80
65
  exports.CdkFeatureFlags = CdkFeatureFlags;
81
- _c = JSII_RTTI_SYMBOL_1;
82
- CdkFeatureFlags[_c] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.99.80" };
83
- /**
84
- * CDK V1 feature flags configuration.
85
- * @deprecated CDK V1 is EOS. Upgrade to CDK V2.
86
- */
87
- CdkFeatureFlags.V1 = CdkFeatureFlagsV1;
88
- /**
89
- * CDK V2 feature flags configuration.
90
- */
91
- CdkFeatureFlags.V2 = CdkFeatureFlagsV2;
92
66
  /**
93
67
  * Represents cdk.json file.
94
68
  */
95
69
  class CdkConfig extends component_1.Component {
70
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkConfig", version: "0.100.0" };
71
+ /**
72
+ * Represents the JSON file.
73
+ */
74
+ json;
75
+ /**
76
+ * Name of the cdk.out directory.
77
+ */
78
+ cdkout;
79
+ /**
80
+ * List of glob patterns to be included by CDK.
81
+ */
82
+ _include;
83
+ /**
84
+ * List of glob patterns to be excluded by CDK.
85
+ */
86
+ _exclude;
87
+ /**
88
+ * The context to write to cdk.json.
89
+ */
90
+ _context;
96
91
  constructor(project, options) {
97
92
  super(project);
98
93
  this.cdkout = options.cdkout ?? "cdk.out";
@@ -155,8 +150,6 @@ class CdkConfig extends component_1.Component {
155
150
  }
156
151
  }
157
152
  exports.CdkConfig = CdkConfig;
158
- _d = JSII_RTTI_SYMBOL_1;
159
- CdkConfig[_d] = { fqn: "projen.awscdk.CdkConfig", version: "0.99.80" };
160
153
  /**
161
154
  * Which approval is required when deploying CDK apps.
162
155
  */
@@ -175,4 +168,4 @@ var ApprovalLevel;
175
168
  */
176
169
  ApprovalLevel["BROADENING"] = "broadening";
177
170
  })(ApprovalLevel || (exports.ApprovalLevel = ApprovalLevel = {}));
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvY2RrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUE0QztBQUM1Qyw0Q0FBeUM7QUFDekMsa0NBQW1DO0FBRW5DLGtDQUEwQztBQUMxQyx5Q0FBZ0U7QUFFaEU7OztHQUdHO0FBQ0gsTUFBYSxpQkFBaUI7SUFhNUIsWUFBb0IsS0FBOEI7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQzs7QUFmSCw4Q0FnQkM7OztBQWZDOztHQUVHO0FBQ29CLHNCQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUV4RDs7R0FFRztBQUNvQixxQkFBRyxHQUFHLElBQUksaUJBQWlCLENBQUMsMkJBQWdCLENBQUMsQ0FBQztBQVN2RTs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBZ0I1Qjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxrQkFBa0I7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQ2hCLElBQUEsc0JBQWUsRUFDYixPQUFPLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxFQUFFO2dCQUM1RCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDdkIsQ0FBQyxDQUNILElBQUksSUFBSSxDQUFDO1lBRVosT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUlELFlBQW9CLEtBQThCO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBekNILDhDQTBDQzs7O0FBekNDOztHQUVHO0FB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RUc7SUFDSCxnQ0FBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCwwQ0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFiVyxhQUFhLDZCQUFiLGFBQWEsUUFheEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWVwQ2xvbmUgfSBmcm9tIFwiZmFzdC1qc29uLXBhdGNoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gXCIuLi9qc29uXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgdHJ5UmVhZEZpbGVTeW5jIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IEZFQVRVUkVfRkxBR1NfVjEsIEZFQVRVUkVfRkxBR1NfVjIgfSBmcm9tIFwiLi9pbnRlcm5hbFwiO1xuXG4vKipcbiAqIENESyBWMSBmZWF0dXJlIGZsYWdzIGNvbmZpZ3VyYXRpb24uXG4gKiBAZGVwcmVjYXRlZCBDREsgVjEgaXMgRU9TLiBVcGdyYWRlIHRvIENESyBWMi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka0ZlYXR1cmVGbGFnc1YxIGltcGxlbWVudHMgSUNka0ZlYXR1cmVGbGFncyB7XG4gIC8qKlxuICAgKiBEaXNhYmxlIGFsbCBmZWF0dXJlIGZsYWdzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IENka0ZlYXR1cmVGbGFnc1YxKHt9KTtcblxuICAvKipcbiAgICogRW5hYmxlIGFsbCBDREsgVjEgZmVhdHVyZSBmbGFncy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMID0gbmV3IENka0ZlYXR1cmVGbGFnc1YxKEZFQVRVUkVfRkxBR1NfVjEpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmbGFnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihmbGFnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICB0aGlzLmZsYWdzID0gZmxhZ3M7XG4gIH1cbn1cblxuLyoqXG4gKiBDREsgVjIgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrRmVhdHVyZUZsYWdzVjIgaW1wbGVtZW50cyBJQ2RrRmVhdHVyZUZsYWdzIHtcbiAgLyoqXG4gICAqIERpc2FibGUgYWxsIGZlYXR1cmUgZmxhZ3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgQ2RrRmVhdHVyZUZsYWdzVjIoe30pO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYWxsIENESyBWMiBmZWF0dXJlIGZsYWdzIGtub3duIHRvIHByb2plbi5cbiAgICogVGhlc2UgbWlnaHQgbm90IGluY2x1ZGUgZmVhdHVyZSBmbGFncywgaWYgeW91ciB2ZXJzaW9uIG9mIHByb2plbiBpc24ndCB1cC10by1kYXRlLlxuICAgKlxuICAgKiBNYWtlIHN1cmUgdG8gZG91YmxlLWNoZWNrIGFueSBjaGFuZ2VzIHRvIGZlYXR1cmUgZmxhZ3MgaW4gYGNkay5qc29uYCBiZWZvcmUgZGVwbG95aW5nLlxuICAgKiBVbmV4cGVjdGVkIGNoYW5nZXMgbWF5IGNhdXNlIGJyZWFraW5nIGNoYW5nZXMgaW4geW91ciBDREsgYXBwLlxuICAgKiBZb3UgY2FuIG92ZXJ3cml0ZSBhbnkgZmVhdHVyZSBmbGFnIGJ5IHBhc3NpbmcgaXQgaW50byB0aGUgY29udGV4dCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMID0gbmV3IENka0ZlYXR1cmVGbGFnc1YyKEZFQVRVUkVfRkxBR1NfVjIpO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIGxvYWQgdGhlIGZlYXR1cmUgZmxhZ3MgZnJvbSB0aGUgYGF3cy1jZGstbGliL3JlY29tbWVuZGVkLWZlYXR1cmUtZmxhZ3MuanNvbmAgaW4gYSBsb2NhbGx5IGF2YWlsYWJsZSBucG0gcGFja2FnZS5cbiAgICogVGhpcyBmaWxlIGlzIHR5cGljYWxseSBvbmx5IHByZXNlbnQgaW4gQVdTIENESyBUeXBlU2NyaXB0IHByb2plY3RzLCBidXQgY2FuIHlpZWxkIG1vcmUgYWNjdXJhdGUgcmVzdWx0cy5cbiAgICpcbiAgICogRmFsbHMgYmFjayB0byBhbGwga25vd24gZmVhdHVyZSBmbGFncyBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEF3c0Nka0xpYigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID1cbiAgICAgICAgdHJ5UmVhZEZpbGVTeW5jKFxuICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcImF3cy1jZGstbGliL3JlY29tbWVuZGVkLWZlYXR1cmUtZmxhZ3MuanNvblwiLCB7XG4gICAgICAgICAgICBwYXRoczogW3Byb2Nlc3MuY3dkKCldLFxuICAgICAgICAgIH0pLFxuICAgICAgICApIHx8IFwie31cIjtcblxuICAgICAgcmV0dXJuIG5ldyBDZGtGZWF0dXJlRmxhZ3NWMihKU09OLnBhcnNlKGZlYXR1cmVGbGFncykpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIENka0ZlYXR1cmVGbGFncy5WMi5BTEw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuZmxhZ3MgPSBmbGFncztcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAc3ViY2xhc3NhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNka0ZlYXR1cmVGbGFncyB7XG4gIHJlYWRvbmx5IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBDREsgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrRmVhdHVyZUZsYWdzIGltcGxlbWVudHMgSUNka0ZlYXR1cmVGbGFncyB7XG4gIC8qKlxuICAgKiBDREsgVjEgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICAgKiBAZGVwcmVjYXRlZCBDREsgVjEgaXMgRU9TLiBVcGdyYWRlIHRvIENESyBWMi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjEgPSBDZGtGZWF0dXJlRmxhZ3NWMTtcblxuICAvKipcbiAgICogQ0RLIFYyIGZlYXR1cmUgZmxhZ3MgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjIgPSBDZGtGZWF0dXJlRmxhZ3NWMjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgdGhpcy5mbGFncyA9IGZsYWdzO1xuICB9XG59XG5cbi8qKlxuICogQ29tbW9uIG9wdGlvbnMgZm9yIGBjZGsuanNvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29uZmlnQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbnRleHQgdG8gaW5jbHVkZSBpbiBgY2RrLmpzb25gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgY29udGV4dFxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEZlYXR1cmUgZmxhZ3MgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBpbiBgY2RrLmpzb25gLlxuICAgKlxuICAgKiBNYWtlIHN1cmUgdG8gZG91YmxlLWNoZWNrIGFueSBjaGFuZ2VzIHRvIGZlYXR1cmUgZmxhZ3MgaW4gYGNkay5qc29uYCBiZWZvcmUgZGVwbG95aW5nLlxuICAgKiBVbmV4cGVjdGVkIGNoYW5nZXMgbWF5IGNhdXNlIGJyZWFraW5nIGNoYW5nZXMgaW4geW91ciBDREsgYXBwLlxuICAgKiBZb3UgY2FuIG92ZXJ3cml0ZSBhbnkgZmVhdHVyZSBmbGFnIGJ5IHBhc3NpbmcgaXQgaW50byB0aGUgY29udGV4dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBmZWF0dXJlIGZsYWdzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IElDZGtGZWF0dXJlRmxhZ3M7XG5cbiAgLyoqXG4gICAqIFRvIHByb3RlY3QgeW91IGFnYWluc3QgdW5pbnRlbmRlZCBjaGFuZ2VzIHRoYXQgYWZmZWN0IHlvdXIgc2VjdXJpdHkgcG9zdHVyZSxcbiAgICogdGhlIEFXUyBDREsgVG9vbGtpdCBwcm9tcHRzIHlvdSB0byBhcHByb3ZlIHNlY3VyaXR5LXJlbGF0ZWQgY2hhbmdlcyBiZWZvcmUgZGVwbG95aW5nIHRoZW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IEFwcHJvdmFsTGV2ZWwuQlJPQURFTklOR1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZUFwcHJvdmFsPzogQXBwcm92YWxMZXZlbDtcblxuICAvKipcbiAgICogY2RrLm91dCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiY2RrLm91dFwiXG4gICAqL1xuICByZWFkb25seSBjZGtvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29tbWFuZCB0byBleGVjdXRlIGJlZm9yZSBzeW50aGVzaXMuIFRoaXMgY29tbWFuZCB3aWxsIGJlIGNhbGxlZCB3aGVuXG4gICAqIHJ1bm5pbmcgYGNkayBzeW50aGAgb3Igd2hlbiBgY2RrIHdhdGNoYCBpZGVudGlmaWVzIGEgY2hhbmdlIGluIHlvdXIgc291cmNlXG4gICAqIGNvZGUgYmVmb3JlIHJlZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBidWlsZENvbW1hbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdsb2IgcGF0dGVybnMgdG8gaW5jbHVkZSBpbiBgY2RrIHdhdGNoYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoSW5jbHVkZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2xvYiBwYXR0ZXJucyB0byBleGNsdWRlIGZyb20gYGNkayB3YXRjaGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB3YXRjaEV4Y2x1ZGVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYENka0pzb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0NvbmZpZ09wdGlvbnMgZXh0ZW5kcyBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIGxpbmUgdG8gZXhlY3V0ZSBpbiBvcmRlciB0byBzeW50aGVzaXplIHRoZSBDREsgYXBwbGljYXRpb25cbiAgICogKGxhbmd1YWdlIHNwZWNpZmljKS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgY2RrLmpzb24gZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENka0NvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBKU09OIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkganNvbjogSnNvbkZpbGU7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNkay5vdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka291dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdsb2IgcGF0dGVybnMgdG8gYmUgaW5jbHVkZWQgYnkgQ0RLLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5jbHVkZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0byBiZSBleGNsdWRlZCBieSBDREsuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9leGNsdWRlOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgdG8gd3JpdGUgdG8gY2RrLmpzb24uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBDZGtDb25maWdPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmNka291dCA9IG9wdGlvbnMuY2Rrb3V0ID8/IFwiY2RrLm91dFwiO1xuICAgIHRoaXMuX2luY2x1ZGUgPSBvcHRpb25zLndhdGNoSW5jbHVkZXMgPz8gW107XG4gICAgdGhpcy5fZXhjbHVkZSA9IG9wdGlvbnMud2F0Y2hFeGNsdWRlcyA/PyBbXTtcblxuICAgIGNvbnN0IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IG9wdGlvbnMuZmVhdHVyZUZsYWdzPy5mbGFncyA/PyB7fTtcbiAgICB0aGlzLl9jb250ZXh0ID0ge1xuICAgICAgLi4uZmxhZ3MsXG4gICAgICAvLyBDdXN0b21lciBjb250ZXh0IHNob3VsZCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUgZGVmYXVsdCBmZWF0dXJlIGZsYWdzXG4gICAgICAuLi4ob3B0aW9ucy5jb250ZXh0ID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdGhpcy5qc29uID0gbmV3IEpzb25GaWxlKHByb2plY3QsIFwiY2RrLmpzb25cIiwge1xuICAgICAgb21pdEVtcHR5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIGFwcDogb3B0aW9ucy5hcHAsXG4gICAgICAgIGNvbnRleHQ6IHRoaXMuX2NvbnRleHQsXG4gICAgICAgIHJlcXVpcmVBcHByb3ZhbDogb3B0aW9ucy5yZXF1aXJlQXBwcm92YWwsXG4gICAgICAgIG91dHB1dDogdGhpcy5jZGtvdXQsXG4gICAgICAgIGJ1aWxkOiBvcHRpb25zLmJ1aWxkQ29tbWFuZCxcbiAgICAgICAgd2F0Y2g6IHtcbiAgICAgICAgICBpbmNsdWRlOiAoKSA9PiB0aGlzLl9pbmNsdWRlLFxuICAgICAgICAgIGV4Y2x1ZGU6ICgpID0+IHRoaXMuX2V4Y2x1ZGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShgLyR7dGhpcy5jZGtvdXR9L2ApO1xuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoXCIuY2RrLnN0YWdpbmcvXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbmNsdWRlcyB0byBgY2RrLmpzb25gLlxuICAgKiBAcGFyYW0gcGF0dGVybnMgVGhlIGluY2x1ZGVzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRJbmNsdWRlcyguLi5wYXR0ZXJuczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9pbmNsdWRlLnB1c2goLi4ucGF0dGVybnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBleGNsdWRlcyB0byBgY2RrLmpzb25gLlxuICAgKiBAcGFyYW0gcGF0dGVybnMgVGhlIGV4Y2x1ZGVzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRFeGNsdWRlcyguLi5wYXR0ZXJuczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9leGNsdWRlLnB1c2goLi4ucGF0dGVybnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0byBiZSBpbmNsdWRlZCBieSBDREsuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluY2x1ZGUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5faW5jbHVkZV07XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRvIGJlIGV4Y2x1ZGVkIGJ5IENESy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZXhjbHVkZSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9leGNsdWRlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCB0byB3cml0ZSB0byBjZGsuanNvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIGRlZXBDbG9uZSh0aGlzLl9jb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIFdoaWNoIGFwcHJvdmFsIGlzIHJlcXVpcmVkIHdoZW4gZGVwbG95aW5nIENESyBhcHBzLlxuICovXG5leHBvcnQgZW51bSBBcHByb3ZhbExldmVsIHtcbiAgLyoqXG4gICAqIEFwcHJvdmFsIGlzIG5ldmVyIHJlcXVpcmVkXG4gICAqL1xuICBORVZFUiA9IFwibmV2ZXJcIixcbiAgLyoqXG4gICAqIFJlcXVpcmVzIGFwcHJvdmFsIG9uIGFueSBJQU0gb3Igc2VjdXJpdHktZ3JvdXAtcmVsYXRlZCBjaGFuZ2VcbiAgICovXG4gIEFOWV9DSEFOR0UgPSBcImFueS1jaGFuZ2VcIixcbiAgLyoqXG4gICAqIFJlcXVpcmVzIGFwcHJvdmFsIHdoZW4gSUFNIHN0YXRlbWVudHMgb3IgdHJhZmZpYyBydWxlcyBhcmUgYWRkZWQ7IHJlbW92YWxzIGRvbid0IHJlcXVpcmUgYXBwcm92YWxcbiAgICovXG4gIEJST0FERU5JTkcgPSBcImJyb2FkZW5pbmdcIixcbn1cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvY2RrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEscURBQTRDO0FBQzVDLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFFbkMsa0NBQTBDO0FBQzFDLHlDQUE4QztBQUU5Qzs7R0FFRztBQUNILE1BQWEsaUJBQWlCOztJQUM1Qjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV4RDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLDJCQUFnQixDQUFDLENBQUM7SUFFckU7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsa0JBQWtCO1FBQzlCLElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxHQUNoQixJQUFBLHNCQUFlLEVBQ2IsT0FBTyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsRUFBRTtnQkFDNUQsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCLENBQUMsQ0FDSCxJQUFJLElBQUksQ0FBQztZQUVaLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sZUFBZSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFZSxLQUFLLENBQTBCO0lBRS9DLFlBQW9CLEtBQThCO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBekNILDhDQTBDQztBQVVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlOztJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxFQUFFLEdBQUcsaUJBQWlCLENBQUM7SUFFOUIsS0FBSyxD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YUFBYSw2QkFBYixhQUFhLFFBYXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSBcImZhc3QtanNvbi1wYXRjaFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi4vanNvblwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IHRyeVJlYWRGaWxlU3luYyB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBGRUFUVVJFX0ZMQUdTX1YyIH0gZnJvbSBcIi4vaW50ZXJuYWxcIjtcblxuLyoqXG4gKiBDREsgVjIgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrRmVhdHVyZUZsYWdzVjIgaW1wbGVtZW50cyBJQ2RrRmVhdHVyZUZsYWdzIHtcbiAgLyoqXG4gICAqIERpc2FibGUgYWxsIGZlYXR1cmUgZmxhZ3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgQ2RrRmVhdHVyZUZsYWdzVjIoe30pO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYWxsIENESyBWMiBmZWF0dXJlIGZsYWdzIGtub3duIHRvIHByb2plbi5cbiAgICogVGhlc2UgbWlnaHQgbm90IGluY2x1ZGUgZmVhdHVyZSBmbGFncywgaWYgeW91ciB2ZXJzaW9uIG9mIHByb2plbiBpc24ndCB1cC10by1kYXRlLlxuICAgKlxuICAgKiBNYWtlIHN1cmUgdG8gZG91YmxlLWNoZWNrIGFueSBjaGFuZ2VzIHRvIGZlYXR1cmUgZmxhZ3MgaW4gYGNkay5qc29uYCBiZWZvcmUgZGVwbG95aW5nLlxuICAgKiBVbmV4cGVjdGVkIGNoYW5nZXMgbWF5IGNhdXNlIGJyZWFraW5nIGNoYW5nZXMgaW4geW91ciBDREsgYXBwLlxuICAgKiBZb3UgY2FuIG92ZXJ3cml0ZSBhbnkgZmVhdHVyZSBmbGFnIGJ5IHBhc3NpbmcgaXQgaW50byB0aGUgY29udGV4dCBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxMID0gbmV3IENka0ZlYXR1cmVGbGFnc1YyKEZFQVRVUkVfRkxBR1NfVjIpO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIGxvYWQgdGhlIGZlYXR1cmUgZmxhZ3MgZnJvbSB0aGUgYGF3cy1jZGstbGliL3JlY29tbWVuZGVkLWZlYXR1cmUtZmxhZ3MuanNvbmAgaW4gYSBsb2NhbGx5IGF2YWlsYWJsZSBucG0gcGFja2FnZS5cbiAgICogVGhpcyBmaWxlIGlzIHR5cGljYWxseSBvbmx5IHByZXNlbnQgaW4gQVdTIENESyBUeXBlU2NyaXB0IHByb2plY3RzLCBidXQgY2FuIHlpZWxkIG1vcmUgYWNjdXJhdGUgcmVzdWx0cy5cbiAgICpcbiAgICogRmFsbHMgYmFjayB0byBhbGwga25vd24gZmVhdHVyZSBmbGFncyBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2NhbEF3c0Nka0xpYigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID1cbiAgICAgICAgdHJ5UmVhZEZpbGVTeW5jKFxuICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcImF3cy1jZGstbGliL3JlY29tbWVuZGVkLWZlYXR1cmUtZmxhZ3MuanNvblwiLCB7XG4gICAgICAgICAgICBwYXRoczogW3Byb2Nlc3MuY3dkKCldLFxuICAgICAgICAgIH0pLFxuICAgICAgICApIHx8IFwie31cIjtcblxuICAgICAgcmV0dXJuIG5ldyBDZGtGZWF0dXJlRmxhZ3NWMihKU09OLnBhcnNlKGZlYXR1cmVGbGFncykpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIENka0ZlYXR1cmVGbGFncy5WMi5BTEw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuZmxhZ3MgPSBmbGFncztcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAc3ViY2xhc3NhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNka0ZlYXR1cmVGbGFncyB7XG4gIHJlYWRvbmx5IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBDREsgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrRmVhdHVyZUZsYWdzIGltcGxlbWVudHMgSUNka0ZlYXR1cmVGbGFncyB7XG4gIC8qKlxuICAgKiBDREsgVjIgZmVhdHVyZSBmbGFncyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMiA9IENka0ZlYXR1cmVGbGFnc1YyO1xuXG4gIHB1YmxpYyByZWFkb25seSBmbGFnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihmbGFnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICB0aGlzLmZsYWdzID0gZmxhZ3M7XG4gIH1cbn1cblxuLyoqXG4gKiBDb21tb24gb3B0aW9ucyBmb3IgYGNkay5qc29uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dCB0byBpbmNsdWRlIGluIGBjZGsuanNvbmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogRmVhdHVyZSBmbGFncyB0aGF0IHNob3VsZCBiZSBlbmFibGVkIGluIGBjZGsuanNvbmAuXG4gICAqXG4gICAqIE1ha2Ugc3VyZSB0byBkb3VibGUtY2hlY2sgYW55IGNoYW5nZXMgdG8gZmVhdHVyZSBmbGFncyBpbiBgY2RrLmpzb25gIGJlZm9yZSBkZXBsb3lpbmcuXG4gICAqIFVuZXhwZWN0ZWQgY2hhbmdlcyBtYXkgY2F1c2UgYnJlYWtpbmcgY2hhbmdlcyBpbiB5b3VyIENESyBhcHAuXG4gICAqIFlvdSBjYW4gb3ZlcndyaXRlIGFueSBmZWF0dXJlIGZsYWcgYnkgcGFzc2luZyBpdCBpbnRvIHRoZSBjb250ZXh0IGZpZWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGZlYXR1cmUgZmxhZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZmVhdHVyZUZsYWdzPzogSUNka0ZlYXR1cmVGbGFncztcblxuICAvKipcbiAgICogVG8gcHJvdGVjdCB5b3UgYWdhaW5zdCB1bmludGVuZGVkIGNoYW5nZXMgdGhhdCBhZmZlY3QgeW91ciBzZWN1cml0eSBwb3N0dXJlLFxuICAgKiB0aGUgQVdTIENESyBUb29sa2l0IHByb21wdHMgeW91IHRvIGFwcHJvdmUgc2VjdXJpdHktcmVsYXRlZCBjaGFuZ2VzIGJlZm9yZSBkZXBsb3lpbmcgdGhlbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQXBwcm92YWxMZXZlbC5CUk9BREVOSU5HXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlQXBwcm92YWw/OiBBcHByb3ZhbExldmVsO1xuXG4gIC8qKlxuICAgKiBjZGsub3V0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjZGsub3V0XCJcbiAgICovXG4gIHJlYWRvbmx5IGNka291dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBjb21tYW5kIHRvIGV4ZWN1dGUgYmVmb3JlIHN5bnRoZXNpcy4gVGhpcyBjb21tYW5kIHdpbGwgYmUgY2FsbGVkIHdoZW5cbiAgICogcnVubmluZyBgY2RrIHN5bnRoYCBvciB3aGVuIGBjZGsgd2F0Y2hgIGlkZW50aWZpZXMgYSBjaGFuZ2UgaW4geW91ciBzb3VyY2VcbiAgICogY29kZSBiZWZvcmUgcmVkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGNvbW1hbmRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZD86IHN0cmluZztcblxuICAvKipcbiAgICogR2xvYiBwYXR0ZXJucyB0byBpbmNsdWRlIGluIGBjZGsgd2F0Y2hgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hJbmNsdWRlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHbG9iIHBhdHRlcm5zIHRvIGV4Y2x1ZGUgZnJvbSBgY2RrIHdhdGNoYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoRXhjbHVkZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrSnNvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29uZmlnT3B0aW9ucyBleHRlbmRzIENka0NvbmZpZ0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGluIG9yZGVyIHRvIHN5bnRoZXNpemUgdGhlIENESyBhcHBsaWNhdGlvblxuICAgKiAobGFuZ3VhZ2Ugc3BlY2lmaWMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBjZGsuanNvbiBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrQ29uZmlnIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIEpTT04gZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqc29uOiBKc29uRmlsZTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2RrLm91dCBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2Rrb3V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0byBiZSBpbmNsdWRlZCBieSBDREsuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmNsdWRlOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRvIGJlIGV4Y2x1ZGVkIGJ5IENESy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4Y2x1ZGU6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCB0byB3cml0ZSB0byBjZGsuanNvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IENka0NvbmZpZ09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuY2Rrb3V0ID0gb3B0aW9ucy5jZGtvdXQgPz8gXCJjZGsub3V0XCI7XG4gICAgdGhpcy5faW5jbHVkZSA9IG9wdGlvbnMud2F0Y2hJbmNsdWRlcyA/PyBbXTtcbiAgICB0aGlzLl9leGNsdWRlID0gb3B0aW9ucy53YXRjaEV4Y2x1ZGVzID8/IFtdO1xuXG4gICAgY29uc3QgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gb3B0aW9ucy5mZWF0dXJlRmxhZ3M/LmZsYWdzID8/IHt9O1xuICAgIHRoaXMuX2NvbnRleHQgPSB7XG4gICAgICAuLi5mbGFncyxcbiAgICAgIC8vIEN1c3RvbWVyIGNvbnRleHQgc2hvdWxkIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBkZWZhdWx0IGZlYXR1cmUgZmxhZ3NcbiAgICAgIC4uLihvcHRpb25zLmNvbnRleHQgPz8ge30pLFxuICAgIH07XG5cbiAgICB0aGlzLmpzb24gPSBuZXcgSnNvbkZpbGUocHJvamVjdCwgXCJjZGsuanNvblwiLCB7XG4gICAgICBvbWl0RW1wdHk6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgYXBwOiBvcHRpb25zLmFwcCxcbiAgICAgICAgY29udGV4dDogdGhpcy5fY29udGV4dCxcbiAgICAgICAgcmVxdWlyZUFwcHJvdmFsOiBvcHRpb25zLnJlcXVpcmVBcHByb3ZhbCxcbiAgICAgICAgb3V0cHV0OiB0aGlzLmNka291dCxcbiAgICAgICAgYnVpbGQ6IG9wdGlvbnMuYnVpbGRDb21tYW5kLFxuICAgICAgICB3YXRjaDoge1xuICAgICAgICAgIGluY2x1ZGU6ICgpID0+IHRoaXMuX2luY2x1ZGUsXG4gICAgICAgICAgZXhjbHVkZTogKCkgPT4gdGhpcy5fZXhjbHVkZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKGAvJHt0aGlzLmNka291dH0vYCk7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi5jZGsuc3RhZ2luZy9cIik7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGluY2x1ZGVzIHRvIGBjZGsuanNvbmAuXG4gICAqIEBwYXJhbSBwYXR0ZXJucyBUaGUgaW5jbHVkZXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZEluY2x1ZGVzKC4uLnBhdHRlcm5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2luY2x1ZGUucHVzaCguLi5wYXR0ZXJucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGV4Y2x1ZGVzIHRvIGBjZGsuanNvbmAuXG4gICAqIEBwYXJhbSBwYXR0ZXJucyBUaGUgZXhjbHVkZXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZEV4Y2x1ZGVzKC4uLnBhdHRlcm5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2V4Y2x1ZGUucHVzaCguLi5wYXR0ZXJucyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRvIGJlIGluY2x1ZGVkIGJ5IENESy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5jbHVkZSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9pbmNsdWRlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdsb2IgcGF0dGVybnMgdG8gYmUgZXhjbHVkZWQgYnkgQ0RLLlxuICAgKi9cbiAgcHVibGljIGdldCBleGNsdWRlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2V4Y2x1ZGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IHRvIHdyaXRlIHRvIGNkay5qc29uLlxuICAgKi9cbiAgcHVibGljIGdldCBjb250ZXh0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gZGVlcENsb25lKHRoaXMuX2NvbnRleHQpO1xuICB9XG59XG5cbi8qKlxuICogV2hpY2ggYXBwcm92YWwgaXMgcmVxdWlyZWQgd2hlbiBkZXBsb3lpbmcgQ0RLIGFwcHMuXG4gKi9cbmV4cG9ydCBlbnVtIEFwcHJvdmFsTGV2ZWwge1xuICAvKipcbiAgICogQXBwcm92YWwgaXMgbmV2ZXIgcmVxdWlyZWRcbiAgICovXG4gIE5FVkVSID0gXCJuZXZlclwiLFxuICAvKipcbiAgICogUmVxdWlyZXMgYXBwcm92YWwgb24gYW55IElBTSBvciBzZWN1cml0eS1ncm91cC1yZWxhdGVkIGNoYW5nZVxuICAgKi9cbiAgQU5ZX0NIQU5HRSA9IFwiYW55LWNoYW5nZVwiLFxuICAvKipcbiAgICogUmVxdWlyZXMgYXBwcm92YWwgd2hlbiBJQU0gc3RhdGVtZW50cyBvciB0cmFmZmljIHJ1bGVzIGFyZSBhZGRlZDsgcmVtb3ZhbHMgZG9uJ3QgcmVxdWlyZSBhcHByb3ZhbFxuICAgKi9cbiAgQlJPQURFTklORyA9IFwiYnJvYWRlbmluZ1wiLFxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.CdkTasks = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -8,6 +7,31 @@ const component_1 = require("../component");
8
7
  * Adds standard AWS CDK tasks to your project.
9
8
  */
10
9
  class CdkTasks extends component_1.Component {
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.100.0" };
11
+ /**
12
+ * Synthesizes your app.
13
+ */
14
+ synth;
15
+ /**
16
+ * Synthesizes your app and suppresses stdout.
17
+ */
18
+ synthSilent;
19
+ /**
20
+ * Deploys your app.
21
+ */
22
+ deploy;
23
+ /**
24
+ * Destroys all the stacks.
25
+ */
26
+ destroy;
27
+ /**
28
+ * Diff against production.
29
+ */
30
+ diff;
31
+ /**
32
+ * Watch task.
33
+ */
34
+ watch;
11
35
  constructor(project) {
12
36
  super(project);
13
37
  this.synth = project.addTask("synth", {
@@ -46,6 +70,4 @@ class CdkTasks extends component_1.Component {
46
70
  }
47
71
  }
48
72
  exports.CdkTasks = CdkTasks;
49
- _a = JSII_RTTI_SYMBOL_1;
50
- CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.99.80" };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFJekM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxxQkFBUztJQStCckMsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3BDLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsSUFBSSxFQUFFLFdBQVc7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUNqRCxXQUFXLEVBQ1Qsb0dBQW9HO1lBQ3RHLElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxJQUFJLEVBQUUsWUFBWTtZQUNsQixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hDLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsSUFBSSxFQUFFLGFBQWE7WUFDbkIsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxXQUFXLEVBQUUsb0RBQW9EO1lBQ2pFLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILHdFQUF3RTtRQUN4RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQyxXQUFXO1lBQ2YscUZBQXFGLENBQUM7UUFFeEYsaUVBQWlFO1FBQ2pFLGtEQUFrRDtRQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFbkMsNEJBQTRCO1FBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQzs7QUE3RUgsNEJBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbi8qKlxuICogQWRkcyBzdGFuZGFyZCBBV1MgQ0RLIHRhc2tzIHRvIHlvdXIgcHJvamVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1Rhc2tzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHlvdXIgYXBwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN5bnRoOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyB5b3VyIGFwcCBhbmQgc3VwcHJlc3NlcyBzdGRvdXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3ludGhTaWxlbnQ6IFRhc2s7XG5cbiAgLyoqXG4gICAqIERlcGxveXMgeW91ciBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEZXN0cm95cyBhbGwgdGhlIHN0YWNrcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXN0cm95OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEaWZmIGFnYWluc3QgcHJvZHVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaWZmOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBXYXRjaCB0YXNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdhdGNoOiBUYXNrO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuc3ludGggPSBwcm9qZWN0LmFkZFRhc2soXCJzeW50aFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTeW50aGVzaXplcyB5b3VyIGNkayBhcHAgaW50byBjZGsub3V0XCIsXG4gICAgICBleGVjOiBcImNkayBzeW50aFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zeW50aFNpbGVudCA9IHByb2plY3QuYWRkVGFzayhcInN5bnRoOnNpbGVudFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgYW5kIHN1cHByZXNzZXMgdGhlIHRlbXBsYXRlIGluIHN0ZG91dCAocGFydCBvZiBcInlhcm4gYnVpbGRcIiknLFxuICAgICAgZXhlYzogXCJjZGsgc3ludGggLXFcIixcbiAgICB9KTtcblxuICAgIHRoaXMuZGVwbG95ID0gcHJvamVjdC5hZGRUYXNrKFwiZGVwbG95XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlcGxveXMgeW91ciBDREsgYXBwIHRvIHRoZSBBV1MgY2xvdWRcIixcbiAgICAgIGV4ZWM6IFwiY2RrIGRlcGxveVwiLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3kgPSBwcm9qZWN0LmFkZFRhc2soXCJkZXN0cm95XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlc3Ryb3lzIHlvdXIgY2RrIGFwcCBpbiB0aGUgQVdTIGNsb3VkXCIsXG4gICAgICBleGVjOiBcImNkayBkZXN0cm95XCIsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGlmZiA9IHByb2plY3QuYWRkVGFzayhcImRpZmZcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiRGlmZnMgdGhlIGN1cnJlbnRseSBkZXBsb3llZCBhcHAgYWdhaW5zdCB5b3VyIGNvZGVcIixcbiAgICAgIGV4ZWM6IFwiY2RrIGRpZmZcIixcbiAgICB9KTtcblxuICAgIC8vIHR5cGVzY3JpcHQgcHJvamVjdHMgYWxyZWFkeSBoYXZlIGEgXCJ3YXRjaFwiIHRhc2ssIHdlIHdpbGwgcmVwdXJwb3NlIGl0XG4gICAgY29uc3Qgd2F0Y2ggPSBwcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJ3YXRjaFwiKSA/PyBwcm9qZWN0LmFkZFRhc2soXCJ3YXRjaFwiKTtcblxuICAgIHdhdGNoLnJlc2V0KCk7XG4gICAgd2F0Y2guZGVzY3JpcHRpb24gPVxuICAgICAgXCJXYXRjaGVzIGNoYW5nZXMgaW4geW91ciBzb3VyY2UgY29kZSBhbmQgcmVidWlsZHMgYW5kIGRlcGxveXMgdG8gdGhlIGN1cnJlbnQgYWNjb3VudFwiO1xuXG4gICAgLy8gZGVwbG95IGZpcnN0IGJlY2F1c2Ugc3VycHJpc2luZ2x5IHdhdGNoIGlzIG5vdCBkZXBsb3lpbmcgZmlyc3RcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNzc3NlxuICAgIHdhdGNoLmV4ZWMoXCJjZGsgZGVwbG95IC0taG90c3dhcFwiKTtcblxuICAgIC8vIG5vdyB3ZSBhcmUgcmVhZHkgdG8gd2F0Y2hcbiAgICB3YXRjaC5leGVjKFwiY2RrIHdhdGNoXCIpO1xuXG4gICAgdGhpcy53YXRjaCA9IHdhdGNoO1xuICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUl6Qzs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLHFCQUFTOztJQUNyQzs7T0FFRztJQUNhLEtBQUssQ0FBTztJQUU1Qjs7T0FFRztJQUNhLFdBQVcsQ0FBTztJQUVsQzs7T0FFRztJQUNhLE1BQU0sQ0FBTztJQUU3Qjs7T0FFRztJQUNhLE9BQU8sQ0FBTztJQUU5Qjs7T0FFRztJQUNhLElBQUksQ0FBTztJQUUzQjs7T0FFRztJQUNhLEtBQUssQ0FBTztJQUU1QixZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ2pELFdBQVcsRUFDVCxvR0FBb0c7WUFDdEcsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN0QyxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDeEMsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxJQUFJLEVBQUUsYUFBYTtZQUNuQixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxvREFBb0Q7WUFDakUsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxDQUFDLFdBQVc7WUFDZixxRkFBcUYsQ0FBQztRQUV4RixpRUFBaUU7UUFDakUsa0RBQWtEO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVuQyw0QkFBNEI7UUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOztBQTdFSCw0QkE4RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLyoqXG4gKiBBZGRzIHN0YW5kYXJkIEFXUyBDREsgdGFza3MgdG8geW91ciBwcm9qZWN0LlxuICovXG5leHBvcnQgY2xhc3MgQ2RrVGFza3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogU3ludGhlc2l6ZXMgeW91ciBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3ludGg6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHlvdXIgYXBwIGFuZCBzdXBwcmVzc2VzIHN0ZG91dC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzeW50aFNpbGVudDogVGFzaztcblxuICAvKipcbiAgICogRGVwbG95cyB5b3VyIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXBsb3k6IFRhc2s7XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIGFsbCB0aGUgc3RhY2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc3Ryb3k6IFRhc2s7XG5cbiAgLyoqXG4gICAqIERpZmYgYWdhaW5zdCBwcm9kdWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpZmY6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFdhdGNoIHRhc2suXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2F0Y2g6IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5zeW50aCA9IHByb2plY3QuYWRkVGFzayhcInN5bnRoXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlN5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXRcIixcbiAgICAgIGV4ZWM6IFwiY2RrIHN5bnRoXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnN5bnRoU2lsZW50ID0gcHJvamVjdC5hZGRUYXNrKFwic3ludGg6c2lsZW50XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnU3ludGhlc2l6ZXMgeW91ciBjZGsgYXBwIGludG8gY2RrLm91dCBhbmQgc3VwcHJlc3NlcyB0aGUgdGVtcGxhdGUgaW4gc3Rkb3V0IChwYXJ0IG9mIFwieWFybiBidWlsZFwiKScsXG4gICAgICBleGVjOiBcImNkayBzeW50aCAtcVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3kgPSBwcm9qZWN0LmFkZFRhc2soXCJkZXBsb3lcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiRGVwbG95cyB5b3VyIENESyBhcHAgdG8gdGhlIEFXUyBjbG91ZFwiLFxuICAgICAgZXhlYzogXCJjZGsgZGVwbG95XCIsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdHJveSA9IHByb2plY3QuYWRkVGFzayhcImRlc3Ryb3lcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiRGVzdHJveXMgeW91ciBjZGsgYXBwIGluIHRoZSBBV1MgY2xvdWRcIixcbiAgICAgIGV4ZWM6IFwiY2RrIGRlc3Ryb3lcIixcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaWZmID0gcHJvamVjdC5hZGRUYXNrKFwiZGlmZlwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEaWZmcyB0aGUgY3VycmVudGx5IGRlcGxveWVkIGFwcCBhZ2FpbnN0IHlvdXIgY29kZVwiLFxuICAgICAgZXhlYzogXCJjZGsgZGlmZlwiLFxuICAgIH0pO1xuXG4gICAgLy8gdHlwZXNjcmlwdCBwcm9qZWN0cyBhbHJlYWR5IGhhdmUgYSBcIndhdGNoXCIgdGFzaywgd2Ugd2lsbCByZXB1cnBvc2UgaXRcbiAgICBjb25zdCB3YXRjaCA9IHByb2plY3QudGFza3MudHJ5RmluZChcIndhdGNoXCIpID8/IHByb2plY3QuYWRkVGFzayhcIndhdGNoXCIpO1xuXG4gICAgd2F0Y2gucmVzZXQoKTtcbiAgICB3YXRjaC5kZXNjcmlwdGlvbiA9XG4gICAgICBcIldhdGNoZXMgY2hhbmdlcyBpbiB5b3VyIHNvdXJjZSBjb2RlIGFuZCByZWJ1aWxkcyBhbmQgZGVwbG95cyB0byB0aGUgY3VycmVudCBhY2NvdW50XCI7XG5cbiAgICAvLyBkZXBsb3kgZmlyc3QgYmVjYXVzZSBzdXJwcmlzaW5nbHkgd2F0Y2ggaXMgbm90IGRlcGxveWluZyBmaXJzdFxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE3Nzc2XG4gICAgd2F0Y2guZXhlYyhcImNkayBkZXBsb3kgLS1ob3Rzd2FwXCIpO1xuXG4gICAgLy8gbm93IHdlIGFyZSByZWFkeSB0byB3YXRjaFxuICAgIHdhdGNoLmV4ZWMoXCJjZGsgd2F0Y2hcIik7XG5cbiAgICB0aGlzLndhdGNoID0gd2F0Y2g7XG4gIH1cbn1cbiJdfQ==