cdktn 0.25.0-pre.8 → 0.25.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 (94) hide show
  1. package/.jsii +2194 -424
  2. package/README.md +12 -0
  3. package/lib/annotations.js +4 -4
  4. package/lib/app.js +54 -5
  5. package/lib/aspect.js +3 -4
  6. package/lib/asset-hash.d.ts +75 -0
  7. package/lib/asset-hash.js +129 -0
  8. package/lib/asset-staging.d.ts +180 -0
  9. package/lib/asset-staging.js +464 -0
  10. package/lib/assets.d.ts +401 -0
  11. package/lib/assets.js +333 -0
  12. package/lib/backends/azurerm-backend.js +4 -6
  13. package/lib/backends/cloud-backend.js +15 -12
  14. package/lib/backends/consul-backend.js +4 -6
  15. package/lib/backends/cos-backend.js +4 -6
  16. package/lib/backends/gcs-backend.js +4 -6
  17. package/lib/backends/http-backend.js +4 -6
  18. package/lib/backends/local-backend.js +38 -7
  19. package/lib/backends/oss-backend.js +4 -6
  20. package/lib/backends/pg-backend.js +4 -6
  21. package/lib/backends/remote-backend.js +8 -10
  22. package/lib/backends/s3-backend.js +4 -6
  23. package/lib/backends/swift-backend.js +4 -6
  24. package/lib/complex-computed-list.js +114 -65
  25. package/lib/errors.d.ts +16 -0
  26. package/lib/errors.js +51 -3
  27. package/lib/functions/provider-function.js +2 -4
  28. package/lib/functions/terraform-functions.generated.js +2 -4
  29. package/lib/ignore-strategy.d.ts +82 -0
  30. package/lib/ignore-strategy.js +29 -0
  31. package/lib/importable-resource.js +8 -6
  32. package/lib/index.d.ts +4 -0
  33. package/lib/index.js +28 -2
  34. package/lib/manifest.js +49 -11
  35. package/lib/private/fs.d.ts +74 -2
  36. package/lib/private/fs.js +129 -17
  37. package/lib/private/unique.js +35 -2
  38. package/lib/resource.js +3 -4
  39. package/lib/synthesize/synthesizer.js +51 -25
  40. package/lib/terraform-asset.d.ts +68 -5
  41. package/lib/terraform-asset.js +127 -40
  42. package/lib/terraform-backend.js +3 -4
  43. package/lib/terraform-count.js +3 -4
  44. package/lib/terraform-data-resource.d.ts +1 -1
  45. package/lib/terraform-data-resource.js +18 -13
  46. package/lib/terraform-data-source.js +10 -4
  47. package/lib/terraform-dynamic-block.js +5 -2
  48. package/lib/terraform-dynamic-expression.js +4 -1
  49. package/lib/terraform-element.js +34 -6
  50. package/lib/terraform-ephemeral-resource.js +10 -4
  51. package/lib/terraform-functions.js +2 -4
  52. package/lib/terraform-hcl-module.js +3 -4
  53. package/lib/terraform-iterator.js +11 -12
  54. package/lib/terraform-local.js +3 -4
  55. package/lib/terraform-module-asset.js +39 -4
  56. package/lib/terraform-module.js +8 -4
  57. package/lib/terraform-operators.js +2 -4
  58. package/lib/terraform-output.js +7 -4
  59. package/lib/terraform-provider.js +5 -4
  60. package/lib/terraform-provisioner.js +2 -4
  61. package/lib/terraform-remote-state.js +5 -5
  62. package/lib/terraform-resource-targets.js +3 -7
  63. package/lib/terraform-resource.js +23 -7
  64. package/lib/terraform-stack.js +38 -38
  65. package/lib/terraform-variable.js +25 -22
  66. package/lib/testing/adapters/jest.d.ts +2 -1
  67. package/lib/testing/adapters/jest.js +3 -3
  68. package/lib/testing/index.js +42 -8
  69. package/lib/testing/matchers.d.ts +34 -30
  70. package/lib/testing/matchers.js +329 -93
  71. package/lib/tfExpression.js +25 -8
  72. package/lib/tokens/lazy.js +11 -7
  73. package/lib/tokens/private/dependency.js +2 -2
  74. package/lib/tokens/private/encoding.js +6 -1
  75. package/lib/tokens/private/intrinsic.js +6 -1
  76. package/lib/tokens/private/resolve.js +2 -5
  77. package/lib/tokens/private/token-map.js +4 -6
  78. package/lib/tokens/private/uniqueid.js +35 -2
  79. package/lib/tokens/resolvable.js +4 -6
  80. package/lib/tokens/string-fragments.js +6 -10
  81. package/lib/tokens/token.js +15 -18
  82. package/lib/upgrade-id-aspect.js +37 -6
  83. package/lib/validations/index.d.ts +0 -1
  84. package/lib/validations/index.js +1 -2
  85. package/lib/validations/target-versions.js +39 -2
  86. package/lib/validations/validate-function-version-support.js +2 -1
  87. package/lib/validations/validate-provider-function-target-support.js +2 -1
  88. package/lib/validations/validate-provider-presence.js +10 -9
  89. package/package.json +21 -7
  90. package/scripts/pack.mjs +27 -12
  91. package/lib/validations/validate-binary-version.d.ts +0 -23
  92. package/lib/validations/validate-binary-version.js +0 -54
  93. package/lib/validations/validate-terraform-version.d.ts +0 -13
  94. package/lib/validations/validate-terraform-version.js +0 -21
package/lib/assets.js ADDED
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ChainBundler = exports.BundlerKey = exports.BundleResult = exports.BundleOutputType = exports.AssetPackaging = exports.AssetHashType = void 0;
37
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
38
+ // Copyright (c) HashiCorp, Inc
39
+ // SPDX-License-Identifier: MPL-2.0
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const errors_1 = require("./errors");
43
+ const fs_1 = require("./private/fs");
44
+ /**
45
+ * The type of asset hash.
46
+ *
47
+ * The hash identifies a specific revision of the asset and caches deployment
48
+ * work such as packaging and uploading.
49
+ */
50
+ var AssetHashType;
51
+ (function (AssetHashType) {
52
+ /**
53
+ * Based on the content of the source path.
54
+ *
55
+ * Use `SOURCE` to track changes to the source files directly.
56
+ */
57
+ AssetHashType["SOURCE"] = "source";
58
+ /**
59
+ * Based on the content of the bundling output.
60
+ *
61
+ * Use `OUTPUT` when the source is a top-level folder holding code and/or
62
+ * dependencies not directly linked to the asset.
63
+ */
64
+ AssetHashType["OUTPUT"] = "output";
65
+ /**
66
+ * Use a custom hash.
67
+ */
68
+ AssetHashType["CUSTOM"] = "custom";
69
+ })(AssetHashType || (exports.AssetHashType = AssetHashType = {}));
70
+ /**
71
+ * Copies a single file verbatim.
72
+ */
73
+ class FilePackaging {
74
+ extension = "";
75
+ producesDirectory = false;
76
+ acceptsDirectorySource = false;
77
+ omitsDirectoryEntries = false;
78
+ pack(options) {
79
+ fs.copyFileSync(options.source, options.target);
80
+ }
81
+ }
82
+ /**
83
+ * Copies a directory tree verbatim, without archiving it.
84
+ */
85
+ class DirectoryPackaging {
86
+ extension = "";
87
+ producesDirectory = true;
88
+ acceptsDirectorySource = true;
89
+ omitsDirectoryEntries = false;
90
+ pack(options) {
91
+ (0, fs_1.copySync)(options.source, options.target, {
92
+ shouldExclude: options.ignoreStrategy
93
+ ? (relativePath, isDirectory) => options.ignoreStrategy.ignores({ relativePath, isDirectory })
94
+ : undefined,
95
+ descendIntoExcludedDirectories: options.ignoreStrategy?.pruneExcludedDirectories === false,
96
+ });
97
+ }
98
+ }
99
+ /**
100
+ * Archives a directory tree into a single zip file.
101
+ */
102
+ class ZipPackaging {
103
+ extension = ".zip";
104
+ producesDirectory = false;
105
+ acceptsDirectorySource = true;
106
+ omitsDirectoryEntries = true;
107
+ pack(options) {
108
+ (0, fs_1.archiveSync)(options.source, options.target, options.ignoreStrategy
109
+ ? (relativePath, isDirectory) => options.ignoreStrategy.ignores({ relativePath, isDirectory })
110
+ : undefined, options.ignoreStrategy?.pruneExcludedDirectories === false);
111
+ }
112
+ }
113
+ /**
114
+ * Built-in packaging strategies. Custom formats implement `IAssetPackaging`
115
+ * directly rather than extending this class.
116
+ */
117
+ class AssetPackaging {
118
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetPackaging", version: "0.25.0" };
119
+ /**
120
+ * Copy a single file as-is.
121
+ */
122
+ static FILE = new FilePackaging();
123
+ /**
124
+ * Copy a directory tree as-is, without archiving.
125
+ */
126
+ static DIRECTORY = new DirectoryPackaging();
127
+ /**
128
+ * Archive a directory tree into a single zip file.
129
+ */
130
+ static ZIP = new ZipPackaging();
131
+ constructor() { }
132
+ }
133
+ exports.AssetPackaging = AssetPackaging;
134
+ /**
135
+ * The shape of a bundler's output, so staging and packaging can treat a
136
+ * single-file artifact (a tarball, a `.zip`) differently from a directory
137
+ * tree without inferring it from the path.
138
+ */
139
+ var BundleOutputType;
140
+ (function (BundleOutputType) {
141
+ /**
142
+ * The output is a directory tree.
143
+ *
144
+ * Packaged like an unbundled source directory. The default, and the only
145
+ * shape that predates archive support.
146
+ */
147
+ BundleOutputType["DIRECTORY"] = "directory";
148
+ /**
149
+ * The output is a single file the bundler already produced in its final
150
+ * form.
151
+ *
152
+ * A tarball or a deterministic `.zip`. Staged verbatim rather than
153
+ * re-archived, so `AssetType.FILE` no longer has to reject a bundler.
154
+ */
155
+ BundleOutputType["FILE"] = "file";
156
+ })(BundleOutputType || (exports.BundleOutputType = BundleOutputType = {}));
157
+ /**
158
+ * What a bundler produced, returned from {@link IAssetBundler.bundle}.
159
+ *
160
+ * Carries the artifact path and its shape, or a declined state signalling the
161
+ * caller should fall back. See {@link declined} for the decline protocol.
162
+ */
163
+ class BundleResult {
164
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.BundleResult", version: "0.25.0" };
165
+ /**
166
+ * A directory-tree artifact at `path`.
167
+ */
168
+ static directory(path) {
169
+ return new BundleResult(BundleOutputType.DIRECTORY, path, false);
170
+ }
171
+ /**
172
+ * A single-file artifact at `path` (a tarball, a `.zip`), staged verbatim.
173
+ */
174
+ static file(path) {
175
+ return new BundleResult(BundleOutputType.FILE, path, false);
176
+ }
177
+ /**
178
+ * The bundler declined to run here; the caller should fall back.
179
+ *
180
+ * Distinct from a thrown error, which is a hard failure.
181
+ */
182
+ static declined() {
183
+ return new BundleResult(undefined, undefined, true);
184
+ }
185
+ /**
186
+ * The artifact's shape, or undefined when {@link isDeclined}.
187
+ */
188
+ outputType;
189
+ /**
190
+ * The artifact path, or undefined when {@link isDeclined}.
191
+ */
192
+ path;
193
+ /**
194
+ * Whether the bundler declined to run, signalling the caller to fall back.
195
+ */
196
+ isDeclined;
197
+ constructor(outputType, path, isDeclined) {
198
+ this.outputType = outputType;
199
+ this.path = path;
200
+ this.isDeclined = isDeclined;
201
+ }
202
+ }
203
+ exports.BundleResult = BundleResult;
204
+ /**
205
+ * Builds an {@link IAssetBundler.bundlerKey} from an ordered set of parts.
206
+ *
207
+ * A `bundlerKey` has to serialize everything that can move a build's output;
208
+ * done ad hoc, every bundler invents its own delimiter and forgets an input
209
+ * differently. This gives the convention one implementation: parts are joined
210
+ * with a separator that is escaped inside values, so distinct inputs cannot
211
+ * collide into the same key.
212
+ *
213
+ * @example
214
+ * const key = BundlerKey.of("docker", image, command)
215
+ * .withEnv({ NODE_ENV: nodeEnv })
216
+ * .toString();
217
+ */
218
+ class BundlerKey {
219
+ parts;
220
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.BundlerKey", version: "0.25.0" };
221
+ /**
222
+ * Start a key from an ordered list of parts.
223
+ *
224
+ * Order is significant: it is part of what the key identifies.
225
+ */
226
+ static of(...parts) {
227
+ return new BundlerKey(parts);
228
+ }
229
+ static escape(part) {
230
+ return part.replace(/\\/g, "\\\\").replace(/:/g, "\\:");
231
+ }
232
+ constructor(parts) {
233
+ this.parts = parts;
234
+ }
235
+ /**
236
+ * Append parts, returning a new key.
237
+ */
238
+ add(...parts) {
239
+ return new BundlerKey([...this.parts, ...parts]);
240
+ }
241
+ /**
242
+ * Append `key=value` parts for a record, sorted by key so the result does
243
+ * not depend on property order.
244
+ */
245
+ withEnv(entries) {
246
+ const kept = Object.keys(entries)
247
+ .sort()
248
+ .map((k) => `${k}=${entries[k]}`);
249
+ return new BundlerKey([...this.parts, ...kept]);
250
+ }
251
+ /**
252
+ * Render the collected parts to the string passed as `bundlerKey`.
253
+ */
254
+ toString() {
255
+ return this.parts.map(BundlerKey.escape).join(":");
256
+ }
257
+ }
258
+ exports.BundlerKey = BundlerKey;
259
+ /**
260
+ * Composes bundlers into a "try each in order until one runs" chain.
261
+ *
262
+ * This is how a local bundler and a Docker bundler compose without being
263
+ * rewritten as one: each leg declines (`BundleResult.declined()`) when it
264
+ * cannot run here, and the chain moves to the next. The first non-declining
265
+ * result wins; if all decline, `bundle` throws, since staging has nothing to
266
+ * fall back to. Each leg builds into its own output directory, so a leg that
267
+ * writes before declining cannot leak partial files into the leg that wins.
268
+ *
269
+ * The chain's `bundlerKey` folds in *every* leg's key, so identity is the same
270
+ * regardless of which leg ends up running — a build that could have gone local
271
+ * or Docker is one asset, not two.
272
+ *
273
+ * This makes the legs interchangeable only if they produce equivalent output.
274
+ * Under `SOURCE` hashing they must: a machine with a host tool and one without
275
+ * run different legs, and non-equivalent legs would stage different bytes under
276
+ * the same hash. Use `OUTPUT` hashing when legs may diverge, so identity tracks
277
+ * the artifact each leg actually produced.
278
+ */
279
+ class ChainBundler {
280
+ bundlers;
281
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.ChainBundler", version: "0.25.0" };
282
+ /**
283
+ * Chain bundlers in the order given; earlier bundlers are preferred.
284
+ */
285
+ static of(...bundlers) {
286
+ return new ChainBundler(bundlers);
287
+ }
288
+ bundlerKey;
289
+ outputFileName;
290
+ constructor(bundlers) {
291
+ this.bundlers = bundlers;
292
+ if (bundlers.length === 0) {
293
+ throw (0, errors_1.chainBundlerRequiresAtLeastOneBundler)();
294
+ }
295
+ // Fold in every leg's key so which leg runs cannot change identity. A leg
296
+ // without a key contributes an empty part, still distinguishing "two legs"
297
+ // from "one leg" positionally.
298
+ const keys = bundlers.map((b) => b.bundlerKey ?? "");
299
+ this.bundlerKey = keys.some((k) => k !== "")
300
+ ? BundlerKey.of("chain", ...keys).toString()
301
+ : undefined;
302
+ // The staged file name is fixed at construction, before any leg runs, so
303
+ // legs that declare one must agree — otherwise the name would depend on
304
+ // which leg happens to run.
305
+ const names = new Set(bundlers
306
+ .map((b) => b.outputFileName)
307
+ .filter((n) => n !== undefined));
308
+ if (names.size > 1) {
309
+ throw (0, errors_1.chainBundlerConflictingOutputFileName)([...names]);
310
+ }
311
+ this.outputFileName = names.size === 1 ? [...names][0] : undefined;
312
+ }
313
+ bundle(options) {
314
+ for (let i = 0; i < this.bundlers.length; i++) {
315
+ // Each leg gets its own output directory. A leg is free to write before
316
+ // it declines (esbuild failing on an unsupported target, a Docker leg
317
+ // creating output before finding the daemon down), and sharing one
318
+ // directory would leak those partial files into the leg that succeeds.
319
+ const legOutputDir = path.join(options.outputDir, `leg-${i}`);
320
+ fs.mkdirSync(legOutputDir);
321
+ const result = this.bundlers[i].bundle({
322
+ source: options.source,
323
+ outputDir: legOutputDir,
324
+ });
325
+ if (!result.isDeclined) {
326
+ return result;
327
+ }
328
+ }
329
+ throw (0, errors_1.chainBundlerAllDeclined)(this.bundlers.length);
330
+ }
331
+ }
332
+ exports.ChainBundler = ChainBundler;
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUVuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLHFDQUlrQjtBQUNsQixxQ0FBcUQ7QUE4Q3JEOzs7OztHQUtHO0FBQ0gsSUFBWSxhQW9CWDtBQXBCRCxXQUFZLGFBQWE7SUFDdkI7Ozs7T0FJRztJQUNILGtDQUFpQixDQUFBO0lBRWpCOzs7OztPQUtHO0lBQ0gsa0NBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCxrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBcEJXLGFBQWEsNkJBQWIsYUFBYSxRQW9CeEI7QUFrRkQ7O0dBRUc7QUFDSCxNQUFNLGFBQWE7SUFDRCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLHNCQUFzQixHQUFHLEtBQUssQ0FBQztJQUMvQixxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsSUFBSSxDQUFDLE9BQW9CO1FBQzlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQjtJQUNOLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDekIsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQzlCLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUN2QyxJQUFJLENBQUMsT0FBb0I7UUFDOUIsSUFBQSxhQUFRLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLGFBQWEsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDbkMsQ0FB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LEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXNCO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLHdFQUF3RTtZQUN4RSxzRUFBc0U7WUFDdEUsbUVBQW1FO1lBQ25FLHVFQUF1RTtZQUN2RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlELEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsU0FBUyxFQUFFLFlBQVk7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUEsZ0NBQXVCLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDOztBQXZESCxvQ0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGNoYWluQnVuZGxlckFsbERlY2xpbmVkLFxuICBjaGFpbkJ1bmRsZXJDb25mbGljdGluZ091dHB1dEZpbGVOYW1lLFxuICBjaGFpbkJ1bmRsZXJSZXF1aXJlc0F0TGVhc3RPbmVCdW5kbGVyLFxufSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IGFyY2hpdmVTeW5jLCBjb3B5U3luYyB9IGZyb20gXCIuL3ByaXZhdGUvZnNcIjtcbmltcG9ydCB7IElJZ25vcmVTdHJhdGVneSB9IGZyb20gXCIuL2lnbm9yZS1zdHJhdGVneVwiO1xuXG4vKipcbiAqIENvbW1vbiBpbnRlcmZhY2UgZm9yIGFsbCBhc3NldHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFzc2V0IHtcbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuXG4gICAqXG4gICAqIEJlaW5nIGEgcGxhaW4gc3RyaW5nLCBpdCBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIHRvIGZvcmNlIGEgbmV3XG4gICAqIHJlc291cmNlIHdoZW4gdGhlIGNvbnRlbnQgaGFzaCBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBjb250cm9sbGluZyBob3cgYW4gYXNzZXQncyBoYXNoIGlzIGRlcml2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gaGFzaCBmb3IgdGhpcyBhc3NldC4gSWYgYGFzc2V0SGFzaFR5cGVgIGlzIHNldCBpdCBtdXN0XG4gICAqIGJlIHNldCB0byBgQXNzZXRIYXNoVHlwZS5DVVNUT01gLiBUaGUgdmFsdWUgaXMgdXNlZCB2ZXJiYXRpbSBhcyB0aGUgYXNzZXRcbiAgICogaGFzaCwgYW5kIGJlY2F1c2UgaXQgbmFtZXMgdGhlIHN0YWdlZCBhc3NldCBmaWxlIGl0IG1heSBvbmx5IGNvbnRhaW5cbiAgICogbGV0dGVycywgZGlnaXRzLCBgX2AsIGAuYCBhbmQgYC1gLlxuICAgKlxuICAgKiBUaGUgaGFzaCBpZGVudGlmaWVzIGEgc3BlY2lmaWMgcmV2aXNpb24gb2YgdGhlIGFzc2V0IGFuZCBjYWNoZXMgZGVwbG95bWVudFxuICAgKiB3b3JrIChwYWNrYWdpbmcsIHVwbG9hZGluZykuIEEgY3VzdG9tIGhhc2ggbXVzdCBiZSB1cGRhdGVkIHdoZW5ldmVyIHRoZVxuICAgKiBhc3NldCBjaGFuZ2VzLCBvciBzb21lIGRlcGxveW1lbnRzIHdpbGwgbm90IGJlIGludmFsaWRhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGJhc2VkIG9uIGBhc3NldEhhc2hUeXBlYFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgaGFzaCB0byBjYWxjdWxhdGUgZm9yIHRoaXMgYXNzZXQuXG4gICAqXG4gICAqIElmIGBhc3NldEhhc2hgIGlzIGNvbmZpZ3VyZWQsIHRoaXMgb3B0aW9uIG11c3QgYmUgYHVuZGVmaW5lZGAgb3JcbiAgICogYEFzc2V0SGFzaFR5cGUuQ1VTVE9NYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBpcyBgQXNzZXRIYXNoVHlwZS5TT1VSQ0VgLCBidXQgaWYgYGFzc2V0SGFzaGAgaXNcbiAgICogZXhwbGljaXRseSBzcGVjaWZpZWQgdGhpcyB2YWx1ZSBkZWZhdWx0cyB0byBgQXNzZXRIYXNoVHlwZS5DVVNUT01gLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoVHlwZT86IEFzc2V0SGFzaFR5cGU7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgYXNzZXQgaGFzaC5cbiAqXG4gKiBUaGUgaGFzaCBpZGVudGlmaWVzIGEgc3BlY2lmaWMgcmV2aXNpb24gb2YgdGhlIGFzc2V0IGFuZCBjYWNoZXMgZGVwbG95bWVudFxuICogd29yayBzdWNoIGFzIHBhY2thZ2luZyBhbmQgdXBsb2FkaW5nLlxuICovXG5leHBvcnQgZW51bSBBc3NldEhhc2hUeXBlIHtcbiAgLyoqXG4gICAqIEJhc2VkIG9uIHRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgcGF0aC5cbiAgICpcbiAgICogVXNlIGBTT1VSQ0VgIHRvIHRyYWNrIGNoYW5nZXMgdG8gdGhlIHNvdXJjZSBmaWxlcyBkaXJlY3RseS5cbiAgICovXG4gIFNPVVJDRSA9IFwic291cmNlXCIsXG5cbiAgLyoqXG4gICAqIEJhc2VkIG9uIHRoZSBjb250ZW50IG9mIHRoZSBidW5kbGluZyBvdXRwdXQuXG4gICAqXG4gICAqIFVzZSBgT1VUUFVUYCB3aGVuIHRoZSBzb3VyY2UgaXMgYSB0b3AtbGV2ZWwgZm9sZGVyIGhvbGRpbmcgY29kZSBhbmQvb3JcbiAgICogZGVwZW5kZW5jaWVzIG5vdCBkaXJlY3RseSBsaW5rZWQgdG8gdGhlIGFzc2V0LlxuICAgKi9cbiAgT1VUUFVUID0gXCJvdXRwdXRcIixcblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGhhc2guXG4gICAqL1xuICBDVVNUT00gPSBcImN1c3RvbVwiLFxufVxuXG4vKipcbiAqIEhvdyBhIHN0YWdlZCBhc3NldCBpcyBwcm9kdWNlZCBhbmQgd2hhdCBzaGFwZSBpdCB0YWtlcyBvbiBkaXNrLlxuICpcbiAqIFBhY2thZ2luZyBhbnN3ZXJzIHR3byBpbmRlcGVuZGVudCBxdWVzdGlvbnM6IGhvdyB0aGUgYXJ0aWZhY3QgaXMgcHJvZHVjZWRcbiAqIChjb3B5LCB6aXAsIHRhci5neiwgLi4uKSBhbmQgd2hldGhlciB0aGUgcmVzdWx0IGlzIGEgZGlyZWN0b3J5IG9yIGEgc2luZ2xlXG4gKiBmaWxlLiBBIGNsb3NlZCBlbnVtIGNhbiBvbmx5IGV2ZXIgYW5zd2VyIHRoZSBzZWNvbmQgb25lLCBzbyBpdCBpcyBhblxuICogaW50ZXJmYWNlIHJhdGhlciB0aGFuIGFuIGVudW0g4oCUIGN1c3RvbSBmb3JtYXRzIChlLmcuIGB0YXIuYnoyYCkgbmVlZCBub1xuICogY29yZSBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFzc2V0UGFja2FnaW5nIHtcbiAgLyoqXG4gICAqIEFwcGVuZGVkIHRvIHRoZSBzdGFnZWQgYXJ0aWZhY3QgbmFtZSwgZS5nLiBcIi56aXBcIiwgXCJcIiwgXCIudGFyLmJ6MlwiLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWdlZCByZXN1bHQgaXMgYSBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogUHVibGlzaGVycyBicmFuY2ggb24gdGhpcyB0byBkZWNpZGUgd2hldGhlciB0aGV5IHVwbG9hZCBvbmUgb2JqZWN0IG9yXG4gICAqIHN5bmMgYSB0cmVlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZHVjZXNEaXJlY3Rvcnk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHBhY2tgIGFjY2VwdHMgYSBkaXJlY3RvcnkgYXMgaXRzIGBzb3VyY2VgLlxuICAgKlxuICAgKiBJbmRlcGVuZGVudCBvZiBgcHJvZHVjZXNEaXJlY3RvcnlgIGFuZCBgb21pdHNEaXJlY3RvcnlFbnRyaWVzYCwgYm90aCBvZlxuICAgKiB3aGljaCBkZXNjcmliZSB0aGUgb3V0cHV0OiBhIGB0YXIuZ3pgIHBhY2thZ2luZyB0YWtlcyBhIGRpcmVjdG9yeSBzb3VyY2VcbiAgICogeWV0IGVtaXRzIGEgc2luZ2xlIGZpbGUuIEJ1bmRsZXIgb3V0cHV0IGlzIGFsd2F5cyBhIGRpcmVjdG9yeSwgc28gYVxuICAgKiBwYWNrYWdpbmcgdGhhdCBpcyBgZmFsc2VgIGhlcmUgY2Fubm90IHN0YWdlIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXB0c0RpcmVjdG9yeVNvdXJjZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBgcGFja2AgZW1pdHMgYW4gYXJ0aWZhY3Qgd2l0aCBubyBkaXJlY3RvcnkgZW50cmllcyBvZiBpdHMgb3duIOKAlFxuICAgKiBvbmx5IHRoZSBpZ25vcmUtc3RyYXRlZ3ktYXdhcmUgc291cmNlIHdhbGsuIGBoYXNoUGF0aGAncyBgYXJjaGl2ZWAgZnJhbWVcbiAgICogbXVzdCBhZ3JlZSB3aXRoIHRoaXMgb3IgdGhlIGhhc2ggYW5kIHRoZSBhcnRpZmFjdCBkZXNjcmliZSBkaWZmZXJlbnRcbiAgICogZmlsZSBzZXRzLlxuICAgKlxuICAgKiBgWmlwUGFja2FnaW5nYCBzZXRzIHRoaXMgYmVjYXVzZSBgYXJjaGl2ZVN5bmNgIG5ldmVyIGVtaXRzIFpJUCBkaXJlY3RvcnlcbiAgICogZW50cmllcy4gQSBkaXJlY3RvcnktcHJvZHVjaW5nIHBhY2thZ2luZyB0aGF0IG1pcnJvcnMgdGhlIHNvdXJjZSB0cmVlXG4gICAqIChlLmcuIGBEaXJlY3RvcnlQYWNrYWdpbmdgKSBsZWF2ZXMgdGhpcyBmYWxzZSwgc2luY2UgaXRzIGRpcmVjdG9yaWVzIGFyZVxuICAgKiByZWFsIGVudHJpZXMgb24gZGlzay5cbiAgICovXG4gIHJlYWRvbmx5IG9taXRzRGlyZWN0b3J5RW50cmllczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV3JpdGUgdGhlIHBhY2thZ2VkIHJlc3VsdCB0byBgb3B0aW9ucy50YXJnZXRgLlxuICAgKi9cbiAgcGFjayhvcHRpb25zOiBQYWNrT3B0aW9ucyk6IHZvaWQ7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIElBc3NldFBhY2thZ2luZy5wYWNrfS5cbiAqXG4gKiBBIHN0cnVjdCByYXRoZXIgdGhhbiBwb3NpdGlvbmFsIHBhcmFtZXRlcnM6IGFkZGluZyBhIHN0cnVjdCBmaWVsZCBpc1xuICogYWRkaXRpdmUsIGFkZGluZyBhIG1ldGhvZCBwYXJhbWV0ZXIgaXMgbm90LCBhbmQgYHBhY2tgIGlzIGNhbGxlZCB0aHJvdWdoXG4gKiBKU0lJIHdoZXJlIHRoYXQgZGlzdGluY3Rpb24gaXMgYSBicmVha2luZy1jaGFuZ2UgYm91bmRhcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja09wdGlvbnMge1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgcmVzb2x2ZWQgKGFscmVhZHkgYnVuZGxlZCwgaWYgYXBwbGljYWJsZSkgc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdGhlIHBhY2thZ2VkIHJlc3VsdCBzaG91bGQgYmUgd3JpdHRlbiB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnRyaWVzIHRvIG9taXQgZnJvbSB0aGUgcGFja2FnZWQgcmVzdWx0LiBNdXN0IG1hdGNoIHRoZSBzdHJhdGVneSB1c2VkXG4gICAqIHRvIGhhc2ggdGhlIHNhbWUgc291cmNlLCBvciB0aGUgaGFzaCBhbmQgdGhlIGFydGlmYWN0IGRlc2NyaWJlXG4gICAqIGRpZmZlcmVudCBzZXRzIG9mIGZpbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgaXMgZXhjbHVkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVN0cmF0ZWd5PzogSUlnbm9yZVN0cmF0ZWd5O1xufVxuXG4vKipcbiAqIENvcGllcyBhIHNpbmdsZSBmaWxlIHZlcmJhdGltLlxuICovXG5jbGFzcyBGaWxlUGFja2FnaW5nIGltcGxlbWVudHMgSUFzc2V0UGFja2FnaW5nIHtcbiAgcHVibGljIHJlYWRvbmx5IGV4dGVuc2lvbiA9IFwiXCI7XG4gIHB1YmxpYyByZWFkb25seSBwcm9kdWNlc0RpcmVjdG9yeSA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0c0RpcmVjdG9yeVNvdXJjZSA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgb21pdHNEaXJlY3RvcnlFbnRyaWVzID0gZmFsc2U7XG4gIHB1YmxpYyBwYWNrKG9wdGlvbnM6IFBhY2tPcHRpb25zKTogdm9pZCB7XG4gICAgZnMuY29weUZpbGVTeW5jKG9wdGlvbnMuc291cmNlLCBvcHRpb25zLnRhcmdldCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3BpZXMgYSBkaXJlY3RvcnkgdHJlZSB2ZXJiYXRpbSwgd2l0aG91dCBhcmNoaXZpbmcgaXQuXG4gKi9cbmNsYXNzIERpcmVjdG9yeVBhY2thZ2luZyBpbXBsZW1lbnRzIElBc3NldFBhY2thZ2luZyB7XG4gIHB1YmxpYyByZWFkb25seSBleHRlbnNpb24gPSBcIlwiO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvZHVjZXNEaXJlY3RvcnkgPSB0cnVlO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0c0RpcmVjdG9yeVNvdXJjZSA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSBvbWl0c0RpcmVjdG9yeUVudHJpZXMgPSBmYWxzZTtcbiAgcHVibGljIHBhY2sob3B0aW9uczogUGFja09wdGlvbnMpOiB2b2lkIHtcbiAgICBjb3B5U3luYyhvcHRpb25zLnNvdXJjZSwgb3B0aW9ucy50YXJnZXQsIHtcbiAgICAgIHNob3VsZEV4Y2x1ZGU6IG9wdGlvbnMuaWdub3JlU3RyYXRlZ3lcbiAgICAgICAgPyAocmVsYXRpdmVQYXRoLCBpc0RpcmVjdG9yeSkgPT5cbiAgICAgICAgICAgIG9wdGlvbnMuaWdub3JlU3RyYXRlZ3khLmlnbm9yZXMoeyByZWxhdGl2ZVBhdGgsIGlzRGlyZWN0b3J5IH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVzY2VuZEludG9FeGNsdWRlZERpcmVjdG9yaWVzOlxuICAgICAgICBvcHRpb25zLmlnbm9yZVN0cmF0ZWd5Py5wcnVuZUV4Y2x1ZGVkRGlyZWN0b3JpZXMgPT09IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQXJjaGl2ZXMgYSBkaXJlY3RvcnkgdHJlZSBpbnRvIGEgc2luZ2xlIHppcCBmaWxlLlxuICovXG5jbGFzcyBaaXBQYWNrYWdpbmcgaW1wbGVtZW50cyBJQXNzZXRQYWNrYWdpbmcge1xuICBwdWJsaWMgcmVhZG9ubHkgZXh0ZW5zaW9uID0gXCIuemlwXCI7XG4gIHB1YmxpYyByZWFkb25seSBwcm9kdWNlc0RpcmVjdG9yeSA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0c0RpcmVjdG9yeVNvdXJjZSA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSBvbWl0c0RpcmVjdG9yeUVudHJpZXMgPSB0cnVlO1xuICBwdWJsaWMgcGFjayhvcHRpb25zOiBQYWNrT3B0aW9ucyk6IHZvaWQge1xuICAgIGFyY2hpdmVTeW5jKFxuICAgICAgb3B0aW9ucy5zb3VyY2UsXG4gICAgICBvcHRpb25zLnRhcmdldCxcbiAgICAgIG9wdGlvbnMuaWdub3JlU3RyYXRlZ3lcbiAgICAgICAgPyAocmVsYXRpdmVQYXRoLCBpc0RpcmVjdG9yeSkgPT5cbiAgICAgICAgICAgIG9wdGlvbnMuaWdub3JlU3RyYXRlZ3khLmlnbm9yZXMoeyByZWxhdGl2ZVBhdGgsIGlzRGlyZWN0b3J5IH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9ucy5pZ25vcmVTdHJhdGVneT8ucHJ1bmVFeGNsdWRlZERpcmVjdG9yaWVzID09PSBmYWxzZSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQnVpbHQtaW4gcGFja2FnaW5nIHN0cmF0ZWdpZXMuIEN1c3RvbSBmb3JtYXRzIGltcGxlbWVudCBgSUFzc2V0UGFja2FnaW5nYFxuICogZGlyZWN0bHkgcmF0aGVyIHRoYW4gZXh0ZW5kaW5nIHRoaXMgY2xhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldFBhY2thZ2luZyB7XG4gIC8qKlxuICAgKiBDb3B5IGEgc2luZ2xlIGZpbGUgYXMtaXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJTEU6IElBc3NldFBhY2thZ2luZyA9IG5ldyBGaWxlUGFja2FnaW5nKCk7XG5cbiAgLyoqXG4gICAqIENvcHkgYSBkaXJlY3RvcnkgdHJlZSBhcy1pcywgd2l0aG91dCBhcmNoaXZpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERJUkVDVE9SWTogSUFzc2V0UGFja2FnaW5nID0gbmV3IERpcmVjdG9yeVBhY2thZ2luZygpO1xuXG4gIC8qKlxuICAgKiBBcmNoaXZlIGEgZGlyZWN0b3J5IHRyZWUgaW50byBhIHNpbmdsZSB6aXAgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWklQOiBJQXNzZXRQYWNrYWdpbmcgPSBuZXcgWmlwUGFja2FnaW5nKCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKlxuICogT3B0aW9ucyBoYW5kZWQgdG8gYW4ge0BsaW5rIElBc3NldEJ1bmRsZXJ9IHdoZW4gaXQgcnVucy5cbiAqXG4gKiBBIHN0cnVjdCByYXRoZXIgdGhhbiBwb3NpdGlvbmFsIHBhcmFtZXRlcnM6IGFkZGluZyBhIGZpZWxkIGlzIGFkZGl0aXZlLFxuICogYWRkaW5nIGEgbWV0aG9kIHBhcmFtZXRlciBpcyBub3QsIGFuZCBgYnVuZGxlYCBpcyBjYWxsZWQgdGhyb3VnaCBKU0lJIHdoZXJlXG4gKiB0aGF0IGRpc3RpbmN0aW9uIGlzIGEgYnJlYWtpbmctY2hhbmdlIGJvdW5kYXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZU9wdGlvbnMge1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCB0byB0aGUgYXNzZXQncyBzb3VyY2UgZmlsZSBvciBkaXJlY3RvcnkuIFRoZSBidW5kbGVyIHJlYWRzXG4gICAqIGZyb20gaGVyZSBhbmQgbXVzdCBub3QgbW9kaWZ5IGl0LlxuICAgKlxuICAgKiBFeGNsdXNpb25zIChgZXhjbHVkZWAgLyBgaWdub3JlU3RyYXRlZ3lgKSBhcmUgYWxyZWFkeSBhcHBsaWVkOiB3aGVuIGFueVxuICAgKiBhcmUgY29uZmlndXJlZCB0aGlzIHBvaW50cyBhdCBhIGZpbHRlcmVkIGNvcHksIG5vdCB0aGUgb3JpZ2luYWwgdHJlZSwgc29cbiAgICogdGhlIGJ1bmRsZXIgcmVhZHMgZXhhY3RseSB0aGUgZmlsZSBzZXQgdGhlIGFzc2V0IGhhc2ggd2FzIHRha2VuIG92ZXIuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzY3JhdGNoIGRpcmVjdG9yeSB0aGUgYnVuZGxlciBtYXkgd3JpdGUgaW50bywgb3duZWQgYW5kIGNyZWF0ZWQgYnkgdGhlXG4gICAqIGNhbGxlci4gVGhlIGJ1bmRsZXIgcHJvZHVjZXMgaXRzIG91dHB1dCBoZXJlIChvciBpbiBhIHN1YmRpcmVjdG9yeSkgYW5kXG4gICAqIHJldHVybnMgYSB7QGxpbmsgQnVuZGxlUmVzdWx0fSBwb2ludGluZyBhdCB0aGUgZmluaXNoZWQgYXJ0aWZhY3Qg4oCUIHNlZVxuICAgKiB7QGxpbmsgSUFzc2V0QnVuZGxlci5idW5kbGV9LlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RGlyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNoYXBlIG9mIGEgYnVuZGxlcidzIG91dHB1dCwgc28gc3RhZ2luZyBhbmQgcGFja2FnaW5nIGNhbiB0cmVhdCBhXG4gKiBzaW5nbGUtZmlsZSBhcnRpZmFjdCAoYSB0YXJiYWxsLCBhIGAuemlwYCkgZGlmZmVyZW50bHkgZnJvbSBhIGRpcmVjdG9yeVxuICogdHJlZSB3aXRob3V0IGluZmVycmluZyBpdCBmcm9tIHRoZSBwYXRoLlxuICovXG5leHBvcnQgZW51bSBCdW5kbGVPdXRwdXRUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgaXMgYSBkaXJlY3RvcnkgdHJlZS5cbiAgICpcbiAgICogUGFja2FnZWQgbGlrZSBhbiB1bmJ1bmRsZWQgc291cmNlIGRpcmVjdG9yeS4gVGhlIGRlZmF1bHQsIGFuZCB0aGUgb25seVxuICAgKiBzaGFwZSB0aGF0IHByZWRhdGVzIGFyY2hpdmUgc3VwcG9ydC5cbiAgICovXG4gIERJUkVDVE9SWSA9IFwiZGlyZWN0b3J5XCIsXG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgaXMgYSBzaW5nbGUgZmlsZSB0aGUgYnVuZGxlciBhbHJlYWR5IHByb2R1Y2VkIGluIGl0cyBmaW5hbFxuICAgKiBmb3JtLlxuICAgKlxuICAgKiBBIHRhcmJhbGwgb3IgYSBkZXRlcm1pbmlzdGljIGAuemlwYC4gU3RhZ2VkIHZlcmJhdGltIHJhdGhlciB0aGFuXG4gICAqIHJlLWFyY2hpdmVkLCBzbyBgQXNzZXRUeXBlLkZJTEVgIG5vIGxvbmdlciBoYXMgdG8gcmVqZWN0IGEgYnVuZGxlci5cbiAgICovXG4gIEZJTEUgPSBcImZpbGVcIixcbn1cblxuLyoqXG4gKiBXaGF0IGEgYnVuZGxlciBwcm9kdWNlZCwgcmV0dXJuZWQgZnJvbSB7QGxpbmsgSUFzc2V0QnVuZGxlci5idW5kbGV9LlxuICpcbiAqIENhcnJpZXMgdGhlIGFydGlmYWN0IHBhdGggYW5kIGl0cyBzaGFwZSwgb3IgYSBkZWNsaW5lZCBzdGF0ZSBzaWduYWxsaW5nIHRoZVxuICogY2FsbGVyIHNob3VsZCBmYWxsIGJhY2suIFNlZSB7QGxpbmsgZGVjbGluZWR9IGZvciB0aGUgZGVjbGluZSBwcm90b2NvbC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJ1bmRsZVJlc3VsdCB7XG4gIC8qKlxuICAgKiBBIGRpcmVjdG9yeS10cmVlIGFydGlmYWN0IGF0IGBwYXRoYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlyZWN0b3J5KHBhdGg6IHN0cmluZyk6IEJ1bmRsZVJlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBCdW5kbGVSZXN1bHQoQnVuZGxlT3V0cHV0VHlwZS5ESVJFQ1RPUlksIHBhdGgsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNpbmdsZS1maWxlIGFydGlmYWN0IGF0IGBwYXRoYCAoYSB0YXJiYWxsLCBhIGAuemlwYCksIHN0YWdlZCB2ZXJiYXRpbS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmlsZShwYXRoOiBzdHJpbmcpOiBCdW5kbGVSZXN1bHQge1xuICAgIHJldHVybiBuZXcgQnVuZGxlUmVzdWx0KEJ1bmRsZU91dHB1dFR5cGUuRklMRSwgcGF0aCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBidW5kbGVyIGRlY2xpbmVkIHRvIHJ1biBoZXJlOyB0aGUgY2FsbGVyIHNob3VsZCBmYWxsIGJhY2suXG4gICAqXG4gICAqIERpc3RpbmN0IGZyb20gYSB0aHJvd24gZXJyb3IsIHdoaWNoIGlzIGEgaGFyZCBmYWlsdXJlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWNsaW5lZCgpOiBCdW5kbGVSZXN1bHQge1xuICAgIHJldHVybiBuZXcgQnVuZGxlUmVzdWx0KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QncyBzaGFwZSwgb3IgdW5kZWZpbmVkIHdoZW4ge0BsaW5rIGlzRGVjbGluZWR9LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dFR5cGU/OiBCdW5kbGVPdXRwdXRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3QgcGF0aCwgb3IgdW5kZWZpbmVkIHdoZW4ge0BsaW5rIGlzRGVjbGluZWR9LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJ1bmRsZXIgZGVjbGluZWQgdG8gcnVuLCBzaWduYWxsaW5nIHRoZSBjYWxsZXIgdG8gZmFsbCBiYWNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzRGVjbGluZWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBvdXRwdXRUeXBlOiBCdW5kbGVPdXRwdXRUeXBlIHwgdW5kZWZpbmVkLFxuICAgIHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBpc0RlY2xpbmVkOiBib29sZWFuLFxuICApIHtcbiAgICB0aGlzLm91dHB1dFR5cGUgPSBvdXRwdXRUeXBlO1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5pc0RlY2xpbmVkID0gaXNEZWNsaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSBzb3VyY2UgdHJlZSBpbnRvIGEgYnVpbHQgYXJ0aWZhY3QuIFJ1bnMgYXQgc3ludGgsIGJlZm9yZSB0aGVcbiAqIG91dHB1dCBpcyBwYWNrYWdlZCBhbmQgc3RhZ2VkLlxuICpcbiAqIFRoaXMgaXMgdGhlIGV4dGVuc2lvbiBwb2ludCBmb3IgYXNzZXQgYnVuZGxpbmc6IGNvcmUgc2hpcHMgbm8gYnVuZGxlci5cbiAqIERvY2tlciwgZXNidWlsZCwgcGlwLCBgZ28gYnVpbGRgLCBhbmQgc2ltaWxhciBhcmUgYW4gb3Blbi1lbmRlZCwgbm9uXG4gKiBjbG91ZC1zcGVjaWZpYyBzZXQsIHNvIGVhY2ggbGl2ZXMgaW4gaXRzIG93biBwYWNrYWdlIGFuZCBpbXBsZW1lbnRzIHRoaXNcbiAqIG9uZSBpbnRlcmZhY2Ug4oCUIHRoZSBzYW1lIHdheSB7QGxpbmsgSUlnbm9yZVN0cmF0ZWd5fSBsZXRzIHJpY2hlciBleGNsdXNpb25cbiAqIGxpdmUgb3V0c2lkZSBjb3JlLiBVc2VycyBwYXNzIGFuIGluc3RhbmNlIHZpYSB0aGUgY29uc3VtaW5nIGNvbnN0cnVjdCdzXG4gKiBgYnVuZGxlcmAgb3B0aW9uLlxuICpcbiAqIGBidW5kbGVgIHJ1bnMgZHVyaW5nIHRoZSBvd25pbmcgY29uc3RydWN0J3MgYG9uU3ludGhlc2l6ZWAgaG9vayBhbmQgbWF5XG4gKiB0b3VjaCB0aGUgZmlsZXN5c3RlbS4gRGVmZXJyaW5nIGl0IHRoZXJlIGtlZXBzIGl0IHNraXBwYWJsZSB3aGVuIHRoZSBhc3NldCdzXG4gKiBzdGFjayBpcyBub3QgYmVpbmcgc3ludGhlc2l6ZWQsIHdoaWNoIGhvbGRzIGFzIGxvbmcgYXMgdGhlIGhhc2ggaXMgdGFrZW5cbiAqIG92ZXIgdGhlIHNvdXJjZSByYXRoZXIgdGhhbiB0aGUgYnVpbHQgb3V0cHV0LlxuICpcbiAqIEJ1bmRsZXJzIGNvbXBvc2UgdGhyb3VnaCB7QGxpbmsgQ2hhaW5CdW5kbGVyfSByYXRoZXIgdGhhbiBhIGhpZXJhcmNoeTogYVxuICogYnVuZGxlciBkZWNsaW5lcyAoc2VlIHtAbGluayBCdW5kbGVSZXN1bHQuZGVjbGluZWR9KSBpbnN0ZWFkIG9mIGZhaWxpbmcgd2hlblxuICogaXQgY2Fubm90IHJ1biwgYW5kIHRoZSBjaGFpbiBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBc3NldEJ1bmRsZXIge1xuICAvKipcbiAgICogQSB2YWx1ZSBpZGVudGlmeWluZyB0aGUgYnVpbGQsIGZvbGRlZCBpbnRvIHRoZSBhc3NldCBoYXNoLlxuICAgKlxuICAgKiBUaGUgc291cmNlIHRyZWUgYWxvbmUgY2Fubm90IHNlZSB0aGUgYnVpbGQsIHNvIHN3YXBwaW5nIGEgYG5vZGU6MThgIGJhc2VcbiAgICogaW1hZ2UgZm9yIGBub2RlOjIwYCB3b3VsZCBvdGhlcndpc2UgbGVhdmUgaWRlbnRpdHkgdW5jaGFuZ2VkLiBVbmRlclxuICAgKiBgU09VUkNFYCBoYXNoaW5nIHRoaXMgaXMgdGhlIG9ubHkgY2hhbm5lbCBieSB3aGljaCB0aGUgYnVpbGQgcmVhY2hlc1xuICAgKiBpZGVudGl0eSwgc28gaXQgbXVzdCBzZXJpYWxpemUgZXZlcnkgaW5wdXQgdGhhdCBjYW4gbW92ZSB0aGUgb3V0cHV0LCBvciBhXG4gICAqIGNoYW5nZWQgYnVpbGQgc2lsZW50bHkgcmV1c2VzIGEgc3RhbGUgYXJ0aWZhY3QuIHtAbGluayBCdW5kbGVyS2V5fSBidWlsZHNcbiAgICogb25lIGZyb20gYW4gb3JkZXJlZCBzZXQgb2YgcGFydHMuXG4gICAqXG4gICAqIE1pcnJvcnMge0BsaW5rIElJZ25vcmVTdHJhdGVneS5jYWNoZUtleX06IG9taXQgaXQgd2hlbiB0aGUgYnVpbGQgY2Fubm90IGJlXG4gICAqIHN1bW1hcml6ZWQgYXMgYSBzdHJpbmcsIGFuZCBmYWxsIGJhY2sgdG8gYGV4dHJhSGFzaGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGJ1aWxkIGRvZXMgbm90IGNvbnRyaWJ1dGUgdG8gdGhlIGhhc2hcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsZXJLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGEgc2luZ2xlLWZpbGUgYXJ0aWZhY3QgaXMgc3RhZ2VkIHVuZGVyIChlLmcuIGBhcmNoaXZlLnppcGApLlxuICAgKlxuICAgKiBBIGZpbGUtcHJvZHVjaW5nIGJ1bmRsZXIgKGBCdW5kbGVSZXN1bHQuZmlsZWApIHN0YWdlZCB3aXRoXG4gICAqIGBBc3NldFR5cGUuRklMRWAgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNvdXJjZSBwYXRoJ3MgYmFzZW5hbWUsIHdoaWNoIGlzXG4gICAqIGEgZGlyZWN0b3J5IG5hbWUgd2hlbiB0aGUgc291cmNlIGlzIGEgZGlyZWN0b3J5LiBEZWNsYXJpbmcgdGhlIG5hbWUgaGVyZVxuICAgKiBsZXRzIHRoZSBhcnRpZmFjdCByZWZsZWN0IHdoYXQgdGhlIGJ1bmRsZXIgcHJvZHVjZXMuIEl0IGlzIHN0YXRpY1xuICAgKiBjb25maWd1cmF0aW9uLCBuZWVkZWQgYXQgY29uc3RydWN0aW9uIGJlZm9yZSBhIGRlZmVycmVkIGBTT1VSQ0VgIGJ1aWxkXG4gICAqIHJ1bnMsIG5vdCB0aGUgZmlsZSdzIHJ1bnRpbWUgbmFtZS5cbiAgICpcbiAgICogVmFsaWQgb25seSBmb3IgYSBmaWxlLXByb2R1Y2luZyBidW5kbGVyOiBzZXR0aW5nIGl0IHdpdGggYSBkaXJlY3RvcnlcbiAgICogcGFja2FnaW5nIChhbnl0aGluZyBidXQgYEFzc2V0VHlwZS5GSUxFYCkgaXMgcmVqZWN0ZWQgYXQgY29uc3RydWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBzb3VyY2UgcGF0aCdzIGJhc2VuYW1lXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRGaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvZHVjZSB0aGUgYXJ0aWZhY3QgYW5kIHJldHVybiBhIHtAbGluayBCdW5kbGVSZXN1bHR9IGRlc2NyaWJpbmcgaXQuXG4gICAqXG4gICAqIEltcGxlbWVudGF0aW9ucyB3cml0ZSBpbnRvIGBvcHRpb25zLm91dHB1dERpcmAgYW5kIG5ldmVyIHdyaXRlIGJhY2sgdG9cbiAgICogYG9wdGlvbnMuc291cmNlYC4gVGhlIHJldHVybmVkIHBhdGggbXVzdCBleGlzdCBhbmQgbWF0Y2ggaXRzIGRlY2xhcmVkXG4gICAqIHNoYXBlLCBvciBzdGFnaW5nIHJlamVjdHMgaXQuXG4gICAqXG4gICAqIEEgYnVuZGxlciB0aGF0IGNhbm5vdCBydW4gaW4gdGhpcyBlbnZpcm9ubWVudCByZXR1cm5zXG4gICAqIGBCdW5kbGVSZXN1bHQuZGVjbGluZWQoKWAgc28gYSB7QGxpbmsgQ2hhaW5CdW5kbGVyfSBjYW4gZmFsbCB0aHJvdWdoIHRvXG4gICAqIHRoZSBuZXh0OyBhIHRocm93biBlcnJvciBpcyBhIGhhcmQgZmFpbHVyZSwgbm90IGEgZGVjbGluZS5cbiAgICovXG4gIGJ1bmRsZShvcHRpb25zOiBCdW5kbGVPcHRpb25zKTogQnVuZGxlUmVzdWx0O1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbiB7QGxpbmsgSUFzc2V0QnVuZGxlci5idW5kbGVyS2V5fSBmcm9tIGFuIG9yZGVyZWQgc2V0IG9mIHBhcnRzLlxuICpcbiAqIEEgYGJ1bmRsZXJLZXlgIGhhcyB0byBzZXJpYWxpemUgZXZlcnl0aGluZyB0aGF0IGNhbiBtb3ZlIGEgYnVpbGQncyBvdXRwdXQ7XG4gKiBkb25lIGFkIGhvYywgZXZlcnkgYnVuZGxlciBpbnZlbnRzIGl0cyBvd24gZGVsaW1pdGVyIGFuZCBmb3JnZXRzIGFuIGlucHV0XG4gKiBkaWZmZXJlbnRseS4gVGhpcyBnaXZlcyB0aGUgY29udmVudGlvbiBvbmUgaW1wbGVtZW50YXRpb246IHBhcnRzIGFyZSBqb2luZWRcbiAqIHdpdGggYSBzZXBhcmF0b3IgdGhhdCBpcyBlc2NhcGVkIGluc2lkZSB2YWx1ZXMsIHNvIGRpc3RpbmN0IGlucHV0cyBjYW5ub3RcbiAqIGNvbGxpZGUgaW50byB0aGUgc2FtZSBrZXkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGtleSA9IEJ1bmRsZXJLZXkub2YoXCJkb2NrZXJcIiwgaW1hZ2UsIGNvbW1hbmQpXG4gKiAgIC53aXRoRW52KHsgTk9ERV9FTlY6IG5vZGVFbnYgfSlcbiAqICAgLnRvU3RyaW5nKCk7XG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVyS2V5IHtcbiAgLyoqXG4gICAqIFN0YXJ0IGEga2V5IGZyb20gYW4gb3JkZXJlZCBsaXN0IG9mIHBhcnRzLlxuICAgKlxuICAgKiBPcmRlciBpcyBzaWduaWZpY2FudDogaXQgaXMgcGFydCBvZiB3aGF0IHRoZSBrZXkgaWRlbnRpZmllcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YoLi4ucGFydHM6IHN0cmluZ1tdKTogQnVuZGxlcktleSB7XG4gICAgcmV0dXJuIG5ldyBCdW5kbGVyS2V5KHBhcnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGVzY2FwZShwYXJ0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXJ0LnJlcGxhY2UoL1xcXFwvZywgXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC86L2csIFwiXFxcXDpcIik7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFydHM6IHN0cmluZ1tdKSB7fVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgcGFydHMsIHJldHVybmluZyBhIG5ldyBrZXkuXG4gICAqL1xuICBwdWJsaWMgYWRkKC4uLnBhcnRzOiBzdHJpbmdbXSk6IEJ1bmRsZXJLZXkge1xuICAgIHJldHVybiBuZXcgQnVuZGxlcktleShbLi4udGhpcy5wYXJ0cywgLi4ucGFydHNdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgYGtleT12YWx1ZWAgcGFydHMgZm9yIGEgcmVjb3JkLCBzb3J0ZWQgYnkga2V5IHNvIHRoZSByZXN1bHQgZG9lc1xuICAgKiBub3QgZGVwZW5kIG9uIHByb3BlcnR5IG9yZGVyLlxuICAgKi9cbiAgcHVibGljIHdpdGhFbnYoZW50cmllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IEJ1bmRsZXJLZXkge1xuICAgIGNvbnN0IGtlcHQgPSBPYmplY3Qua2V5cyhlbnRyaWVzKVxuICAgICAgLnNvcnQoKVxuICAgICAgLm1hcCgoaykgPT4gYCR7a309JHtlbnRyaWVzW2tdfWApO1xuICAgIHJldHVybiBuZXcgQnVuZGxlcktleShbLi4udGhpcy5wYXJ0cywgLi4ua2VwdF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgY29sbGVjdGVkIHBhcnRzIHRvIHRoZSBzdHJpbmcgcGFzc2VkIGFzIGBidW5kbGVyS2V5YC5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcnRzLm1hcChCdW5kbGVyS2V5LmVzY2FwZSkuam9pbihcIjpcIik7XG4gIH1cbn1cblxuLyoqXG4gKiBDb21wb3NlcyBidW5kbGVycyBpbnRvIGEgXCJ0cnkgZWFjaCBpbiBvcmRlciB1bnRpbCBvbmUgcnVuc1wiIGNoYWluLlxuICpcbiAqIFRoaXMgaXMgaG93IGEgbG9jYWwgYnVuZGxlciBhbmQgYSBEb2NrZXIgYnVuZGxlciBjb21wb3NlIHdpdGhvdXQgYmVpbmdcbiAqIHJld3JpdHRlbiBhcyBvbmU6IGVhY2ggbGVnIGRlY2xpbmVzIChgQnVuZGxlUmVzdWx0LmRlY2xpbmVkKClgKSB3aGVuIGl0XG4gKiBjYW5ub3QgcnVuIGhlcmUsIGFuZCB0aGUgY2hhaW4gbW92ZXMgdG8gdGhlIG5leHQuIFRoZSBmaXJzdCBub24tZGVjbGluaW5nXG4gKiByZXN1bHQgd2luczsgaWYgYWxsIGRlY2xpbmUsIGBidW5kbGVgIHRocm93cywgc2luY2Ugc3RhZ2luZyBoYXMgbm90aGluZyB0b1xuICogZmFsbCBiYWNrIHRvLiBFYWNoIGxlZyBidWlsZHMgaW50byBpdHMgb3duIG91dHB1dCBkaXJlY3RvcnksIHNvIGEgbGVnIHRoYXRcbiAqIHdyaXRlcyBiZWZvcmUgZGVjbGluaW5nIGNhbm5vdCBsZWFrIHBhcnRpYWwgZmlsZXMgaW50byB0aGUgbGVnIHRoYXQgd2lucy5cbiAqXG4gKiBUaGUgY2hhaW4ncyBgYnVuZGxlcktleWAgZm9sZHMgaW4gKmV2ZXJ5KiBsZWcncyBrZXksIHNvIGlkZW50aXR5IGlzIHRoZSBzYW1lXG4gKiByZWdhcmRsZXNzIG9mIHdoaWNoIGxlZyBlbmRzIHVwIHJ1bm5pbmcg4oCUIGEgYnVpbGQgdGhhdCBjb3VsZCBoYXZlIGdvbmUgbG9jYWxcbiAqIG9yIERvY2tlciBpcyBvbmUgYXNzZXQsIG5vdCB0d28uXG4gKlxuICogVGhpcyBtYWtlcyB0aGUgbGVncyBpbnRlcmNoYW5nZWFibGUgb25seSBpZiB0aGV5IHByb2R1Y2UgZXF1aXZhbGVudCBvdXRwdXQuXG4gKiBVbmRlciBgU09VUkNFYCBoYXNoaW5nIHRoZXkgbXVzdDogYSBtYWNoaW5lIHdpdGggYSBob3N0IHRvb2wgYW5kIG9uZSB3aXRob3V0XG4gKiBydW4gZGlmZmVyZW50IGxlZ3MsIGFuZCBub24tZXF1aXZhbGVudCBsZWdzIHdvdWxkIHN0YWdlIGRpZmZlcmVudCBieXRlcyB1bmRlclxuICogdGhlIHNhbWUgaGFzaC4gVXNlIGBPVVRQVVRgIGhhc2hpbmcgd2hlbiBsZWdzIG1heSBkaXZlcmdlLCBzbyBpZGVudGl0eSB0cmFja3NcbiAqIHRoZSBhcnRpZmFjdCBlYWNoIGxlZyBhY3R1YWxseSBwcm9kdWNlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENoYWluQnVuZGxlciBpbXBsZW1lbnRzIElBc3NldEJ1bmRsZXIge1xuICAvKipcbiAgICogQ2hhaW4gYnVuZGxlcnMgaW4gdGhlIG9yZGVyIGdpdmVuOyBlYXJsaWVyIGJ1bmRsZXJzIGFyZSBwcmVmZXJyZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKC4uLmJ1bmRsZXJzOiBJQXNzZXRCdW5kbGVyW10pOiBDaGFpbkJ1bmRsZXIge1xuICAgIHJldHVybiBuZXcgQ2hhaW5CdW5kbGVyKGJ1bmRsZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBidW5kbGVyS2V5Pzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBvdXRwdXRGaWxlTmFtZT86IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVuZGxlcnM6IElBc3NldEJ1bmRsZXJbXSkge1xuICAgIGlmIChidW5kbGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IGNoYWluQnVuZGxlclJlcXVpcmVzQXRMZWFzdE9uZUJ1bmRsZXIoKTtcbiAgICB9XG4gICAgLy8gRm9sZCBpbiBldmVyeSBsZWcncyBrZXkgc28gd2hpY2ggbGVnIHJ1bnMgY2Fubm90IGNoYW5nZSBpZGVudGl0eS4gQSBsZWdcbiAgICAvLyB3aXRob3V0IGEga2V5IGNvbnRyaWJ1dGVzIGFuIGVtcHR5IHBhcnQsIHN0aWxsIGRpc3Rpbmd1aXNoaW5nIFwidHdvIGxlZ3NcIlxuICAgIC8vIGZyb20gXCJvbmUgbGVnXCIgcG9zaXRpb25hbGx5LlxuICAgIGNvbnN0IGtleXMgPSBidW5kbGVycy5tYXAoKGIpID0+IGIuYnVuZGxlcktleSA/PyBcIlwiKTtcbiAgICB0aGlzLmJ1bmRsZXJLZXkgPSBrZXlzLnNvbWUoKGspID0+IGsgIT09IFwiXCIpXG4gICAgICA/IEJ1bmRsZXJLZXkub2YoXCJjaGFpblwiLCAuLi5rZXlzKS50b1N0cmluZygpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFRoZSBzdGFnZWQgZmlsZSBuYW1lIGlzIGZpeGVkIGF0IGNvbnN0cnVjdGlvbiwgYmVmb3JlIGFueSBsZWcgcnVucywgc29cbiAgICAvLyBsZWdzIHRoYXQgZGVjbGFyZSBvbmUgbXVzdCBhZ3JlZSDigJQgb3RoZXJ3aXNlIHRoZSBuYW1lIHdvdWxkIGRlcGVuZCBvblxuICAgIC8vIHdoaWNoIGxlZyBoYXBwZW5zIHRvIHJ1bi5cbiAgICBjb25zdCBuYW1lcyA9IG5ldyBTZXQoXG4gICAgICBidW5kbGVyc1xuICAgICAgICAubWFwKChiKSA9PiBiLm91dHB1dEZpbGVOYW1lKVxuICAgICAgICAuZmlsdGVyKChuKTogbiBpcyBzdHJpbmcgPT4gbiAhPT0gdW5kZWZpbmVkKSxcbiAgICApO1xuICAgIGlmIChuYW1lcy5zaXplID4gMSkge1xuICAgICAgdGhyb3cgY2hhaW5CdW5kbGVyQ29uZmxpY3RpbmdPdXRwdXRGaWxlTmFtZShbLi4ubmFtZXNdKTtcbiAgICB9XG4gICAgdGhpcy5vdXRwdXRGaWxlTmFtZSA9IG5hbWVzLnNpemUgPT09IDEgPyBbLi4ubmFtZXNdWzBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGJ1bmRsZShvcHRpb25zOiBCdW5kbGVPcHRpb25zKTogQnVuZGxlUmVzdWx0IHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYnVuZGxlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIEVhY2ggbGVnIGdldHMgaXRzIG93biBvdXRwdXQgZGlyZWN0b3J5LiBBIGxlZyBpcyBmcmVlIHRvIHdyaXRlIGJlZm9yZVxuICAgICAgLy8gaXQgZGVjbGluZXMgKGVzYnVpbGQgZmFpbGluZyBvbiBhbiB1bnN1cHBvcnRlZCB0YXJnZXQsIGEgRG9ja2VyIGxlZ1xuICAgICAgLy8gY3JlYXRpbmcgb3V0cHV0IGJlZm9yZSBmaW5kaW5nIHRoZSBkYWVtb24gZG93biksIGFuZCBzaGFyaW5nIG9uZVxuICAgICAgLy8gZGlyZWN0b3J5IHdvdWxkIGxlYWsgdGhvc2UgcGFydGlhbCBmaWxlcyBpbnRvIHRoZSBsZWcgdGhhdCBzdWNjZWVkcy5cbiAgICAgIGNvbnN0IGxlZ091dHB1dERpciA9IHBhdGguam9pbihvcHRpb25zLm91dHB1dERpciwgYGxlZy0ke2l9YCk7XG4gICAgICBmcy5ta2RpclN5bmMobGVnT3V0cHV0RGlyKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuYnVuZGxlcnNbaV0uYnVuZGxlKHtcbiAgICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSxcbiAgICAgICAgb3V0cHV0RGlyOiBsZWdPdXRwdXREaXIsXG4gICAgICB9KTtcbiAgICAgIGlmICghcmVzdWx0LmlzRGVjbGluZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgY2hhaW5CdW5kbGVyQWxsRGVjbGluZWQodGhpcy5idW5kbGVycy5sZW5ndGgpO1xuICB9XG59XG5cbi8qKlxuICogQSBzdGFnZWQgYXJ0aWZhY3QsIHJlYWR5IHRvIGhhbmQgdG8gYW4gYElBc3NldFB1Ymxpc2hlcmAuXG4gKlxuICogRGVsaWJlcmF0ZWx5IG5hcnJvd2VyIHRoYW4gYSBsb2NhdGlvbjogYHBhdGhgIGFuZCBgaXNEaXJlY3RvcnlgIGFyZSBrbm93blxuICogb25jZSBzdGFnaW5nIHJ1bnMsIGF0IHN5bnRoIHRpbWUsIGJlZm9yZSBhbnl0aGluZyBpcyBwdWJsaXNoZWQuIFdoZXJlIGFuXG4gKiBhc3NldCBlbmRzIHVwIOKAlCBhIGJ1Y2tldCBuYW1lLCBhbiBvYmplY3Qga2V5LCBhIFVSTCDigJQgaXMgcmVzb2x2ZWQgYXRcbiAqIGFwcGx5IHRpbWUgYW5kIGJlbG9uZ3Mgb24gdGhlIHB1Ymxpc2hlcidzIG93biByZWZlcmVuY2UgdHlwZSBpbnN0ZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlZEFzc2V0IHtcbiAgLyoqXG4gICAqIEEgaGFzaCBvbiB0aGUgY29udGVudCBzb3VyY2UsIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHRoaXMgYXNzZXQuXG4gICAqXG4gICAqIFRoZSBhc3NldCBpcyBub3QgcmVidWlsdCBvciByZXB1Ymxpc2hlZCB3aGlsZSB0aGlzIHZhbHVlIGlzIHVuY2hhbmdlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgc3RhZ2VkIGFydGlmYWN0LCByZWxhdGl2ZSB0byB0aGUgc3RhY2sgZGlyZWN0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzdGFnZWQgYXJ0aWZhY3QgaXMgYSBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogUHVibGlzaGVycyBicmFuY2ggb24gdGhpcyB0byBkZWNpZGUgd2hldGhlciB0aGV5IHVwbG9hZCBvbmUgb2JqZWN0IG9yXG4gICAqIHN5bmMgYSB0cmVlOyBzZWUgYElBc3NldFBhY2thZ2luZy5wcm9kdWNlc0RpcmVjdG9yeWAuXG4gICAqL1xuICByZWFkb25seSBpc0RpcmVjdG9yeTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a, _b;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.DataTerraformRemoteStateAzurerm = exports.AzurermBackend = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -8,6 +7,8 @@ const util_1 = require("../util");
8
7
  const terraform_remote_state_1 = require("../terraform-remote-state");
9
8
  // eslint-disable-next-line jsdoc/require-jsdoc
10
9
  class AzurermBackend extends terraform_backend_1.TerraformBackend {
10
+ props;
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AzurermBackend", version: "0.25.0" };
11
12
  constructor(scope, props) {
12
13
  super(scope, "backend", "azurerm");
13
14
  this.props = props;
@@ -26,15 +27,12 @@ class AzurermBackend extends terraform_backend_1.TerraformBackend {
26
27
  }
27
28
  }
28
29
  exports.AzurermBackend = AzurermBackend;
29
- _a = JSII_RTTI_SYMBOL_1;
30
- AzurermBackend[_a] = { fqn: "cdktn.AzurermBackend", version: "0.25.0-pre.8" };
31
30
  // eslint-disable-next-line jsdoc/require-jsdoc
32
31
  class DataTerraformRemoteStateAzurerm extends terraform_remote_state_1.TerraformRemoteState {
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateAzurerm", version: "0.25.0" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "azurerm", config);
35
35
  }
36
36
  }
37
37
  exports.DataTerraformRemoteStateAzurerm = DataTerraformRemoteStateAzurerm;
38
- _b = JSII_RTTI_SYMBOL_1;
39
- DataTerraformRemoteStateAzurerm[_b] = { fqn: "cdktn.DataTerraformRemoteStateAzurerm", version: "0.25.0-pre.8" };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmVybS1iYWNrZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhY2tlbmRzL2F6dXJlcm0tYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLDREQUF3RDtBQUN4RCxrQ0FBMEM7QUFDMUMsc0VBR21DO0FBRW5DLCtDQUErQztBQUMvQyxNQUFhLGNBQWUsU0FBUSxvQ0FBZ0I7SUFDbEQsWUFDRSxLQUFnQixFQUNDLEtBQTJCO1FBRTVDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRmxCLFVBQUssR0FBTCxLQUFLLENBQXNCO0lBRzlDLENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyx1QkFBdUI7UUFDL0IsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsS0FBZ0IsRUFDaEIsSUFBWSxFQUNaLFVBQWtCO1FBRWxCLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3RELEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixTQUFTLEVBQUUsd0JBQXdCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekJILHdDQTBCQzs7O0FBRUQsK0NBQStDO0FBQy9DLE1BQWEsK0JBQWdDLFNBQVEsNkNBQW9CO0lBQ3ZFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLE1BQTZDO1FBRTdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQVBILDBFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1CYWNrZW5kIH0gZnJvbSBcIi4uL3RlcnJhZm9ybS1iYWNrZW5kXCI7XG5pbXBvcnQgeyBrZXlzVG9TbmFrZUNhc2UgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtUmVtb3RlU3RhdGUsXG4gIERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZUNvbmZpZyxcbn0gZnJvbSBcIi4uL3RlcnJhZm9ybS1yZW1vdGUtc3RhdGVcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBBenVyZXJtQmFja2VuZCBleHRlbmRzIFRlcnJhZm9ybUJhY2tlbmQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEF6dXJlcm1CYWNrZW5kQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgXCJiYWNrZW5kXCIsIFwiYXp1cmVybVwiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIGtleXNUb1NuYWtlQ2FzZSh7IC4uLnRoaXMucHJvcHMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBrZXlzVG9TbmFrZUNhc2UoeyAuLi50aGlzLnByb3BzIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJlbW90ZVN0YXRlRGF0YVNvdXJjZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBfZnJvbVN0YWNrOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZUF6dXJlcm0oc2NvcGUsIG5hbWUsIHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB3b3Jrc3BhY2U6IFwiJHt0ZXJyYWZvcm0ud29ya3NwYWNlfVwiLFxuICAgIH0pO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQXp1cmVybSBleHRlbmRzIFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQXp1cmVybUNvbmZpZyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBcImF6dXJlcm1cIiwgY29uZmlnKTtcbiAgfVxufVxuLyoqXG4gKiBTdG9yZXMgdGhlIHN0YXRlIGFzIGEgQmxvYiB3aXRoIHRoZSBnaXZlbiBLZXlcbiAqIHdpdGhpbiB0aGUgQmxvYiBDb250YWluZXIgd2l0aGluIHRoZSBCbG9iIFN0b3JhZ2UgQWNjb3VudC5cbiAqXG4gKiBUaGlzIGJhY2tlbmQgc3VwcG9ydHMgc3RhdGUgbG9ja2luZyBhbmQgY29uc2lzdGVuY3kgY2hlY2tpbmdcbiAqIHdpdGggQXp1cmUgQmxvYiBTdG9yYWdlIG5hdGl2ZSBjYXBhYmlsaXRpZXMuXG4gKlxuICogTm90ZTogQnkgZGVmYXVsdCB0aGUgQXp1cmUgQmFja2VuZCB1c2VzIEFEQUwgZm9yIGF1dGhlbnRpY2F0aW9uIHdoaWNoIGlzIGRlcHJlY2F0ZWRcbiAqIGluIGZhdm91ciBvZiBNU0FMIC0gTVNBTCBjYW4gYmUgdXNlZCBieSBzZXR0aW5nIHVzZV9taWNyb3NvZnRfZ3JhcGggdG8gdHJ1ZS5cbiAqIFRoZSBkZWZhdWx0IGZvciB0aGlzIHdpbGwgY2hhbmdlIGluIFRlcnJhZm9ybSAxLjIsXG4gKiBzbyB0aGF0IE1TQUwgYXV0aGVudGljYXRpb24gaXMgdXNlZCBieSBkZWZhdWx0LlxuICpcbiAqIFJlYWQgbW9yZSBhYm91dCB0aGlzIGJhY2tlbmQgaW4gdGhlIFRlcnJhZm9ybSBkb2NzOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2Uvc2V0dGluZ3MvYmFja2VuZHMvYXp1cmVybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF6dXJlcm1CYWNrZW5kQ29uZmlnIHtcbiAgLyoqXG4gICAqIChSZXF1aXJlZCkgVGhlIE5hbWUgb2YgdGhlIFN0b3JhZ2UgQWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JhZ2VBY2NvdW50TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogKFJlcXVpcmVkKSBUaGUgTmFtZSBvZiB0aGUgU3RvcmFnZSBDb250YWluZXIgd2l0aGluIHRoZSBTdG9yYWdlIEFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoUmVxdWlyZWQpIFRoZSBuYW1lIG9mIHRoZSBCbG9iIHVzZWQgdG8gcmV0cmlldmUvc3RvcmUgVGVycmFmb3JtJ3MgU3RhdGUgZmlsZVxuICAgKiBpbnNpZGUgdGhlIFN0b3JhZ2UgQ29udGFpbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBBenVyZSBFbnZpcm9ubWVudCB3aGljaCBzaG91bGQgYmUgdXNlZC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9FTlZJUk9OTUVOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogIFBvc3NpYmxlIHZhbHVlcyBhcmUgcHVibGljLCBjaGluYSwgZ2VybWFuLCBzdGFjayBhbmQgdXNnb3Zlcm5tZW50LiBEZWZhdWx0cyB0byBwdWJsaWMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIEN1c3RvbSBFbmRwb2ludCBmb3IgQXp1cmUgUmVzb3VyY2UgTWFuYWdlci5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9FTkRQT0lOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogTk9URTogQW4gZW5kcG9pbnQgc2hvdWxkIG9ubHkgYmUgY29uZmlndXJlZCB3aGVuIHVzaW5nIEF6dXJlIFN0YWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBIb3N0bmFtZSBvZiB0aGUgQXp1cmUgTWV0YWRhdGEgU2VydmljZSAoZm9yIGV4YW1wbGUgbWFuYWdlbWVudC5henVyZS5jb20pLFxuICAgKiB1c2VkIHRvIG9idGFpbiB0aGUgQ2xvdWQgRW52aXJvbm1lbnQgd2hlbiB1c2luZyBhIEN1c3RvbSBBenVyZSBFbnZpcm9ubWVudC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9NRVRBREFUQV9IT1NUTkFNRSBFbnZpcm9ubWVudCBWYXJpYWJsZS4pXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YUhvc3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNob3VsZCB0aGUgQmxvYiB1c2VkIHRvIHN0b3JlIHRoZSBUZXJyYWZvcm0gU3RhdGVmaWxlIGJlXG4gICAqIHNuYXBzaG90dGVkIGJlZm9yZSB1c2U/IERlZmF1bHRzIHRvIGZhbHNlLiBUaGlzIHZhbHVlIGNhbiBhbHNvIGJlIHNvdXJjZWRcbiAgICogZnJvbSB0aGUgQVJNX1NOQVBTSE9UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgU3Vic2NyaXB0aW9uIElEIGluIHdoaWNoIHRoZSBTdG9yYWdlIEFjY291bnQgZXhpc3RzLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX1NVQlNDUklQVElPTl9JRCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgVGVuYW50IElEIGluIHdoaWNoIHRoZSBTdWJzY3JpcHRpb24gZXhpc3RzLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX1RFTkFOVF9JRCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRlbmFudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgcGF0aCB0byBhIGN1c3RvbSBNYW5hZ2VkIFNlcnZpY2UgSWRlbnRpdHkgZW5kcG9pbnQgd2hpY2ggaXMgYXV0b21hdGljYWxseVxuICAgKiBkZXRlcm1pbmVkIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fTVNJX0VORFBPSU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbXNpRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNob3VsZCBNYW5hZ2VkIFNlcnZpY2UgSWRlbnRpdHkgYXV0aGVudGljYXRpb24gYmUgdXNlZD9cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9VU0VfTVNJIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlTXNpPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIFNBUyBUb2tlbiB1c2VkIHRvIGFjY2VzcyB0aGUgQmxvYiBTdG9yYWdlIEFjY291bnQuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fU0FTX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2FzVG9rZW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhY2Nlc3Nfa2V5IC0gKE9wdGlvbmFsKSBUaGUgQWNjZXNzIEtleSB1c2VkIHRvIGFjY2VzcyB0aGUgQmxvYiBTdG9yYWdlIEFjY291bnQuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fQUNDRVNTX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0tleT86IHN0cmluZztcbiAgLyoqXG4gICAqIChSZXF1aXJlZCkgVGhlIE5hbWUgb2YgdGhlIFJlc291cmNlIEdyb3VwIGluIHdoaWNoIHRoZSBTdG9yYWdlIEFjY291bnQgZXhpc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBDbGllbnQgSUQgb2YgdGhlIFNlcnZpY2UgUHJpbmNpcGFsLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX0NMSUVOVF9JRCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgQ2xpZW50IFNlY3JldCBvZiB0aGUgU2VydmljZSBQcmluY2lwYWwuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fQ0xJRU5UX1NFQ1JFVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIHBhc3N3b3JkIGFzc29jaWF0ZWQgd2l0aCB0aGUgQ2xpZW50IENlcnRpZmljYXRlIHNwZWNpZmllZFxuICAgKiBpbiBjbGllbnRfY2VydGlmaWNhdGVfcGF0aC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlXG4gICAqIEFSTV9DTElFTlRfQ0VSVElGSUNBVEVfUEFTU1dPUkQgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBjbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgcGF0aCB0byB0aGUgUEZYIGZpbGUgdXNlZCBhcyB0aGUgQ2xpZW50IENlcnRpZmljYXRlIHdoZW5cbiAgICogYXV0aGVudGljYXRpbmcgYXMgYSBTZXJ2aWNlIFByaW5jaXBhbC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlXG4gICAqIEFSTV9DTElFTlRfQ0VSVElGSUNBVEVfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudENlcnRpZmljYXRlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2hvdWxkIE1TQUwgYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24gaW5zdGVhZCBvZiBBREFMLCBhbmRcbiAgICogc2hvdWxkIE1pY3Jvc29mdCBHcmFwaCBiZSB1c2VkIGluc3RlYWQgb2YgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBHcmFwaD9cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogTm90ZTogSW4gVGVycmFmb3JtIDEuMiB0aGUgQXp1cmUgQmFja2VuZCB1c2VzIE1TQUwgKGFuZCBNaWNyb3NvZnQgR3JhcGgpXG4gICAqIHJhdGhlciB0aGFuIEFEQUwgKGFuZCBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IEdyYXBoKSBmb3IgYXV0aGVudGljYXRpb24gYnlcbiAgICogZGVmYXVsdCAtIHlvdSBjYW4gZGlzYWJsZSB0aGlzIGJ5IHNldHRpbmcgdXNlX21pY3Jvc29mdF9ncmFwaCB0byBmYWxzZS5cbiAgICogVGhpcyBzZXR0aW5nIHdpbGwgYmUgcmVtb3ZlZCBpbiBUZXJyYWZvcm0gMS4zLCBkdWUgdG8gTWljcm9zb2Z0J3NcbiAgICogZGVwcmVjYXRpb24gb2YgQURBTC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZU1pY3Jvc29mdEdyYXBoPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIFVSTCBmb3IgdGhlIE9JREMgcHJvdmlkZXIgZnJvbSB3aGljaCB0byByZXF1ZXN0IGFuIElEIHRva2VuLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX09JRENfUkVRVUVTVF9VUkwgb3JcbiAgICogQUNUSU9OU19JRF9UT0tFTl9SRVFVRVNUX1VSTCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBvaWRjUmVxdWVzdFVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGJlYXJlciB0b2tlbiBmb3IgdGhlIHJlcXVlc3QgdG8gdGhlIE9JREMgcHJvdmlkZXIuIFRoaXMgY2FuXG4gICAqIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fT0lEQ19SRVFVRVNUX1RPS0VOIG9yXG4gICAqIEFDVElPTlNfSURfVE9LRU5fUkVRVUVTVF9UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBvaWRjUmVxdWVzdFRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgSUQgdG9rZW4gd2hlbiBhdXRoZW50aWNhdGluZyB1c2luZyBPcGVuSUQgQ29ubmVjdCAoT0lEQykuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fT0lEQ19UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNUb2tlbj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgYW4gSUQgdG9rZW4gd2hlbiBhdXRoZW50aWNhdGluZyB1c2luZyBPcGVuSUQgQ29ubmVjdCAoT0lEQykuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fT0lEQ19UT0tFTl9GSUxFX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvaWRjVG9rZW5GaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2hvdWxkIE9JREMgYXV0aGVudGljYXRpb24gYmUgdXNlZD8gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkXG4gICAqIGZyb20gdGhlIEFSTV9VU0VfT0lEQyBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogTm90ZTogV2hlbiB1c2luZyBPSURDIGZvciBhdXRoZW50aWNhdGlvbiwgdXNlX21pY3Jvc29mdF9ncmFwaFxuICAgKiBtdXN0IGJlIHNldCB0byB0cnVlICh3aGljaCBpcyB0aGUgZGVmYXVsdCkuXG4gICAqL1xuICByZWFkb25seSB1c2VPaWRjPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2hvdWxkIEF6dXJlQUQgQXV0aGVudGljYXRpb24gYmUgdXNlZCB0byBhY2Nlc3MgdGhlIEJsb2IgU3RvcmFnZVxuICAgKiBBY2NvdW50LiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX1VTRV9BWlVSRUFEIGVudmlyb25tZW50XG4gICAqIHZhcmlhYmxlLlxuICAgKlxuICAgKiBOb3RlOiBXaGVuIHVzaW5nIEF6dXJlQUQgZm9yIEF1dGhlbnRpY2F0aW9uIHRvIFN0b3JhZ2UgeW91IGFsc28gbmVlZCB0b1xuICAgKiBlbnN1cmUgdGhlIFN0b3JhZ2UgQmxvYiBEYXRhIE93bmVyIHJvbGUgaXMgYXNzaWduZWQuXG4gICAqL1xuICByZWFkb25seSB1c2VBenVyZWFkQXV0aD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQXp1cmVybUNvbmZpZ1xuICBleHRlbmRzIERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZUNvbmZpZywgQXp1cmVybUJhY2tlbmRDb25maWcge31cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmVybS1iYWNrZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhY2tlbmRzL2F6dXJlcm0tYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsNERBQXdEO0FBQ3hELGtDQUEwQztBQUMxQyxzRUFHbUM7QUFFbkMsK0NBQStDO0FBQy9DLE1BQWEsY0FBZSxTQUFRLG9DQUFnQjtJQUcvQjs7SUFGbkIsWUFDRSxLQUFnQixFQUNDLEtBQTJCO1FBRTVDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRmxCLFVBQUssR0FBTCxLQUFLLENBQXNCO0lBRzlDLENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyx1QkFBdUI7UUFDL0IsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsS0FBZ0IsRUFDaEIsSUFBWSxFQUNaLFVBQWtCO1FBRWxCLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3RELEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixTQUFTLEVBQUUsd0JBQXdCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekJILHdDQTBCQztBQUVELCtDQUErQztBQUMvQyxNQUFhLCtCQUFnQyxTQUFRLDZDQUFvQjs7SUFDdkUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBNkM7UUFFN0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O0FBUEgsMEVBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUJhY2tlbmQgfSBmcm9tIFwiLi4vdGVycmFmb3JtLWJhY2tlbmRcIjtcbmltcG9ydCB7IGtleXNUb1NuYWtlQ2FzZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1SZW1vdGVTdGF0ZSxcbiAgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQ29uZmlnLFxufSBmcm9tIFwiLi4vdGVycmFmb3JtLXJlbW90ZS1zdGF0ZVwiO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGNsYXNzIEF6dXJlcm1CYWNrZW5kIGV4dGVuZHMgVGVycmFmb3JtQmFja2VuZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXp1cmVybUJhY2tlbmRDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBcImJhY2tlbmRcIiwgXCJhenVyZXJtXCIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ga2V5c1RvU25ha2VDYXNlKHsgLi4udGhpcy5wcm9wcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIGtleXNUb1NuYWtlQ2FzZSh7IC4uLnRoaXMucHJvcHMgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVtb3RlU3RhdGVEYXRhU291cmNlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIF9mcm9tU3RhY2s6IHN0cmluZyxcbiAgKTogVGVycmFmb3JtUmVtb3RlU3RhdGUge1xuICAgIHJldHVybiBuZXcgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQXp1cmVybShzY29wZSwgbmFtZSwge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdvcmtzcGFjZTogXCIke3RlcnJhZm9ybS53b3Jrc3BhY2V9XCIsXG4gICAgfSk7XG4gIH1cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBjbGFzcyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVBenVyZXJtIGV4dGVuZHMgVGVycmFmb3JtUmVtb3RlU3RhdGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY29uZmlnOiBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVBenVyZXJtQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFwiYXp1cmVybVwiLCBjb25maWcpO1xuICB9XG59XG4vKipcbiAqIFN0b3JlcyB0aGUgc3RhdGUgYXMgYSBCbG9iIHdpdGggdGhlIGdpdmVuIEtleVxuICogd2l0aGluIHRoZSBCbG9iIENvbnRhaW5lciB3aXRoaW4gdGhlIEJsb2IgU3RvcmFnZSBBY2NvdW50LlxuICpcbiAqIFRoaXMgYmFja2VuZCBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nIGFuZCBjb25zaXN0ZW5jeSBjaGVja2luZ1xuICogd2l0aCBBenVyZSBCbG9iIFN0b3JhZ2UgbmF0aXZlIGNhcGFiaWxpdGllcy5cbiAqXG4gKiBOb3RlOiBCeSBkZWZhdWx0IHRoZSBBenVyZSBCYWNrZW5kIHVzZXMgQURBTCBmb3IgYXV0aGVudGljYXRpb24gd2hpY2ggaXMgZGVwcmVjYXRlZFxuICogaW4gZmF2b3VyIG9mIE1TQUwgLSBNU0FMIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdXNlX21pY3Jvc29mdF9ncmFwaCB0byB0cnVlLlxuICogVGhlIGRlZmF1bHQgZm9yIHRoaXMgd2lsbCBjaGFuZ2UgaW4gVGVycmFmb3JtIDEuMixcbiAqIHNvIHRoYXQgTVNBTCBhdXRoZW50aWNhdGlvbiBpcyB1c2VkIGJ5IGRlZmF1bHQuXG4gKlxuICogUmVhZCBtb3JlIGFib3V0IHRoaXMgYmFja2VuZCBpbiB0aGUgVGVycmFmb3JtIGRvY3M6XG4gKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9henVyZXJtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXp1cmVybUJhY2tlbmRDb25maWcge1xuICAvKipcbiAgICogKFJlcXVpcmVkKSBUaGUgTmFtZSBvZiB0aGUgU3RvcmFnZSBBY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZUFjY291bnROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoUmVxdWlyZWQpIFRoZSBOYW1lIG9mIHRoZSBTdG9yYWdlIENvbnRhaW5lciB3aXRoaW4gdGhlIFN0b3JhZ2UgQWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lck5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIChSZXF1aXJlZCkgVGhlIG5hbWUgb2YgdGhlIEJsb2IgdXNlZCB0byByZXRyaWV2ZS9zdG9yZSBUZXJyYWZvcm0ncyBTdGF0ZSBmaWxlXG4gICAqIGluc2lkZSB0aGUgU3RvcmFnZSBDb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIEF6dXJlIEVudmlyb25tZW50IHdoaWNoIHNob3VsZCBiZSB1c2VkLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX0VOVklST05NRU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiAgUG9zc2libGUgdmFsdWVzIGFyZSBwdWJsaWMsIGNoaW5hLCBnZXJtYW4sIHN0YWNrIGFuZCB1c2dvdmVybm1lbnQuIERlZmF1bHRzIHRvIHB1YmxpYy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgQ3VzdG9tIEVuZHBvaW50IGZvciBBenVyZSBSZXNvdXJjZSBNYW5hZ2VyLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX0VORFBPSU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBOT1RFOiBBbiBlbmRwb2ludCBzaG91bGQgb25seSBiZSBjb25maWd1cmVkIHdoZW4gdXNpbmcgQXp1cmUgU3RhY2suXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIEhvc3RuYW1lIG9mIHRoZSBBenVyZSBNZXRhZGF0YSBTZXJ2aWNlIChmb3IgZXhhbXBsZSBtYW5hZ2VtZW50LmF6dXJlLmNvbSksXG4gICAqIHVzZWQgdG8gb2J0YWluIHRoZSBDbG91ZCBFbnZpcm9ubWVudCB3aGVuIHVzaW5nIGEgQ3VzdG9tIEF6dXJlIEVudmlyb25tZW50LlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX01FVEFEQVRBX0hPU1ROQU1FIEVudmlyb25tZW50IFZhcmlhYmxlLilcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhSG9zdD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2hvdWxkIHRoZSBCbG9iIHVzZWQgdG8gc3RvcmUgdGhlIFRlcnJhZm9ybSBTdGF0ZWZpbGUgYmVcbiAgICogc25hcHNob3R0ZWQgYmVmb3JlIHVzZT8gRGVmYXVsdHMgdG8gZmFsc2UuIFRoaXMgdmFsdWUgY2FuIGFsc28gYmUgc291cmNlZFxuICAgKiBmcm9tIHRoZSBBUk1fU05BUFNIT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBTdWJzY3JpcHRpb24gSUQgaW4gd2hpY2ggdGhlIFN0b3JhZ2UgQWNjb3VudCBleGlzdHMuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fU1VCU0NSSVBUSU9OX0lEIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3Vic2NyaXB0aW9uSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBUZW5hbnQgSUQgaW4gd2hpY2ggdGhlIFN1YnNjcmlwdGlvbiBleGlzdHMuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fVEVOQU5UX0lEIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVuYW50SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBwYXRoIHRvIGEgY3VzdG9tIE1hbmFnZWQgU2VydmljZSBJZGVudGl0eSBlbmRwb2ludCB3aGljaCBpcyBhdXRvbWF0aWNhbGx5XG4gICAqIGRldGVybWluZWQgaWYgbm90IHNwZWNpZmllZC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9NU0lfRU5EUE9JTlQgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBtc2lFbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2hvdWxkIE1hbmFnZWQgU2VydmljZSBJZGVudGl0eSBhdXRoZW50aWNhdGlvbiBiZSB1c2VkP1xuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVJNX1VTRV9NU0kgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSB1c2VNc2k/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgU0FTIFRva2VuIHVzZWQgdG8gYWNjZXNzIHRoZSBCbG9iIFN0b3JhZ2UgQWNjb3VudC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9TQVNfVE9LRU4gZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBzYXNUb2tlbj86IHN0cmluZztcbiAgLyoqXG4gICAqIGFjY2Vzc19rZXkgLSAoT3B0aW9uYWwpIFRoZSBBY2Nlc3MgS2V5IHVzZWQgdG8gYWNjZXNzIHRoZSBCbG9iIFN0b3JhZ2UgQWNjb3VudC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9BQ0NFU1NfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKFJlcXVpcmVkKSBUaGUgTmFtZSBvZiB0aGUgUmVzb3VyY2UgR3JvdXAgaW4gd2hpY2ggdGhlIFN0b3JhZ2UgQWNjb3VudCBleGlzdHMuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIENsaWVudCBJRCBvZiB0aGUgU2VydmljZSBQcmluY2lwYWwuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fQ0xJRU5UX0lEIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBDbGllbnQgU2VjcmV0IG9mIHRoZSBTZXJ2aWNlIFByaW5jaXBhbC5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9DTElFTlRfU0VDUkVUIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgcGFzc3dvcmQgYXNzb2NpYXRlZCB3aXRoIHRoZSBDbGllbnQgQ2VydGlmaWNhdGUgc3BlY2lmaWVkXG4gICAqIGluIGNsaWVudF9jZXJ0aWZpY2F0ZV9wYXRoLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGVcbiAgICogQVJNX0NMSUVOVF9DRVJUSUZJQ0FURV9QQVNTV09SRCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudENlcnRpZmljYXRlUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBwYXRoIHRvIHRoZSBQRlggZmlsZSB1c2VkIGFzIHRoZSBDbGllbnQgQ2VydGlmaWNhdGUgd2hlblxuICAgKiBhdXRoZW50aWNhdGluZyBhcyBhIFNlcnZpY2UgUHJpbmNpcGFsLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGVcbiAgICogQVJNX0NMSUVOVF9DRVJUSUZJQ0FURV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50Q2VydGlmaWNhdGVQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTaG91bGQgTVNBTCBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiBpbnN0ZWFkIG9mIEFEQUwsIGFuZFxuICAgKiBzaG91bGQgTWljcm9zb2Z0IEdyYXBoIGJlIHVzZWQgaW5zdGVhZCBvZiBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IEdyYXBoP1xuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKlxuICAgKiBOb3RlOiBJbiBUZXJyYWZvcm0gMS4yIHRoZSBBenVyZSBCYWNrZW5kIHVzZXMgTVNBTCAoYW5kIE1pY3Jvc29mdCBHcmFwaClcbiAgICogcmF0aGVyIHRoYW4gQURBTCAoYW5kIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgR3JhcGgpIGZvciBhdXRoZW50aWNhdGlvbiBieVxuICAgKiBkZWZhdWx0IC0geW91IGNhbiBkaXNhYmxlIHRoaXMgYnkgc2V0dGluZyB1c2VfbWljcm9zb2Z0X2dyYXBoIHRvIGZhbHNlLlxuICAgKiBUaGlzIHNldHRpbmcgd2lsbCBiZSByZW1vdmVkIGluIFRlcnJhZm9ybSAxLjMsIGR1ZSB0byBNaWNyb3NvZnQnc1xuICAgKiBkZXByZWNhdGlvbiBvZiBBREFMLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlTWljcm9zb2Z0R3JhcGg/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgVVJMIGZvciB0aGUgT0lEQyBwcm92aWRlciBmcm9tIHdoaWNoIHRvIHJlcXVlc3QgYW4gSUQgdG9rZW4uXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fT0lEQ19SRVFVRVNUX1VSTCBvclxuICAgKiBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNSZXF1ZXN0VXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgYmVhcmVyIHRva2VuIGZvciB0aGUgcmVxdWVzdCB0byB0aGUgT0lEQyBwcm92aWRlci4gVGhpcyBjYW5cbiAgICogYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9PSURDX1JFUVVFU1RfVE9LRU4gb3JcbiAgICogQUNUSU9OU19JRF9UT0tFTl9SRVFVRVNUX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNSZXF1ZXN0VG9rZW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBJRCB0b2tlbiB3aGVuIGF1dGhlbnRpY2F0aW5nIHVzaW5nIE9wZW5JRCBDb25uZWN0IChPSURDKS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9PSURDX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY1Rva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgcGF0aCB0byBhIGZpbGUgY29udGFpbmluZyBhbiBJRCB0b2tlbiB3aGVuIGF1dGhlbnRpY2F0aW5nIHVzaW5nIE9wZW5JRCBDb25uZWN0IChPSURDKS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFSTV9PSURDX1RPS0VOX0ZJTEVfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNUb2tlbkZpbGVQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTaG91bGQgT0lEQyBhdXRoZW50aWNhdGlvbiBiZSB1c2VkPyBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWRcbiAgICogZnJvbSB0aGUgQVJNX1VTRV9PSURDIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBOb3RlOiBXaGVuIHVzaW5nIE9JREMgZm9yIGF1dGhlbnRpY2F0aW9uLCB1c2VfbWljcm9zb2Z0X2dyYXBoXG4gICAqIG11c3QgYmUgc2V0IHRvIHRydWUgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KS5cbiAgICovXG4gIHJlYWRvbmx5IHVzZU9pZGM/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTaG91bGQgQXp1cmVBRCBBdXRoZW50aWNhdGlvbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgQmxvYiBTdG9yYWdlXG4gICAqIEFjY291bnQuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBUk1fVVNFX0FaVVJFQUQgZW52aXJvbm1lbnRcbiAgICogdmFyaWFibGUuXG4gICAqXG4gICAqIE5vdGU6IFdoZW4gdXNpbmcgQXp1cmVBRCBmb3IgQXV0aGVudGljYXRpb24gdG8gU3RvcmFnZSB5b3UgYWxzbyBuZWVkIHRvXG4gICAqIGVuc3VyZSB0aGUgU3RvcmFnZSBCbG9iIERhdGEgT3duZXIgcm9sZSBpcyBhc3NpZ25lZC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZUF6dXJlYWRBdXRoPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVBenVyZXJtQ29uZmlnXG4gIGV4dGVuZHMgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQ29uZmlnLCBBenVyZXJtQmFja2VuZENvbmZpZyB7fVxuIl19
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a, _b, _c, _d;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.TaggedCloudWorkspaces = exports.NamedCloudWorkspace = exports.CloudWorkspace = exports.CloudBackend = void 0;
5
4
  exports.getHostNameType = getHostNameType;
@@ -7,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
6
  const util_1 = require("../util");
8
7
  const remote_backend_1 = require("./remote-backend");
9
8
  const terraform_backend_1 = require("../terraform-backend");
10
- const validate_terraform_version_1 = require("../validations/validate-terraform-version");
9
+ const validations_1 = require("../validations");
11
10
  const errors_1 = require("../errors");
12
11
  /**
13
12
  * checks whether the given hostname belongs to tfc or (else) to tfe
@@ -28,10 +27,15 @@ function getHostNameType(hostname) {
28
27
  * When Terraform Cloud uses a configuration that contains a cloud block - for example, when a workspace is configured to use a VCS provider directly - it ignores the block and behaves according to its own workspace settings.
29
28
  */
30
29
  class CloudBackend extends terraform_backend_1.TerraformBackend {
30
+ props;
31
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudBackend", version: "0.25.0" };
31
32
  constructor(scope, props) {
32
33
  super(scope, "backend", "cloud");
33
34
  this.props = props;
34
- this.node.addValidation(new validate_terraform_version_1.ValidateTerraformVersion(">=1.1", `The cloud block is only supported for Terraform >=1.1. Please upgrade your Terraform version.`));
35
+ this.node.addValidation(new validations_1.ValidateFeatureTargetSupport(this, "The cloud block", {
36
+ terraform: ">=1.1.0",
37
+ opentofu: ">=1.6.0",
38
+ }));
35
39
  }
36
40
  toHclTerraform() {
37
41
  return {
@@ -86,21 +90,21 @@ class CloudBackend extends terraform_backend_1.TerraformBackend {
86
90
  }
87
91
  }
88
92
  exports.CloudBackend = CloudBackend;
89
- _a = JSII_RTTI_SYMBOL_1;
90
- CloudBackend[_a] = { fqn: "cdktn.CloudBackend", version: "0.25.0-pre.8" };
91
93
  /**
92
94
  * A cloud workspace can either be a single named workspace, or a list of tagged workspaces.
93
95
  */
94
96
  class CloudWorkspace {
97
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudWorkspace", version: "0.25.0" };
95
98
  }
96
99
  exports.CloudWorkspace = CloudWorkspace;
97
- _b = JSII_RTTI_SYMBOL_1;
98
- CloudWorkspace[_b] = { fqn: "cdktn.CloudWorkspace", version: "0.25.0-pre.8" };
99
100
  /**
100
101
  * The name of a single Terraform Cloud workspace.
101
102
  * You will only be able to use the workspace specified in the configuration with this working directory, and cannot manage workspaces from the CLI (e.g. terraform workspace select or terraform workspace new).
102
103
  */
103
104
  class NamedCloudWorkspace extends CloudWorkspace {
105
+ name;
106
+ project;
107
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.NamedCloudWorkspace", version: "0.25.0" };
104
108
  constructor(name, project) {
105
109
  super();
106
110
  this.name = name;
@@ -123,12 +127,13 @@ class NamedCloudWorkspace extends CloudWorkspace {
123
127
  }
124
128
  }
125
129
  exports.NamedCloudWorkspace = NamedCloudWorkspace;
126
- _c = JSII_RTTI_SYMBOL_1;
127
- NamedCloudWorkspace[_c] = { fqn: "cdktn.NamedCloudWorkspace", version: "0.25.0-pre.8" };
128
130
  /**
129
131
  * A set of Terraform Cloud workspace tags. You will be able to use this working directory with any workspaces that have all of the specified tags, and can use the terraform workspace commands to switch between them or create new workspaces. New workspaces will automatically have the specified tags. This option conflicts with name.
130
132
  */
131
133
  class TaggedCloudWorkspaces extends CloudWorkspace {
134
+ tags;
135
+ project;
136
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TaggedCloudWorkspaces", version: "0.25.0" };
132
137
  constructor(tags, project) {
133
138
  super();
134
139
  this.tags = tags;
@@ -151,6 +156,4 @@ class TaggedCloudWorkspaces extends CloudWorkspace {
151
156
  }
152
157
  }
153
158
  exports.TaggedCloudWorkspaces = TaggedCloudWorkspaces;
154
- _d = JSII_RTTI_SYMBOL_1;
155
- TaggedCloudWorkspaces[_d] = { fqn: "cdktn.TaggedCloudWorkspaces", version: "0.25.0-pre.8" };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9jbG91ZC1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkEsMENBR0M7O0FBaEJELGtDQUFxRDtBQUNyRCxxREFBNEQ7QUFFNUQsNERBQXdEO0FBQ3hELDBGQUFxRjtBQUNyRixzQ0FBb0U7QUFFcEU7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsUUFBaUI7SUFDL0MsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLHlEQUF5RDtJQUN0RixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQWEsWUFBYSxTQUFRLG9DQUFnQjtJQUNoRCxZQUNFLEtBQWdCLEVBQ0MsS0FBeUI7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFGaEIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFJMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUkscURBQXdCLENBQzFCLE9BQU8sRUFDUCwrRkFBK0YsQ0FDaEcsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBQSxnQkFBUyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxJQUFBLGdCQUFTLEVBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFB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SSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7O0FBdkJILHNEQXdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsga2V5c1RvU25ha2VDYXNlLCBkZWVwTWVyZ2UgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlIH0gZnJvbSBcIi4vcmVtb3RlLWJhY2tlbmRcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVJlbW90ZVN0YXRlIH0gZnJvbSBcIi4uL3RlcnJhZm9ybS1yZW1vdGUtc3RhdGVcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUJhY2tlbmQgfSBmcm9tIFwiLi4vdGVycmFmb3JtLWJhY2tlbmRcIjtcbmltcG9ydCB7IFZhbGlkYXRlVGVycmFmb3JtVmVyc2lvbiB9IGZyb20gXCIuLi92YWxpZGF0aW9ucy92YWxpZGF0ZS10ZXJyYWZvcm0tdmVyc2lvblwiO1xuaW1wb3J0IHsgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG4vKipcbiAqIGNoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0bmFtZSBiZWxvbmdzIHRvIHRmYyBvciAoZWxzZSkgdG8gdGZlXG4gKiBJZiBubyBob3N0bmFtZSBpcyBnaXZlbiwgaXQgd2lsbCByZXR1cm4gdGZjLCBhcyB0aGF0J3MgdGhlIGRlZmF1bHQgaW4gYmFja2VuZHMuXG4gKiBAcGFyYW0gaG9zdG5hbWUgZS5nLiBhcHAudGVycmFmb3JtLmlvLCBhcHAudGVycmFmb3JtLmlvOjgwLCB0ZmUubXlvcmcub3JnXG4gKiBAcmV0dXJucyBcInRmY1wiIG9yIFwidGZlXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3ROYW1lVHlwZShob3N0bmFtZT86IHN0cmluZyk6IFwidGZjXCIgfCBcInRmZVwiIHtcbiAgaWYgKCFob3N0bmFtZSkgcmV0dXJuIFwidGZjXCI7IC8vIGRlZmF1bHQgaXMgdGZjIHdoZW4gbm90IHBhc3NpbmcgYSBob3N0bmFtZSB0byBiYWNrZW5kc1xuICByZXR1cm4gaG9zdG5hbWUuc3RhcnRzV2l0aChcImFwcC50ZXJyYWZvcm0uaW9cIikgPyBcInRmY1wiIDogXCJ0ZmVcIjtcbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEJhY2tlbmQgZXh0ZW5kcyBUZXJyYWZvcm1CYWNrZW5kIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDbG91ZEJhY2tlbmRDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBcImJhY2tlbmRcIiwgXCJjbG91ZFwiKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlVGVycmFmb3JtVmVyc2lvbihcbiAgICAgICAgXCI+PTEuMVwiLFxuICAgICAgICBgVGhlIGNsb3VkIGJsb2NrIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBUZXJyYWZvcm0gPj0xLjEuIFBsZWFzZSB1cGdyYWRlIHlvdXIgVGVycmFmb3JtIHZlcnNpb24uYCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgY2xvdWQ6IGRlZXBNZXJnZSh0aGlzLnN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCksIHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoaXMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICovXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgY2xvdWQ6IGRlZXBNZXJnZSh0aGlzLnN5bnRoZXNpemVBdHRyaWJ1dGVzKCksIHRoaXMucmF3T3ZlcnJpZGVzKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldGFkYXRhKCkge1xuICAgIGNvbnN0IGNsb3VkID0gZ2V0SG9zdE5hbWVUeXBlKHRoaXMucHJvcHMuaG9zdG5hbWUpO1xuICAgIHJldHVybiB7IC4uLnN1cGVyLnRvTWV0YWRhdGEoKSwgY2xvdWQgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmtleXNUb1NuYWtlQ2FzZSh0aGlzLnByb3BzKSxcbiAgICAgIHdvcmtzcGFjZXM6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMucHJvcHMud29ya3NwYWNlcy50b0hjbFRlcnJhZm9ybSgpLFxuICAgICAgICBpc0Jsb2NrOiB0cnVlLFxuICAgICAgICB0eXBlOiBcIm1hcFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ21hcFwiLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ga2V5c1RvU25ha2VDYXNlKHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB3b3Jrc3BhY2VzOiB0aGlzLnByb3BzLndvcmtzcGFjZXMudG9UZXJyYWZvcm0oKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZW1vdGVTdGF0ZURhdGFTb3VyY2UoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgX2Zyb21TdGFjazogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1SZW1vdGVTdGF0ZSB7XG4gICAgLy8gVGhlIGNsb3VkIFwiYmFja2VuZFwiIGRvZXMgbm90IGhhdmUgYSBjb3Jlc3BvbmRpbmcgcmVtb3RlIHN0YXRlIGRhdGEgc291cmNlIHNpbmNlIGl0J3MgbWVhbnQgdG8gYWxzb1xuICAgIC8vIHdvcmsgd2l0aCBtdWx0aXBsZSB3b3Jrc3BhY2VzIHRocm91Z2ggdGFncy5cbiAgICBpZiAoXCJuYW1lXCIgaW4gdGhpcy5wcm9wcy53b3Jrc3BhY2VzKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZShzY29wZSwgbmFtZSwge1xuICAgICAgICBvcmdhbml6YXRpb246IHRoaXMucHJvcHMub3JnYW5pemF0aW9uLFxuICAgICAgICB3b3Jrc3BhY2VzOiB7IG5hbWU6ICh0aGlzLnByb3BzLndvcmtzcGFjZXMgYXMgYW55KS5uYW1lIH0sXG4gICAgICAgIHRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgICBob3N0bmFtZTogdGhpcy5wcm9wcy5ob3N0bmFtZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRocm93IGNsb3VkQmFja2VuZFdvcmtzcGFjZUlzTm90RGVmaW5lZEJ5TmFtZSgpO1xuICB9XG59XG5cbi8qKlxuICogVGhlIENsb3VkIEJhY2tlbmQgc3ludGhlc2l6ZXMgYSB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2xpL2Nsb3VkL3NldHRpbmdzI3RoZS1jbG91ZC1ibG9jayBjbG91ZCBibG9ja30uXG4gKiBUaGUgY2xvdWQgYmxvY2sgaXMgYSBuZXN0ZWQgYmxvY2sgd2l0aGluIHRoZSB0b3AtbGV2ZWwgdGVycmFmb3JtIHNldHRpbmdzIGJsb2NrLlxuICogSXQgc3BlY2lmaWVzIHdoaWNoIFRlcnJhZm9ybSBDbG91ZCB3b3Jrc3BhY2VzIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBUaGUgY2xvdWQgYmxvY2sgb25seSBhZmZlY3RzIFRlcnJhZm9ybSBDTEkncyBiZWhhdmlvci5cbiAqIFdoZW4gVGVycmFmb3JtIENsb3VkIHVzZXMgYSBjb25maWd1cmF0aW9uIHRoYXQgY29udGFpbnMgYSBjbG91ZCBibG9jayAtIGZvciBleGFtcGxlLCB3aGVuIGEgd29ya3NwYWNlIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGEgVkNTIHByb3ZpZGVyIGRpcmVjdGx5IC0gaXQgaWdub3JlcyB0aGUgYmxvY2sgYW5kIGJlaGF2ZXMgYWNjb3JkaW5nIHRvIGl0cyBvd24gd29ya3NwYWNlIHNldHRpbmdzLlxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2NsaS9jbG91ZC9zZXR0aW5ncyNhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZEJhY2tlbmRDb25maWcge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbiBjb250YWluaW5nIHRoZSB3b3Jrc3BhY2UocykgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzaG91bGQgdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbmVzdGVkIGJsb2NrIHRoYXQgc3BlY2lmaWVzIHdoaWNoIHJlbW90ZSBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlcyB0byB1c2UgZm9yIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqIFRoZSB3b3Jrc3BhY2VzIGJsb2NrIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGFyZ3VtZW50cywgZWFjaCBkZW5vdGluZyBhIHN0cmF0ZWd5IGZvciBob3cgd29ya3NwYWNlcyBzaG91bGQgYmUgbWFwcGVkOlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlczogTmFtZWRDbG91ZFdvcmtzcGFjZSB8IFRhZ2dlZENsb3VkV29ya3NwYWNlcztcblxuICAvKipcbiAgICogVGhlIGhvc3RuYW1lIG9mIGEgVGVycmFmb3JtIEVudGVycHJpc2UgaW5zdGFsbGF0aW9uLCBpZiB1c2luZyBUZXJyYWZvcm0gRW50ZXJwcmlzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYXBwLnRlcnJhZm9ybS5pb1xuICAgKi9cbiAgcmVhZG9ubHkgaG9zdG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0b2tlbiB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIFRlcnJhZm9ybSBDbG91ZC5cbiAgICogV2UgcmVjb21tZW5kIG9taXR0aW5nIHRoZSB0b2tlbiBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCBhbmQgaW5zdGVhZCB1c2luZyB0ZXJyYWZvcm0gbG9naW4gb3IgbWFudWFsbHkgY29uZmlndXJpbmcgY3JlZGVudGlhbHMgaW4gdGhlIENMSSBjb25maWcgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY2xvdWQgd29ya3NwYWNlIGNhbiBlaXRoZXIgYmUgYSBzaW5nbGUgbmFtZWQgd29ya3NwYWNlLCBvciBhIGxpc3Qgb2YgdGFnZ2VkIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbG91ZFdvcmtzcGFjZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCB0b1RlcnJhZm9ybSgpOiBhbnk7XG59XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgYSBzaW5nbGUgVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZS5cbiAqIFlvdSB3aWxsIG9ubHkgYmUgYWJsZSB0byB1c2UgdGhlIHdvcmtzcGFjZSBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gd2l0aCB0aGlzIHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgY2Fubm90IG1hbmFnZSB3b3Jrc3BhY2VzIGZyb20gdGhlIENMSSAoZS5nLiB0ZXJyYWZvcm0gd29ya3NwYWNlIHNlbGVjdCBvciB0ZXJyYWZvcm0gd29ya3NwYWNlIG5ldykuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYW1lZENsb3VkV29ya3NwYWNlIGV4dGVuZHMgQ2xvdWRXb3Jrc3BhY2Uge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvamVjdD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLm5hbWUsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiAgQSBzZXQgb2YgVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZSB0YWdzLiBZb3Ugd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGlzIHdvcmtpbmcgZGlyZWN0b3J5IHdpdGggYW55IHdvcmtzcGFjZXMgdGhhdCBoYXZlIGFsbCBvZiB0aGUgc3BlY2lmaWVkIHRhZ3MsIGFuZCBjYW4gdXNlIHRoZSB0ZXJyYWZvcm0gd29ya3NwYWNlIGNvbW1hbmRzIHRvIHN3aXRjaCBiZXR3ZWVuIHRoZW0gb3IgY3JlYXRlIG5ldyB3b3Jrc3BhY2VzLiBOZXcgd29ya3NwYWNlcyB3aWxsIGF1dG9tYXRpY2FsbHkgaGF2ZSB0aGUgc3BlY2lmaWVkIHRhZ3MuIFRoaXMgb3B0aW9uIGNvbmZsaWN0cyB3aXRoIG5hbWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWdnZWRDbG91ZFdvcmtzcGFjZXMgZXh0ZW5kcyBDbG91ZFdvcmtzcGFjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10sXG4gICAgcHVibGljIHByb2plY3Q/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgdG9IY2xUZXJyYWZvcm0oKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFnczoge1xuICAgICAgICB2YWx1ZTogdGhpcy50YWdzLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdMaXN0XCIsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9jbG91ZC1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdCQSwwQ0FHQzs7QUFoQkQsa0NBQXFEO0FBQ3JELHFEQUE0RDtBQUU1RCw0REFBd0Q7QUFDeEQsZ0RBQThEO0FBQzlELHNDQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxRQUFpQjtJQUMvQyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMseURBQXlEO0lBQ3RGLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxZQUFhLFNBQVEsb0NBQWdCO0lBRzdCOztJQUZuQixZQUNFLEtBQWdCLEVBQ0MsS0FBeUI7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFGaEIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFJMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUksMENBQTRCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3hELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBQSxnQkFBUyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFO2dCQUNU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QUFFLFlBQVk7YUFDL0I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQzs7QUF2Qkgsc0RBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBrZXlzVG9TbmFrZUNhc2UsIGRlZXBNZXJnZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi9yZW1vdGUtYmFja2VuZFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi4vdGVycmFmb3JtLXJlbW90ZS1zdGF0ZVwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQmFja2VuZCB9IGZyb20gXCIuLi90ZXJyYWZvcm0tYmFja2VuZFwiO1xuaW1wb3J0IHsgVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCB9IGZyb20gXCIuLi92YWxpZGF0aW9uc1wiO1xuaW1wb3J0IHsgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG4vKipcbiAqIGNoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0bmFtZSBiZWxvbmdzIHRvIHRmYyBvciAoZWxzZSkgdG8gdGZlXG4gKiBJZiBubyBob3N0bmFtZSBpcyBnaXZlbiwgaXQgd2lsbCByZXR1cm4gdGZjLCBhcyB0aGF0J3MgdGhlIGRlZmF1bHQgaW4gYmFja2VuZHMuXG4gKiBAcGFyYW0gaG9zdG5hbWUgZS5nLiBhcHAudGVycmFmb3JtLmlvLCBhcHAudGVycmFmb3JtLmlvOjgwLCB0ZmUubXlvcmcub3JnXG4gKiBAcmV0dXJucyBcInRmY1wiIG9yIFwidGZlXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3ROYW1lVHlwZShob3N0bmFtZT86IHN0cmluZyk6IFwidGZjXCIgfCBcInRmZVwiIHtcbiAgaWYgKCFob3N0bmFtZSkgcmV0dXJuIFwidGZjXCI7IC8vIGRlZmF1bHQgaXMgdGZjIHdoZW4gbm90IHBhc3NpbmcgYSBob3N0bmFtZSB0byBiYWNrZW5kc1xuICByZXR1cm4gaG9zdG5hbWUuc3RhcnRzV2l0aChcImFwcC50ZXJyYWZvcm0uaW9cIikgPyBcInRmY1wiIDogXCJ0ZmVcIjtcbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEJhY2tlbmQgZXh0ZW5kcyBUZXJyYWZvcm1CYWNrZW5kIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDbG91ZEJhY2tlbmRDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBcImJhY2tlbmRcIiwgXCJjbG91ZFwiKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQodGhpcywgXCJUaGUgY2xvdWQgYmxvY2tcIiwge1xuICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjEuMFwiLFxuICAgICAgICBvcGVudG9mdTogXCI+PTEuNi4wXCIsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKSB7XG4gICAgY29uc3QgY2xvdWQgPSBnZXRIb3N0TmFtZVR5cGUodGhpcy5wcm9wcy5ob3N0bmFtZSk7XG4gICAgcmV0dXJuIHsgLi4uc3VwZXIudG9NZXRhZGF0YSgpLCBjbG91ZCB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ua2V5c1RvU25ha2VDYXNlKHRoaXMucHJvcHMpLFxuICAgICAgd29ya3NwYWNlczoge1xuICAgICAgICB2YWx1ZTogdGhpcy5wcm9wcy53b3Jrc3BhY2VzLnRvSGNsVGVycmFmb3JtKCksXG4gICAgICAgIGlzQmxvY2s6IHRydWUsXG4gICAgICAgIHR5cGU6IFwibWFwXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nbWFwXCIsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBrZXlzVG9TbmFrZUNhc2Uoe1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdvcmtzcGFjZXM6IHRoaXMucHJvcHMud29ya3NwYWNlcy50b1RlcnJhZm9ybSgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJlbW90ZVN0YXRlRGF0YVNvdXJjZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBfZnJvbVN0YWNrOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgICAvLyBUaGUgY2xvdWQgXCJiYWNrZW5kXCIgZG9lcyBub3QgaGF2ZSBhIGNvcmVzcG9uZGluZyByZW1vdGUgc3RhdGUgZGF0YSBzb3VyY2Ugc2luY2UgaXQncyBtZWFudCB0byBhbHNvXG4gICAgLy8gd29yayB3aXRoIG11bHRpcGxlIHdvcmtzcGFjZXMgdGhyb3VnaCB0YWdzLlxuICAgIGlmIChcIm5hbWVcIiBpbiB0aGlzLnByb3BzLndvcmtzcGFjZXMpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlKHNjb3BlLCBuYW1lLCB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogdGhpcy5wcm9wcy5vcmdhbml6YXRpb24sXG4gICAgICAgIHdvcmtzcGFjZXM6IHsgbmFtZTogKHRoaXMucHJvcHMud29ya3NwYWNlcyBhcyBhbnkpLm5hbWUgfSxcbiAgICAgICAgdG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICAgIGhvc3RuYW1lOiB0aGlzLnByb3BzLmhvc3RuYW1lLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhyb3cgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2xpL2Nsb3VkL3NldHRpbmdzI2FyZ3VtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkQmFja2VuZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uIGNvbnRhaW5pbmcgdGhlIHdvcmtzcGFjZShzKSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSBuZXN0ZWQgYmxvY2sgdGhhdCBzcGVjaWZpZXMgd2hpY2ggcmVtb3RlIFRlcnJhZm9ybSBDbG91ZCB3b3Jrc3BhY2VzIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAgICogVGhlIHdvcmtzcGFjZXMgYmxvY2sgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzLCBlYWNoIGRlbm90aW5nIGEgc3RyYXRlZ3kgZm9yIGhvdyB3b3Jrc3BhY2VzIHNob3VsZCBiZSBtYXBwZWQ6XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VzOiBOYW1lZENsb3VkV29ya3NwYWNlIHwgVGFnZ2VkQ2xvdWRXb3Jrc3BhY2VzO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdG5hbWUgb2YgYSBUZXJyYWZvcm0gRW50ZXJwcmlzZSBpbnN0YWxsYXRpb24sIGlmIHVzaW5nIFRlcnJhZm9ybSBFbnRlcnByaXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhcHAudGVycmFmb3JtLmlvXG4gICAqL1xuICByZWFkb25seSBob3N0bmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggVGVycmFmb3JtIENsb3VkLlxuICAgKiBXZSByZWNvbW1lbmQgb21pdHRpbmcgdGhlIHRva2VuIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sIGFuZCBpbnN0ZWFkIHVzaW5nIHRlcnJhZm9ybSBsb2dpbiBvciBtYW51YWxseSBjb25maWd1cmluZyBjcmVkZW50aWFscyBpbiB0aGUgQ0xJIGNvbmZpZyBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjbG91ZCB3b3Jrc3BhY2UgY2FuIGVpdGhlciBiZSBhIHNpbmdsZSBuYW1lZCB3b3Jrc3BhY2UsIG9yIGEgbGlzdCBvZiB0YWdnZWQgd29ya3NwYWNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGFic3RyYWN0IHRvVGVycmFmb3JtKCk6IGFueTtcbn1cblxuLyoqXG4gKiBUaGUgbmFtZSBvZiBhIHNpbmdsZSBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlLlxuICogWW91IHdpbGwgb25seSBiZSBhYmxlIHRvIHVzZSB0aGUgd29ya3NwYWNlIHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIHRoaXMgd29ya2luZyBkaXJlY3RvcnksIGFuZCBjYW5ub3QgbWFuYWdlIHdvcmtzcGFjZXMgZnJvbSB0aGUgQ0xJIChlLmcuIHRlcnJhZm9ybSB3b3Jrc3BhY2Ugc2VsZWN0IG9yIHRlcnJhZm9ybSB3b3Jrc3BhY2UgbmV3KS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hbWVkQ2xvdWRXb3Jrc3BhY2UgZXh0ZW5kcyBDbG91ZFdvcmtzcGFjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBwcm9qZWN0Pzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMubmFtZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqICBBIHNldCBvZiBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlIHRhZ3MuIFlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIHRoaXMgd29ya2luZyBkaXJlY3Rvcnkgd2l0aCBhbnkgd29ya3NwYWNlcyB0aGF0IGhhdmUgYWxsIG9mIHRoZSBzcGVjaWZpZWQgdGFncywgYW5kIGNhbiB1c2UgdGhlIHRlcnJhZm9ybSB3b3Jrc3BhY2UgY29tbWFuZHMgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBjcmVhdGUgbmV3IHdvcmtzcGFjZXMuIE5ldyB3b3Jrc3BhY2VzIHdpbGwgYXV0b21hdGljYWxseSBoYXZlIHRoZSBzcGVjaWZpZWQgdGFncy4gVGhpcyBvcHRpb24gY29uZmxpY3RzIHdpdGggbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhZ2dlZENsb3VkV29ya3NwYWNlcyBleHRlbmRzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWdzOiBzdHJpbmdbXSxcbiAgICBwdWJsaWMgcHJvamVjdD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnRhZ3MsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ0xpc3RcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuIl19