@pipeline-builder/pipeline-core 4.4.6 → 4.4.7

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 (56) hide show
  1. package/lib/cdk.js +1 -1
  2. package/lib/config/app-config.js +1 -1
  3. package/lib/config/aws-config-cdk.js +1 -1
  4. package/lib/config/config-types.d.ts +24 -14
  5. package/lib/config/config-types.js +1 -1
  6. package/lib/config/handler-constants.js +1 -1
  7. package/lib/config/infrastructure-config.js +8 -5
  8. package/lib/config/server-config.js +1 -1
  9. package/lib/config/service-client.js +1 -1
  10. package/lib/core/artifact-manager.js +1 -1
  11. package/lib/core/audit-correlation.js +1 -1
  12. package/lib/core/id-generator.js +1 -1
  13. package/lib/core/metadata-builder.js +1 -1
  14. package/lib/core/metadata-helpers.js +1 -1
  15. package/lib/core/network-types.js +1 -1
  16. package/lib/core/network.js +1 -1
  17. package/lib/core/pipeline-helpers.js +1 -1
  18. package/lib/core/pipeline-registration.js +1 -1
  19. package/lib/core/pipeline-types.js +1 -1
  20. package/lib/core/platform-tls.js +1 -1
  21. package/lib/core/plugin-contract.js +1 -1
  22. package/lib/core/plugin-lookup-envelope.js +1 -1
  23. package/lib/core/quota-exceeded.js +1 -1
  24. package/lib/core/role-types.js +1 -1
  25. package/lib/core/role.js +1 -1
  26. package/lib/core/runtime-check.js +1 -1
  27. package/lib/core/security-group-types.js +1 -1
  28. package/lib/core/security-group.js +1 -1
  29. package/lib/core/security-reports.js +1 -1
  30. package/lib/core/step-manifest.js +1 -1
  31. package/lib/core/synth-failure.js +1 -1
  32. package/lib/handlers/bundle/index.mjs +43 -0
  33. package/lib/handlers/platform-credential.js +1 -1
  34. package/lib/handlers/plugin-lookup-handler.js +1 -1
  35. package/lib/index.js +1 -1
  36. package/lib/pipeline/deploy-attribution.js +1 -1
  37. package/lib/pipeline/pipeline-builder.js +1 -1
  38. package/lib/pipeline/pipeline-configuration.js +1 -1
  39. package/lib/pipeline/plugin-lookup.js +18 -26
  40. package/lib/pipeline/plugin-spec.js +1 -1
  41. package/lib/pipeline/runtime-vuln-check-step.js +1 -1
  42. package/lib/pipeline/source-builder.js +1 -1
  43. package/lib/pipeline/source-types.js +1 -1
  44. package/lib/pipeline/stage-builder.js +1 -1
  45. package/lib/pipeline/step-manifest-recorder.js +1 -1
  46. package/lib/pipeline/step-types.js +1 -1
  47. package/lib/pipeline/structure-preview.js +1 -1
  48. package/lib/template/draft.js +1 -1
  49. package/lib/template/evaluator.js +1 -1
  50. package/lib/template/index.js +1 -1
  51. package/lib/template/plugin-resolver.js +1 -1
  52. package/lib/template/tokenizer.js +1 -1
  53. package/lib/template/topo-sort.js +1 -1
  54. package/lib/template/validate.js +1 -1
  55. package/lib/template/walker.js +1 -1
  56. package/package.json +8 -8
@@ -5,8 +5,7 @@ import { fileURLToPath } from 'url';
5
5
  import { createLogger, SYSTEM_ORG_ID } from '@pipeline-builder/api-core';
6
6
  import { CustomResource, Token, Duration } from 'aws-cdk-lib';
7
7
  import { PolicyStatement, Effect } from 'aws-cdk-lib/aws-iam';
8
- import { Runtime, Architecture } from 'aws-cdk-lib/aws-lambda';
9
- import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
8
+ import { Runtime, Architecture, Function, Code } from 'aws-cdk-lib/aws-lambda';
10
9
  import { LogGroup } from 'aws-cdk-lib/aws-logs';
11
10
  import { Provider } from 'aws-cdk-lib/custom-resources';
12
11
  import { Construct } from 'constructs';
@@ -168,13 +167,26 @@ export class PluginLookup extends Construct {
168
167
  }
169
168
  const secretName = CoreConstants.secretPath(this._orgId, 'platform');
170
169
  const caBundle = platformCaBundle();
171
- const fn = new NodejsFunction(this, this._uniqueId.generate('onevent:handler'), {
170
+ // PREBUILT at release (see `.projenrc.ts`, pipeline-core post-compile), not
171
+ // built here.
172
+ //
173
+ // This was a `NodejsFunction`, which bundles with esbuild during synth on
174
+ // whichever machine runs the deploy and therefore requires a
175
+ // `depsLockFilePath`. The stub lock that satisfied it was named
176
+ // `pnpm-lock.yaml`, and `pnpm pack` strips files by that name — so no
177
+ // published copy of the CLI ever had it and every deploy died at synth.
178
+ //
179
+ // Shipping the bundle instead costs nothing that was being used: the
180
+ // bundling options were all static, so each machine was rebuilding a
181
+ // byte-identical artifact. It also takes esbuild off the deploy path
182
+ // entirely, which is what the CodeBuild bootstrap image was carrying it for.
183
+ const fn = new Function(this, this._uniqueId.generate('onevent:handler'), {
172
184
  runtime: this._runtime,
173
185
  timeout: this._timeout,
174
186
  memorySize: this._memorySize,
175
187
  architecture: this._architecture,
176
- entry: join(MODULE_DIR, '/../handlers/plugin-lookup-handler.js'),
177
- depsLockFilePath: join(MODULE_DIR, '/../handlers/pnpm-lock.yaml'),
188
+ code: Code.fromAsset(join(MODULE_DIR, '/../handlers/bundle')),
189
+ handler: 'index.handler',
178
190
  reservedConcurrentExecutions: this._reservedConcurrentExecutions,
179
191
  environment: {
180
192
  PLATFORM_SECRET_NAME: secretName,
@@ -187,26 +199,6 @@ export class PluginLookup extends Construct {
187
199
  // The lookup reports its warnings against this pipeline (contract C1).
188
200
  ...(this._pipelineId && { PIPELINE_ID: this._pipelineId }),
189
201
  },
190
- bundling: {
191
- minify: true,
192
- sourceMap: false,
193
- target: 'es2022',
194
- externalModules: [
195
- // Provided by the Lambda Node.js runtime — never bundle.
196
- '@aws-sdk/*',
197
- // Synth-only libraries that must NEVER end up in a Lambda bundle.
198
- // The handler doesn't use them; this is a guard so a stray transitive
199
- // import (e.g. via a config module that pulls infrastructure-config →
200
- // aws-cdk-lib) can't drag the entire ~hundreds-of-MB CDK into the
201
- // bundle and OOM-kill esbuild during cold-start synth. If one of these
202
- // is ever genuinely reached at runtime the Lambda will fail loudly at
203
- // init (module not found) rather than silently OOM at synth — which is
204
- // the correct signal, since CDK has no business running in this Lambda.
205
- 'aws-cdk-lib',
206
- 'aws-cdk-lib/*',
207
- 'constructs',
208
- ],
209
- },
210
202
  });
211
203
  // Grant the Lambda permission to read the per-org platform secret.
212
204
  // The wildcard suffix handles the 6-char random ID that Secrets Manager appends.
@@ -389,4 +381,4 @@ export class PluginLookup extends Construct {
389
381
  };
390
382
  }
391
383
  }
392
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9wbHVnaW4tbG9va3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7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c0JHO0lBQ0ksU0FBUztRQUNkLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsT0FBTztZQUNMLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUM1QixJQUFJLEVBQUUsV0FBVztZQUNqQixzQkFBc0IsRUFBRSxTQUFTO1lBQ2pDLFFBQVEsRUFBRTtnQkFDUiwyRkFBMkYsT0FBTyxFQUFFO2FBQ3JHO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAndXJsJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciwgU1lTVEVNX09SR19JRCB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luRmlsdGVyLCBQbHVnaW4gfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhJztcbmltcG9ydCB7IEN1c3RvbVJlc291cmNlLCBUb2tlbiwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIEVmZmVjdCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgUnVudGltZSwgQXJjaGl0ZWN0dXJlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9zdGVwLXR5cGVzLmpzJztcbmltcG9ydCB7IENvbmZpZywgQ29yZUNvbnN0YW50cyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnLmpzJztcbmltcG9ydCB7IGxhbWJkYVJ1bnRpbWUgfSBmcm9tICcuLi9jb25maWcvYXdzLWNvbmZpZy1jZGsuanMnO1xuaW1wb3J0IHsgVW5pcXVlSWQgfSBmcm9tICcuLi9jb3JlL2lkLWdlbmVyYXRvci5qcyc7XG5pbXBvcnQgeyBQTEFURk9STV9DQV9CVU5ETEVfRU5WLCBwbGF0Zm9ybUNhQnVuZGxlLCBwbGF0Zm9ybVRsc1ZlcmlmeSB9IGZyb20gJy4uL2NvcmUvcGxhdGZvcm0tdGxzLmpzJztcbmltcG9ydCB7IHBsdWdpbkFydGlmYWN0QWxpYXMsIHBsdWdpbkxvb2t1cEZpbHRlciB9IGZyb20gJy4uL2NvcmUvcGx1Z2luLWNvbnRyYWN0LmpzJztcbmltcG9ydCB7IFBMQUNFSE9MREVSX1BMVUdJTl9JRCB9IGZyb20gJy4uL2NvcmUvc3RlcC1tYW5pZmVzdC5qcyc7XG5cbmNvbnN0IGxvZyA9IGNyZWF0ZUxvZ2dlcigncGx1Z2luLWxvb2t1cCcpO1xuXG4vLyBFU00tc2FmZSBtb2R1bGUgZGlyZWN0b3J5ICh0aGUgcGFja2FnZSBpcyBgdHlwZTogbW9kdWxlYDsgYF9fZGlybmFtZWAgaXNcbi8vIG5vdCBkZWZpbmVkIHVuZGVyIEVTIG1vZHVsZXMpLlxuY29uc3QgTU9EVUxFX0RJUiA9IGRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuaW50ZXJmYWNlIElucHV0UHJvcHMge1xuICByZWFkb25seSBiYXNlVVJMOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbkZpbHRlcjogUGx1Z2luRmlsdGVyO1xuICAvKiogVGhlIHN0ZXAncyBsYWJlbCAoYHBsdWdpblN0ZXBMYWJlbGApIOKAlCBzZW50IGFzIHRoZSBsb29rdXAgYGNvbnRleHQuc3RlcEtleXNgIChjb250cmFjdCBDMSkuICovXG4gIHJlYWRvbmx5IHN0ZXBLZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgUGx1Z2luTG9va3VwIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkxvb2t1cFByb3BzIHtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb2plY3Q6IHN0cmluZztcbiAgcmVhZG9ubHkgcGxhdGZvcm1Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuICAvKiogT3JnYW5pemF0aW9uIElEIGZvciByZXNvbHZpbmcgcGVyLW9yZyBzZWNyZXRzIGZyb20gU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuICAvKipcbiAgICogUGxhdGZvcm0gcGlwZWxpbmUgaWQuIFNlbnQgYXMgbG9va3VwIGBjb250ZXh0YCBzbyB0aGUgcGx1Z2luIHNlcnZpY2UgcmVjb3Jkc1xuICAgKiB0aGUgd2FybmluZ3MgaXQgcmV0dXJucyBhZ2FpbnN0IGVhY2ggKHBpcGVsaW5lLCBzdGVwKTsgb21pdHRlZCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZUlkPzogc3RyaW5nO1xuICByZWFkb25seSBydW50aW1lPzogUnVudGltZTtcbiAgLyoqIExhbWJkYSB0aW1lb3V0IChkZWZhdWx0OiAzMHMpICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgLyoqIExhbWJkYSBtZW1vcnkgaW4gTUIgKGRlZmF1bHQ6IDUxMikgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgLyoqIExhbWJkYSBDUFUgYXJjaGl0ZWN0dXJlIChkZWZhdWx0OiBBUk1fNjQpICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IEFyY2hpdGVjdHVyZTtcbiAgLyoqIFJlc2VydmVkIGNvbmN1cnJlbnQgZXhlY3V0aW9ucyBmb3IgdGhlIGxvb2t1cCBMYW1iZGEgKGRlZmF1bHQ6IDMwKSAqL1xuICByZWFkb25seSByZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zPzogbnVtYmVyO1xuICAvKipcbiAgICogUGx1Z2lucyBwcmUtcmVzb2x2ZWQgYnkgYHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGhgIGZyb20gdGhlIHBsYXRmb3JtIEFQSS5cbiAgICogS2V5ZWQgYnkgYGFsaWFzIHx8IG5hbWVgIChtYXRjaGVzIHRoZSBjb25zdHJ1Y3QncyBub3JtYWxpemUoKSBvdXRwdXQpLlxuICAgKiBXaGVuIGEgbG9va3VwIGhpdHMgdGhpcyBtYXAsIGBwbHVnaW4oKWAgcmV0dXJucyB0aGUgcmVzb2x2ZWQgUGx1Z2luXG4gICAqIGRpcmVjdGx5IOKAlCBubyBjdXN0b20gcmVzb3VyY2UgaXMgY3JlYXRlZC4gVGhpcyBpcyB3aGF0IG1ha2VzIHRoZVxuICAgKiBuYW1lLCB2ZXJzaW9uLCBjb21tYW5kcywgZW52LCBldGMuIGF2YWlsYWJsZSBhdCBzeW50aCB0aW1lIHNvIHRoZSByZXN1bHRpbmdcbiAgICogQ0ZOIHRlbXBsYXRlIHNoaXBzIHdpdGggdGhlIHJlYWwgdmFsdWVzIGJha2VkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRQbHVnaW5zPzogUmVjb3JkPHN0cmluZywgUGx1Z2luPjtcbn1cblxuLyoqXG4gKiBDREsgQ29uc3RydWN0IHJlc3BvbnNpYmxlIGZvciBsb29raW5nIHVwIHBsdWdpbiBjb25maWd1cmF0aW9ucyBmcm9tIGFuIGV4dGVybmFsIHBsYXRmb3JtXG4gKiB1c2luZyBBV1MgQ2xvdWRGb3JtYXRpb24gQ3VzdG9tIFJlc291cmNlcyBiYWNrZWQgYnkgYSBMYW1iZGEgZnVuY3Rpb24uXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlczpcbiAqIC0gQSBMYW1iZGEgZnVuY3Rpb24gKHBsdWdpbi1sb29rdXAtaGFuZGxlcikgdGhhdCBmZXRjaGVzIHBsdWdpbiBjb25maWdzXG4gKiAtIEEgQ2xvdWRXYXRjaCBMb2cgR3JvdXAgZm9yIHRoZSBMYW1iZGFcbiAqIC0gQSBDdXN0b20gUmVzb3VyY2UgUHJvdmlkZXIgdGhhdCBpbnZva2VzIHRoZSBMYW1iZGFcbiAqIC0gQW4gSUFNIHBvbGljeSBncmFudGluZyB0aGUgTGFtYmRhIGFjY2VzcyB0byB0aGUgY3JlZGVudGlhbHMgc2VjcmV0XG4gKlxuICogIyMgUHJlcmVxdWlzaXRlc1xuICpcbiAqIEJlZm9yZSBkZXBsb3lpbmcsIHN0b3JlIGEgSldUIHRva2VuIGluIFNlY3JldHMgTWFuYWdlcjpcbiAqIGBgYHNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tZGF5cyAzMCAtLXJlZ2lvbiA8cmVnaW9uPlxuICogYGBgXG4gKlxuICogVGhlIExhbWJkYSByZXNvbHZlcyB0aGUgc2VjcmV0IGJ5IG5hbWUgYXQgcnVudGltZTpcbiAqIGB7U0VDUkVUU19QQVRIX1BSRUZJWH0ve29yZ0lkfS9wbGF0Zm9ybWBcbiAqXG4gKiBAc2VlIGhhbmRsZXJzL3BsdWdpbi1sb29rdXAtaGFuZGxlci50cyBmb3IgdGhlIExhbWJkYSBpbXBsZW1lbnRhdGlvblxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luTG9va3VwIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm92aWRlcjogUHJvdmlkZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bnRpbWU6IFJ1bnRpbWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RpbWVvdXQ6IER1cmF0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZW1vcnlTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zPzogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcmdJZD86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcGlwZWxpbmVJZD86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb2x2ZWRQbHVnaW5zPzogUmVjb3JkPHN0cmluZywgUGx1Z2luPjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGx1Z2luTG9va3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5vcmdhbml6YXRpb24gfHwgIXByb3BzLnByb2plY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQm90aCBvcmdhbml6YXRpb24gYW5kIHByb2plY3QgYXJlIHJlcXVpcmVkLicpO1xuICAgIH1cblxuICAgIHRoaXMuX3VuaXF1ZUlkID0gcHJvcHMudW5pcXVlSWQ7XG4gICAgdGhpcy5fcGxhdGZvcm1VcmwgPSBwcm9wcy5wbGF0Zm9ybVVybDtcbiAgICB0aGlzLl9vcmdJZCA9IHByb3BzLm9yZ0lkO1xuICAgIHRoaXMuX3BpcGVsaW5lSWQgPSBwcm9wcy5waXBlbGluZUlkO1xuICAgIHRoaXMuX3J1bnRpbWUgPSBwcm9wcy5ydW50aW1lID8/IGxhbWJkYVJ1bnRpbWUoJ25vZGVqczI2LngnKTtcbiAgICB0aGlzLl90aW1lb3V0ID0gcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDMwKTtcbiAgICB0aGlzLl9tZW1vcnlTaXplID0gcHJvcHMubWVtb3J5U2l6ZSA/PyBDb25maWcuZ2V0KCdhd3MnKS5sYW1iZGEubWVtb3J5U2l6ZTtcbiAgICB0aGlzLl9hcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gQXJjaGl0ZWN0dXJlLkFSTV82NDtcbiAgICB0aGlzLl9yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zID0gcHJvcHMucmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucztcbiAgICB0aGlzLl9yZXNvbHZlZFBsdWdpbnMgPSBwcm9wcy5yZXNvbHZlZFBsdWdpbnM7XG5cbiAgICBjb25zdCBvbkV2ZW50SGFuZGxlciA9IHRoaXMuY3JlYXRlTGFtYmRhRnVuY3Rpb24oKTtcblxuICAgIC8vIExvZy1ncm91cCBzdHJhdGVneTpcbiAgICAvLyAgIFByZXZpb3VzIGNvZGUgY3JlYXRlZCBhbiBgQVdTOjpMb2dzOjpMb2dHcm91cGAgcmVzb3VyY2Ugd2l0aCBhblxuICAgIC8vICAgRVhQTElDSVQgbmFtZSAoYC9hd3MvbGFtYmRhL3BsdWdpbi1sb29rdXAtTmApLiBUaGF0IGJyZWFrcyBldmVyeVxuICAgIC8vICAgcmUtZGVwbG95IGFmdGVyIGEgcm9sbGVkLWJhY2sgc3RhY2s6IEFXUyBhdXRvLWNyZWF0ZXMgdGhlIGdyb3VwIG9uXG4gICAgLy8gICBmaXJzdCBMYW1iZGEgaW52b2NhdGlvbiwgdGhlIHJvbGxiYWNrIGxlYXZlcyBpdCBhcyBhbiBvcnBoYW4sIGFuZFxuICAgIC8vICAgdGhlIG5leHQgQ0RLIHJ1biBmYWlscyB3aXRoIFwiUmVzb3VyY2UgLi4uIGFscmVhZHkgZXhpc3RzXCIgYmVjYXVzZVxuICAgIC8vICAgdGhlIGV4cGxpY2l0IG5hbWUgY29sbGlkZXMgd2l0aCB0aGUgb3JwaGFuLlxuICAgIC8vXG4gICAgLy8gICBGaXg6IHVzZSBgTG9nR3JvdXAuZnJvbUxvZ0dyb3VwTmFtZSgpYCB0byBhZG9wdC1vci1wYXNzLXRocm91Z2guXG4gICAgLy8gICBJZiB0aGUgZ3JvdXAgZXhpc3RzLCBDREsgcmVmZXJlbmNlcyBpdCB3aXRob3V0IHRyeWluZyB0byByZWNyZWF0ZS5cbiAgICAvLyAgIElmIGl0IGRvZXNuJ3QsIEFXUyBMYW1iZGEgYXV0by1jcmVhdGVzIGl0IG9uIGZpcnN0IGludm9jYXRpb24uXG4gICAgLy8gICBSZXRlbnRpb24gaXMgdGhlbiBzZXQgdmlhIGEgc2VwYXJhdGUgcmV0ZW50aW9uLXBvbGljeSBjdXN0b21cbiAgICAvLyAgIHJlc291cmNlIHdoaWNoIGlzIGlkZW1wb3RlbnQgKHNhZmUgdG8gYXBwbHkgdG8gZXhpc3RpbmcgZ3JvdXBzKS5cbiAgICBjb25zdCBsb2dHcm91cE5hbWUgPSBgL2F3cy9sYW1iZGEvJHt0aGlzLl91bmlxdWVJZC5nZW5lcmF0ZSgncGx1Z2luOmxvb2t1cCcpLnJlcGxhY2UoLzovZywgJy0nKX1gO1xuICAgIGNvbnN0IGxvZ0dyb3VwID0gTG9nR3JvdXAuZnJvbUxvZ0dyb3VwTmFtZShcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLl91bmlxdWVJZC5nZW5lcmF0ZSgnbG9nOmdyb3VwJyksXG4gICAgICBsb2dHcm91cE5hbWUsXG4gICAgKTtcblxuICAgIHRoaXMuX3Byb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIHRoaXMuX3VuaXF1ZUlkLmdlbmVyYXRlKCdyZXNvdXJjZTpwcm92aWRlcicpLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcixcbiAgICAgIGxvZ0dyb3VwLFxuICAgIH0pO1xuXG4gICAgbG9nLmRlYnVnKGBQbHVnaW5Mb29rdXAgaW5pdGlhbGl6ZWQgZm9yICR7cHJvcHMub3JnYW5pemF0aW9ufS8ke3Byb3BzLnByb2plY3R9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgYW5kIHJlc29sdmVzIHBsdWdpbiBjb25maWd1cmF0aW9uIHVzaW5nIGVpdGhlciBhIHNpbXBsZSBuYW1lIG9yIGZ1bGwgUGx1Z2luT3B0aW9ucyBvYmplY3RcbiAgICogRHVyaW5nIHN5bnRoZXNpcywgaWYgdGhlIHZhbHVlIGlzIHVucmVzb2x2ZWQgKHRva2VuKSwgcmV0dXJucyBmYWxsYmFjayBwbHVnaW5cbiAgICogRHVyaW5nIGRlcGxveW1lbnQsIGF0dGVtcHRzIHRvIHBhcnNlIHRoZSBhY3R1YWwgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIGN1c3RvbSByZXNvdXJjZVxuICAgKiBAcGFyYW0gcGx1Z2luIC0gUGx1Z2luIG5hbWUgKHN0cmluZykgb3IgY29tcGxldGUgUGx1Z2luT3B0aW9ucyBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBzdGVwS2V5IC0gVGhlIHN0ZXAncyBsYWJlbCAoYHBsdWdpblN0ZXBMYWJlbGA6IGBzeW50aGAgb3JcbiAgICogICBgPHN0YWdlPi88YWxpYXMgPz8gbmFtZT5gKS4gVGhlIGRlcGxveS10aW1lIGxvb2t1cCByZXBvcnRzIGl0cyB3YXJuaW5nc1xuICAgKiAgIGFnYWluc3QgaXQsIHNvIGl0IG11c3QgbWF0Y2ggdGhlIHN0ZXAgbWFuaWZlc3QncyBhbmQgdGhlIHNlY3VyaXR5IHZpZXcncyBrZXkuXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIFBsdWdpbiBvYmplY3Qgb3IgZmFsbGJhY2sgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgcGx1Z2luKHBsdWdpbjogc3RyaW5nIHwgUGx1Z2luT3B0aW9ucywgc3RlcEtleT86IHN0cmluZyk6IFBsdWdpbiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLm5vcm1hbGl6ZShwbHVnaW4pO1xuXG4gICAgLy8gUHJlLXJlc29sdmVkIGJ5IGBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoYCBmcm9tIHRoZSBwbGF0Zm9ybSBBUEkuXG4gICAgLy8gU2tpcCB0aGUgY3VzdG9tIHJlc291cmNlIGVudGlyZWx5IOKAlCB3ZSBhbHJlYWR5IGtub3cgdGhlIHBsdWdpbidzXG4gICAgLy8gbmFtZSwgdmVyc2lvbiwgY29tbWFuZHMsIGVudiwgZXRjLiBhdCBzeW50aCB0aW1lLCBzbyB0aGUgcmVzdWx0aW5nIENGTlxuICAgIC8vIHRlbXBsYXRlIGNhbiBzaGlwIHdpdGggdGhlIHJlYWwgQ29kZUJ1aWxkIGltYWdlIGJha2VkIGluLlxuICAgIGNvbnN0IGNhY2hlS2V5ID0gcHJvcHMuYWxpYXMgfHwgcHJvcHMubmFtZTtcbiAgICBjb25zdCBwcmVSZXNvbHZlZCA9IHRoaXMuX3Jlc29sdmVkUGx1Z2lucz8uW2NhY2hlS2V5XSBhcyAoUGx1Z2luICYgeyBwdWJsaXNoZXI/OiBzdHJpbmcgfCBudWxsIH0pIHwgdW5kZWZpbmVkO1xuICAgIC8vIFRoZSBtYXAgaXMga2V5ZWQgYnkgQUxJQVMsIHNvIGNoZWNrIGl0IGFjdHVhbGx5IGhvbGRzIFRISVMgcGx1Z2luLiBUd29cbiAgICAvLyBzdGVwcyBzaGFyaW5nIGFuIGFsaWFzIGFjcm9zcyBkaWZmZXJlbnQgcGx1Z2lucyB3b3VsZCBvdGhlcndpc2UgZ2V0IHRoZVxuICAgIC8vIGZpcnN0IG9uZSdzIHJlY29yZCBiYWNrIOKAlCB0aGUgc2Vjb25kIHN0ZXAgc2lsZW50bHkgcnVubmluZyB0aGUgd3JvbmdcbiAgICAvLyBpbWFnZSBhbmQgY29tbWFuZHMuIFRoZSBDTEkgcmVmdXNlcyBzdWNoIGEgcGlwZWxpbmUgdG9vOyB0aGlzIGNvdmVycyBhbnkgb3RoZXJcbiAgICAvLyBjYWxsZXIgdGhhdCBzdXBwbGllcyBgcmVzb2x2ZWRQbHVnaW5zYC5cbiAgICAvLyBDb21wYXJlIGFnYWluc3QgdGhlIG5hbWUgdGhlIGxvb2t1cCBhY3R1YWxseSBUQVJHRVRFRDogYW4gZXhwbGljaXRcbiAgICAvLyBgZmlsdGVyLm5hbWVgIG92ZXJyaWRlcyB0aGUgcmVmJ3MgYG5hbWVgIGJ5IGRlc2lnbiwgYW5kIHRoYXQgaXMgbm90IGFcbiAgICAvLyBjb2xsaXNpb24uXG4gICAgY29uc3QgdGFyZ2V0TmFtZSA9IChwcm9wcy5maWx0ZXIgYXMgeyBuYW1lPzogc3RyaW5nIH0gfCB1bmRlZmluZWQpPy5uYW1lID8/IHByb3BzLm5hbWU7XG4gICAgaWYgKHByZVJlc29sdmVkICYmIHByZVJlc29sdmVkLm5hbWUgIT09IHRhcmdldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFBsdWdpbiBhbGlhcyBcIiR7Y2FjaGVLZXl9XCIgcmVzb2x2ZXMgdG8gXCIke3ByZVJlc29sdmVkLm5hbWV9XCIsIG5vdCBcIiR7dGFyZ2V0TmFtZX1cIi4gYFxuICAgICAgICArICdFYWNoIGFsaWFzIG11c3QgbmFtZSBleGFjdGx5IG9uZSBwbHVnaW4uJyxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIEEgcXVhbGlmaWVkIHJlZmVyZW5jZSBtdXN0IGhhdmUgcmVzb2x2ZWQgdG8gVEhBVCBwdWJsaXNoZXIncyBsaXN0aW5nXG4gICAgLy8gKGFuIHVucXVhbGlmaWVkIG9uZSBtYXkgcmVzb2x2ZSB0byB0aGUgb3JnJ3Mgb3duIHBsdWdpbiBvciB0aGUgT2ZmaWNpYWxcbiAgICAvLyBsaXN0aW5nKS5cbiAgICBpZiAocHJlUmVzb2x2ZWQgJiYgcHJvcHMucHVibGlzaGVyICYmIHByZVJlc29sdmVkLnB1Ymxpc2hlciAhPT0gcHJvcHMucHVibGlzaGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQbHVnaW4gYWxpYXMgXCIke2NhY2hlS2V5fVwiIHJlc29sdmVzIHRvICR7cHJlUmVzb2x2ZWQucHVibGlzaGVyID8gYCR7cHJlUmVzb2x2ZWQucHVibGlzaGVyfS9gIDogJ3lvdXIgb3JnYW5pemF0aW9uXFwncyAnfSR7cHJlUmVzb2x2ZWQubmFtZX0sIGBcbiAgICAgICAgKyBgbm90ICR7cHJvcHMucHVibGlzaGVyfS8ke3RhcmdldE5hbWV9LiBFYWNoIGFsaWFzIG11c3QgbmFtZSBleGFjdGx5IG9uZSBwbHVnaW4uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwcmVSZXNvbHZlZCkge1xuICAgICAgbG9nLmRlYnVnKGBQbHVnaW4gXCIke3Byb3BzLm5hbWV9XCIgcHJlLXJlc29sdmVkIChhbGlhcz0ke2NhY2hlS2V5fSkg4oCUIHNraXBwaW5nIGN1c3RvbSByZXNvdXJjZWApO1xuICAgICAgcmV0dXJuIHByZVJlc29sdmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGN1c3RvbSA9IHRoaXMuY3JlYXRlQ3VzdG9tUmVzb3VyY2UocHJvcHMsIHN0ZXBLZXkpO1xuICAgIGNvbnN0IGVuY29kZWQgPSBjdXN0b20uZ2V0QXR0U3RyaW5nKCdSZXN1bHRWYWx1ZScpO1xuXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChlbmNvZGVkKSkge1xuICAgICAgbG9nLmRlYnVnKGBQbHVnaW4gXCIke3Byb3BzLm5hbWV9XCIgdmFsdWUgaXMgdW5yZXNvbHZlZCAodG9rZW4pIGR1cmluZyBzeW50aGVzaXMg4oCUIHVzaW5nIGZhbGxiYWNrLiBUaGUgYWN0dWFsIHBsdWdpbiB3aWxsIGJlIHJlc29sdmVkIGF0IGRlcGxveW1lbnQgdGltZS5gKTtcbiAgICAgIHJldHVybiB0aGlzLmZhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShlbmNvZGVkLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVkKTtcblxuICAgICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCAhZGF0YS5uYW1lIHx8ICFBcnJheS5pc0FycmF5KGRhdGEuY29tbWFuZHMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwbHVnaW4gcmVzcG9uc2U6IG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzIChuYW1lLCBjb21tYW5kcyknKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGEgYXMgUGx1Z2luO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgcGx1Z2luIFwiJHtwcm9wcy5uYW1lfVwiIGRhdGE6ICR7ZXJyb3JNc2d9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IHNlcnZlcyBhcyB0aGUgZXZlbnQgaGFuZGxlciBmb3IgdGhlIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlci5cbiAgICpcbiAgICogSldUIHRva2VuIGlzIHN0b3JlZCBpbiBhIHByZS1leGlzdGluZyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGF0XG4gICAqIGB7U0VDUkVUU19QQVRIX1BSRUZJWH0ve29yZ0lkfS9wbGF0Zm9ybWAuIFRoZSBMYW1iZGEgcmVzb2x2ZXMgdGhlXG4gICAqIHNlY3JldCBieSBuYW1lIGF0IHJ1bnRpbWUgdXNpbmcgYENvcmVDb25zdGFudHMuU0VDUkVUU19QQVRIX1BSRUZJWGAuXG4gICAqXG4gICAqIENyZWF0ZSB0aGUgc2VjcmV0IGJlZm9yZSBkZXBsb3lpbmcgd2l0aDpcbiAgICogICBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tZGF5cyAzMCAtLXJlZ2lvbiA8cmVnaW9uPlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFGdW5jdGlvbigpOiBOb2RlanNGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLl9vcmdJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcmdJZCBpcyByZXF1aXJlZCBmb3IgUGx1Z2luTG9va3VwIOKAlCBuZWVkZWQgdG8gcmVzb2x2ZSB0aGUgcGVyLW9yZyBwbGF0Zm9ybSBzZWNyZXQnKTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcmV0TmFtZSA9IENvcmVDb25zdGFudHMuc2VjcmV0UGF0aCh0aGlzLl9vcmdJZCwgJ3BsYXRmb3JtJyk7XG4gICAgY29uc3QgY2FCdW5kbGUgPSBwbGF0Zm9ybUNhQnVuZGxlKCk7XG5cbiAgICBjb25zdCBmbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCB0aGlzLl91bmlxdWVJZC5nZW5lcmF0ZSgnb25ldmVudDpoYW5kbGVyJyksIHtcbiAgICAgIHJ1bnRpbWU6IHRoaXMuX3J1bnRpbWUsXG4gICAgICB0aW1lb3V0OiB0aGlzLl90aW1lb3V0LFxuICAgICAgbWVtb3J5U2l6ZTogdGhpcy5fbWVtb3J5U2l6ZSxcbiAgICAgIGFyY2hpdGVjdHVyZTogdGhpcy5fYXJjaGl0ZWN0dXJlLFxuICAgICAgZW50cnk6IGpvaW4oTU9EVUxFX0RJUiwgJy8uLi9oYW5kbGVycy9wbHVnaW4tbG9va3VwLWhhbmRsZXIuanMnKSxcbiAgICAgIGRlcHNMb2NrRmlsZVBhdGg6IGpvaW4oTU9EVUxFX0RJUiwgJy8uLi9oYW5kbGVycy9wbnBtLWxvY2sueWFtbCcpLFxuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogdGhpcy5fcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBMQVRGT1JNX1NFQ1JFVF9OQU1FOiBzZWNyZXROYW1lLFxuICAgICAgICAvLyBQTEFURk9STV9UTFNfVkVSSUZZPWZhbHNlOiBhIGRldiBwbGF0Zm9ybSBvbiBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLlxuICAgICAgICAuLi4oIXBsYXRmb3JtVGxzVmVyaWZ5KCkgJiYge1xuICAgICAgICAgIE5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQ6ICcwJyxcbiAgICAgICAgfSksXG4gICAgICAgIC8vIFByaXZhdGUtQ0EgcGxhdGZvcm06IHZlcmlmeSBhZ2FpbnN0IHRoZSBDQSBpbnN0ZWFkIChjb3JlL3BsYXRmb3JtLXRscy50cykuXG4gICAgICAgIC4uLihjYUJ1bmRsZSAmJiB7IFtQTEFURk9STV9DQV9CVU5ETEVfRU5WXTogY2FCdW5kbGUgfSksXG4gICAgICAgIC8vIFRoZSBsb29rdXAgcmVwb3J0cyBpdHMgd2FybmluZ3MgYWdhaW5zdCB0aGlzIHBpcGVsaW5lIChjb250cmFjdCBDMSkuXG4gICAgICAgIC4uLih0aGlzLl9waXBlbGluZUlkICYmIHsgUElQRUxJTkVfSUQ6IHRoaXMuX3BpcGVsaW5lSWQgfSksXG4gICAgICB9LFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgbWluaWZ5OiB0cnVlLFxuICAgICAgICBzb3VyY2VNYXA6IGZhbHNlLFxuICAgICAgICB0YXJnZXQ6ICdlczIwMjInLFxuICAgICAgICBleHRlcm5hbE1vZHVsZXM6IFtcbiAgICAgICAgICAvLyBQcm92aWRlZCBieSB0aGUgTGFtYmRhIE5vZGUuanMgcnVudGltZSDigJQgbmV2ZXIgYnVuZGxlLlxuICAgICAgICAgICdAYXdzLXNkay8qJyxcbiAgICAgICAgICAvLyBTeW50aC1vbmx5IGxpYnJhcmllcyB0aGF0IG11c3QgTkVWRVIgZW5kIHVwIGluIGEgTGFtYmRhIGJ1bmRsZS5cbiAgICAgICAgICAvLyBUaGUgaGFuZGxlciBkb2Vzbid0IHVzZSB0aGVtOyB0aGlzIGlzIGEgZ3VhcmQgc28gYSBzdHJheSB0cmFuc2l0aXZlXG4gICAgICAgICAgLy8gaW1wb3J0IChlLmcuIHZpYSBhIGNvbmZpZyBtb2R1bGUgdGhhdCBwdWxscyBpbmZyYXN0cnVjdHVyZS1jb25maWcg4oaSXG4gICAgICAgICAgLy8gYXdzLWNkay1saWIpIGNhbid0IGRyYWcgdGhlIGVudGlyZSB+aHVuZHJlZHMtb2YtTUIgQ0RLIGludG8gdGhlXG4gICAgICAgICAgLy8gYnVuZGxlIGFuZCBPT00ta2lsbCBlc2J1aWxkIGR1cmluZyBjb2xkLXN0YXJ0IHN5bnRoLiBJZiBvbmUgb2YgdGhlc2VcbiAgICAgICAgICAvLyBpcyBldmVyIGdlbnVpbmVseSByZWFjaGVkIGF0IHJ1bnRpbWUgdGhlIExhbWJkYSB3aWxsIGZhaWwgbG91ZGx5IGF0XG4gICAgICAgICAgLy8gaW5pdCAobW9kdWxlIG5vdCBmb3VuZCkgcmF0aGVyIHRoYW4gc2lsZW50bHkgT09NIGF0IHN5bnRoIOKAlCB3aGljaCBpc1xuICAgICAgICAgIC8vIHRoZSBjb3JyZWN0IHNpZ25hbCwgc2luY2UgQ0RLIGhhcyBubyBidXNpbmVzcyBydW5uaW5nIGluIHRoaXMgTGFtYmRhLlxuICAgICAgICAgICdhd3MtY2RrLWxpYicsXG4gICAgICAgICAgJ2F3cy1jZGstbGliLyonLFxuICAgICAgICAgICdjb25zdHJ1Y3RzJyxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCB0aGUgTGFtYmRhIHBlcm1pc3Npb24gdG8gcmVhZCB0aGUgcGVyLW9yZyBwbGF0Zm9ybSBzZWNyZXQuXG4gICAgLy8gVGhlIHdpbGRjYXJkIHN1ZmZpeCBoYW5kbGVzIHRoZSA2LWNoYXIgcmFuZG9tIElEIHRoYXQgU2VjcmV0cyBNYW5hZ2VyIGFwcGVuZHMuXG4gICAgZm4uYWRkVG9Sb2xlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoqOio6c2VjcmV0OiR7c2VjcmV0TmFtZX0tKmBdLFxuICAgIH0pKTtcblxuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgZGVmYXVsdCBwbHVnaW4gZmlsdGVyLlxuICAgKiBBY2Nlc3MgY29udHJvbCAob3JnSWQgc2NvcGluZywgcHVibGljL3ByaXZhdGUgdmlzaWJpbGl0eSkgaXMgaGFuZGxlZCBieVxuICAgKiB0aGUgcGxhdGZvcm0ncyBhY2Nlc3MgY29udHJvbCBxdWVyeSBidWlsZGVyIGJhc2VkIG9uIHRoZSBKV1QncyBvcmdhbml6YXRpb25JZC5cbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplKHBsdWdpbjogc3RyaW5nIHwgUGx1Z2luT3B0aW9ucyk6IFBsdWdpbk9wdGlvbnMge1xuICAgIGNvbnN0IHJlZjogUGx1Z2luT3B0aW9ucyA9IHR5cGVvZiBwbHVnaW4gPT09ICdzdHJpbmcnID8geyBuYW1lOiBwbHVnaW4gfSA6IHBsdWdpbjtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogcmVmLm5hbWUsXG4gICAgICAuLi4ocmVmLnB1Ymxpc2hlciA/IHsgcHVibGlzaGVyOiByZWYucHVibGlzaGVyIH0gOiB7fSksXG4gICAgICAvLyBUaGUgcmVzb2x2ZXIgY2FjaGUga2V5OiB0aGUgZXhwbGljaXQgYWxpYXMsIGVsc2UgYFs8cHVibGlzaGVyPi1dPG5hbWU+LWFsaWFzYC5cbiAgICAgIGFsaWFzOiBwbHVnaW5BcnRpZmFjdEFsaWFzKHJlZiksXG4gICAgICAvLyBUaGUgc2FtZSBmaWx0ZXIgdGhlIENMSSBwcmUtcmVzb2x2ZXIgYW5kIHRoZSBwaXBlbGluZSBzZXJ2aWNlJ3NcbiAgICAgIC8vIGNvbnRyYWN0IGNoZWNrIHNlbmQgKGBwbHVnaW5Mb29rdXBGaWx0ZXJgKTogbmFtZSArIHB1Ymxpc2hlciwgdGhlblxuICAgICAgLy8gdGhlIHJlZmVyZW5jZSdzIG93biBmaWx0ZXIsIGVsc2UgdGhlIGRlZmF1bHQgdmVyc2lvbi5cbiAgICAgIGZpbHRlcjogcGx1Z2luTG9va3VwRmlsdGVyKHsgbmFtZTogcmVmLm5hbWUsIHB1Ymxpc2hlcjogcmVmLnB1Ymxpc2hlciwgZmlsdGVyOiByZWYuZmlsdGVyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkIH0pIGFzIFBsdWdpbkZpbHRlcixcbiAgICAgIG1ldGFkYXRhOiByZWYubWV0YWRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ3VzdG9tUmVzb3VyY2UgaW5zdGFuY2UgdGhhdCB0cmlnZ2VycyBwbHVnaW4gbG9va3VwIGR1cmluZyBkZXBsb3ltZW50XG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUN1c3RvbVJlc291cmNlKHByb3BzOiBQbHVnaW5PcHRpb25zLCBzdGVwS2V5Pzogc3RyaW5nKTogQ3VzdG9tUmVzb3VyY2Uge1xuICAgIGNvbnN0IHJlc291cmNlSWQgPSB0aGlzLl91bmlxdWVJZC5nZW5lcmF0ZShwcm9wcy5hbGlhcyB8fCBwcm9wcy5uYW1lKTtcblxuICAgIHJldHVybiBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgcmVzb3VyY2VJZCwge1xuICAgICAgc2VydmljZVRva2VuOiB0aGlzLl9wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OlBsdWdpbkxvb2t1cCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGJhc2VVUkw6IHRoaXMuX3BsYXRmb3JtVXJsLFxuICAgICAgICBwbHVnaW5GaWx0ZXI6IHByb3BzLmZpbHRlcixcbiAgICAgICAgLi4uKHN0ZXBLZXkgPyB7IHN0ZXBLZXkgfSA6IHt9KSxcbiAgICAgIH0gYXMgSW5wdXRQcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBCYXNlIHBsdWdpbiBzaGFwZSB3aXRoIG5vLW9wIGRlZmF1bHRzIGZvciBmaWVsZHMgQ0RLIGRvZXNuJ3QgdXNlLiAqL1xuICBwcml2YXRlIHN0YXRpYyBiYXNlUGx1Z2luKCk6IFBsdWdpbiB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IFBMQUNFSE9MREVSX1BMVUdJTl9JRCxcbiAgICAgIG9yZ0lkOiBTWVNURU1fT1JHX0lELFxuICAgICAgY3JlYXRlZEJ5OiAnc3lzdGVtJyxcbiAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgdXBkYXRlZEJ5OiAnc3lzdGVtJyxcbiAgICAgIHVwZGF0ZWRBdDogbm93LFxuICAgICAgbmFtZTogJ2ZhbGxiYWNrJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxuICAgICAga2V5d29yZHM6IFtdLFxuICAgICAgY2F0ZWdvcnk6ICd1bmtub3duJyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBtZXRhZGF0YToge30sXG4gICAgICBwbHVnaW5UeXBlOiAnQ29kZUJ1aWxkU3RlcCcsXG4gICAgICBjb21wdXRlVHlwZTogJ1NNQUxMJyxcbiAgICAgIHRpbWVvdXQ6IG51bGwsXG4gICAgICBmYWlsdXJlQmVoYXZpb3I6ICdmYWlsJyxcbiAgICAgIHNlY3JldHM6IFtdLFxuICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogJ2Nkay5vdXQnLFxuICAgICAgZW52OiB7fSxcbiAgICAgIGJ1aWxkQXJnczoge30sXG4gICAgICBpbnN0YWxsQ29tbWFuZHM6IFtdLFxuICAgICAgY29tbWFuZHM6IFtdLFxuICAgICAgZG9ja2VyZmlsZTogbnVsbCxcbiAgICAgIGJ1aWxkVHlwZTogJ21ldGFkYXRhX29ubHknLFxuICAgICAgaW1hZ2VEaWdlc3Q6IG51bGwsXG4gICAgICBpbWFnZVNvdXJjZTogbnVsbCxcbiAgICAgIG93bmVySWQ6IG51bGwsXG4gICAgICBvd25lclR5cGU6IG51bGwsXG4gICAgICBsaWZlY3ljbGU6ICdwcm9kdWN0aW9uJyxcbiAgICAgIGNyaXRpY2FsaXR5OiBudWxsLFxuICAgICAgbGFiZWxzOiB7fSxcbiAgICAgIGxpbmtzOiBbXSxcbiAgICAgIHZpc2liaWxpdHk6ICdwdWJsaWMnLFxuICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgICAgZGVsZXRlZEF0OiBudWxsLFxuICAgICAgZGVsZXRlZEJ5OiBudWxsLFxuICAgICAgcHVyZ2VBZnRlcjogbnVsbCxcbiAgICAgIHF1b3RhUmVzZXRBdDogbnVsbCxcbiAgICAgIHN1bW1hcnk6IG51bGwsXG4gICAgICBkaXNwbGF5TmFtZTogbnVsbCxcbiAgICAgIGRvY3VtZW50YXRpb25Vcmw6IG51bGwsXG4gICAgICBtZXRhZGF0YVNvdXJjZXM6IHt9LFxuICAgICAgcmVxdWlyZWRNZXRhZGF0YTogW10sXG4gICAgICByZXF1aXJlZFZhcnM6IFtdLFxuICAgICAgbWV0YWRhdGFUeXBlczoge30sXG4gICAgICB2YXJzVHlwZXM6IHt9LFxuICAgICAgc21va2VUZXN0OiBudWxsLFxuICAgICAgbmV0d29ya0VncmVzczogW10sXG4gICAgICByZWFkbWVNZDogbnVsbCxcbiAgICAgIHJlYWRtZUh0bWw6IG51bGwsXG4gICAgICBsaWNlbnNlOiBudWxsLFxuICAgICAgY2hhbmdlbG9nOiBudWxsLFxuICAgICAgaG9tZXBhZ2VVcmw6IG51bGwsXG4gICAgICBzb3VyY2VVcmw6IG51bGwsXG4gICAgICBpY29uOiBudWxsLFxuICAgICAgdXBsb2FkZWRJY29uOiBudWxsLFxuICAgICAgdnVsbkNyaXRpY2FsOiBudWxsLFxuICAgICAgdnVsbkhpZ2g6IG51bGwsXG4gICAgICB2dWxuTWVkaXVtOiBudWxsLFxuICAgICAgdnVsbkxvdzogbnVsbCxcbiAgICAgIHZ1bG5Dcml0aWNhbEZpeGFibGU6IG51bGwsXG4gICAgICB2dWxuSGlnaEZpeGFibGU6IG51bGwsXG4gICAgICBzY2FubmVkQXQ6IG51bGwsXG4gICAgICBzY2FuU3VtbWFyeTogbnVsbCxcbiAgICAgIHNjYW5GbGFnZ2VkQXQ6IG51bGwsXG4gICAgICBzY2FuRmxhZzogbnVsbCxcbiAgICAgIHJ1bkFzUm9vdDogbnVsbCxcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICAgIGZyb3plbkF0OiBudWxsLFxuICAgICAgeWFua2VkQXQ6IG51bGwsXG4gICAgICB5YW5rUmVhc29uOiBudWxsLFxuICAgICAgZGVwcmVjYXRlZEF0OiBudWxsLFxuICAgICAgZGVwcmVjYXRpb25NZXNzYWdlOiBudWxsLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmFsbGJhY2sgZm9yIGEgcGx1Z2luIHdob3NlIGxvb2t1cCByZXR1cm5lZCBubyByZWNvcmQgKG5vdCBpbiB0aGUgcGxhdGZvcm1cbiAgICogY2F0YWxvZyBmb3IgdGhpcyBvcmcpIGFuZCBzbyBjb3VsZCBub3QgYmUgcHJlLXJlc29sdmVkIGF0IHN5bnRoLlxuICAgKlxuICAgKiBUaGlzIHN0ZXAgRkFJTFMgdGhlIGJ1aWxkIChleGl0IDEpIG9uIHB1cnBvc2UuIFRoZSBwcmV2aW91cyBiZWhhdmlvdXIg4oCUXG4gICAqIGBlY2hvIFwi4oCmXCIgJiYgZXhpdCAwYCDigJQgd2FzIGEgZmFsc2UgcG9zaXRpdmU6IGFuIHVucmVzb2x2ZWQgc2VjdXJpdHkvcXVhbGl0eVxuICAgKiBzdGVwIChkZXBlbmRlbmN5LWNoZWNrLCBzZW1ncmVwLCBzcG90YnVncywg4oCmKSByZXBvcnRlZCB0aGUgc3RhZ2UgZ3JlZW4gd2hpbGVcbiAgICogcnVubmluZyBub3RoaW5nLCBnaXZpbmcgZmFsc2UgYXNzdXJhbmNlIHRoYXQgc2NhbnMvYnVpbGRzIGhhZCBwYXNzZWQuIEFcbiAgICogcGx1Z2luIHN0ZXAgdGhhdCBjYW4ndCBydW4gaXRzIHBsdWdpbiBtdXN0IGdvIHJlZCwgY29uc2lzdGVudCB3aXRoXG4gICAqIGBiYXNlUGx1Z2luKCkuZmFpbHVyZUJlaGF2aW9yID09PSAnZmFpbCdgLiBUaGUgbWVzc2FnZSBpcyBhY3Rpb25hYmxlIHNvIHRoZVxuICAgKiBvcGVyYXRvciBrbm93cyB0aGUgY2F0YWxvZyBpcyBlbXB0eS9pbmNvbXBsZXRlLCBub3QgdGhhdCB0aGUgdG9vbCBjcmFzaGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBmYWxsYmFjaygpOiBQbHVnaW4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5QbHVnaW5Mb29rdXAuYmFzZVBsdWdpbigpLFxuICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgJ2VjaG8gXCJFUlJPUjogcGx1Z2luIGxvb2t1cCByZXR1cm5lZCBubyByZWNvcmQg4oCUIHRoaXMgcGx1Z2luIGlzIG5vdCBpbiB0aGUgcGxhdGZvcm0gY2F0YWxvZyBmb3IgdGhpcyBvcmcsIHNvIHRoZSBzdGVwIGNhbm5vdCBydW4uXCIgPiYyJyxcbiAgICAgICAgJ2VjaG8gXCJUaGlzIHN0ZXAgZmFpbHMgaW5zdGVhZCBvZiBwYXNzaW5nIGFzIGEgbm8tb3AgKGFuIHVucmVzb2x2ZWQgcGx1Z2luIHJlcG9ydGluZyBzdWNjZXNzIHdvdWxkIGJlIGEgZmFsc2UtcG9zaXRpdmUgZ3JlZW4pLlwiID4mMicsXG4gICAgICAgICdlY2hvIFwiRml4OiBsb2FkIHRoZSBwbHVnaW4gaW50byB0aGUgcGxhdGZvcm0gKGRlcGxveS9iaW4vbG9hZC1wbHVnaW5zLnNoKSwgdGhlbiByZS1ydW4gdGhlIHBpcGVsaW5lLlwiID4mMicsXG4gICAgICAgICdleGl0IDEnLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHBsdWdpbiB3aXRoIHBpcGVsaW5lLW1hbmFnZXIgY29tbWFuZHMuIENvbGQtc3RhcnQgYm9vdHN0cmFwIGZvclxuICAgKiB0aGUgc3ludGggc3RlcCB3aGVuIHByZS1yZXNvbHV0aW9uIGJ5IGBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoL2RlcGxveWBcbiAgICogZGlkbid0IHBvcHVsYXRlIGByZXNvbHZlZFBsdWdpbnNgIGZvciB0aGUgc3ludGggcGx1Z2luLiBSdW5zIG9uIHRoZVxuICAgKiBjb25maWd1cmVkIGBDT0RFQlVJTERfREVGQVVMVF9JTUFHRWAgKGRlZmF1bHQgYHBpcGVsaW5lLWJvb3RzdHJhcDoxLjBgKVxuICAgKiBhbmQgc2VsZi1ib290c3RyYXBzIHRoZSByZWFsIHN5bnRoIHZpYVxuICAgKiBgcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aCAtLWlkICR7UElQRUxJTkVfSUR9YC5cbiAgICpcbiAgICogTm8gYGluc3RhbGxDb21tYW5kc2A6IHRoZSBkZWZhdWx0IGltYWdlIGFscmVhZHkgaGFzIGBwaXBlbGluZS1tYW5hZ2VyYFxuICAgKiBiYWtlZCBpbiAodGhhdCdzIHRoZSB3aG9sZSBwb2ludCBvZiBgcGlwZWxpbmUtYm9vdHN0cmFwOjEuMGApLiBJZiB0aGVcbiAgICogb3BlcmF0b3IgcG9pbnRzIENPREVCVUlMRF9ERUZBVUxUX0lNQUdFIGF0IGFuIGltYWdlIGxhY2tpbmcgaXQgKGUuZy5cbiAgICogdmFuaWxsYSBhd3MvY29kZWJ1aWxkL3N0YW5kYXJkOjcuMCksIHRoaXMgc3RlcCBleGl0cyAxMjcg4oCUIGZpeCB0aGF0XG4gICAqIGJ5IHVzaW5nIGFuIGltYWdlIHdpdGggcGlwZWxpbmUtbWFuYWdlciByYXRoZXIgdGhhbiBwYXBlcmluZyBvdmVyIGl0XG4gICAqIHdpdGggYSBwZXItYnVpbGQgYG5wbSBpbnN0YWxsIC1nYC5cbiAgICpcbiAgICogVExTIGlzIFZFUklGSUVEIGJ5IGRlZmF1bHQ6IHRoaXMgbG9va3VwIHJldHVybnMgdGhlIGltYWdlIGRpZ2VzdHMgZXZlcnlcbiAgICogc3RlcCBpcyBwaW5uZWQgdG8sIHNvIGFuIHVudmVyaWZpZWQgY29ubmVjdGlvbiB3b3VsZCBsZXQgYSBNSVRNIGNob29zZSB3aGF0XG4gICAqIHJ1bnMuIEEgcHJpdmF0ZS1DQSBwbGF0Zm9ybSBpcyB0cnVzdGVkIHRocm91Z2ggYFBMQVRGT1JNX0NBX0JVTkRMRWAsIHdoaWNoXG4gICAqIHRoZSBzeW50aCBwcm9wYWdhdGVzIGludG8gZXZlcnkgQ29kZUJ1aWxkIHN0ZXAuIE9ubHkgYW4gZXhwbGljaXRcbiAgICogYFBMQVRGT1JNX1RMU19WRVJJRlk9ZmFsc2VgIGF0IHN5bnRoIHRpbWUgKGEgZGV2IHBsYXRmb3JtIG9uIGEgc2VsZi1zaWduZWRcbiAgICogY2VydGlmaWNhdGUpIGFkZHMgYC0tbm8tdmVyaWZ5LXNzbGAg4oCUIGFuZCB0aGUgQ0xJIHJlZnVzZXMgdGhhdCBpblxuICAgKiBwcm9kdWN0aW9uLiBTZWUgY29yZS9wbGF0Zm9ybS10bHMudHMuXG4gICAqL1xuICBwdWJsaWMgYm9vdHN0cmFwKCk6IFBsdWdpbiB7XG4gICAgY29uc3QgdGxzRmxhZyA9IHBsYXRmb3JtVGxzVmVyaWZ5KCkgPyAnJyA6ICcgLS1uby12ZXJpZnktc3NsJztcbiAgICByZXR1cm4ge1xuICAgICAgLi4uUGx1Z2luTG9va3VwLmJhc2VQbHVnaW4oKSxcbiAgICAgIG5hbWU6ICdjZGstc3ludGgnLFxuICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogJ2Nkay5vdXQnLFxuICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgYHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGggLS1pZCBcXCR7UElQRUxJTkVfSUR9IC0tc3RvcmUtdG9rZW5zIC0tcXVpZXQgLS1uby1ub3RpY2VzJHt0bHNGbGFnfWAsXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvb2t1cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3BsdWdpbi1sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTFDLDJFQUEyRTtBQUMzRSxpQ0FBaUM7QUFDakMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBNEMzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxTQUFTO0lBQ3hCLFNBQVMsQ0FBVztJQUNwQixTQUFTLENBQVc7SUFDcEIsWUFBWSxDQUFTO0lBQ3JCLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQVc7SUFDbkIsV0FBVyxDQUFTO0lBQ3BCLGFBQWEsQ0FBZTtJQUM1Qiw2QkFBNkIsQ0FBVTtJQUN2QyxNQUFNLENBQVU7SUFDaEIsV0FBVyxDQUFVO0lBQ3JCLGdCQUFnQixDQUEwQjtJQUUzRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQy9ELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsNEJBQTRCLENBQUM7UUFDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFFOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbkQsc0JBQXNCO1FBQ3RCLG9FQUFvRTtRQUNwRSxxRUFBcUU7UUFDckUsdUVBQXVFO1FBQ3ZFLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsZ0RBQWdEO1FBQ2hELEVBQUU7UUFDRixxRUFBcUU7UUFDckUsdUVBQXVFO1FBQ3ZFLG1FQUFtRTtRQUNuRSxpRUFBaUU7UUFDakUscUVBQXFFO1FBQ3JFLE1BQU0sWUFBWSxHQUFHLGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDeEMsSUFBSSxFQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUNwQyxZQUFZLENBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDaEYsY0FBYztZQUNkLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxHQUFHLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsTUFBOEIsRUFBRSxPQUFnQjtRQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLDJFQUEyRTtRQUMzRSxtRUFBbUU7UUFDbkUseUVBQXlFO1FBQ3pFLDREQUE0RDtRQUM1RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUF5RCxDQUFDO1FBQzlHLHlFQUF5RTtRQUN6RSwwRUFBMEU7UUFDMUUsdUVBQXVFO1FBQ3ZFLGlGQUFpRjtRQUNqRiwwQ0FBMEM7UUFDMUMscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSxhQUFhO1FBQ2IsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLE1BQXdDLEVBQUUsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkYsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLGlCQUFpQixRQUFRLGtCQUFrQixXQUFXLENBQUMsSUFBSSxXQUFXLFVBQVUsS0FBSztrQkFDbkYsMENBQTBDLENBQzdDLENBQUM7UUFDSixDQUFDO1FBQ0QsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxZQUFZO1FBQ1osSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRixNQUFNLElBQUksS0FBSyxDQUNiLGlCQUFpQixRQUFRLGlCQUFpQixXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEdBQUcsV0FBVyxDQUFDLElBQUksSUFBSTtrQkFDNUksT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLFVBQVUsNENBQTRDLENBQ25GLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsS0FBSyxDQUFDLElBQUkseUJBQXlCLFFBQVEsOEJBQThCLENBQUMsQ0FBQztZQUNoRyxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5ELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSx5SEFBeUgsQ0FBQyxDQUFDO1lBQzFKLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNyRixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUVELE9BQU8sSUFBYyxDQUFDO1FBQ3hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxRQUFRLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxJQUFJLFdBQVcsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztRQUN4RyxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFcEMsNEVBQTRFO1FBQzVFLGNBQWM7UUFDZCxFQUFFO1FBQ0YsMEVBQTBFO1FBQzFFLDZEQUE2RDtRQUM3RCxnRUFBZ0U7UUFDaEUsc0VBQXNFO1FBQ3RFLHdFQUF3RTtRQUN4RSxFQUFFO1FBQ0YscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUsNkVBQTZFO1FBQzdFLE1BQU0sRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDN0QsT0FBTyxFQUFFLGVBQWU7WUFDeEIsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLDZCQUE2QjtZQUNoRSxXQUFXLEVBQUU7Z0JBQ1gsb0JBQW9CLEVBQUUsVUFBVTtnQkFDaEMsMEVBQTBFO2dCQUMxRSxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJO29CQUMxQiw0QkFBNEIsRUFBRSxHQUFHO2lCQUNsQyxDQUFDO2dCQUNGLDZFQUE2RTtnQkFDN0UsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDdkQsdUVBQXVFO2dCQUN2RSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDM0Q7U0FDRixDQUFDLENBQUM7UUFFSCxtRUFBbUU7UUFDbkUsaUZBQWlGO1FBQ2pGLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUM7WUFDckMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO1lBQzFDLFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxVQUFVLElBQUksQ0FBQztTQUNqRSxDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxTQUFTLENBQUMsTUFBOEI7UUFDOUMsTUFBTSxHQUFHLEdBQWtCLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNsRixPQUFPO1lBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RELGlGQUFpRjtZQUNqRixLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDO1lBQy9CLGtFQUFrRTtZQUNsRSxxRUFBcUU7WUFDckUsd0RBQXdEO1lBQ3hELE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBNkMsRUFBRSxDQUFpQjtZQUNuSixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQixDQUFDLEtBQW9CLEVBQUUsT0FBZ0I7UUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDekMsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxVQUFVLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNsQjtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0VBQXdFO0lBQ2hFLE1BQU0sQ0FBQyxVQUFVO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTztZQUNMLEVBQUUsRUFBRSxxQkFBcUI7WUFDekIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLEdBQUc7WUFDZCxTQUFTLEVBQUUsUUFBUTtZQUNuQixTQUFTLEVBQUUsR0FBRztZQUNkLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLFNBQVM7WUFDbkIsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsZUFBZTtZQUMzQixXQUFXLEVBQUUsT0FBTztZQUNwQixPQUFPLEVBQUUsSUFBSTtZQUNiLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsc0JBQXNCLEVBQUUsU0FBUztZQUNqQyxHQUFHLEVBQUUsRUFBRTtZQUNQLFNBQVMsRUFBRSxFQUFFO1lBQ2IsZUFBZSxFQUFFLEVBQUU7WUFDbkIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsSUFBSTtZQUNoQixTQUFTLEVBQUUsZUFBZTtZQUMxQixXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLFlBQVk7WUFDdkIsV0FBVyxFQUFFLElBQUk7WUFDakIsTUFBTSxFQUFFLEVBQUU7WUFDVixLQUFLLEVBQUUsRUFBRTtZQUNULFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsV0FBVyxFQUFFLElBQUk7WUFDakIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsRUFBRTtZQUNqQixRQUFRLEVBQUUsSUFBSTtZQUNkLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSTtZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJO1lBQ1YsWUFBWSxFQUFFLElBQUk7WUFDbEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSTtZQUNiLG1CQUFtQixFQUFFLElBQUk7WUFDekIsZUFBZSxFQUFFLElBQUk7WUFDckIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsSUFBSTtZQUNuQixRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsa0JBQWtCLEVBQUUsSUFBSTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssUUFBUTtRQUNkLE9BQU87WUFDTCxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLHVJQUF1STtnQkFDdkksb0lBQW9JO2dCQUNwSSwyR0FBMkc7Z0JBQzNHLFFBQVE7YUFDVDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQkc7SUFDSSxTQUFTO1FBQ2QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUM5RCxPQUFPO1lBQ0wsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFO1lBQzVCLElBQUksRUFBRSxXQUFXO1lBQ2pCLHNCQUFzQixFQUFFLFNBQVM7WUFDakMsUUFBUSxFQUFFO2dCQUNSLDJGQUEyRixPQUFPLEVBQUU7YUFDckc7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCBTWVNURU1fT1JHX0lEIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5GaWx0ZXIsIFBsdWdpbiB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGEnO1xuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIFRva2VuLCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgRWZmZWN0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBSdW50aW1lLCBBcmNoaXRlY3R1cmUsIEZ1bmN0aW9uLCBDb2RlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vc3RlcC10eXBlcy5qcyc7XG5pbXBvcnQgeyBDb25maWcsIENvcmVDb25zdGFudHMgfSBmcm9tICcuLi9jb25maWcvYXBwLWNvbmZpZy5qcyc7XG5pbXBvcnQgeyBsYW1iZGFSdW50aW1lIH0gZnJvbSAnLi4vY29uZmlnL2F3cy1jb25maWctY2RrLmpzJztcbmltcG9ydCB7IFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29yZS9pZC1nZW5lcmF0b3IuanMnO1xuaW1wb3J0IHsgUExBVEZPUk1fQ0FfQlVORExFX0VOViwgcGxhdGZvcm1DYUJ1bmRsZSwgcGxhdGZvcm1UbHNWZXJpZnkgfSBmcm9tICcuLi9jb3JlL3BsYXRmb3JtLXRscy5qcyc7XG5pbXBvcnQgeyBwbHVnaW5BcnRpZmFjdEFsaWFzLCBwbHVnaW5Mb29rdXBGaWx0ZXIgfSBmcm9tICcuLi9jb3JlL3BsdWdpbi1jb250cmFjdC5qcyc7XG5pbXBvcnQgeyBQTEFDRUhPTERFUl9QTFVHSU5fSUQgfSBmcm9tICcuLi9jb3JlL3N0ZXAtbWFuaWZlc3QuanMnO1xuXG5jb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIoJ3BsdWdpbi1sb29rdXAnKTtcblxuLy8gRVNNLXNhZmUgbW9kdWxlIGRpcmVjdG9yeSAodGhlIHBhY2thZ2UgaXMgYHR5cGU6IG1vZHVsZWA7IGBfX2Rpcm5hbWVgIGlzXG4vLyBub3QgZGVmaW5lZCB1bmRlciBFUyBtb2R1bGVzKS5cbmNvbnN0IE1PRFVMRV9ESVIgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmludGVyZmFjZSBJbnB1dFByb3BzIHtcbiAgcmVhZG9ubHkgYmFzZVVSTDogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5GaWx0ZXI6IFBsdWdpbkZpbHRlcjtcbiAgLyoqIFRoZSBzdGVwJ3MgbGFiZWwgKGBwbHVnaW5TdGVwTGFiZWxgKSDigJQgc2VudCBhcyB0aGUgbG9va3VwIGBjb250ZXh0LnN0ZXBLZXlzYCAoY29udHJhY3QgQzEpLiAqL1xuICByZWFkb25seSBzdGVwS2V5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIFBsdWdpbkxvb2t1cCBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5Mb29rdXBQcm9wcyB7XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBwcm9qZWN0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsYXRmb3JtVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcbiAgLyoqIE9yZ2FuaXphdGlvbiBJRCBmb3IgcmVzb2x2aW5nIHBlci1vcmcgc2VjcmV0cyBmcm9tIFNlY3JldHMgTWFuYWdlciAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBsYXRmb3JtIHBpcGVsaW5lIGlkLiBTZW50IGFzIGxvb2t1cCBgY29udGV4dGAgc28gdGhlIHBsdWdpbiBzZXJ2aWNlIHJlY29yZHNcbiAgICogdGhlIHdhcm5pbmdzIGl0IHJldHVybnMgYWdhaW5zdCBlYWNoIChwaXBlbGluZSwgc3RlcCk7IG9taXR0ZWQgd2hlbiB1bmtub3duLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcnVudGltZT86IFJ1bnRpbWU7XG4gIC8qKiBMYW1iZGEgdGltZW91dCAoZGVmYXVsdDogMzBzKSAqL1xuICByZWFkb25seSB0aW1lb3V0PzogRHVyYXRpb247XG4gIC8qKiBMYW1iZGEgbWVtb3J5IGluIE1CIChkZWZhdWx0OiA1MTIpICovXG4gIHJlYWRvbmx5IG1lbW9yeVNpemU/OiBudW1iZXI7XG4gIC8qKiBMYW1iZGEgQ1BVIGFyY2hpdGVjdHVyZSAoZGVmYXVsdDogQVJNXzY0KSAqL1xuICByZWFkb25seSBhcmNoaXRlY3R1cmU/OiBBcmNoaXRlY3R1cmU7XG4gIC8qKiBSZXNlcnZlZCBjb25jdXJyZW50IGV4ZWN1dGlvbnMgZm9yIHRoZSBsb29rdXAgTGFtYmRhIChkZWZhdWx0OiAzMCkgKi9cbiAgcmVhZG9ubHkgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBsdWdpbnMgcHJlLXJlc29sdmVkIGJ5IGBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoYCBmcm9tIHRoZSBwbGF0Zm9ybSBBUEkuXG4gICAqIEtleWVkIGJ5IGBhbGlhcyB8fCBuYW1lYCAobWF0Y2hlcyB0aGUgY29uc3RydWN0J3Mgbm9ybWFsaXplKCkgb3V0cHV0KS5cbiAgICogV2hlbiBhIGxvb2t1cCBoaXRzIHRoaXMgbWFwLCBgcGx1Z2luKClgIHJldHVybnMgdGhlIHJlc29sdmVkIFBsdWdpblxuICAgKiBkaXJlY3RseSDigJQgbm8gY3VzdG9tIHJlc291cmNlIGlzIGNyZWF0ZWQuIFRoaXMgaXMgd2hhdCBtYWtlcyB0aGVcbiAgICogbmFtZSwgdmVyc2lvbiwgY29tbWFuZHMsIGVudiwgZXRjLiBhdmFpbGFibGUgYXQgc3ludGggdGltZSBzbyB0aGUgcmVzdWx0aW5nXG4gICAqIENGTiB0ZW1wbGF0ZSBzaGlwcyB3aXRoIHRoZSByZWFsIHZhbHVlcyBiYWtlZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVkUGx1Z2lucz86IFJlY29yZDxzdHJpbmcsIFBsdWdpbj47XG59XG5cbi8qKlxuICogQ0RLIENvbnN0cnVjdCByZXNwb25zaWJsZSBmb3IgbG9va2luZyB1cCBwbHVnaW4gY29uZmlndXJhdGlvbnMgZnJvbSBhbiBleHRlcm5hbCBwbGF0Zm9ybVxuICogdXNpbmcgQVdTIENsb3VkRm9ybWF0aW9uIEN1c3RvbSBSZXNvdXJjZXMgYmFja2VkIGJ5IGEgTGFtYmRhIGZ1bmN0aW9uLlxuICpcbiAqIFRoaXMgY29uc3RydWN0IGNyZWF0ZXM6XG4gKiAtIEEgTGFtYmRhIGZ1bmN0aW9uIChwbHVnaW4tbG9va3VwLWhhbmRsZXIpIHRoYXQgZmV0Y2hlcyBwbHVnaW4gY29uZmlnc1xuICogLSBBIENsb3VkV2F0Y2ggTG9nIEdyb3VwIGZvciB0aGUgTGFtYmRhXG4gKiAtIEEgQ3VzdG9tIFJlc291cmNlIFByb3ZpZGVyIHRoYXQgaW52b2tlcyB0aGUgTGFtYmRhXG4gKiAtIEFuIElBTSBwb2xpY3kgZ3JhbnRpbmcgdGhlIExhbWJkYSBhY2Nlc3MgdG8gdGhlIGNyZWRlbnRpYWxzIHNlY3JldFxuICpcbiAqICMjIFByZXJlcXVpc2l0ZXNcbiAqXG4gKiBCZWZvcmUgZGVwbG95aW5nLCBzdG9yZSBhIEpXVCB0b2tlbiBpbiBTZWNyZXRzIE1hbmFnZXI6XG4gKiBgYGBzaFxuICogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLWRheXMgMzAgLS1yZWdpb24gPHJlZ2lvbj5cbiAqIGBgYFxuICpcbiAqIFRoZSBMYW1iZGEgcmVzb2x2ZXMgdGhlIHNlY3JldCBieSBuYW1lIGF0IHJ1bnRpbWU6XG4gKiBge1NFQ1JFVFNfUEFUSF9QUkVGSVh9L3tvcmdJZH0vcGxhdGZvcm1gXG4gKlxuICogQHNlZSBoYW5kbGVycy9wbHVnaW4tbG9va3VwLWhhbmRsZXIudHMgZm9yIHRoZSBMYW1iZGEgaW1wbGVtZW50YXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbkxvb2t1cCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VuaXF1ZUlkOiBVbmlxdWVJZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvdmlkZXI6IFByb3ZpZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybVVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ydW50aW1lOiBSdW50aW1lO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aW1lb3V0OiBEdXJhdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVtb3J5U2l6ZTogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucz86IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3JnSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BpcGVsaW5lSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc29sdmVkUGx1Z2lucz86IFJlY29yZDxzdHJpbmcsIFBsdWdpbj47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBsdWdpbkxvb2t1cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghcHJvcHMub3JnYW5pemF0aW9uIHx8ICFwcm9wcy5wcm9qZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JvdGggb3JnYW5pemF0aW9uIGFuZCBwcm9qZWN0IGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl91bmlxdWVJZCA9IHByb3BzLnVuaXF1ZUlkO1xuICAgIHRoaXMuX3BsYXRmb3JtVXJsID0gcHJvcHMucGxhdGZvcm1Vcmw7XG4gICAgdGhpcy5fb3JnSWQgPSBwcm9wcy5vcmdJZDtcbiAgICB0aGlzLl9waXBlbGluZUlkID0gcHJvcHMucGlwZWxpbmVJZDtcbiAgICB0aGlzLl9ydW50aW1lID0gcHJvcHMucnVudGltZSA/PyBsYW1iZGFSdW50aW1lKCdub2RlanMyNi54Jyk7XG4gICAgdGhpcy5fdGltZW91dCA9IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24uc2Vjb25kcygzMCk7XG4gICAgdGhpcy5fbWVtb3J5U2l6ZSA9IHByb3BzLm1lbW9yeVNpemUgPz8gQ29uZmlnLmdldCgnYXdzJykubGFtYmRhLm1lbW9yeVNpemU7XG4gICAgdGhpcy5fYXJjaGl0ZWN0dXJlID0gcHJvcHMuYXJjaGl0ZWN0dXJlID8/IEFyY2hpdGVjdHVyZS5BUk1fNjQ7XG4gICAgdGhpcy5fcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucyA9IHByb3BzLnJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM7XG4gICAgdGhpcy5fcmVzb2x2ZWRQbHVnaW5zID0gcHJvcHMucmVzb2x2ZWRQbHVnaW5zO1xuXG4gICAgY29uc3Qgb25FdmVudEhhbmRsZXIgPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uKCk7XG5cbiAgICAvLyBMb2ctZ3JvdXAgc3RyYXRlZ3k6XG4gICAgLy8gICBQcmV2aW91cyBjb2RlIGNyZWF0ZWQgYW4gYEFXUzo6TG9nczo6TG9nR3JvdXBgIHJlc291cmNlIHdpdGggYW5cbiAgICAvLyAgIEVYUExJQ0lUIG5hbWUgKGAvYXdzL2xhbWJkYS9wbHVnaW4tbG9va3VwLU5gKS4gVGhhdCBicmVha3MgZXZlcnlcbiAgICAvLyAgIHJlLWRlcGxveSBhZnRlciBhIHJvbGxlZC1iYWNrIHN0YWNrOiBBV1MgYXV0by1jcmVhdGVzIHRoZSBncm91cCBvblxuICAgIC8vICAgZmlyc3QgTGFtYmRhIGludm9jYXRpb24sIHRoZSByb2xsYmFjayBsZWF2ZXMgaXQgYXMgYW4gb3JwaGFuLCBhbmRcbiAgICAvLyAgIHRoZSBuZXh0IENESyBydW4gZmFpbHMgd2l0aCBcIlJlc291cmNlIC4uLiBhbHJlYWR5IGV4aXN0c1wiIGJlY2F1c2VcbiAgICAvLyAgIHRoZSBleHBsaWNpdCBuYW1lIGNvbGxpZGVzIHdpdGggdGhlIG9ycGhhbi5cbiAgICAvL1xuICAgIC8vICAgRml4OiB1c2UgYExvZ0dyb3VwLmZyb21Mb2dHcm91cE5hbWUoKWAgdG8gYWRvcHQtb3ItcGFzcy10aHJvdWdoLlxuICAgIC8vICAgSWYgdGhlIGdyb3VwIGV4aXN0cywgQ0RLIHJlZmVyZW5jZXMgaXQgd2l0aG91dCB0cnlpbmcgdG8gcmVjcmVhdGUuXG4gICAgLy8gICBJZiBpdCBkb2Vzbid0LCBBV1MgTGFtYmRhIGF1dG8tY3JlYXRlcyBpdCBvbiBmaXJzdCBpbnZvY2F0aW9uLlxuICAgIC8vICAgUmV0ZW50aW9uIGlzIHRoZW4gc2V0IHZpYSBhIHNlcGFyYXRlIHJldGVudGlvbi1wb2xpY3kgY3VzdG9tXG4gICAgLy8gICByZXNvdXJjZSB3aGljaCBpcyBpZGVtcG90ZW50IChzYWZlIHRvIGFwcGx5IHRvIGV4aXN0aW5nIGdyb3VwcykuXG4gICAgY29uc3QgbG9nR3JvdXBOYW1lID0gYC9hd3MvbGFtYmRhLyR7dGhpcy5fdW5pcXVlSWQuZ2VuZXJhdGUoJ3BsdWdpbjpsb29rdXAnKS5yZXBsYWNlKC86L2csICctJyl9YDtcbiAgICBjb25zdCBsb2dHcm91cCA9IExvZ0dyb3VwLmZyb21Mb2dHcm91cE5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5fdW5pcXVlSWQuZ2VuZXJhdGUoJ2xvZzpncm91cCcpLFxuICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICk7XG5cbiAgICB0aGlzLl9wcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCB0aGlzLl91bmlxdWVJZC5nZW5lcmF0ZSgncmVzb3VyY2U6cHJvdmlkZXInKSwge1xuICAgICAgb25FdmVudEhhbmRsZXIsXG4gICAgICBsb2dHcm91cCxcbiAgICB9KTtcblxuICAgIGxvZy5kZWJ1ZyhgUGx1Z2luTG9va3VwIGluaXRpYWxpemVkIGZvciAke3Byb3BzLm9yZ2FuaXphdGlvbn0vJHtwcm9wcy5wcm9qZWN0fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2tzIHVwIGFuZCByZXNvbHZlcyBwbHVnaW4gY29uZmlndXJhdGlvbiB1c2luZyBlaXRoZXIgYSBzaW1wbGUgbmFtZSBvciBmdWxsIFBsdWdpbk9wdGlvbnMgb2JqZWN0XG4gICAqIER1cmluZyBzeW50aGVzaXMsIGlmIHRoZSB2YWx1ZSBpcyB1bnJlc29sdmVkICh0b2tlbiksIHJldHVybnMgZmFsbGJhY2sgcGx1Z2luXG4gICAqIER1cmluZyBkZXBsb3ltZW50LCBhdHRlbXB0cyB0byBwYXJzZSB0aGUgYWN0dWFsIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBjdXN0b20gcmVzb3VyY2VcbiAgICogQHBhcmFtIHBsdWdpbiAtIFBsdWdpbiBuYW1lIChzdHJpbmcpIG9yIGNvbXBsZXRlIFBsdWdpbk9wdGlvbnMgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gc3RlcEtleSAtIFRoZSBzdGVwJ3MgbGFiZWwgKGBwbHVnaW5TdGVwTGFiZWxgOiBgc3ludGhgIG9yXG4gICAqICAgYDxzdGFnZT4vPGFsaWFzID8/IG5hbWU+YCkuIFRoZSBkZXBsb3ktdGltZSBsb29rdXAgcmVwb3J0cyBpdHMgd2FybmluZ3NcbiAgICogICBhZ2FpbnN0IGl0LCBzbyBpdCBtdXN0IG1hdGNoIHRoZSBzdGVwIG1hbmlmZXN0J3MgYW5kIHRoZSBzZWN1cml0eSB2aWV3J3Mga2V5LlxuICAgKiBAcmV0dXJucyBSZXNvbHZlZCBQbHVnaW4gb2JqZWN0IG9yIGZhbGxiYWNrIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHBsdWdpbihwbHVnaW46IHN0cmluZyB8IFBsdWdpbk9wdGlvbnMsIHN0ZXBLZXk/OiBzdHJpbmcpOiBQbHVnaW4ge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5ub3JtYWxpemUocGx1Z2luKTtcblxuICAgIC8vIFByZS1yZXNvbHZlZCBieSBgcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aGAgZnJvbSB0aGUgcGxhdGZvcm0gQVBJLlxuICAgIC8vIFNraXAgdGhlIGN1c3RvbSByZXNvdXJjZSBlbnRpcmVseSDigJQgd2UgYWxyZWFkeSBrbm93IHRoZSBwbHVnaW4nc1xuICAgIC8vIG5hbWUsIHZlcnNpb24sIGNvbW1hbmRzLCBlbnYsIGV0Yy4gYXQgc3ludGggdGltZSwgc28gdGhlIHJlc3VsdGluZyBDRk5cbiAgICAvLyB0ZW1wbGF0ZSBjYW4gc2hpcCB3aXRoIHRoZSByZWFsIENvZGVCdWlsZCBpbWFnZSBiYWtlZCBpbi5cbiAgICBjb25zdCBjYWNoZUtleSA9IHByb3BzLmFsaWFzIHx8IHByb3BzLm5hbWU7XG4gICAgY29uc3QgcHJlUmVzb2x2ZWQgPSB0aGlzLl9yZXNvbHZlZFBsdWdpbnM/LltjYWNoZUtleV0gYXMgKFBsdWdpbiAmIHsgcHVibGlzaGVyPzogc3RyaW5nIHwgbnVsbCB9KSB8IHVuZGVmaW5lZDtcbiAgICAvLyBUaGUgbWFwIGlzIGtleWVkIGJ5IEFMSUFTLCBzbyBjaGVjayBpdCBhY3R1YWxseSBob2xkcyBUSElTIHBsdWdpbi4gVHdvXG4gICAgLy8gc3RlcHMgc2hhcmluZyBhbiBhbGlhcyBhY3Jvc3MgZGlmZmVyZW50IHBsdWdpbnMgd291bGQgb3RoZXJ3aXNlIGdldCB0aGVcbiAgICAvLyBmaXJzdCBvbmUncyByZWNvcmQgYmFjayDigJQgdGhlIHNlY29uZCBzdGVwIHNpbGVudGx5IHJ1bm5pbmcgdGhlIHdyb25nXG4gICAgLy8gaW1hZ2UgYW5kIGNvbW1hbmRzLiBUaGUgQ0xJIHJlZnVzZXMgc3VjaCBhIHBpcGVsaW5lIHRvbzsgdGhpcyBjb3ZlcnMgYW55IG90aGVyXG4gICAgLy8gY2FsbGVyIHRoYXQgc3VwcGxpZXMgYHJlc29sdmVkUGx1Z2luc2AuXG4gICAgLy8gQ29tcGFyZSBhZ2FpbnN0IHRoZSBuYW1lIHRoZSBsb29rdXAgYWN0dWFsbHkgVEFSR0VURUQ6IGFuIGV4cGxpY2l0XG4gICAgLy8gYGZpbHRlci5uYW1lYCBvdmVycmlkZXMgdGhlIHJlZidzIGBuYW1lYCBieSBkZXNpZ24sIGFuZCB0aGF0IGlzIG5vdCBhXG4gICAgLy8gY29sbGlzaW9uLlxuICAgIGNvbnN0IHRhcmdldE5hbWUgPSAocHJvcHMuZmlsdGVyIGFzIHsgbmFtZT86IHN0cmluZyB9IHwgdW5kZWZpbmVkKT8ubmFtZSA/PyBwcm9wcy5uYW1lO1xuICAgIGlmIChwcmVSZXNvbHZlZCAmJiBwcmVSZXNvbHZlZC5uYW1lICE9PSB0YXJnZXROYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQbHVnaW4gYWxpYXMgXCIke2NhY2hlS2V5fVwiIHJlc29sdmVzIHRvIFwiJHtwcmVSZXNvbHZlZC5uYW1lfVwiLCBub3QgXCIke3RhcmdldE5hbWV9XCIuIGBcbiAgICAgICAgKyAnRWFjaCBhbGlhcyBtdXN0IG5hbWUgZXhhY3RseSBvbmUgcGx1Z2luLicsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBBIHF1YWxpZmllZCByZWZlcmVuY2UgbXVzdCBoYXZlIHJlc29sdmVkIHRvIFRIQVQgcHVibGlzaGVyJ3MgbGlzdGluZ1xuICAgIC8vIChhbiB1bnF1YWxpZmllZCBvbmUgbWF5IHJlc29sdmUgdG8gdGhlIG9yZydzIG93biBwbHVnaW4gb3IgdGhlIE9mZmljaWFsXG4gICAgLy8gbGlzdGluZykuXG4gICAgaWYgKHByZVJlc29sdmVkICYmIHByb3BzLnB1Ymxpc2hlciAmJiBwcmVSZXNvbHZlZC5wdWJsaXNoZXIgIT09IHByb3BzLnB1Ymxpc2hlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUGx1Z2luIGFsaWFzIFwiJHtjYWNoZUtleX1cIiByZXNvbHZlcyB0byAke3ByZVJlc29sdmVkLnB1Ymxpc2hlciA/IGAke3ByZVJlc29sdmVkLnB1Ymxpc2hlcn0vYCA6ICd5b3VyIG9yZ2FuaXphdGlvblxcJ3MgJ30ke3ByZVJlc29sdmVkLm5hbWV9LCBgXG4gICAgICAgICsgYG5vdCAke3Byb3BzLnB1Ymxpc2hlcn0vJHt0YXJnZXROYW1lfS4gRWFjaCBhbGlhcyBtdXN0IG5hbWUgZXhhY3RseSBvbmUgcGx1Z2luLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJlUmVzb2x2ZWQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUGx1Z2luIFwiJHtwcm9wcy5uYW1lfVwiIHByZS1yZXNvbHZlZCAoYWxpYXM9JHtjYWNoZUtleX0pIOKAlCBza2lwcGluZyBjdXN0b20gcmVzb3VyY2VgKTtcbiAgICAgIHJldHVybiBwcmVSZXNvbHZlZDtcbiAgICB9XG5cbiAgICBjb25zdCBjdXN0b20gPSB0aGlzLmNyZWF0ZUN1c3RvbVJlc291cmNlKHByb3BzLCBzdGVwS2V5KTtcbiAgICBjb25zdCBlbmNvZGVkID0gY3VzdG9tLmdldEF0dFN0cmluZygnUmVzdWx0VmFsdWUnKTtcblxuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZW5jb2RlZCkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUGx1Z2luIFwiJHtwcm9wcy5uYW1lfVwiIHZhbHVlIGlzIHVucmVzb2x2ZWQgKHRva2VuKSBkdXJpbmcgc3ludGhlc2lzIOKAlCB1c2luZyBmYWxsYmFjay4gVGhlIGFjdHVhbCBwbHVnaW4gd2lsbCBiZSByZXNvbHZlZCBhdCBkZXBsb3ltZW50IHRpbWUuYCk7XG4gICAgICByZXR1cm4gdGhpcy5mYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkID0gQnVmZmVyLmZyb20oZW5jb2RlZCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGVjb2RlZCk7XG5cbiAgICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgfHwgIWRhdGEubmFtZSB8fCAhQXJyYXkuaXNBcnJheShkYXRhLmNvbW1hbmRzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGx1Z2luIHJlc3BvbnNlOiBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcyAobmFtZSwgY29tbWFuZHMpJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhIGFzIFBsdWdpbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJztcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlIHBsdWdpbiBcIiR7cHJvcHMubmFtZX1cIiBkYXRhOiAke2Vycm9yTXNnfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBzZXJ2ZXMgYXMgdGhlIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZXIuXG4gICAqXG4gICAqIEpXVCB0b2tlbiBpcyBzdG9yZWQgaW4gYSBwcmUtZXhpc3RpbmcgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBhdFxuICAgKiBge1NFQ1JFVFNfUEFUSF9QUkVGSVh9L3tvcmdJZH0vcGxhdGZvcm1gLiBUaGUgTGFtYmRhIHJlc29sdmVzIHRoZVxuICAgKiBzZWNyZXQgYnkgbmFtZSBhdCBydW50aW1lIHVzaW5nIGBDb3JlQ29uc3RhbnRzLlNFQ1JFVFNfUEFUSF9QUkVGSVhgLlxuICAgKlxuICAgKiBDcmVhdGUgdGhlIHNlY3JldCBiZWZvcmUgZGVwbG95aW5nIHdpdGg6XG4gICAqICAgcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLWRheXMgMzAgLS1yZWdpb24gPHJlZ2lvbj5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlTGFtYmRhRnVuY3Rpb24oKTogRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5fb3JnSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3JnSWQgaXMgcmVxdWlyZWQgZm9yIFBsdWdpbkxvb2t1cCDigJQgbmVlZGVkIHRvIHJlc29sdmUgdGhlIHBlci1vcmcgcGxhdGZvcm0gc2VjcmV0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHNlY3JldE5hbWUgPSBDb3JlQ29uc3RhbnRzLnNlY3JldFBhdGgodGhpcy5fb3JnSWQsICdwbGF0Zm9ybScpO1xuICAgIGNvbnN0IGNhQnVuZGxlID0gcGxhdGZvcm1DYUJ1bmRsZSgpO1xuXG4gICAgLy8gUFJFQlVJTFQgYXQgcmVsZWFzZSAoc2VlIGAucHJvamVucmMudHNgLCBwaXBlbGluZS1jb3JlIHBvc3QtY29tcGlsZSksIG5vdFxuICAgIC8vIGJ1aWx0IGhlcmUuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBhIGBOb2RlanNGdW5jdGlvbmAsIHdoaWNoIGJ1bmRsZXMgd2l0aCBlc2J1aWxkIGR1cmluZyBzeW50aCBvblxuICAgIC8vIHdoaWNoZXZlciBtYWNoaW5lIHJ1bnMgdGhlIGRlcGxveSBhbmQgdGhlcmVmb3JlIHJlcXVpcmVzIGFcbiAgICAvLyBgZGVwc0xvY2tGaWxlUGF0aGAuIFRoZSBzdHViIGxvY2sgdGhhdCBzYXRpc2ZpZWQgaXQgd2FzIG5hbWVkXG4gICAgLy8gYHBucG0tbG9jay55YW1sYCwgYW5kIGBwbnBtIHBhY2tgIHN0cmlwcyBmaWxlcyBieSB0aGF0IG5hbWUg4oCUIHNvIG5vXG4gICAgLy8gcHVibGlzaGVkIGNvcHkgb2YgdGhlIENMSSBldmVyIGhhZCBpdCBhbmQgZXZlcnkgZGVwbG95IGRpZWQgYXQgc3ludGguXG4gICAgLy9cbiAgICAvLyBTaGlwcGluZyB0aGUgYnVuZGxlIGluc3RlYWQgY29zdHMgbm90aGluZyB0aGF0IHdhcyBiZWluZyB1c2VkOiB0aGVcbiAgICAvLyBidW5kbGluZyBvcHRpb25zIHdlcmUgYWxsIHN0YXRpYywgc28gZWFjaCBtYWNoaW5lIHdhcyByZWJ1aWxkaW5nIGFcbiAgICAvLyBieXRlLWlkZW50aWNhbCBhcnRpZmFjdC4gSXQgYWxzbyB0YWtlcyBlc2J1aWxkIG9mZiB0aGUgZGVwbG95IHBhdGhcbiAgICAvLyBlbnRpcmVseSwgd2hpY2ggaXMgd2hhdCB0aGUgQ29kZUJ1aWxkIGJvb3RzdHJhcCBpbWFnZSB3YXMgY2FycnlpbmcgaXQgZm9yLlxuICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKHRoaXMsIHRoaXMuX3VuaXF1ZUlkLmdlbmVyYXRlKCdvbmV2ZW50OmhhbmRsZXInKSwge1xuICAgICAgcnVudGltZTogdGhpcy5fcnVudGltZSxcbiAgICAgIHRpbWVvdXQ6IHRoaXMuX3RpbWVvdXQsXG4gICAgICBtZW1vcnlTaXplOiB0aGlzLl9tZW1vcnlTaXplLFxuICAgICAgYXJjaGl0ZWN0dXJlOiB0aGlzLl9hcmNoaXRlY3R1cmUsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChqb2luKE1PRFVMRV9ESVIsICcvLi4vaGFuZGxlcnMvYnVuZGxlJykpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogdGhpcy5fcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBMQVRGT1JNX1NFQ1JFVF9OQU1FOiBzZWNyZXROYW1lLFxuICAgICAgICAvLyBQTEFURk9STV9UTFNfVkVSSUZZPWZhbHNlOiBhIGRldiBwbGF0Zm9ybSBvbiBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLlxuICAgICAgICAuLi4oIXBsYXRmb3JtVGxzVmVyaWZ5KCkgJiYge1xuICAgICAgICAgIE5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQ6ICcwJyxcbiAgICAgICAgfSksXG4gICAgICAgIC8vIFByaXZhdGUtQ0EgcGxhdGZvcm06IHZlcmlmeSBhZ2FpbnN0IHRoZSBDQSBpbnN0ZWFkIChjb3JlL3BsYXRmb3JtLXRscy50cykuXG4gICAgICAgIC4uLihjYUJ1bmRsZSAmJiB7IFtQTEFURk9STV9DQV9CVU5ETEVfRU5WXTogY2FCdW5kbGUgfSksXG4gICAgICAgIC8vIFRoZSBsb29rdXAgcmVwb3J0cyBpdHMgd2FybmluZ3MgYWdhaW5zdCB0aGlzIHBpcGVsaW5lIChjb250cmFjdCBDMSkuXG4gICAgICAgIC4uLih0aGlzLl9waXBlbGluZUlkICYmIHsgUElQRUxJTkVfSUQ6IHRoaXMuX3BpcGVsaW5lSWQgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gR3JhbnQgdGhlIExhbWJkYSBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHBlci1vcmcgcGxhdGZvcm0gc2VjcmV0LlxuICAgIC8vIFRoZSB3aWxkY2FyZCBzdWZmaXggaGFuZGxlcyB0aGUgNi1jaGFyIHJhbmRvbSBJRCB0aGF0IFNlY3JldHMgTWFuYWdlciBhcHBlbmRzLlxuICAgIGZuLmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VjcmV0c21hbmFnZXI6KjoqOnNlY3JldDoke3NlY3JldE5hbWV9LSpgXSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZm47XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIGRlZmF1bHQgcGx1Z2luIGZpbHRlci5cbiAgICogQWNjZXNzIGNvbnRyb2wgKG9yZ0lkIHNjb3BpbmcsIHB1YmxpYy9wcml2YXRlIHZpc2liaWxpdHkpIGlzIGhhbmRsZWQgYnlcbiAgICogdGhlIHBsYXRmb3JtJ3MgYWNjZXNzIGNvbnRyb2wgcXVlcnkgYnVpbGRlciBiYXNlZCBvbiB0aGUgSldUJ3Mgb3JnYW5pemF0aW9uSWQuXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZShwbHVnaW46IHN0cmluZyB8IFBsdWdpbk9wdGlvbnMpOiBQbHVnaW5PcHRpb25zIHtcbiAgICBjb25zdCByZWY6IFBsdWdpbk9wdGlvbnMgPSB0eXBlb2YgcGx1Z2luID09PSAnc3RyaW5nJyA/IHsgbmFtZTogcGx1Z2luIH0gOiBwbHVnaW47XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgICAgLi4uKHJlZi5wdWJsaXNoZXIgPyB7IHB1Ymxpc2hlcjogcmVmLnB1Ymxpc2hlciB9IDoge30pLFxuICAgICAgLy8gVGhlIHJlc29sdmVyIGNhY2hlIGtleTogdGhlIGV4cGxpY2l0IGFsaWFzLCBlbHNlIGBbPHB1Ymxpc2hlcj4tXTxuYW1lPi1hbGlhc2AuXG4gICAgICBhbGlhczogcGx1Z2luQXJ0aWZhY3RBbGlhcyhyZWYpLFxuICAgICAgLy8gVGhlIHNhbWUgZmlsdGVyIHRoZSBDTEkgcHJlLXJlc29sdmVyIGFuZCB0aGUgcGlwZWxpbmUgc2VydmljZSdzXG4gICAgICAvLyBjb250cmFjdCBjaGVjayBzZW5kIChgcGx1Z2luTG9va3VwRmlsdGVyYCk6IG5hbWUgKyBwdWJsaXNoZXIsIHRoZW5cbiAgICAgIC8vIHRoZSByZWZlcmVuY2UncyBvd24gZmlsdGVyLCBlbHNlIHRoZSBkZWZhdWx0IHZlcnNpb24uXG4gICAgICBmaWx0ZXI6IHBsdWdpbkxvb2t1cEZpbHRlcih7IG5hbWU6IHJlZi5uYW1lLCBwdWJsaXNoZXI6IHJlZi5wdWJsaXNoZXIsIGZpbHRlcjogcmVmLmZpbHRlciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB9KSBhcyBQbHVnaW5GaWx0ZXIsXG4gICAgICBtZXRhZGF0YTogcmVmLm1ldGFkYXRhLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEN1c3RvbVJlc291cmNlIGluc3RhbmNlIHRoYXQgdHJpZ2dlcnMgcGx1Z2luIGxvb2t1cCBkdXJpbmcgZGVwbG95bWVudFxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDdXN0b21SZXNvdXJjZShwcm9wczogUGx1Z2luT3B0aW9ucywgc3RlcEtleT86IHN0cmluZyk6IEN1c3RvbVJlc291cmNlIHtcbiAgICBjb25zdCByZXNvdXJjZUlkID0gdGhpcy5fdW5pcXVlSWQuZ2VuZXJhdGUocHJvcHMuYWxpYXMgfHwgcHJvcHMubmFtZSk7XG5cbiAgICByZXR1cm4gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIHJlc291cmNlSWQsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5fcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpQbHVnaW5Mb29rdXAnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBiYXNlVVJMOiB0aGlzLl9wbGF0Zm9ybVVybCxcbiAgICAgICAgcGx1Z2luRmlsdGVyOiBwcm9wcy5maWx0ZXIsXG4gICAgICAgIC4uLihzdGVwS2V5ID8geyBzdGVwS2V5IH0gOiB7fSksXG4gICAgICB9IGFzIElucHV0UHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQmFzZSBwbHVnaW4gc2hhcGUgd2l0aCBuby1vcCBkZWZhdWx0cyBmb3IgZmllbGRzIENESyBkb2Vzbid0IHVzZS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYmFzZVBsdWdpbigpOiBQbHVnaW4ge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBQTEFDRUhPTERFUl9QTFVHSU5fSUQsXG4gICAgICBvcmdJZDogU1lTVEVNX09SR19JRCxcbiAgICAgIGNyZWF0ZWRCeTogJ3N5c3RlbScsXG4gICAgICBjcmVhdGVkQXQ6IG5vdyxcbiAgICAgIHVwZGF0ZWRCeTogJ3N5c3RlbScsXG4gICAgICB1cGRhdGVkQXQ6IG5vdyxcbiAgICAgIG5hbWU6ICdmYWxsYmFjaycsXG4gICAgICBkZXNjcmlwdGlvbjogbnVsbCxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGNhdGVnb3J5OiAndW5rbm93bicsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgcGx1Z2luVHlwZTogJ0NvZGVCdWlsZFN0ZXAnLFxuICAgICAgY29tcHV0ZVR5cGU6ICdTTUFMTCcsXG4gICAgICB0aW1lb3V0OiBudWxsLFxuICAgICAgZmFpbHVyZUJlaGF2aW9yOiAnZmFpbCcsXG4gICAgICBzZWNyZXRzOiBbXSxcbiAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6ICdjZGsub3V0JyxcbiAgICAgIGVudjoge30sXG4gICAgICBidWlsZEFyZ3M6IHt9LFxuICAgICAgaW5zdGFsbENvbW1hbmRzOiBbXSxcbiAgICAgIGNvbW1hbmRzOiBbXSxcbiAgICAgIGRvY2tlcmZpbGU6IG51bGwsXG4gICAgICBidWlsZFR5cGU6ICdtZXRhZGF0YV9vbmx5JyxcbiAgICAgIGltYWdlRGlnZXN0OiBudWxsLFxuICAgICAgaW1hZ2VTb3VyY2U6IG51bGwsXG4gICAgICBvd25lcklkOiBudWxsLFxuICAgICAgb3duZXJUeXBlOiBudWxsLFxuICAgICAgbGlmZWN5Y2xlOiAncHJvZHVjdGlvbicsXG4gICAgICBjcml0aWNhbGl0eTogbnVsbCxcbiAgICAgIGxhYmVsczoge30sXG4gICAgICBsaW5rczogW10sXG4gICAgICB2aXNpYmlsaXR5OiAncHVibGljJyxcbiAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgIGRlbGV0ZWRBdDogbnVsbCxcbiAgICAgIGRlbGV0ZWRCeTogbnVsbCxcbiAgICAgIHB1cmdlQWZ0ZXI6IG51bGwsXG4gICAgICBxdW90YVJlc2V0QXQ6IG51bGwsXG4gICAgICBzdW1tYXJ5OiBudWxsLFxuICAgICAgZGlzcGxheU5hbWU6IG51bGwsXG4gICAgICBkb2N1bWVudGF0aW9uVXJsOiBudWxsLFxuICAgICAgbWV0YWRhdGFTb3VyY2VzOiB7fSxcbiAgICAgIHJlcXVpcmVkTWV0YWRhdGE6IFtdLFxuICAgICAgcmVxdWlyZWRWYXJzOiBbXSxcbiAgICAgIG1ldGFkYXRhVHlwZXM6IHt9LFxuICAgICAgdmFyc1R5cGVzOiB7fSxcbiAgICAgIHNtb2tlVGVzdDogbnVsbCxcbiAgICAgIG5ldHdvcmtFZ3Jlc3M6IFtdLFxuICAgICAgcmVhZG1lTWQ6IG51bGwsXG4gICAgICByZWFkbWVIdG1sOiBudWxsLFxuICAgICAgbGljZW5zZTogbnVsbCxcbiAgICAgIGNoYW5nZWxvZzogbnVsbCxcbiAgICAgIGhvbWVwYWdlVXJsOiBudWxsLFxuICAgICAgc291cmNlVXJsOiBudWxsLFxuICAgICAgaWNvbjogbnVsbCxcbiAgICAgIHVwbG9hZGVkSWNvbjogbnVsbCxcbiAgICAgIHZ1bG5Dcml0aWNhbDogbnVsbCxcbiAgICAgIHZ1bG5IaWdoOiBudWxsLFxuICAgICAgdnVsbk1lZGl1bTogbnVsbCxcbiAgICAgIHZ1bG5Mb3c6IG51bGwsXG4gICAgICB2dWxuQ3JpdGljYWxGaXhhYmxlOiBudWxsLFxuICAgICAgdnVsbkhpZ2hGaXhhYmxlOiBudWxsLFxuICAgICAgc2Nhbm5lZEF0OiBudWxsLFxuICAgICAgc2NhblN1bW1hcnk6IG51bGwsXG4gICAgICBzY2FuRmxhZ2dlZEF0OiBudWxsLFxuICAgICAgc2NhbkZsYWc6IG51bGwsXG4gICAgICBydW5Bc1Jvb3Q6IG51bGwsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgICBmcm96ZW5BdDogbnVsbCxcbiAgICAgIHlhbmtlZEF0OiBudWxsLFxuICAgICAgeWFua1JlYXNvbjogbnVsbCxcbiAgICAgIGRlcHJlY2F0ZWRBdDogbnVsbCxcbiAgICAgIGRlcHJlY2F0aW9uTWVzc2FnZTogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIGZvciBhIHBsdWdpbiB3aG9zZSBsb29rdXAgcmV0dXJuZWQgbm8gcmVjb3JkIChub3QgaW4gdGhlIHBsYXRmb3JtXG4gICAqIGNhdGFsb2cgZm9yIHRoaXMgb3JnKSBhbmQgc28gY291bGQgbm90IGJlIHByZS1yZXNvbHZlZCBhdCBzeW50aC5cbiAgICpcbiAgICogVGhpcyBzdGVwIEZBSUxTIHRoZSBidWlsZCAoZXhpdCAxKSBvbiBwdXJwb3NlLiBUaGUgcHJldmlvdXMgYmVoYXZpb3VyIOKAlFxuICAgKiBgZWNobyBcIuKAplwiICYmIGV4aXQgMGAg4oCUIHdhcyBhIGZhbHNlIHBvc2l0aXZlOiBhbiB1bnJlc29sdmVkIHNlY3VyaXR5L3F1YWxpdHlcbiAgICogc3RlcCAoZGVwZW5kZW5jeS1jaGVjaywgc2VtZ3JlcCwgc3BvdGJ1Z3MsIOKApikgcmVwb3J0ZWQgdGhlIHN0YWdlIGdyZWVuIHdoaWxlXG4gICAqIHJ1bm5pbmcgbm90aGluZywgZ2l2aW5nIGZhbHNlIGFzc3VyYW5jZSB0aGF0IHNjYW5zL2J1aWxkcyBoYWQgcGFzc2VkLiBBXG4gICAqIHBsdWdpbiBzdGVwIHRoYXQgY2FuJ3QgcnVuIGl0cyBwbHVnaW4gbXVzdCBnbyByZWQsIGNvbnNpc3RlbnQgd2l0aFxuICAgKiBgYmFzZVBsdWdpbigpLmZhaWx1cmVCZWhhdmlvciA9PT0gJ2ZhaWwnYC4gVGhlIG1lc3NhZ2UgaXMgYWN0aW9uYWJsZSBzbyB0aGVcbiAgICogb3BlcmF0b3Iga25vd3MgdGhlIGNhdGFsb2cgaXMgZW1wdHkvaW5jb21wbGV0ZSwgbm90IHRoYXQgdGhlIHRvb2wgY3Jhc2hlZC5cbiAgICovXG4gIHByaXZhdGUgZmFsbGJhY2soKTogUGx1Z2luIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uUGx1Z2luTG9va3VwLmJhc2VQbHVnaW4oKSxcbiAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICdlY2hvIFwiRVJST1I6IHBsdWdpbiBsb29rdXAgcmV0dXJuZWQgbm8gcmVjb3JkIOKAlCB0aGlzIHBsdWdpbiBpcyBub3QgaW4gdGhlIHBsYXRmb3JtIGNhdGFsb2cgZm9yIHRoaXMgb3JnLCBzbyB0aGUgc3RlcCBjYW5ub3QgcnVuLlwiID4mMicsXG4gICAgICAgICdlY2hvIFwiVGhpcyBzdGVwIGZhaWxzIGluc3RlYWQgb2YgcGFzc2luZyBhcyBhIG5vLW9wIChhbiB1bnJlc29sdmVkIHBsdWdpbiByZXBvcnRpbmcgc3VjY2VzcyB3b3VsZCBiZSBhIGZhbHNlLXBvc2l0aXZlIGdyZWVuKS5cIiA+JjInLFxuICAgICAgICAnZWNobyBcIkZpeDogbG9hZCB0aGUgcGx1Z2luIGludG8gdGhlIHBsYXRmb3JtIChkZXBsb3kvYmluL2xvYWQtcGx1Z2lucy5zaCksIHRoZW4gcmUtcnVuIHRoZSBwaXBlbGluZS5cIiA+JjInLFxuICAgICAgICAnZXhpdCAxJyxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aCBwbHVnaW4gd2l0aCBwaXBlbGluZS1tYW5hZ2VyIGNvbW1hbmRzLiBDb2xkLXN0YXJ0IGJvb3RzdHJhcCBmb3JcbiAgICogdGhlIHN5bnRoIHN0ZXAgd2hlbiBwcmUtcmVzb2x1dGlvbiBieSBgcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aC9kZXBsb3lgXG4gICAqIGRpZG4ndCBwb3B1bGF0ZSBgcmVzb2x2ZWRQbHVnaW5zYCBmb3IgdGhlIHN5bnRoIHBsdWdpbi4gUnVucyBvbiB0aGVcbiAgICogY29uZmlndXJlZCBgQ09ERUJVSUxEX0RFRkFVTFRfSU1BR0VgIChkZWZhdWx0IGBwaXBlbGluZS1ib290c3RyYXA6MS4wYClcbiAgICogYW5kIHNlbGYtYm9vdHN0cmFwcyB0aGUgcmVhbCBzeW50aCB2aWFcbiAgICogYHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGggLS1pZCAke1BJUEVMSU5FX0lEfWAuXG4gICAqXG4gICAqIE5vIGBpbnN0YWxsQ29tbWFuZHNgOiB0aGUgZGVmYXVsdCBpbWFnZSBhbHJlYWR5IGhhcyBgcGlwZWxpbmUtbWFuYWdlcmBcbiAgICogYmFrZWQgaW4gKHRoYXQncyB0aGUgd2hvbGUgcG9pbnQgb2YgYHBpcGVsaW5lLWJvb3RzdHJhcDoxLjBgKS4gSWYgdGhlXG4gICAqIG9wZXJhdG9yIHBvaW50cyBDT0RFQlVJTERfREVGQVVMVF9JTUFHRSBhdCBhbiBpbWFnZSBsYWNraW5nIGl0IChlLmcuXG4gICAqIHZhbmlsbGEgYXdzL2NvZGVidWlsZC9zdGFuZGFyZDo3LjApLCB0aGlzIHN0ZXAgZXhpdHMgMTI3IOKAlCBmaXggdGhhdFxuICAgKiBieSB1c2luZyBhbiBpbWFnZSB3aXRoIHBpcGVsaW5lLW1hbmFnZXIgcmF0aGVyIHRoYW4gcGFwZXJpbmcgb3ZlciBpdFxuICAgKiB3aXRoIGEgcGVyLWJ1aWxkIGBucG0gaW5zdGFsbCAtZ2AuXG4gICAqXG4gICAqIFRMUyBpcyBWRVJJRklFRCBieSBkZWZhdWx0OiB0aGlzIGxvb2t1cCByZXR1cm5zIHRoZSBpbWFnZSBkaWdlc3RzIGV2ZXJ5XG4gICAqIHN0ZXAgaXMgcGlubmVkIHRvLCBzbyBhbiB1bnZlcmlmaWVkIGNvbm5lY3Rpb24gd291bGQgbGV0IGEgTUlUTSBjaG9vc2Ugd2hhdFxuICAgKiBydW5zLiBBIHByaXZhdGUtQ0EgcGxhdGZvcm0gaXMgdHJ1c3RlZCB0aHJvdWdoIGBQTEFURk9STV9DQV9CVU5ETEVgLCB3aGljaFxuICAgKiB0aGUgc3ludGggcHJvcGFnYXRlcyBpbnRvIGV2ZXJ5IENvZGVCdWlsZCBzdGVwLiBPbmx5IGFuIGV4cGxpY2l0XG4gICAqIGBQTEFURk9STV9UTFNfVkVSSUZZPWZhbHNlYCBhdCBzeW50aCB0aW1lIChhIGRldiBwbGF0Zm9ybSBvbiBhIHNlbGYtc2lnbmVkXG4gICAqIGNlcnRpZmljYXRlKSBhZGRzIGAtLW5vLXZlcmlmeS1zc2xgIOKAlCBhbmQgdGhlIENMSSByZWZ1c2VzIHRoYXQgaW5cbiAgICogcHJvZHVjdGlvbi4gU2VlIGNvcmUvcGxhdGZvcm0tdGxzLnRzLlxuICAgKi9cbiAgcHVibGljIGJvb3RzdHJhcCgpOiBQbHVnaW4ge1xuICAgIGNvbnN0IHRsc0ZsYWcgPSBwbGF0Zm9ybVRsc1ZlcmlmeSgpID8gJycgOiAnIC0tbm8tdmVyaWZ5LXNzbCc7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLlBsdWdpbkxvb2t1cC5iYXNlUGx1Z2luKCksXG4gICAgICBuYW1lOiAnY2RrLXN5bnRoJyxcbiAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6ICdjZGsub3V0JyxcbiAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgIGBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoIC0taWQgXFwke1BJUEVMSU5FX0lEfSAtLXN0b3JlLXRva2VucyAtLXF1aWV0IC0tbm8tbm90aWNlcyR7dGxzRmxhZ31gLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcGx1Z2luLXNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBgUGx1Z2luU3BlY2AgZG9tYWluIHR5cGUg4oCUIHRoZSBzaGFwZSBvZiBhIHBsdWdpbidzIGRlY2xhcmVkIGNvbnRyYWN0IGFzXG4gKiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCBleGNoYW5nZWQgb3ZlciB0aGUgQVBJLlxuICpcbiAqIEtlcHQgaW4gaXRzIG93biBtb2R1bGUsIGFwYXJ0IGZyb20gdGhlIHN5bnRoLXRpbWUgYXV0aG9yaW5nIHR5cGVzIGluXG4gKiBgc3RlcC10eXBlcy50c2AsIGJlY2F1c2UgdGhvc2UgcmVmZXJlbmNlIENESyB0eXBlcyAoYENvbnN0cnVjdGAsXG4gKiBgSUZpbGVTZXRQcm9kdWNlcmAsIENvZGVCdWlsZCdzIGBDb21wdXRlVHlwZWApIHdoaWxlIHRoaXMgb25lIGlzIHB1cmUgZGF0YS5cbiAqIEFQSSBzZXJ2aWNlcyBjb25zdW1lIGBQbHVnaW5TcGVjYDsgb25seSB0aGUgQ0RLIGVudHJ5IHBvaW50IGNvbnN1bWVzIHRoZSByZXN0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLXR5cGVzLmpzJztcblxuLyoqXG4gKiBQbHVnaW4gc3BlYyBkZWZpbmluZyBwbHVnaW4gYmVoYXZpb3IgYW5kIHJlcXVpcmVtZW50cy5cbiAqIFRoaXMgaXMgdHlwaWNhbGx5IGxvYWRlZCBmcm9tIGEgcGx1Z2luIHNwZWMgZmlsZSAocGx1Z2luLXNwZWMueWFtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU3BlYyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBsdWdpblxuICAgKiBAZXhhbXBsZSAnbm9kZWpzLWJ1aWxkJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSBwbHVnaW4gZG9lc1xuICAgKiBAZXhhbXBsZSAnQnVpbGRzIGFuZCB0ZXN0cyBOb2RlLmpzIGFwcGxpY2F0aW9ucydcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLZXl3b3JkcyBmb3IgcGx1Z2luIGRpc2NvdmVyeSBhbmQgY2F0ZWdvcml6YXRpb25cbiAgICogQGV4YW1wbGUgWydub2RlanMnLCAndHlwZXNjcmlwdCcsICdidWlsZCcsICd0ZXN0J11cbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjYXRlZ29yeSBmb3IgQUktYXNzaXN0ZWQgc2VsZWN0aW9uIGFuZCBvcmdhbml6YXRpb24uXG4gICAqIE9uZSBvZjogbGFuZ3VhZ2UsIHNlY3VyaXR5LCBxdWFsaXR5LCB0ZXN0aW5nLCBkZXBsb3ksIGFydGlmYWN0LFxuICAgKiAgICAgICAgIGluZnJhc3RydWN0dXJlLCBtb25pdG9yaW5nLCBub3RpZmljYXRpb24sIGFpXG4gICAqL1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcblxuICAvKipcbiAgICogU2VtYW50aWMgdmVyc2lvbiBvZiB0aGUgcGx1Z2luXG4gICAqIEBleGFtcGxlICcxLjAuMCdcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgcGlwZWxpbmUgc3RlcCB0aGlzIHBsdWdpbiBjcmVhdGVzXG4gICAqIEBkZWZhdWx0IFBsdWdpblR5cGUuQ09ERV9CVUlMRF9TVEVQXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5UeXBlPzogUGx1Z2luVHlwZTtcblxuICAvKipcbiAgICogQ29kZUJ1aWxkIGNvbXB1dGUgcmVzb3VyY2Ugc2l6ZSB0byB1c2VcbiAgICogQGRlZmF1bHQgQ29tcHV0ZVR5cGUuU01BTExcbiAgICovXG4gIHJlYWRvbmx5IGNvbXB1dGVUeXBlPzogQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gZXhlY3V0aW9uIHRpbWUgaW4gbWludXRlcy5cbiAgICogVXNlZCBhcyBmYWxsYmFjayB3aGVuIHRoZSBwaXBlbGluZSBzdGVwIGRvZXNuJ3Qgc2V0IHRpbWVvdXQuXG4gICAqIEBkZWZhdWx0IDYwIChBV1MgQ29kZUJ1aWxkIGRlZmF1bHQpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGF0IGhhcHBlbnMgd2hlbiB0aGlzIHN0ZXAgZmFpbHMuXG4gICAqIC0gJ2ZhaWwnOiBTdG9wIHRoZSBwaXBlbGluZSAoZGVmYXVsdClcbiAgICogLSAnd2Fybic6IExvZyBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlXG4gICAqIC0gJ2lnbm9yZSc6IFNpbGVudGx5IGNvbnRpbnVlXG4gICAqIEBkZWZhdWx0ICdmYWlsJ1xuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUJlaGF2aW9yPzogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG5cbiAgLyoqXG4gICAqIFNlY3JldCByZXF1aXJlbWVudHMgZm9yIHRoaXMgcGx1Z2luLlxuICAgKiBEZWNsYXJlcyBuYW1lZCBzZWNyZXRzIHRoZSBwbHVnaW4gZXhwZWN0cyBhdCBidWlsZCB0aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0cz86IEFycmF5PHsgbmFtZTogc3RyaW5nOyByZXF1aXJlZDogYm9vbGVhbjsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfT47XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwcmltYXJ5IGJ1aWxkIG91dHB1dCBhcnRpZmFjdHNcbiAgICogQGV4YW1wbGUgJ2Rpc3QnXG4gICAqL1xuICByZWFkb25seSBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkdXJpbmcgcGx1Z2luIGV4ZWN1dGlvblxuICAgKiBLZXlzIHNob3VsZCB1c2UgdGhlIGZvcm1hdCAnYXdzOmNkazp7bmFtZXNwYWNlfTp7a2V5fScgKGFsbCBsb3dlcmNhc2UpXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIERvY2tlcmZpbGUgb3IgRG9ja2VyZmlsZSBjb250ZW50XG4gICAqIFVzZWQgdG8gYnVpbGQgdGhlIGNvbnRhaW5lciBlbnZpcm9ubWVudCBmb3IgdGhpcyBwbHVnaW5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGluc3RhbGwgcGhhc2VcbiAgICogVHlwaWNhbGx5IHVzZWQgZm9yIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzXG4gICAqIEBleGFtcGxlIFsnbnBtIGNpJywgJ25wbSBydW4gYnVpbGQnXVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGJ1aWxkL2V4ZWN1dGlvbiBwaGFzZVxuICAgKiBUaGVzZSBhcmUgdGhlIG1haW4gY29tbWFuZHMgdGhhdCBwZXJmb3JtIHRoZSBwbHVnaW4ncyB3b3JrXG4gICAqIEBleGFtcGxlIFsnbnBtIHRlc3QnLCAnbnBtIHJ1biBkZXBsb3knXVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnRcbiAgICogQGV4YW1wbGUgeyBBUElfVVJMOiAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nLCBMT0dfTEVWRUw6ICdpbmZvJyB9XG4gICAqL1xuICByZWFkb25seSBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIHBhc3NlZCB2aWEgLS1idWlsZC1hcmcgYXQgaW1hZ2UgYnVpbGQgdGltZS5cbiAgICogVXNlZCB0byBwYXJhbWV0ZXJpemUgRG9ja2VyZmlsZSBBUkcgdmFsdWVzIHdoZW4gYnVpbGRpbmcgdGhlIHBsdWdpbiBpbWFnZS5cbiAgICogQGV4YW1wbGUgeyBQWVRIT05fVkVSU0lPTjogJzMuMTInLCBOT0RFX0VOVjogJ3Byb2R1Y3Rpb24nIH1cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIG1ldGFkYXRhIGtleXMgdGhlIHBsdWdpbiByZWZlcmVuY2VzIHZpYSBge3sgcGlwZWxpbmUubWV0YWRhdGEuWCB9fWAuXG4gICAqIERlY2xhcmVkIGFzIGEgY29udHJhY3Qg4oCUIHBpcGVsaW5lcyB1c2luZyB0aGlzIHBsdWdpbiBtdXN0IHN1cHBseSBhbGxcbiAgICogbGlzdGVkIGtleXMgdW5sZXNzIHRoZSB0ZW1wbGF0ZSB1c2VzIGB8IGRlZmF1bHQ6ICcuLi4nYC5cbiAgICogQGV4YW1wbGUgWydlbnYnLCAnbmFtZXNwYWNlJywgJ2NsdXN0ZXJOYW1lJ11cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkTWV0YWRhdGE/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGlwZWxpbmUgdmFycyBrZXlzIHRoZSBwbHVnaW4gcmVmZXJlbmNlcyB2aWEgYHt7IHBpcGVsaW5lLnZhcnMuWCB9fWAuXG4gICAqIEBleGFtcGxlIFsnYnJhbmNoJywgJ3NsYWNrQ2hhbm5lbCddXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZFZhcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHlwZSBkZWNsYXJhdGlvbnMgZm9yIHRoZSBtZXRhZGF0YSBrZXlzIGxpc3RlZCBpbiBgcmVxdWlyZWRNZXRhZGF0YWAuXG4gICAqIFVzZWQgYXQgdXBsb2FkIHRpbWUgdG8gdmVyaWZ5IHRoYXQgY29lcmNpb24gZmlsdGVycyAoYHwgbnVtYmVyYCwgYHwgYm9vbGAsXG4gICAqIGB8IGpzb25gKSBtYXRjaCB0aGUgZGVjbGFyZWQgdHlwZSDigJQgZS5nLiBge3sgcGlwZWxpbmUubWV0YWRhdGEuY291bnQgfCBudW1iZXIgfX1gXG4gICAqIHJlcXVpcmVzIGBjb3VudDogJ251bWJlcidgIGhlcmUsIG90aGVyd2lzZSB0aGUgcGx1Z2luIGlzIHJlamVjdGVkLlxuICAgKiBLZXlzIG5vdCBkZWNsYXJlZCBkZWZhdWx0IHRvIGAnc3RyaW5nJ2AuXG4gICAqIEBleGFtcGxlIHsgY291bnQ6ICdudW1iZXInLCBlbmFibGVkOiAnYm9vbCcgfVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGFUeXBlcz86IFJlY29yZDxzdHJpbmcsICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnanNvbic+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0eXBlIGRlY2xhcmF0aW9ucyBmb3IgdmFycyBrZXlzIChzYW1lIHNlbWFudGljcyBhcyBgbWV0YWRhdGFUeXBlc2ApLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyc1R5cGVzPzogUmVjb3JkPHN0cmluZywgJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdib29sJyB8ICdqc29uJz47XG5cbiAgLyoqXG4gICAqIFNtb2tlLXRlc3QgY29tbWFuZCB0aGUgYnVpbGQgdG9vbGluZyBydW5zIGFnYWluc3QgdGhlIGJ1aWx0IGltYWdlLlxuICAgKiBAZXhhbXBsZSAndHJpdnkgLS12ZXJzaW9uJ1xuICAgKi9cbiAgcmVhZG9ubHkgc21va2VUZXN0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTUERYIGxpY2Vuc2UgaWRlbnRpZmllciBvZiB0aGUgcGx1Z2luICh2YWxpZGF0ZWQgYWdhaW5zdCBhbiBhbGxvd2xpc3QgYXQgdXBsb2FkKS5cbiAgICogQGV4YW1wbGUgJ0FwYWNoZS0yLjAnXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKiBSZWxlYXNlIG5vdGVzIGZvciB0aGlzIHZlcnNpb24gKG1hcmtkb3duLCDiiaQgMzIgS0IpLiAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2c/OiBzdHJpbmc7XG5cbiAgLyoqIFByb2plY3QgaG9tZXBhZ2Ug4oCUIGBodHRwczpgIG9ubHksIG5vIFVSTCBzaG9ydGVuZXJzLiAqL1xuICByZWFkb25seSBob21lcGFnZVVybD86IHN0cmluZztcblxuICAvKiogU291cmNlIHJlcG9zaXRvcnkg4oCUIGBodHRwczpgIG9ubHksIG5vIFVSTCBzaG9ydGVuZXJzLiAqL1xuICByZWFkb25seSBzb3VyY2VVcmw/OiBzdHJpbmc7XG5cbiAgLyoqIERvY3VtZW50YXRpb24gc2l0ZSDigJQgYGh0dHBzOmAgb25seSwgbm8gVVJMIHNob3J0ZW5lcnMuICovXG4gIHJlYWRvbmx5IGRvY3VtZW50YXRpb25Vcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIGNhcmQncyBvbmUtbGluZSBzdW1tYXJ5ICjiiaQgMTYwKS4gV2hlbiBhYnNlbnQgaXQgaXMgZGVyaXZlZCBmcm9tXG4gICAqIHRoZSBmaXJzdCBzZW50ZW5jZSBvZiB0aGUgZGVzY3JpcHRpb24uXG4gICAqL1xuICByZWFkb25seSBzdW1tYXJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXJhdGVkIGljb24ga2V5IChgZGVwbG95L3BsdWdpbnMvX2ljb25zLzxrZXk+LnN2Z2ApLCBvciBhIGtleSBwbHVzIGFcbiAgICogY29ybmVyIGJhZGdlIGtleSBmb3IgbGFuZ3VhZ2UgdmFyaWFudHMuXG4gICAqIEBleGFtcGxlICd0cml2eSdcbiAgICogQGV4YW1wbGUgeyBrZXk6ICdzbnlrJywgYmFkZ2U6ICdweXRob24nIH1cbiAgICovXG4gIHJlYWRvbmx5IGljb24/OiBzdHJpbmcgfCB7IGtleTogc3RyaW5nOyBiYWRnZT86IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBEZWNsYXJlZCBuZXR3b3JrIGFjY2Vzcywgc2hvd24gdG8gY29uc3VtZXJzIGFuZCBjb21wYXJlZCBpbiByZXZpZXcuXG4gICAqIGBlZ3Jlc3NgOiB0aGUgaG9zdG5hbWVzIHRoZSBwbHVnaW4gY29udGFjdHMgKG5vIHNjaGVtZSwgcG9ydCBvciBwYXRoO1xuICAgKiBvbmUgbGVhZGluZyBgKi5gIHdpbGRjYXJkIGFsbG93ZWQpLCBhdCBtb3N0IDUwLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29yaz86IHsgZWdyZXNzPzogc3RyaW5nW10gfTtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9wbHVnaW4tc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIGBQbHVnaW5TcGVjYCBkb21haW4gdHlwZSDigJQgdGhlIHNoYXBlIG9mIGEgcGx1Z2luJ3MgZGVjbGFyZWQgY29udHJhY3QgYXNcbiAqIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYW5kIGV4Y2hhbmdlZCBvdmVyIHRoZSBBUEkuXG4gKlxuICogS2VwdCBpbiBpdHMgb3duIG1vZHVsZSwgYXBhcnQgZnJvbSB0aGUgc3ludGgtdGltZSBhdXRob3JpbmcgdHlwZXMgaW5cbiAqIGBzdGVwLXR5cGVzLnRzYCwgYmVjYXVzZSB0aG9zZSByZWZlcmVuY2UgQ0RLIHR5cGVzIChgQ29uc3RydWN0YCxcbiAqIGBJRmlsZVNldFByb2R1Y2VyYCwgQ29kZUJ1aWxkJ3MgYENvbXB1dGVUeXBlYCkgd2hpbGUgdGhpcyBvbmUgaXMgcHVyZSBkYXRhLlxuICogQVBJIHNlcnZpY2VzIGNvbnN1bWUgYFBsdWdpblNwZWNgOyBvbmx5IHRoZSBDREsgZW50cnkgcG9pbnQgY29uc3VtZXMgdGhlIHJlc3QuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDb21wdXRlVHlwZSwgUGx1Z2luVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG4vKipcbiAqIFBsdWdpbiBzcGVjIGRlZmluaW5nIHBsdWdpbiBiZWhhdmlvciBhbmQgcmVxdWlyZW1lbnRzLlxuICogVGhpcyBpcyB0eXBpY2FsbHkgbG9hZGVkIGZyb20gYSBwbHVnaW4gc3BlYyBmaWxlIChwbHVnaW4tc3BlYy55YW1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TcGVjIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGx1Z2luXG4gICAqIEBleGFtcGxlICdub2RlanMtYnVpbGQnXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIHBsdWdpbiBkb2VzXG4gICAqIEBleGFtcGxlICdCdWlsZHMgYW5kIHRlc3RzIE5vZGUuanMgYXBwbGljYXRpb25zJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEtleXdvcmRzIGZvciBwbHVnaW4gZGlzY292ZXJ5IGFuZCBjYXRlZ29yaXphdGlvblxuICAgKiBAZXhhbXBsZSBbJ25vZGVqcycsICd0eXBlc2NyaXB0JywgJ2J1aWxkJywgJ3Rlc3QnXVxuICAgKi9cbiAgcmVhZG9ubHkga2V5d29yZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGx1Z2luIGNhdGVnb3J5IGZvciBBSS1hc3Npc3RlZCBzZWxlY3Rpb24gYW5kIG9yZ2FuaXphdGlvbi5cbiAgICogT25lIG9mOiBsYW5ndWFnZSwgc2VjdXJpdHksIHF1YWxpdHksIHRlc3RpbmcsIGRlcGxveSwgYXJ0aWZhY3QsXG4gICAqICAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIG1vbml0b3JpbmcsIG5vdGlmaWNhdGlvbiwgYWlcbiAgICovXG4gIHJlYWRvbmx5IGNhdGVnb3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZW1hbnRpYyB2ZXJzaW9uIG9mIHRoZSBwbHVnaW5cbiAgICogQGV4YW1wbGUgJzEuMC4wJ1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBwaXBlbGluZSBzdGVwIHRoaXMgcGx1Z2luIGNyZWF0ZXNcbiAgICogQGRlZmF1bHQgUGx1Z2luVHlwZS5DT0RFX0JVSUxEX1NURVBcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblR5cGU/OiBQbHVnaW5UeXBlO1xuXG4gIC8qKlxuICAgKiBDb2RlQnVpbGQgY29tcHV0ZSByZXNvdXJjZSBzaXplIHRvIHVzZVxuICAgKiBAZGVmYXVsdCBDb21wdXRlVHlwZS5TTUFMTFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHV0ZVR5cGU/OiBDb21wdXRlVHlwZTtcblxuICAvKipcbiAgICogTWF4aW11bSBleGVjdXRpb24gdGltZSBpbiBtaW51dGVzLlxuICAgKiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIHBpcGVsaW5lIHN0ZXAgZG9lc24ndCBzZXQgdGltZW91dC5cbiAgICogQGRlZmF1bHQgNjAgKEFXUyBDb2RlQnVpbGQgZGVmYXVsdClcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoYXQgaGFwcGVucyB3aGVuIHRoaXMgc3RlcCBmYWlscy5cbiAgICogLSAnZmFpbCc6IFN0b3AgdGhlIHBpcGVsaW5lIChkZWZhdWx0KVxuICAgKiAtICd3YXJuJzogTG9nIGEgd2FybmluZyBhbmQgY29udGludWVcbiAgICogLSAnaWdub3JlJzogU2lsZW50bHkgY29udGludWVcbiAgICogQGRlZmF1bHQgJ2ZhaWwnXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlQmVoYXZpb3I/OiAnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJztcblxuICAvKipcbiAgICogU2VjcmV0IHJlcXVpcmVtZW50cyBmb3IgdGhpcyBwbHVnaW4uXG4gICAqIERlY2xhcmVzIG5hbWVkIHNlY3JldHMgdGhlIHBsdWdpbiBleHBlY3RzIGF0IGJ1aWxkIHRpbWUuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHJlcXVpcmVkOiBib29sZWFuOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9PjtcblxuICAvKipcbiAgICogRGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHByaW1hcnkgYnVpbGQgb3V0cHV0IGFydGlmYWN0c1xuICAgKiBAZXhhbXBsZSAnZGlzdCdcbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnlPdXRwdXREaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG1ldGFkYXRhIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGR1cmluZyBwbHVnaW4gZXhlY3V0aW9uXG4gICAqIEtleXMgc2hvdWxkIHVzZSB0aGUgZm9ybWF0ICdhd3M6Y2RrOntuYW1lc3BhY2V9OntrZXl9JyAoYWxsIGxvd2VyY2FzZSlcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gRG9ja2VyZmlsZSBvciBEb2NrZXJmaWxlIGNvbnRlbnRcbiAgICogVXNlZCB0byBidWlsZCB0aGUgY29udGFpbmVyIGVudmlyb25tZW50IGZvciB0aGlzIHBsdWdpblxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIGR1cmluZyB0aGUgaW5zdGFsbCBwaGFzZVxuICAgKiBUeXBpY2FsbHkgdXNlZCBmb3IgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXNcbiAgICogQGV4YW1wbGUgWyducG0gY2knLCAnbnBtIHJ1biBidWlsZCddXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcnVuIGR1cmluZyB0aGUgYnVpbGQvZXhlY3V0aW9uIHBoYXNlXG4gICAqIFRoZXNlIGFyZSB0aGUgbWFpbiBjb21tYW5kcyB0aGF0IHBlcmZvcm0gdGhlIHBsdWdpbidzIHdvcmtcbiAgICogQGV4YW1wbGUgWyducG0gdGVzdCcsICducG0gcnVuIGRlcGxveSddXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGluIHRoZSBidWlsZCBlbnZpcm9ubWVudFxuICAgKiBAZXhhbXBsZSB7IEFQSV9VUkw6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsIExPR19MRVZFTDogJ2luZm8nIH1cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIERvY2tlciBidWlsZCBhcmd1bWVudHMgcGFzc2VkIHZpYSAtLWJ1aWxkLWFyZyBhdCBpbWFnZSBidWlsZCB0aW1lLlxuICAgKiBVc2VkIHRvIHBhcmFtZXRlcml6ZSBEb2NrZXJmaWxlIEFSRyB2YWx1ZXMgd2hlbiBidWlsZGluZyB0aGUgcGx1Z2luIGltYWdlLlxuICAgKiBAZXhhbXBsZSB7IFBZVEhPTl9WRVJTSU9OOiAnMy4xMicsIE5PREVfRU5WOiAncHJvZHVjdGlvbicgfVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogUGlwZWxpbmUgbWV0YWRhdGEga2V5cyB0aGUgcGx1Z2luIHJlZmVyZW5jZXMgdmlhIGB7eyBwaXBlbGluZS5tZXRhZGF0YS5YIH19YC5cbiAgICogRGVjbGFyZWQgYXMgYSBjb250cmFjdCDigJQgcGlwZWxpbmVzIHVzaW5nIHRoaXMgcGx1Z2luIG11c3Qgc3VwcGx5IGFsbFxuICAgKiBsaXN0ZWQga2V5cyB1bmxlc3MgdGhlIHRlbXBsYXRlIHVzZXMgYHwgZGVmYXVsdDogJy4uLidgLlxuICAgKiBAZXhhbXBsZSBbJ2VudicsICduYW1lc3BhY2UnLCAnY2x1c3Rlck5hbWUnXVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWRNZXRhZGF0YT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB2YXJzIGtleXMgdGhlIHBsdWdpbiByZWZlcmVuY2VzIHZpYSBge3sgcGlwZWxpbmUudmFycy5YIH19YC5cbiAgICogQGV4YW1wbGUgWydicmFuY2gnLCAnc2xhY2tDaGFubmVsJ11cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkVmFycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0eXBlIGRlY2xhcmF0aW9ucyBmb3IgdGhlIG1ldGFkYXRhIGtleXMgbGlzdGVkIGluIGByZXF1aXJlZE1ldGFkYXRhYC5cbiAgICogVXNlZCBhdCB1cGxvYWQgdGltZSB0byB2ZXJpZnkgdGhhdCBjb2VyY2lvbiBmaWx0ZXJzIChgfCBudW1iZXJgLCBgfCBib29sYCxcbiAgICogYHwganNvbmApIG1hdGNoIHRoZSBkZWNsYXJlZCB0eXBlIOKAlCBlLmcuIGB7eyBwaXBlbGluZS5tZXRhZGF0YS5jb3VudCB8IG51bWJlciB9fWBcbiAgICogcmVxdWlyZXMgYGNvdW50OiAnbnVtYmVyJ2AgaGVyZSwgb3RoZXJ3aXNlIHRoZSBwbHVnaW4gaXMgcmVqZWN0ZWQuXG4gICAqIEtleXMgbm90IGRlY2xhcmVkIGRlZmF1bHQgdG8gYCdzdHJpbmcnYC5cbiAgICogQGV4YW1wbGUgeyBjb3VudDogJ251bWJlcicsIGVuYWJsZWQ6ICdib29sJyB9XG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YVR5cGVzPzogUmVjb3JkPHN0cmluZywgJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdib29sJyB8ICdqc29uJz47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHR5cGUgZGVjbGFyYXRpb25zIGZvciB2YXJzIGtleXMgKHNhbWUgc2VtYW50aWNzIGFzIGBtZXRhZGF0YVR5cGVzYCkuXG4gICAqL1xuICByZWFkb25seSB2YXJzVHlwZXM/OiBSZWNvcmQ8c3RyaW5nLCAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2wnIHwgJ2pzb24nPjtcblxuICAvKipcbiAgICogU21va2UtdGVzdCBjb21tYW5kIHRoZSBidWlsZCB0b29saW5nIHJ1bnMgYWdhaW5zdCB0aGUgYnVpbHQgaW1hZ2UuXG4gICAqIEBleGFtcGxlICd0cml2eSAtLXZlcnNpb24nXG4gICAqL1xuICByZWFkb25seSBzbW9rZVRlc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIG9mIHRoZSBwbHVnaW4gKHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGFsbG93bGlzdCBhdCB1cGxvYWQpLlxuICAgKiBAZXhhbXBsZSAnQXBhY2hlLTIuMCdcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqIFJlbGVhc2Ugbm90ZXMgZm9yIHRoaXMgdmVyc2lvbiAobWFya2Rvd24sIOKJpCAzMiBLQikuICovXG4gIHJlYWRvbmx5IGNoYW5nZWxvZz86IHN0cmluZztcblxuICAvKiogUHJvamVjdCBob21lcGFnZSDigJQgYGh0dHBzOmAgb25seSwgbm8gVVJMIHNob3J0ZW5lcnMuICovXG4gIHJlYWRvbmx5IGhvbWVwYWdlVXJsPzogc3RyaW5nO1xuXG4gIC8qKiBTb3VyY2UgcmVwb3NpdG9yeSDigJQgYGh0dHBzOmAgb25seSwgbm8gVVJMIHNob3J0ZW5lcnMuICovXG4gIHJlYWRvbmx5IHNvdXJjZVVybD86IHN0cmluZztcblxuICAvKiogRG9jdW1lbnRhdGlvbiBzaXRlIOKAlCBgaHR0cHM6YCBvbmx5LCBubyBVUkwgc2hvcnRlbmVycy4gKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhdGFsb2cgY2FyZCdzIG9uZS1saW5lIHN1bW1hcnkgKOKJpCAxNjApLiBXaGVuIGFic2VudCBpdCBpcyBkZXJpdmVkIGZyb21cbiAgICogdGhlIGZpcnN0IHNlbnRlbmNlIG9mIHRoZSBkZXNjcmlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN1bW1hcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1cmF0ZWQgaWNvbiBrZXkgKGBkZXBsb3kvcGx1Z2lucy9faWNvbnMvPGtleT4uc3ZnYCksIG9yIGEga2V5IHBsdXMgYVxuICAgKiBjb3JuZXIgYmFkZ2Uga2V5IGZvciBsYW5ndWFnZSB2YXJpYW50cy5cbiAgICogQGV4YW1wbGUgJ3RyaXZ5J1xuICAgKiBAZXhhbXBsZSB7IGtleTogJ3NueWsnLCBiYWRnZTogJ3B5dGhvbicgfVxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZyB8IHsga2V5OiBzdHJpbmc7IGJhZGdlPzogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIERlY2xhcmVkIG5ldHdvcmsgYWNjZXNzLCBzaG93biB0byBjb25zdW1lcnMgYW5kIGNvbXBhcmVkIGluIHJldmlldy5cbiAgICogYGVncmVzc2A6IHRoZSBob3N0bmFtZXMgdGhlIHBsdWdpbiBjb250YWN0cyAobm8gc2NoZW1lLCBwb3J0IG9yIHBhdGg7XG4gICAqIG9uZSBsZWFkaW5nIGAqLmAgd2lsZGNhcmQgYWxsb3dlZCksIGF0IG1vc3QgNTAuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogeyBlZ3Jlc3M/OiBzdHJpbmdbXSB9O1xufVxuIl19
@@ -33,4 +33,4 @@ export function createRuntimeVulnCheckStep(props) {
33
33
  })],
34
34
  });
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS12dWxuLWNoZWNrLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcnVudGltZS12dWxuLWNoZWNrLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUF5QixNQUFNLDBCQUEwQixDQUFDO0FBZ0IxRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsS0FBZ0M7SUFDekUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLFFBQVEsRUFBRSxDQUFDLDhFQUE4RSxDQUFDO1FBQzFGLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNyRSxnQkFBZ0IsRUFBRTtZQUNoQixvQkFBb0IsRUFBRTtnQkFDcEIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2FBQ2xFO1NBQ0Y7UUFDRCxvQkFBb0IsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ3BCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO2dCQUMxQyxTQUFTLEVBQUUsQ0FBQyxxQ0FBcUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUM7YUFDL0UsQ0FBQyxDQUFDO0tBQ0osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBCdWlsZFNwZWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDb2RlQnVpbGRTdGVwIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IFJVTlRJTUVfQ0hFQ0tfU1RFUFNfRU5WLCB0eXBlIFJ1bnRpbWVDaGVja1N0ZXAgfSBmcm9tICcuLi9jb3JlL3J1bnRpbWUtY2hlY2suanMnO1xuXG4vKiogV2hhdCBhIHN0YWdlJ3MgdmVyaWZ5IHN0ZXAgbmVlZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVWdWxuQ2hlY2tTdGVwUHJvcHMge1xuICAvKiogQ29uc3RydWN0IGlkIG9mIHRoZSBzdGVwICh1bmlxdWUgcGVyIHN0YWdlKS4gKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgLyoqIFRoZSBzdGFnZSdzIGltYWdlLWJhY2tlZCBzdGVwcywgYXMgdGhlIHBsdWdpbiBzZXJ2aWNlIGtub3dzIHRoZW0uICovXG4gIHJlYWRvbmx5IHN0ZXBzOiByZWFkb25seSBSdW50aW1lQ2hlY2tTdGVwW107XG4gIC8qKlxuICAgKiBUaGUgb3JnJ3MgcGxhdGZvcm0gc2VjcmV0IChgPHByZWZpeD4vPG9yZ0lkPi9wbGF0Zm9ybWApLiBUaGUgdmVyaWZ5IHN0ZXBcbiAgICogcmVhZHMgaXQgaXRzZWxmIChgLS1zdG9yZS10b2tlbnNgKSwgc28gaXRzIHJvbGUgaXMgZ3JhbnRlZCBleGFjdGx5IHRoYXQgb25lXG4gICAqIHNlY3JldCDigJQgbGlrZSB0aGUgc3ludGggcHJvamVjdCwgYW5kIHVubGlrZSBhIHBsdWdpbiBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm1TZWNyZXROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHN0ZXAgdGhhdCByZS1hc2tzIHRoZSBwbHVnaW4gc2VydmljZSwgYXQgcnVuIHRpbWUsIHdoYXQgaXQgbm93IGtub3dzXG4gKiBhYm91dCB0aGUgaW1hZ2VzIHRoaXMgc3RhZ2UgcnVucyAoc2VlIGBjb3JlL3J1bnRpbWUtY2hlY2sudHNgKS5cbiAqXG4gKiBTZXRzIG5vIGltYWdlIG9mIGl0cyBvd24sIHNvIGl0IHJ1bnMgb24gdGhlIHBpcGVsaW5lLXdpZGUgZGVmYXVsdFxuICogKGBjb2RlQnVpbGREZWZhdWx0c2Ag4oaSIGBwaXBlbGluZS1ib290c3RyYXBgLCB3aGljaCBjYXJyaWVzXG4gKiBgcGlwZWxpbmUtbWFuYWdlcmApLCBuZXZlciBvbiBhIHBsdWdpbiBpbWFnZTogbm8gdXNlciBjb2RlIHJ1bnMgaW4gaXQsIHdoaWNoXG4gKiBpcyB3aGF0IG1ha2VzIGhhbmRpbmcgaXQgdGhlIHBsYXRmb3JtIGNyZWRlbnRpYWwgYWNjZXB0YWJsZS4gYFBJUEVMSU5FX0lEYCxcbiAqIGBQTEFURk9STV9CQVNFX1VSTGAgYW5kIGBQTEFURk9STV9TRUNSRVRfTkFNRWAgY29tZSBmcm9tIHRoZSBwaXBlbGluZS13aWRlXG4gKiBDb2RlQnVpbGQgZGVmYXVsdHMuIEl0IHByaW50cyBhIGdyYWRlZCB2ZXJkaWN0IGFuZCBhbHdheXMgZXhpdHMgMCBmb3JcbiAqIHZ1bG5lcmFiaWxpdHkgc3RhdGUsIHNvIGl0IHJ1bnMgYmVzaWRlIHRoZSBzdGFnZSdzIHN0ZXBzIHJhdGhlciB0aGFuIGluXG4gKiBmcm9udCBvZiB0aGVtIOKAlCB2aXNpYmlsaXR5LCBuZXZlciBhIGdhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSdW50aW1lVnVsbkNoZWNrU3RlcChwcm9wczogUnVudGltZVZ1bG5DaGVja1N0ZXBQcm9wcyk6IENvZGVCdWlsZFN0ZXAge1xuICByZXR1cm4gbmV3IENvZGVCdWlsZFN0ZXAocHJvcHMuaWQsIHtcbiAgICBjb21tYW5kczogWydwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2ZXJpZnkgLS1waXBlbGluZS1pZCBcIiR7UElQRUxJTkVfSUR9XCIgLS1zdG9yZS10b2tlbnMnXSxcbiAgICBwYXJ0aWFsQnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7IGVudjogeyBzaGVsbDogJy9iaW4vc2gnIH0gfSksXG4gICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgW1JVTlRJTUVfQ0hFQ0tfU1RFUFNfRU5WXTogeyB2YWx1ZTogSlNPTi5zdHJpbmdpZnkocHJvcHMuc3RlcHMpIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcm9sZVBvbGljeVN0YXRlbWVudHM6IFtuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VjcmV0c21hbmFnZXI6KjoqOnNlY3JldDoke3Byb3BzLnBsYXRmb3JtU2VjcmV0TmFtZX0tKmBdLFxuICAgIH0pXSxcbiAgfSk7XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS12dWxuLWNoZWNrLXN0ZXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9ydW50aW1lLXZ1bG4tY2hlY2stc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sMEJBQTBCLENBQUM7QUFnQjFGOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxLQUFnQztJQUN6RSxPQUFPLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDakMsUUFBUSxFQUFFLENBQUMsOEVBQThFLENBQUM7UUFDMUYsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ3JFLGdCQUFnQixFQUFFO1lBQ2hCLG9CQUFvQixFQUFFO2dCQUNwQixDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7YUFDbEU7U0FDRjtRQUNELG9CQUFvQixFQUFFLENBQUMsSUFBSSxlQUFlLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDcEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQzFDLFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQzthQUMvRSxDQUFDLENBQUM7S0FDSixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IEJ1aWxkU3BlYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvZGVCdWlsZFN0ZXAgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgUlVOVElNRV9DSEVDS19TVEVQU19FTlYsIHR5cGUgUnVudGltZUNoZWNrU3RlcCB9IGZyb20gJy4uL2NvcmUvcnVudGltZS1jaGVjay5qcyc7XG5cbi8qKiBXaGF0IGEgc3RhZ2UncyB2ZXJpZnkgc3RlcCBuZWVkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVZ1bG5DaGVja1N0ZXBQcm9wcyB7XG4gIC8qKiBDb25zdHJ1Y3QgaWQgb2YgdGhlIHN0ZXAgKHVuaXF1ZSBwZXIgc3RhZ2UpLiAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICAvKiogVGhlIHN0YWdlJ3MgaW1hZ2UtYmFja2VkIHN0ZXBzLCBhcyB0aGUgcGx1Z2luIHNlcnZpY2Uga25vd3MgdGhlbS4gKi9cbiAgcmVhZG9ubHkgc3RlcHM6IHJlYWRvbmx5IFJ1bnRpbWVDaGVja1N0ZXBbXTtcbiAgLyoqXG4gICAqIFRoZSBvcmcncyBwbGF0Zm9ybSBzZWNyZXQgKGA8cHJlZml4Pi88b3JnSWQ+L3BsYXRmb3JtYCkuIFRoZSB2ZXJpZnkgc3RlcFxuICAgKiByZWFkcyBpdCBpdHNlbGYgKGAtLXN0b3JlLXRva2Vuc2ApLCBzbyBpdHMgcm9sZSBpcyBncmFudGVkIGV4YWN0bHkgdGhhdCBvbmVcbiAgICogc2VjcmV0IOKAlCBsaWtlIHRoZSBzeW50aCBwcm9qZWN0LCBhbmQgdW5saWtlIGEgcGx1Z2luIHN0ZXAuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybVNlY3JldE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc3RlcCB0aGF0IHJlLWFza3MgdGhlIHBsdWdpbiBzZXJ2aWNlLCBhdCBydW4gdGltZSwgd2hhdCBpdCBub3cga25vd3NcbiAqIGFib3V0IHRoZSBpbWFnZXMgdGhpcyBzdGFnZSBydW5zIChzZWUgYGNvcmUvcnVudGltZS1jaGVjay50c2ApLlxuICpcbiAqIFNldHMgbm8gaW1hZ2Ugb2YgaXRzIG93biwgc28gaXQgcnVucyBvbiB0aGUgcGlwZWxpbmUtd2lkZSBkZWZhdWx0XG4gKiAoYGNvZGVCdWlsZERlZmF1bHRzYCDihpIgYHBpcGVsaW5lLWJvb3RzdHJhcGAsIHdoaWNoIGNhcnJpZXNcbiAqIGBwaXBlbGluZS1tYW5hZ2VyYCksIG5ldmVyIG9uIGEgcGx1Z2luIGltYWdlOiBubyB1c2VyIGNvZGUgcnVucyBpbiBpdCwgd2hpY2hcbiAqIGlzIHdoYXQgbWFrZXMgaGFuZGluZyBpdCB0aGUgcGxhdGZvcm0gY3JlZGVudGlhbCBhY2NlcHRhYmxlLiBgUElQRUxJTkVfSURgLFxuICogYFBMQVRGT1JNX0JBU0VfVVJMYCBhbmQgYFBMQVRGT1JNX1NFQ1JFVF9OQU1FYCBjb21lIGZyb20gdGhlIHBpcGVsaW5lLXdpZGVcbiAqIENvZGVCdWlsZCBkZWZhdWx0cy4gSXQgcHJpbnRzIGEgZ3JhZGVkIHZlcmRpY3QgYW5kIGFsd2F5cyBleGl0cyAwIGZvclxuICogdnVsbmVyYWJpbGl0eSBzdGF0ZSwgc28gaXQgcnVucyBiZXNpZGUgdGhlIHN0YWdlJ3Mgc3RlcHMgcmF0aGVyIHRoYW4gaW5cbiAqIGZyb250IG9mIHRoZW0g4oCUIHZpc2liaWxpdHksIG5ldmVyIGEgZ2F0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJ1bnRpbWVWdWxuQ2hlY2tTdGVwKHByb3BzOiBSdW50aW1lVnVsbkNoZWNrU3RlcFByb3BzKTogQ29kZUJ1aWxkU3RlcCB7XG4gIHJldHVybiBuZXcgQ29kZUJ1aWxkU3RlcChwcm9wcy5pZCwge1xuICAgIGNvbW1hbmRzOiBbJ3BpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHZlcmlmeSAtLXBpcGVsaW5lLWlkIFwiJHtQSVBFTElORV9JRH1cIiAtLXN0b3JlLXRva2VucyddLFxuICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHsgZW52OiB7IHNoZWxsOiAnL2Jpbi9zaCcgfSB9KSxcbiAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczoge1xuICAgICAgICBbUlVOVElNRV9DSEVDS19TVEVQU19FTlZdOiB7IHZhbHVlOiBKU09OLnN0cmluZ2lmeShwcm9wcy5zdGVwcykgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByb2xlUG9saWN5U3RhdGVtZW50czogW25ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoqOio6c2VjcmV0OiR7cHJvcHMucGxhdGZvcm1TZWNyZXROYW1lfS0qYF0sXG4gICAgfSldLFxuICB9KTtcbn1cbiJdfQ==
@@ -161,4 +161,4 @@ export class SourceBuilder {
161
161
  });
162
162
  }
163
163
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFM0Msc0ZBQXNGO0FBQ3RGLE1BQU0sbUJBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDL0QsNERBQTREO0FBQzVELE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFckQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBRUwsS0FBSztJQUNM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QzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUVqRCxPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDakUsYUFBYSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ2xELGFBQWEsRUFBRSxPQUFPLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxJQUFJO1lBQ25ELG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCLENBQUMsRUFBWTtRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbkQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUM5QyxJQUFJLENBQUMsS0FBSyxFQUNWLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQzFCLE9BQU8sQ0FBQyxjQUFjLENBQ3ZCLENBQUM7UUFFRixPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDekUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO1NBQ2xHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQgeyBDb2RlQ29tbWl0VHJpZ2dlciwgR2l0SHViVHJpZ2dlciwgUzNUcmlnZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb2RlUGlwZWxpbmVTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vcGlwZWxpbmUtY29uZmlndXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEdpdEh1Yk9wdGlvbnMsIFNvdXJjZVR5cGUgfSBmcm9tICcuL3NvdXJjZS10eXBlcy5qcyc7XG5pbXBvcnQgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IHVud3JhcFNlY3JldCB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtaGVscGVycy5qcyc7XG5pbXBvcnQgeyBUcmlnZ2VyVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRlbXBsYXRlcyB9IGZyb20gJy4uL3RlbXBsYXRlL2luZGV4LmpzJztcbmltcG9ydCB7IGhhc1RlbXBsYXRlIH0gZnJvbSAnLi4vdGVtcGxhdGUvdG9rZW5pemVyLmpzJztcblxuY29uc3QgbG9nID0gY3JlYXRlTG9nZ2VyKCdzb3VyY2UtYnVpbGRlcicpO1xuXG4vKiogQSBTZWNyZXRzIE1hbmFnZXIgQVJOIChgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjouLi5gLCBpbmNsLiBwYXJ0aXRpb24gdmFyaWFudHMpLiAqL1xuY29uc3QgU0VDUkVUU19NQU5BR0VSX0FSTiA9IC9eYXJuOmF3c1thLXotXSo6c2VjcmV0c21hbmFnZXI6L2k7XG4vKiogQSBgc2VjcmV0c21hbmFnZXI6PHNlY3JldC1uYW1lPmAgc2hvcnRoYW5kIHJlZmVyZW5jZS4gKi9cbmNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9SRUZfUFJFRklYID0gJ3NlY3JldHNtYW5hZ2VyOic7XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgYXBwcm9wcmlhdGUgQ29kZVBpcGVsaW5lU291cmNlIGJhc2VkIG9uIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIFN1cHBvcnRzIFMzLCBHaXRIdWIsIENvZGVTdGFyIGNvbm5lY3Rpb24sIGFuZCBDb2RlQ29tbWl0IHNvdXJjZXMuXG4gKlxuICogKipOb3RlIG9uIFNDSEVEVUxFIHRyaWdnZXJzOioqIFNjaGVkdWxlZCBwaXBlbGluZXMgcmVxdWlyZSBhbiBFdmVudEJyaWRnZSBydWxlXG4gKiB0aGF0IHN0YXJ0cyB0aGUgcGlwZWxpbmUgb24gYSBjcm9uIHNjaGVkdWxlLiBUaGUgc291cmNlIHRyaWdnZXIgaXMgc2V0IHRvIE5PTkVcbiAqIChubyBwb2xsaW5nL3dlYmhvb2spLiBUaGUgRXZlbnRCcmlkZ2UgcnVsZSBtdXN0IGJlIGNyZWF0ZWQgc2VwYXJhdGVseSBhcyBhXG4gKiBwaXBlbGluZS1sZXZlbCBjb25zdHJ1Y3QsIG5vdCBhdCB0aGUgc291cmNlIGxldmVsLiBUaGUgYHNjaGVkdWxlYCBmaWVsZCBvblxuICogc291cmNlIG9wdGlvbnMgY2FwdHVyZXMgdGhlIGNyb24gZXhwcmVzc2lvbiBmb3IgQVBJL2Zyb250ZW5kIHVzZS4gVGhlIGFjdHVhbFxuICogRXZlbnRCcmlkZ2UgcnVsZSBjcmVhdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBgUGlwZWxpbmVCdWlsZGVyYCAodGhlXG4gKiBgU2NoZWR1bGVSdWxlYCBgZXZlbnRzLlJ1bGVgIHRhcmdldGluZyB0aGUgcGlwZWxpbmUpLCBub3QgYXQgdGhlIHNvdXJjZSBsZXZlbC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlQnVpbGRlciA9IG5ldyBTb3VyY2VCdWlsZGVyKHRoaXMsIGNvbmZpZyk7XG4gKiBjb25zdCBzb3VyY2UgPSBzb3VyY2VCdWlsZGVyLmNyZWF0ZSh1bmlxdWVJZCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFNvdXJjZUJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFBpcGVsaW5lQ29uZmlndXJhdGlvbixcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBhcHByb3ByaWF0ZSBDb2RlUGlwZWxpbmVTb3VyY2UgYmFzZWQgb24gc291cmNlIHR5cGVcbiAgICovXG4gIGNyZWF0ZShpZDogVW5pcXVlSWQpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIHN3aXRjaCAodGhpcy5jb25maWcuc291cmNlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3MzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUzNTb3VyY2UoaWQpO1xuICAgICAgY2FzZSAnZ2l0aHViJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlR2l0SHViU291cmNlKCk7XG4gICAgICBjYXNlICdjb2Rlc3Rhcic6XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvZGVTdGFyU291cmNlKCk7XG4gICAgICBjYXNlICdjb2RlY29tbWl0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZUNvbW1pdFNvdXJjZShpZCk7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IF9leGhhdXN0aXZlOiBuZXZlciA9IHRoaXMuY29uZmlnLnNvdXJjZTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBzb3VyY2UgdHlwZTogJHsoX2V4aGF1c3RpdmUgYXMgU291cmNlVHlwZSkudHlwZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBTMyBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTM1NvdXJjZShpZDogVW5pcXVlSWQpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRTM09wdGlvbnMoKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IEJ1Y2tldC5mcm9tQnVja2V0TmFtZShcbiAgICAgIHRoaXMuc2NvcGUsXG4gICAgICBpZC5nZW5lcmF0ZSgnc291cmNlOmJ1Y2tldCcpLFxuICAgICAgb3B0aW9ucy5idWNrZXROYW1lLFxuICAgICk7XG5cbiAgICBjb25zdCB0cmlnZ2VyID1cbiAgICAgIG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IFMzVHJpZ2dlci5FVkVOVFMgOiBTM1RyaWdnZXIuTk9ORTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuczMoYnVja2V0LCBvcHRpb25zLm9iamVjdEtleSwgeyB0cmlnZ2VyIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBHaXRIdWIgc291cmNlIGZvciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlR2l0SHViU291cmNlKCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldEdpdEh1Yk9wdGlvbnMoKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuZ2l0SHViKG9wdGlvbnMucmVwbywgb3B0aW9ucy5icmFuY2gsIHtcbiAgICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IEdpdEh1YlRyaWdnZXIuUE9MTCA6IEdpdEh1YlRyaWdnZXIuTk9ORSxcbiAgICAgIGF1dGhlbnRpY2F0aW9uOiB0aGlzLnJlc29sdmVHaXRIdWJBdXRoZW50aWNhdGlvbihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBHaXRIdWIgYXV0aGVudGljYXRpb24gdG9rZW4gaW50byBhIHtAbGluayBTZWNyZXRWYWx1ZX0gd2l0aG91dFxuICAgKiBsZWFraW5nIHRoZSB0b2tlbiB2YWx1ZSBpbnRvIHRoZSBzeW50aGVzaXplZCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogLSBgdW5kZWZpbmVkYCB0b2tlbiDihpIgbm8gYXV0aGVudGljYXRpb24gKENESyBkZWZhdWx0KS5cbiAgICogLSBBIGBTZWNyZXRWYWx1ZWAg4oaSIHBhc3NlZCB0aHJvdWdoIChhbHJlYWR5IGEgcmVmZXJlbmNlLCBuZXZlciBwbGFpbnRleHQpLlxuICAgKiAtIEEgU2VjcmV0cyBNYW5hZ2VyIEFSTiBvciBgc2VjcmV0c21hbmFnZXI6PG5hbWU+YCBzdHJpbmcg4oaSIHJlc29sdmVkIHZpYVxuICAgKiAgIGBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcmAsIHNvIG9ubHkgdGhlIHJlZmVyZW5jZSBsYW5kcyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqIC0gQSBnZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4g4oaSIHJlamVjdGVkIGJ5IGRlZmF1bHQgKGl0IHdvdWxkIGJlIGJha2VkIGFzXG4gICAqICAgcGxhaW50ZXh0IGludG8gQ2xvdWRGb3JtYXRpb24vQ0RLIGNvbnRleHQpLiBPbmx5IHdoZW5cbiAgICogICBgYWxsb3dQbGFpblRleHRUb2tlbmAgaXMgZXhwbGljaXRseSBzZXQgaXMgaXQgZW1iZWRkZWQgdmlhXG4gICAqICAgYFNlY3JldFZhbHVlLnVuc2FmZVBsYWluVGV4dGAsIGFuZCBhIGxvdWQgd2FybmluZyBpcyBlbWl0dGVkLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlR2l0SHViQXV0aGVudGljYXRpb24ob3B0aW9uczogR2l0SHViT3B0aW9ucyk6IFNlY3JldFZhbHVlIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgdG9rZW4gPSBvcHRpb25zLnRva2VuO1xuICAgIGlmICh0b2tlbiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gQSBTZWNyZXRWYWx1ZSBpcyBhbHJlYWR5IGEgcmVmZXJlbmNlIChlLmcuIFNlY3JldHMgTWFuYWdlcikg4oCUIG5ldmVyIHBsYWludGV4dC5cbiAgICBpZiAodHlwZW9mIHRva2VuICE9PSAnc3RyaW5nJykgcmV0dXJuIHRva2VuO1xuXG4gICAgLy8gU3ludGgtdGltZSB0ZW1wbGF0aW5nOiByZXNvbHZlIGB7eyBwaXBlbGluZS4qIH19YCBpbiB0aGUgdG9rZW4gYWdhaW5zdCB0aGVcbiAgICAvLyBwaXBlbGluZSBzY29wZSAoZS5nLiBgc2VjcmV0c21hbmFnZXI6cGlwZWxpbmUtYnVpbGRlci97eyBwaXBlbGluZS52YXJzLm9yZ0lkIH19L1xuICAgIC8vIGdpdGh1Yi10b2tlbmApIHNvIHRoZSBzZWNyZXQgcmVmZXJlbmNlIGNhbiBiZSBwYXJhbWV0ZXJpemVkIGJ5IHBpcGVsaW5lIHZhcnMg4oCUXG4gICAgLy8gdGhlIG9ubHkgc291cmNlIGZpZWxkIHRoYXQgaXMgdGVtcGxhdGFibGUuIE5vLW9wIHdoZW4gdGhlIHRva2VuIGNhcnJpZXMgbm9cbiAgICAvLyB0ZW1wbGF0ZSAoYSBwbGFpbiBBUk4sIGBzZWNyZXRzbWFuYWdlcjpgIHJlZiwgb3IgcGxhaW50ZXh0IHJlc29sdmVzIHRvIGl0c2VsZikuXG4gICAgaWYgKGhhc1RlbXBsYXRlKHRva2VuKSkge1xuICAgICAgY29uc3QgaG9sZGVyID0geyB0b2tlbiB9O1xuICAgICAgY29uc3QgeyBlcnJvcnMgfSA9IHJlc29sdmVUZW1wbGF0ZXMoaG9sZGVyLCB0aGlzLmNvbmZpZy5nZXRQaXBlbGluZVNjb3BlKCksIChmKSA9PiBmID09PSAndG9rZW4nKTtcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBlID0gZXJyb3JzWzBdITtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHaXRIdWIgc291cmNlIHRva2VuIHRlbXBsYXRlIHJlc29sdXRpb24gZmFpbGVkIGF0ICcke2UuZmllbGQgPz8gJ3Rva2VuJ30nOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIHRva2VuID0gaG9sZGVyLnRva2VuO1xuICAgIH1cblxuICAgIC8vIEEgc3RyaW5nIHRoYXQgbmFtZXMgYSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGlzIHJlc29sdmVkIHRvIGEgcmVmZXJlbmNlIHNvXG4gICAgLy8gb25seSB0aGUgcG9pbnRlciDigJQgbm90IHRoZSB0b2tlbiDigJQgaXMgd3JpdHRlbiB0byB0aGUgdGVtcGxhdGUgLyBDREsgY29udGV4dC5cbiAgICBpZiAoU0VDUkVUU19NQU5BR0VSX0FSTi50ZXN0KHRva2VuKSkge1xuICAgICAgcmV0dXJuIFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRva2VuKTtcbiAgICB9XG4gICAgaWYgKHRva2VuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcih0b2tlbi5zbGljZShTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWC5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICAvLyBHZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4g4oCUIHRoaXMgaXMgdGhlIGV4cG9zdXJlLiBSZWplY3QgYnkgZGVmYXVsdCBhbmRcbiAgICAvLyBwb2ludCB0aGUgY2FsbGVyIGF0IGEgc2VjcmV0IHJlZmVyZW5jZSBvciBhIENvZGVTdGFyIGNvbm5lY3Rpb24uXG4gICAgaWYgKCFvcHRpb25zLmFsbG93UGxhaW5UZXh0VG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0dpdEh1YiBzb3VyY2UgYHRva2VuYCBpcyBhIHJhdyBwbGFpbnRleHQgdmFsdWUsIHdoaWNoIHdvdWxkIGJlIGJha2VkIGludG8gdGhlICcgK1xuICAgICAgICAnc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgKGFuZCBDREsgY29udGV4dCAvIHN0YWNrIHN0YXRlKS4gUHJvdmlkZSBhICcgK1xuICAgICAgICAnU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkIOKAlCBhbiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjouLi5gIEFSTiwgYSAnICtcbiAgICAgICAgJ2BzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzdHJpbmcsIG9yIGEgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgIOKAlCBvciAnICtcbiAgICAgICAgJ3ByZWZlciBhIENvZGVTdGFyIGNvbm5lY3Rpb24gKGB0eXBlOiBcImNvZGVzdGFyXCJgKS4gVG8gaW50ZW50aW9uYWxseSBlbWJlZCB0aGUgdG9rZW4gJyArXG4gICAgICAgICdpbiBwbGFpbnRleHQsIHNldCBgYWxsb3dQbGFpblRleHRUb2tlbjogdHJ1ZWAuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbG9nLndhcm4oXG4gICAgICAnR2l0SHViIHNvdXJjZSBgdG9rZW5gIGlzIGJlaW5nIGVtYmVkZGVkIGFzIFBMQUlOVEVYVCBpbiB0aGUgc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gJyArXG4gICAgICAndGVtcGxhdGUgYmVjYXVzZSBgYWxsb3dQbGFpblRleHRUb2tlbmAgaXMgc2V0LiBBbnlvbmUgd2l0aCB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yICcgK1xuICAgICAgJ3N0YWNrIHN0YXRlIGFjY2VzcyBjYW4gcmVhZCB0aGlzIHRva2VuLiBVc2UgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIG9yIGEgQ29kZVN0YXIgJyArXG4gICAgICAnY29ubmVjdGlvbiBpbnN0ZWFkLicsXG4gICAgKTtcbiAgICByZXR1cm4gU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29kZVN0YXIgY29ubmVjdGlvbiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb2RlU3RhclNvdXJjZSgpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlU3Rhck9wdGlvbnMoKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihvcHRpb25zLnJlcG8sIG9wdGlvbnMuYnJhbmNoLCB7XG4gICAgICBjb25uZWN0aW9uQXJuOiB1bndyYXBTZWNyZXQob3B0aW9ucy5jb25uZWN0aW9uQXJuKSxcbiAgICAgIHRyaWdnZXJPblB1c2g6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyxcbiAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBvcHRpb25zLmNvZGVCdWlsZENsb25lT3V0cHV0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlQ29tbWl0IHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVDb21taXRTb3VyY2UoaWQ6IFVuaXF1ZUlkKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29kZUNvbW1pdE9wdGlvbnMoKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZShcbiAgICAgIHRoaXMuc2NvcGUsXG4gICAgICBpZC5nZW5lcmF0ZSgnc291cmNlOnJlcG8nKSxcbiAgICAgIG9wdGlvbnMucmVwb3NpdG9yeU5hbWUsXG4gICAgKTtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuY29kZUNvbW1pdChyZXBvc2l0b3J5LCBvcHRpb25zLmJyYW5jaCA/PyAnbWFpbicsIHtcbiAgICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IENvZGVDb21taXRUcmlnZ2VyLkVWRU5UUyA6IENvZGVDb21taXRUcmlnZ2VyLk5PTkUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUUzQyxzRkFBc0Y7QUFDdEYsTUFBTSxtQkFBbUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUMvRCw0REFBNEQ7QUFDNUQsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFFTCxLQUFLO0lBQ0wsTUFBTTtJQUZ6QixZQUNt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QUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRWpELE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNqRSxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDbEQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLElBQUk7WUFDbkQsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUNuRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQkFBc0IsQ0FBQyxFQUFZO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUVuRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQzlDLElBQUksQ0FBQyxLQUFLLEVBQ1YsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFDMUIsT0FBTyxDQUFDLGNBQWMsQ0FDdkIsQ0FBQztRQUVGLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUN6RSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUk7U0FDbEcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IFNlY3JldFZhbHVlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlY29tbWl0JztcbmltcG9ydCB7IENvZGVDb21taXRUcmlnZ2VyLCBHaXRIdWJUcmlnZ2VyLCBTM1RyaWdnZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnMnO1xuaW1wb3J0IHsgQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvZGVQaXBlbGluZVNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgUGlwZWxpbmVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9waXBlbGluZS1jb25maWd1cmF0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgR2l0SHViT3B0aW9ucywgU291cmNlVHlwZSB9IGZyb20gJy4vc291cmNlLXR5cGVzLmpzJztcbmltcG9ydCB7IFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29yZS9pZC1nZW5lcmF0b3IuanMnO1xuaW1wb3J0IHsgdW53cmFwU2VjcmV0IH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS1oZWxwZXJzLmpzJztcbmltcG9ydCB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5pbXBvcnQgeyByZXNvbHZlVGVtcGxhdGVzIH0gZnJvbSAnLi4vdGVtcGxhdGUvaW5kZXguanMnO1xuaW1wb3J0IHsgaGFzVGVtcGxhdGUgfSBmcm9tICcuLi90ZW1wbGF0ZS90b2tlbml6ZXIuanMnO1xuXG5jb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIoJ3NvdXJjZS1idWlsZGVyJyk7XG5cbi8qKiBBIFNlY3JldHMgTWFuYWdlciBBUk4gKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmAsIGluY2wuIHBhcnRpdGlvbiB2YXJpYW50cykuICovXG5jb25zdCBTRUNSRVRTX01BTkFHRVJfQVJOID0gL15hcm46YXdzW2Etei1dKjpzZWNyZXRzbWFuYWdlcjovaTtcbi8qKiBBIGBzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzaG9ydGhhbmQgcmVmZXJlbmNlLiAqL1xuY29uc3QgU0VDUkVUU19NQU5BR0VSX1JFRl9QUkVGSVggPSAnc2VjcmV0c21hbmFnZXI6JztcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhcHByb3ByaWF0ZSBDb2RlUGlwZWxpbmVTb3VyY2UgYmFzZWQgb24gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogU3VwcG9ydHMgUzMsIEdpdEh1YiwgQ29kZVN0YXIgY29ubmVjdGlvbiwgYW5kIENvZGVDb21taXQgc291cmNlcy5cbiAqXG4gKiAqKk5vdGUgb24gU0NIRURVTEUgdHJpZ2dlcnM6KiogU2NoZWR1bGVkIHBpcGVsaW5lcyByZXF1aXJlIGFuIEV2ZW50QnJpZGdlIHJ1bGVcbiAqIHRoYXQgc3RhcnRzIHRoZSBwaXBlbGluZSBvbiBhIGNyb24gc2NoZWR1bGUuIFRoZSBzb3VyY2UgdHJpZ2dlciBpcyBzZXQgdG8gTk9ORVxuICogKG5vIHBvbGxpbmcvd2ViaG9vaykuIFRoZSBFdmVudEJyaWRnZSBydWxlIG11c3QgYmUgY3JlYXRlZCBzZXBhcmF0ZWx5IGFzIGFcbiAqIHBpcGVsaW5lLWxldmVsIGNvbnN0cnVjdCwgbm90IGF0IHRoZSBzb3VyY2UgbGV2ZWwuIFRoZSBgc2NoZWR1bGVgIGZpZWxkIG9uXG4gKiBzb3VyY2Ugb3B0aW9ucyBjYXB0dXJlcyB0aGUgY3JvbiBleHByZXNzaW9uIGZvciBBUEkvZnJvbnRlbmQgdXNlLiBUaGUgYWN0dWFsXG4gKiBFdmVudEJyaWRnZSBydWxlIGNyZWF0aW9uIGlzIGltcGxlbWVudGVkIGluIGBQaXBlbGluZUJ1aWxkZXJgICh0aGVcbiAqIGBTY2hlZHVsZVJ1bGVgIGBldmVudHMuUnVsZWAgdGFyZ2V0aW5nIHRoZSBwaXBlbGluZSksIG5vdCBhdCB0aGUgc291cmNlIGxldmVsLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VCdWlsZGVyID0gbmV3IFNvdXJjZUJ1aWxkZXIodGhpcywgY29uZmlnKTtcbiAqIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUJ1aWxkZXIuY3JlYXRlKHVuaXF1ZUlkKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGlwZWxpbmVDb25maWd1cmF0aW9uLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiBzb3VyY2UgdHlwZVxuICAgKi9cbiAgY3JlYXRlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zb3VyY2UudHlwZSkge1xuICAgICAgY2FzZSAnczMnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTM1NvdXJjZShpZCk7XG4gICAgICBjYXNlICdnaXRodWInOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVHaXRIdWJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVzdGFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZVN0YXJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVjb21taXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2RlQ29tbWl0U291cmNlKGlkKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdGhpcy5jb25maWcuc291cmNlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNvdXJjZSB0eXBlOiAkeyhfZXhoYXVzdGl2ZSBhcyBTb3VyY2VUeXBlKS50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFMzIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVMzU291cmNlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldFMzT3B0aW9ucygpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6YnVja2V0JyksXG4gICAgICBvcHRpb25zLmJ1Y2tldE5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHRyaWdnZXIgPVxuICAgICAgb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gUzNUcmlnZ2VyLkVWRU5UUyA6IFMzVHJpZ2dlci5OT05FO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5zMyhidWNrZXQsIG9wdGlvbnMub2JqZWN0S2V5LCB7IHRyaWdnZXIgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEdpdEh1YiBzb3VyY2UgZm9yIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVHaXRIdWJTb3VyY2UoKTogQ29kZVBpcGVsaW5lU291cmNlIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jb25maWcuZ2V0R2l0SHViT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5naXRIdWIob3B0aW9ucy5yZXBvLCBvcHRpb25zLmJyYW5jaCwge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gR2l0SHViVHJpZ2dlci5QT0xMIDogR2l0SHViVHJpZ2dlci5OT05FLFxuICAgICAgYXV0aGVudGljYXRpb246IHRoaXMucmVzb2x2ZUdpdEh1YkF1dGhlbnRpY2F0aW9uKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIEdpdEh1YiBhdXRoZW50aWNhdGlvbiB0b2tlbiBpbnRvIGEge0BsaW5rIFNlY3JldFZhbHVlfSB3aXRob3V0XG4gICAqIGxlYWtpbmcgdGhlIHRva2VuIHZhbHVlIGludG8gdGhlIHN5bnRoZXNpemVkIHRlbXBsYXRlLlxuICAgKlxuICAgKiAtIGB1bmRlZmluZWRgIHRva2VuIOKGkiBubyBhdXRoZW50aWNhdGlvbiAoQ0RLIGRlZmF1bHQpLlxuICAgKiAtIEEgYFNlY3JldFZhbHVlYCDihpIgcGFzc2VkIHRocm91Z2ggKGFscmVhZHkgYSByZWZlcmVuY2UsIG5ldmVyIHBsYWludGV4dCkuXG4gICAqIC0gQSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9yIGBzZWNyZXRzbWFuYWdlcjo8bmFtZT5gIHN0cmluZyDihpIgcmVzb2x2ZWQgdmlhXG4gICAqICAgYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyYCwgc28gb25seSB0aGUgcmVmZXJlbmNlIGxhbmRzIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICogLSBBIGdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiDihpIgcmVqZWN0ZWQgYnkgZGVmYXVsdCAoaXQgd291bGQgYmUgYmFrZWQgYXNcbiAgICogICBwbGFpbnRleHQgaW50byBDbG91ZEZvcm1hdGlvbi9DREsgY29udGV4dCkuIE9ubHkgd2hlblxuICAgKiAgIGBhbGxvd1BsYWluVGV4dFRva2VuYCBpcyBleHBsaWNpdGx5IHNldCBpcyBpdCBlbWJlZGRlZCB2aWFcbiAgICogICBgU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0YCwgYW5kIGEgbG91ZCB3YXJuaW5nIGlzIGVtaXR0ZWQuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVHaXRIdWJBdXRoZW50aWNhdGlvbihvcHRpb25zOiBHaXRIdWJPcHRpb25zKTogU2VjcmV0VmFsdWUgfCB1bmRlZmluZWQge1xuICAgIGxldCB0b2tlbiA9IG9wdGlvbnMudG9rZW47XG4gICAgaWYgKHRva2VuID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAvLyBBIFNlY3JldFZhbHVlIGlzIGFscmVhZHkgYSByZWZlcmVuY2UgKGUuZy4gU2VjcmV0cyBNYW5hZ2VyKSDigJQgbmV2ZXIgcGxhaW50ZXh0LlxuICAgIGlmICh0eXBlb2YgdG9rZW4gIT09ICdzdHJpbmcnKSByZXR1cm4gdG9rZW47XG5cbiAgICAvLyBTeW50aC10aW1lIHRlbXBsYXRpbmc6IHJlc29sdmUgYHt7IHBpcGVsaW5lLiogfX1gIGluIHRoZSB0b2tlbiBhZ2FpbnN0IHRoZVxuICAgIC8vIHBpcGVsaW5lIHNjb3BlIChlLmcuIGBzZWNyZXRzbWFuYWdlcjpwaXBlbGluZS1idWlsZGVyL3t7IHBpcGVsaW5lLnZhcnMub3JnSWQgfX0vXG4gICAgLy8gZ2l0aHViLXRva2VuYCkgc28gdGhlIHNlY3JldCByZWZlcmVuY2UgY2FuIGJlIHBhcmFtZXRlcml6ZWQgYnkgcGlwZWxpbmUgdmFycyDigJRcbiAgICAvLyB0aGUgb25seSBzb3VyY2UgZmllbGQgdGhhdCBpcyB0ZW1wbGF0YWJsZS4gTm8tb3Agd2hlbiB0aGUgdG9rZW4gY2FycmllcyBub1xuICAgIC8vIHRlbXBsYXRlIChhIHBsYWluIEFSTiwgYHNlY3JldHNtYW5hZ2VyOmAgcmVmLCBvciBwbGFpbnRleHQgcmVzb2x2ZXMgdG8gaXRzZWxmKS5cbiAgICBpZiAoaGFzVGVtcGxhdGUodG9rZW4pKSB7XG4gICAgICBjb25zdCBob2xkZXIgPSB7IHRva2VuIH07XG4gICAgICBjb25zdCB7IGVycm9ycyB9ID0gcmVzb2x2ZVRlbXBsYXRlcyhob2xkZXIsIHRoaXMuY29uZmlnLmdldFBpcGVsaW5lU2NvcGUoKSwgKGYpID0+IGYgPT09ICd0b2tlbicpO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGUgPSBlcnJvcnNbMF0hO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdpdEh1YiBzb3VyY2UgdG9rZW4gdGVtcGxhdGUgcmVzb2x1dGlvbiBmYWlsZWQgYXQgJyR7ZS5maWVsZCA/PyAndG9rZW4nfSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgICAgdG9rZW4gPSBob2xkZXIudG9rZW47XG4gICAgfVxuXG4gICAgLy8gQSBzdHJpbmcgdGhhdCBuYW1lcyBhIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgaXMgcmVzb2x2ZWQgdG8gYSByZWZlcmVuY2Ugc29cbiAgICAvLyBvbmx5IHRoZSBwb2ludGVyIOKAlCBub3QgdGhlIHRva2VuIOKAlCBpcyB3cml0dGVuIHRvIHRoZSB0ZW1wbGF0ZSAvIENESyBjb250ZXh0LlxuICAgIGlmIChTRUNSRVRTX01BTkFHRVJfQVJOLnRlc3QodG9rZW4pKSB7XG4gICAgICByZXR1cm4gU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIodG9rZW4pO1xuICAgIH1cbiAgICBpZiAodG9rZW4udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFNFQ1JFVFNfTUFOQUdFUl9SRUZfUFJFRklYKSkge1xuICAgICAgcmV0dXJuIFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRva2VuLnNsaWNlKFNFQ1JFVFNfTUFOQUdFUl9SRUZfUFJFRklYLmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8vIEdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiDigJQgdGhpcyBpcyB0aGUgZXhwb3N1cmUuIFJlamVjdCBieSBkZWZhdWx0IGFuZFxuICAgIC8vIHBvaW50IHRoZSBjYWxsZXIgYXQgYSBzZWNyZXQgcmVmZXJlbmNlIG9yIGEgQ29kZVN0YXIgY29ubmVjdGlvbi5cbiAgICBpZiAoIW9wdGlvbnMuYWxsb3dQbGFpblRleHRUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR2l0SHViIHNvdXJjZSBgdG9rZW5gIGlzIGEgcmF3IHBsYWludGV4dCB2YWx1ZSwgd2hpY2ggd291bGQgYmUgYmFrZWQgaW50byB0aGUgJyArXG4gICAgICAgICdzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSAoYW5kIENESyBjb250ZXh0IC8gc3RhY2sgc3RhdGUpLiBQcm92aWRlIGEgJyArXG4gICAgICAgICdTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIGluc3RlYWQg4oCUIGFuIGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmAgQVJOLCBhICcgK1xuICAgICAgICAnYHNlY3JldHNtYW5hZ2VyOjxzZWNyZXQtbmFtZT5gIHN0cmluZywgb3IgYSBgU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIoLi4uKWAg4oCUIG9yICcgK1xuICAgICAgICAncHJlZmVyIGEgQ29kZVN0YXIgY29ubmVjdGlvbiAoYHR5cGU6IFwiY29kZXN0YXJcImApLiBUbyBpbnRlbnRpb25hbGx5IGVtYmVkIHRoZSB0b2tlbiAnICtcbiAgICAgICAgJ2luIHBsYWludGV4dCwgc2V0IGBhbGxvd1BsYWluVGV4dFRva2VuOiB0cnVlYC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2cud2FybihcbiAgICAgICdHaXRIdWIgc291cmNlIGB0b2tlbmAgaXMgYmVpbmcgZW1iZWRkZWQgYXMgUExBSU5URVhUIGluIHRoZSBzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiAnICtcbiAgICAgICd0ZW1wbGF0ZSBiZWNhdXNlIGBhbGxvd1BsYWluVGV4dFRva2VuYCBpcyBzZXQuIEFueW9uZSB3aXRoIHRlbXBsYXRlLCBDREsgY29udGV4dCwgb3IgJyArXG4gICAgICAnc3RhY2sgc3RhdGUgYWNjZXNzIGNhbiByZWFkIHRoaXMgdG9rZW4uIFVzZSBhIFNlY3JldHMgTWFuYWdlciByZWZlcmVuY2Ugb3IgYSBDb2RlU3RhciAnICtcbiAgICAgICdjb25uZWN0aW9uIGluc3RlYWQuJyxcbiAgICApO1xuICAgIHJldHVybiBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHQodG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVTdGFyU291cmNlKCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvZGVTdGFyT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb25uZWN0aW9uKG9wdGlvbnMucmVwbywgb3B0aW9ucy5icmFuY2gsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IHVud3JhcFNlY3JldChvcHRpb25zLmNvbm5lY3Rpb25Bcm4pLFxuICAgICAgdHJpZ2dlck9uUHVzaDogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPLFxuICAgICAgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ6IG9wdGlvbnMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENvZGVDb21taXQgc291cmNlIGZvciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQ29kZUNvbW1pdFNvdXJjZShpZDogVW5pcXVlSWQpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlQ29tbWl0T3B0aW9ucygpO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlOYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6cmVwbycpLFxuICAgICAgb3B0aW9ucy5yZXBvc2l0b3J5TmFtZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb2RlQ29tbWl0KHJlcG9zaXRvcnksIG9wdGlvbnMuYnJhbmNoID8/ICdtYWluJywge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gQ29kZUNvbW1pdFRyaWdnZXIuRVZFTlRTIDogQ29kZUNvbW1pdFRyaWdnZXIuTk9ORSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3NvdXJjZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IFMzU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnczMnLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgYnVja2V0TmFtZTogJ215LXNvdXJjZS1idWNrZXQnLFxuICogICAgIG9iamVjdEtleTogJ3NvdXJjZS56aXAnLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3MzJztcbiAgcmVhZG9ubHkgb3B0aW9uczogUzNPcHRpb25zO1xufVxuXG4vKipcbiAqIEdpdEh1YiBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogR2l0SHViU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnZ2l0aHViJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZS5BVVRPXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnZ2l0aHViJztcbiAgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlU3RhclNvdXJjZUNvbmZpZyA9IHtcbiAqICAgdHlwZTogJ2NvZGVzdGFyJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICBjb25uZWN0aW9uQXJuOiAnYXJuOmF3czpjb2Rlc3Rhci1jb25uZWN0aW9uczouLi4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdGFyU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2NvZGVzdGFyJztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZVN0YXJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUzMgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZVxuICAgKiBAZXhhbXBsZSAnbXktcGlwZWxpbmUtc291cmNlLWJ1Y2tldCdcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT2JqZWN0IGtleSAocGF0aCkgdG8gdGhlIHNvdXJjZSBhcmNoaXZlIHdpdGhpbiB0aGUgYnVja2V0XG4gICAqIEBkZWZhdWx0ICdzb3VyY2UuemlwJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBHaXRIdWIgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeSBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBQcmVmZXIgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIHNvIHRoZSB0b2tlbiB2YWx1ZSBuZXZlciBsYW5kcyBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgLyBDREsgY29udGV4dC4gQWNjZXB0ZWQgZm9ybXM6XG4gICAqICAgLSBhIGBTZWNyZXRWYWx1ZWAgKGUuZy4gYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgKSxcbiAgICogICAtIGEgU2VjcmV0cyBNYW5hZ2VyIEFSTiBzdHJpbmcgKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmApLFxuICAgKiAgIC0gYSBgc2VjcmV0c21hbmFnZXI6PHNlY3JldC1uYW1lPmAgc2hvcnRoYW5kIHN0cmluZy5cbiAgICpcbiAgICogQSBnZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4gKGUuZy4gYSBgZ2hwXy4uLmAgUEFUKSBpcyByZWplY3RlZCBieSBkZWZhdWx0LFxuICAgKiBiZWNhdXNlIGJha2luZyBpdCBpbiB3b3VsZCBleHBvc2UgaXQgdG8gYW55b25lIHdpdGggdGVtcGxhdGUvc3RhdGUgYWNjZXNzIOKAlFxuICAgKiBzZXQge0BsaW5rIGFsbG93UGxhaW5UZXh0VG9rZW59IHRvIGludGVudGlvbmFsbHkgZW1iZWQgaXQuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdXNlcyBkZWZhdWx0IEdpdEh1YiBhdXRoZW50aWNhdGlvbi4gQ29uc2lkZXIgYSBDb2RlU3RhclxuICAgKiBjb25uZWN0aW9uIChgdHlwZTogJ2NvZGVzdGFyJ2ApIGFzIHRoZSBtb2Rlcm4sIGNyZWRlbnRpYWwtZnJlZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogT3B0LWluIGVzY2FwZSBoYXRjaCB0byBlbWJlZCBhIHJhdyBwbGFpbnRleHQge0BsaW5rIHRva2VufSBkaXJlY3RseSBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgdGVtcGxhdGUuIEluc2VjdXJlIOKAlCB0aGUgdG9rZW4gYmVjb21lcyByZWFkYWJsZSBieSBhbnlvbmUgd2l0aFxuICAgKiB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yIHN0YWNrIHN0YXRlIGFjY2Vzcy4gTGVhdmUgdW5zZXQgKGRlZmF1bHQpIHRvIGZvcmNlXG4gICAqIGEgU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dQbGFpblRleHRUb2tlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIENvZGVTdGFyIGNvbm5lY3Rpb24gcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgaWRlbnRpZmllciBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHRvIHVzZVxuICAgKiBDYW4gYmUgYSBzdHJpbmcgQVJOIG9yIFNlY3JldFZhbHVlXG4gICAqIEBleGFtcGxlICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y29ubmVjdGlvbi9hYmMxMjMnXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBmdWxsIGNsb25lIGNhcGFiaWxpdHkgaW4gQ29kZUJ1aWxkXG4gICAqIFdoZW4gdHJ1ZSwgQ29kZUJ1aWxkIGNhbiBwZXJmb3JtIGdpdCBvcGVyYXRpb25zIG9uIHRoZSBmdWxsIHJlcG9zaXRvcnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlQ29tbWl0IHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlQ29tbWl0U291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZWNvbW1pdCcsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICByZXBvc2l0b3J5TmFtZTogJ215LXJlcG8nLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZWNvbW1pdCc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvZGVDb21taXRPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZUNvbW1pdCBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29tbWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBDb2RlQ29tbWl0IHJlcG9zaXRvcnlcbiAgICogQGV4YW1wbGUgJ215LXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdHJhY2tcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xufVxuXG4vKipcbiAqIFVuaW9uIHR5cGUgb2YgYWxsIHN1cHBvcnRlZCBwaXBlbGluZSBzb3VyY2UgdHlwZXNcbiAqXG4gKiBTdXBwb3J0ZWQgc291cmNlczpcbiAqIC0gUzNTb3VyY2VDb25maWc6IFNvdXJjZSBjb2RlIGZyb20gUzMgYnVja2V0XG4gKiAtIEdpdEh1YlNvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgZnJvbSBHaXRIdWIgcmVwb3NpdG9yeVxuICogLSBDb2RlU3RhclNvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgdmlhIENvZGVTdGFyIGNvbm5lY3Rpb24gKEdpdEh1YiwgQml0YnVja2V0LCBHaXRMYWIpXG4gKiAtIENvZGVDb21taXRTb3VyY2VDb25maWc6IFNvdXJjZSBjb2RlIGZyb20gQVdTIENvZGVDb21taXQgcmVwb3NpdG9yeVxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VUeXBlID0gUzNTb3VyY2VDb25maWcgfCBHaXRIdWJTb3VyY2VDb25maWcgfCBDb2RlU3RhclNvdXJjZUNvbmZpZyB8IENvZGVDb21taXRTb3VyY2VDb25maWc7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBTZWNyZXRWYWx1ZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgVHJpZ2dlclR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLXR5cGVzLmpzJztcblxuLyoqXG4gKiBTMyBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogUzNTb3VyY2VDb25maWcgPSB7XG4gKiAgIHR5cGU6ICdzMycsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICBidWNrZXROYW1lOiAnbXktc291cmNlLWJ1Y2tldCcsXG4gKiAgICAgb2JqZWN0S2V5OiAnc291cmNlLnppcCcsXG4gKiAgICAgdHJpZ2dlcjogVHJpZ2dlclR5cGUuQVVUT1xuICogICB9XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnczMnO1xuICByZWFkb25seSBvcHRpb25zOiBTM09wdGlvbnM7XG59XG5cbi8qKlxuICogR2l0SHViIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBHaXRIdWJTb3VyY2VDb25maWcgPSB7XG4gKiAgIHR5cGU6ICdnaXRodWInLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgcmVwbzogJ293bmVyL3JlcG9zaXRvcnknLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YlNvdXJjZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHR5cGU6ICdnaXRodWInO1xuICByZWFkb25seSBvcHRpb25zOiBHaXRIdWJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvZGVTdGFyIGNvbm5lY3Rpb24gc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IENvZGVTdGFyU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZXN0YXInLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgcmVwbzogJ293bmVyL3JlcG9zaXRvcnknLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIGNvbm5lY3Rpb25Bcm46ICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOi4uLicsXG4gKiAgICAgdHJpZ2dlcjogVHJpZ2dlclR5cGUuQVVUT1xuICogICB9XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZXN0YXInO1xuICByZWFkb25seSBvcHRpb25zOiBDb2RlU3Rhck9wdGlvbnM7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBTMyBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM09wdGlvbnMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgUzMgYnVja2V0IGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBjb2RlXG4gICAqIEBleGFtcGxlICdteS1waXBlbGluZS1zb3VyY2UtYnVja2V0J1xuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPYmplY3Qga2V5IChwYXRoKSB0byB0aGUgc291cmNlIGFyY2hpdmUgd2l0aGluIHRoZSBidWNrZXRcbiAgICogQGRlZmF1bHQgJ3NvdXJjZS56aXAnXG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEdpdEh1YiBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdpdEh1YiByZXBvc2l0b3J5IGluIHRoZSBmb3JtYXQgXCJvd25lci9yZXBvXCJcbiAgICogQGV4YW1wbGUgJ215b3JnL215cmVwbydcbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHRyYWNrXG4gICAqIEBkZWZhdWx0ICdtYWluJ1xuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgYXV0aGVudGljYXRpb24gdG9rZW4uXG4gICAqXG4gICAqIFByZWZlciBhIFNlY3JldHMgTWFuYWdlciByZWZlcmVuY2Ugc28gdGhlIHRva2VuIHZhbHVlIG5ldmVyIGxhbmRzIGluIHRoZVxuICAgKiBzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSAvIENESyBjb250ZXh0LiBBY2NlcHRlZCBmb3JtczpcbiAgICogICAtIGEgYFNlY3JldFZhbHVlYCAoZS5nLiBgU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIoLi4uKWApLFxuICAgKiAgIC0gYSBTZWNyZXRzIE1hbmFnZXIgQVJOIHN0cmluZyAoYGFybjphd3M6c2VjcmV0c21hbmFnZXI6Li4uYCksXG4gICAqICAgLSBhIGBzZWNyZXRzbWFuYWdlcjo8c2VjcmV0LW5hbWU+YCBzaG9ydGhhbmQgc3RyaW5nLlxuICAgKlxuICAgKiBBIGdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiAoZS5nLiBhIGBnaHBfLi4uYCBQQVQpIGlzIHJlamVjdGVkIGJ5IGRlZmF1bHQsXG4gICAqIGJlY2F1c2UgYmFraW5nIGl0IGluIHdvdWxkIGV4cG9zZSBpdCB0byBhbnlvbmUgd2l0aCB0ZW1wbGF0ZS9zdGF0ZSBhY2Nlc3Mg4oCUXG4gICAqIHNldCB7QGxpbmsgYWxsb3dQbGFpblRleHRUb2tlbn0gdG8gaW50ZW50aW9uYWxseSBlbWJlZCBpdC5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCB1c2VzIGRlZmF1bHQgR2l0SHViIGF1dGhlbnRpY2F0aW9uLiBDb25zaWRlciBhIENvZGVTdGFyXG4gICAqIGNvbm5lY3Rpb24gKGB0eXBlOiAnY29kZXN0YXInYCkgYXMgdGhlIG1vZGVybiwgY3JlZGVudGlhbC1mcmVlIHBhdGguXG4gICAqL1xuICByZWFkb25seSB0b2tlbj86IFNlY3JldFZhbHVlIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHQtaW4gZXNjYXBlIGhhdGNoIHRvIGVtYmVkIGEgcmF3IHBsYWludGV4dCB7QGxpbmsgdG9rZW59IGRpcmVjdGx5IGluIHRoZVxuICAgKiBzeW50aGVzaXplZCB0ZW1wbGF0ZS4gSW5zZWN1cmUg4oCUIHRoZSB0b2tlbiBiZWNvbWVzIHJlYWRhYmxlIGJ5IGFueW9uZSB3aXRoXG4gICAqIHRlbXBsYXRlLCBDREsgY29udGV4dCwgb3Igc3RhY2sgc3RhdGUgYWNjZXNzLiBMZWF2ZSB1bnNldCAoZGVmYXVsdCkgdG8gZm9yY2VcbiAgICogYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd1BsYWluVGV4dFRva2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZVN0YXIgY29ubmVjdGlvbiBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlU3Rhck9wdGlvbnMge1xuICAvKipcbiAgICogUmVwb3NpdG9yeSBpZGVudGlmaWVyIGluIHRoZSBmb3JtYXQgXCJvd25lci9yZXBvXCJcbiAgICogQGV4YW1wbGUgJ215b3JnL215cmVwbydcbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHRyYWNrXG4gICAqIEBkZWZhdWx0ICdtYWluJ1xuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIENvZGVTdGFyIGNvbm5lY3Rpb24gdG8gdXNlXG4gICAqIENhbiBiZSBhIHN0cmluZyBBUk4gb3IgU2VjcmV0VmFsdWVcbiAgICogQGV4YW1wbGUgJ2Fybjphd3M6Y29kZXN0YXItY29ubmVjdGlvbnM6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjb25uZWN0aW9uL2FiYzEyMydcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IFNlY3JldFZhbHVlIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGZ1bGwgY2xvbmUgY2FwYWJpbGl0eSBpbiBDb2RlQnVpbGRcbiAgICogV2hlbiB0cnVlLCBDb2RlQnVpbGQgY2FuIHBlcmZvcm0gZ2l0IG9wZXJhdGlvbnMgb24gdGhlIGZ1bGwgcmVwb3NpdG9yeVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvZGVDb21taXQgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IENvZGVDb21taXRTb3VyY2VDb25maWcgPSB7XG4gKiAgIHR5cGU6ICdjb2RlY29tbWl0JyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG9zaXRvcnlOYW1lOiAnbXktcmVwbycsXG4gKiAgICAgYnJhbmNoOiAnbWFpbicsXG4gKiAgICAgdHJpZ2dlcjogVHJpZ2dlclR5cGUuQVVUT1xuICogICB9XG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUNvbW1pdFNvdXJjZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHR5cGU6ICdjb2RlY29tbWl0JztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZUNvbW1pdE9wdGlvbnM7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBDb2RlQ29tbWl0IHBpcGVsaW5lIHNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIENvZGVDb21taXQgcmVwb3NpdG9yeVxuICAgKiBAZXhhbXBsZSAnbXktcmVwbydcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG59XG5cbi8qKlxuICogVW5pb24gdHlwZSBvZiBhbGwgc3VwcG9ydGVkIHBpcGVsaW5lIHNvdXJjZSB0eXBlc1xuICpcbiAqIFN1cHBvcnRlZCBzb3VyY2VzOlxuICogLSBTM1NvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgZnJvbSBTMyBidWNrZXRcbiAqIC0gR2l0SHViU291cmNlQ29uZmlnOiBTb3VyY2UgY29kZSBmcm9tIEdpdEh1YiByZXBvc2l0b3J5XG4gKiAtIENvZGVTdGFyU291cmNlQ29uZmlnOiBTb3VyY2UgY29kZSB2aWEgQ29kZVN0YXIgY29ubmVjdGlvbiAoR2l0SHViLCBCaXRidWNrZXQsIEdpdExhYilcbiAqIC0gQ29kZUNvbW1pdFNvdXJjZUNvbmZpZzogU291cmNlIGNvZGUgZnJvbSBBV1MgQ29kZUNvbW1pdCByZXBvc2l0b3J5XG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVR5cGUgPSBTM1NvdXJjZUNvbmZpZyB8IEdpdEh1YlNvdXJjZUNvbmZpZyB8IENvZGVTdGFyU291cmNlQ29uZmlnIHwgQ29kZUNvbW1pdFNvdXJjZUNvbmZpZztcbiJdfQ==
@@ -173,4 +173,4 @@ export class StageBuilder {
173
173
  }
174
174
  }
175
175
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGFnZS1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFHdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzFFLE9BQU8sRUFBd0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQThDM0osbUZBQW1GO0FBQ25GLGdGQUFnRjtBQUNoRix5REFBeUQ7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUM7QUFFakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDTixLQUFLLENBQVk7SUFDakIsWUFBWSxDQUFlO0lBQzNCLFFBQVEsQ0FBVztJQUNuQixjQUFjLENBQWU7SUFDN0Isa0JBQWtCLENBQWtCO0lBQ3BDLGVBQWUsQ0FBbUI7SUFDbEMsS0FBSyxDQUFVO0lBQ2YsYUFBYSxDQUEwQjtJQUN2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QUNqRCxtQkFBbUIsRUFBRSxVQUFVLENBQUMsbUJBQW1CO1lBQ25ELFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztZQUNuQyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7WUFDckMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO1lBQ25CLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksU0FBUztZQUMxRCxvR0FBb0c7WUFDcEcsZUFBZSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDO1lBQzlHLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsUUFBc0IsRUFBRSxNQUFzQjtRQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBDb21wdXRlVHlwZSBhcyBDZGtDb21wdXRlVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHsgQ29kZVBpcGVsaW5lIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgY29kZVBpcGVsaW5lU3RhZ2VOYW1lIH0gZnJvbSAnLi9kZXBsb3ktYXR0cmlidXRpb24uanMnO1xuaW1wb3J0IHsgUGx1Z2luTG9va3VwIH0gZnJvbSAnLi9wbHVnaW4tbG9va3VwLmpzJztcbmltcG9ydCB7IGNyZWF0ZVJ1bnRpbWVWdWxuQ2hlY2tTdGVwIH0gZnJvbSAnLi9ydW50aW1lLXZ1bG4tY2hlY2stc3RlcC5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0ZXBNYW5pZmVzdFJlY29yZGVyIH0gZnJvbSAnLi9zdGVwLW1hbmlmZXN0LXJlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VPcHRpb25zIH0gZnJvbSAnLi9zdGVwLXR5cGVzLmpzJztcbmltcG9ydCB7IHR5cGUgQXJ0aWZhY3RNYW5hZ2VyIH0gZnJvbSAnLi4vY29yZS9hcnRpZmFjdC1tYW5hZ2VyLmpzJztcbmltcG9ydCB7IFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29yZS9pZC1nZW5lcmF0b3IuanMnO1xuaW1wb3J0IHsgbWVyZ2UsIHJlc29sdmVGYWlsdXJlQmVoYXZpb3IgfSBmcm9tICcuLi9jb3JlL21ldGFkYXRhLWhlbHBlcnMuanMnO1xuaW1wb3J0IHsgY3JlYXRlQ29kZUJ1aWxkU3RlcCB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtaGVscGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1ldGFEYXRhVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuaW1wb3J0IHsgYXNzZXJ0UGx1Z2luQ29udHJhY3QsIGNvbnRyYWN0U2NvcGVGcm9tVGVtcGxhdGVTY29wZSwgcGx1Z2luQXJ0aWZhY3RBbGlhcywgcGx1Z2luU3RlcElkQWxpYXMsIHBsdWdpblN0ZXBMYWJlbCB9IGZyb20gJy4uL2NvcmUvcGx1Z2luLWNvbnRyYWN0LmpzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZUNoZWNrU3RlcCB9IGZyb20gJy4uL2NvcmUvcnVudGltZS1jaGVjay5qcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgU3RhZ2VCdWlsZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VCdWlsZGVyUHJvcHMge1xuICAvKiogQ0RLIGNvbnN0cnVjdCBzY29wZSBmb3IgY3JlYXRpbmcgY2hpbGQgY29uc3RydWN0cyAqL1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKiBQbHVnaW4gbG9va3VwIHNlcnZpY2UgZm9yIHJlc29sdmluZyBwbHVnaW4gcmVmZXJlbmNlcyB0byBDREsgY29uc3RydWN0cyAqL1xuICByZWFkb25seSBwbHVnaW5Mb29rdXA6IFBsdWdpbkxvb2t1cDtcblxuICAvKiogVW5pcXVlIElEIGdlbmVyYXRvciBmb3IgY3JlYXRpbmcgZGV0ZXJtaW5pc3RpYyBjb25zdHJ1Y3QgSURzICovXG4gIHJlYWRvbmx5IHVuaXF1ZUlkOiBVbmlxdWVJZDtcblxuICAvKiogR2xvYmFsIG1ldGFkYXRhIGluaGVyaXRlZCBieSBhbGwgc3RhZ2Ugc3RlcHMgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsTWV0YWRhdGE6IE1ldGFEYXRhVHlwZTtcblxuICAvKiogRGVmYXVsdCBDb2RlQnVpbGQgY29tcHV0ZSB0eXBlIGZvciBzdGVwcyB0aGF0IGRvbid0IHNwZWNpZnkgb25lICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb21wdXRlVHlwZT86IENka0NvbXB1dGVUeXBlO1xuXG4gIC8qKiBBcnRpZmFjdCBtYW5hZ2VyIGZvciByZXNvbHZpbmcgaW5wdXQgYXJ0aWZhY3Qga2V5cyB0byBGaWxlU2V0cyAqL1xuICByZWFkb25seSBhcnRpZmFjdE1hbmFnZXI/OiBBcnRpZmFjdE1hbmFnZXI7XG5cbiAgLyoqIFRlbmFudCBpZGVudGlmaWVyIGZvciByZXNvbHZpbmcgcGVyLW9yZyBzZWNyZXRzIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlciAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUtbGV2ZWwgc2NvcGUgdXNlZCB0byByZXNvbHZlIGB7eyBwaXBlbGluZS4qIH19YCB0ZW1wbGF0ZSB0b2tlbnNcbiAgICogaW5zaWRlIHBsdWdpbiBzcGVjcy4gUmVxdWlyZWQg4oCUIHBhc3NlZCB0aHJvdWdoIHRvIGBjcmVhdGVDb2RlQnVpbGRTdGVwYFxuICAgKiBvbiBldmVyeSBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIFJlY29yZHMgZWFjaCBzdGVwJ3MgcmVzb2x2ZWQgcGx1Z2luIGZvciB0aGUgc3RlcCBtYW5pZmVzdC4gKi9cbiAgcmVhZG9ubHkgc3RlcE1hbmlmZXN0PzogU3RlcE1hbmlmZXN0UmVjb3JkZXI7XG5cbiAgLyoqXG4gICAqIFNldCB3aGVuIHRoZSBwaXBlbGluZSBvcHRlZCBpbiB0byB0aGUgcnVuLXRpbWUgdnVsbmVyYWJpbGl0eSBjaGVja1xuICAgKiAoYFJVTlRJTUVfVlVMTl9DSEVDS19LRVlgKTogZWFjaCBzdGFnZSB0aGVuIGdldHMgYSByZXBvcnQtb25seSB2ZXJpZnkgc3RlcC5cbiAgICogQ2FycmllcyB0aGUgb3JnIHBsYXRmb3JtIHNlY3JldCB0aGUgdmVyaWZ5IHN0ZXAgYXV0aGVudGljYXRlcyB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZVZ1bG5DaGVjaz86IHsgcmVhZG9ubHkgcGxhdGZvcm1TZWNyZXROYW1lOiBzdHJpbmcgfTtcbn1cblxuLy8gYGNvZGVQaXBlbGluZVN0YWdlTmFtZWAgbW92ZWQgdG8gdGhlIENESy1mcmVlIGBkZXBsb3ktYXR0cmlidXRpb24udHNgIHNvIHRoZSBBUElcbi8vIGNhbiBkZXJpdmUgYHBiLmRlcGxveXNgIHdpdGhvdXQgcHVsbGluZyBhd3MtY2RrLWxpYjsgcmUtZXhwb3J0ZWQgaGVyZSBiZWNhdXNlXG4vLyBzdGFnZSBjb25zdHJ1Y3Rpb24gaXMgd2hlcmUgY2FsbGVycyBleHBlY3QgdG8gZmluZCBpdC5cbmV4cG9ydCB7IGNvZGVQaXBlbGluZVN0YWdlTmFtZSB9O1xuXG4vKipcbiAqIEJ1aWxkcyBhbmQgYWRkcyBwaXBlbGluZSBzdGFnZXMgKHdhdmVzKSB0byBhIENvZGVQaXBlbGluZS5cbiAqXG4gKiBFYWNoIHN0YWdlIGlzIHJlc29sdmVkIGZyb20gaGlnaC1sZXZlbCBjb25maWd1cmF0aW9uIChwbHVnaW4gbmFtZXMpXG4gKiBpbnRvIENESyBDb2RlQnVpbGQgc3RlcHMgdmlhIFBsdWdpbkxvb2t1cCwgdGhlbiBhZGRlZCBhcyBhIHdhdmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0YWdlQnVpbGRlciA9IG5ldyBTdGFnZUJ1aWxkZXIoe1xuICogICBzY29wZTogdGhpcyxcbiAqICAgcGx1Z2luTG9va3VwLFxuICogICB1bmlxdWVJZCxcbiAqICAgZ2xvYmFsTWV0YWRhdGE6IG1lcmdlZE1ldGFkYXRhLFxuICogfSk7XG4gKiBzdGFnZUJ1aWxkZXIuYWRkU3RhZ2UocGlwZWxpbmUsIHtcbiAqICAgc3RhZ2VOYW1lOiAnSW50ZWdyYXRpb24gVGVzdHMnLFxuICogICBhbGlhczogJ2ludGVncmF0aW9uJyxcbiAqICAgc3RlcHM6IFtcbiAqICAgICB7IHBsdWdpbjogeyBuYW1lOiAnamVzdC1pbnRlZ3JhdGlvbicgfSB9LFxuICogICAgIHsgcGx1Z2luOiB7IG5hbWU6ICdlMmUtdGVzdHMnLCBhbGlhczogJ2N5cHJlc3MnIH0gfSxcbiAqICAgXSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFnZUJ1aWxkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luTG9va3VwOiBQbHVnaW5Mb29rdXA7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbE1ldGFkYXRhOiBNZXRhRGF0YVR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbXB1dGVUeXBlPzogQ2RrQ29tcHV0ZVR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXJ0aWZhY3RNYW5hZ2VyPzogQXJ0aWZhY3RNYW5hZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBpcGVsaW5lU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBNYW5pZmVzdD86IFN0ZXBNYW5pZmVzdFJlY29yZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bnRpbWVWdWxuQ2hlY2s/OiB7IHJlYWRvbmx5IHBsYXRmb3JtU2VjcmV0TmFtZTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFN0YWdlQnVpbGRlclByb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHByb3BzLnNjb3BlO1xuICAgIHRoaXMucGx1Z2luTG9va3VwID0gcHJvcHMucGx1Z2luTG9va3VwO1xuICAgIHRoaXMudW5pcXVlSWQgPSBwcm9wcy51bmlxdWVJZDtcbiAgICB0aGlzLmdsb2JhbE1ldGFkYXRhID0gcHJvcHMuZ2xvYmFsTWV0YWRhdGE7XG4gICAgdGhpcy5kZWZhdWx0Q29tcHV0ZVR5cGUgPSBwcm9wcy5kZWZhdWx0Q29tcHV0ZVR5cGU7XG4gICAgdGhpcy5hcnRpZmFjdE1hbmFnZXIgPSBwcm9wcy5hcnRpZmFjdE1hbmFnZXI7XG4gICAgdGhpcy5vcmdJZCA9IHByb3BzLm9yZ0lkO1xuICAgIHRoaXMucGlwZWxpbmVTY29wZSA9IHByb3BzLnBpcGVsaW5lU2NvcGU7XG4gICAgdGhpcy5zdGVwTWFuaWZlc3QgPSBwcm9wcy5zdGVwTWFuaWZlc3Q7XG4gICAgdGhpcy5ydW50aW1lVnVsbkNoZWNrID0gcHJvcHMucnVudGltZVZ1bG5DaGVjaztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIHN0YWdlJ3MgcGx1Z2luLWJhc2VkIHN0ZXAgY29uZmlncyBpbnRvIENvZGVCdWlsZCBzdGVwc1xuICAgKiBhbmQgYWRkcyB0aGVtIGFzIGEgd2F2ZSB0byB0aGUgcGlwZWxpbmUuXG4gICAqL1xuICBhZGRTdGFnZShwaXBlbGluZTogQ29kZVBpcGVsaW5lLCBzdGFnZTogU3RhZ2VPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhZ2VBbGlhcyA9IGNvZGVQaXBlbGluZVN0YWdlTmFtZShzdGFnZSk7XG4gICAgY29uc3QgY2hlY2tlZDogUnVudGltZUNoZWNrU3RlcFtdID0gW107XG5cbiAgICBjb25zdCBwcmVTdGVwcyA9IHN0YWdlLnN0ZXBzXG4gICAgICAuZmlsdGVyKHMgPT4gKHMucG9zaXRpb24gPz8gJ3ByZScpID09PSAncHJlJylcbiAgICAgIC5tYXAocyA9PiB0aGlzLnJlc29sdmVTdGVwKHMsIHN0YWdlLnN0YWdlTmFtZSwgc3RhZ2VBbGlhcywgY2hlY2tlZCkpO1xuICAgIGNvbnN0IHBvc3RTdGVwcyA9IHN0YWdlLnN0ZXBzXG4gICAgICAuZmlsdGVyKHMgPT4gcy5wb3NpdGlvbiA9PT0gJ3Bvc3QnKVxuICAgICAgLm1hcChzID0+IHRoaXMucmVzb2x2ZVN0ZXAocywgc3RhZ2Uuc3RhZ2VOYW1lLCBzdGFnZUFsaWFzLCBjaGVja2VkKSk7XG5cbiAgICAvLyBSdW4tdGltZSBjaGVjazogb25lIHZlcmlmeSBzdGVwIHBlciBzdGFnZSwgcnVubmluZyBCRVNJREUgdGhlIHN0YWdlJ3NcbiAgICAvLyBzdGVwcyDigJQgaXQgcmVwb3J0cyB0aGUgaW1hZ2VzJyBjdXJyZW50IHZ1bG5lcmFiaWxpdHkgc3RhdGUgaW50byB0aGUgYnVpbGRcbiAgICAvLyBsb2cgYW5kIG5ldmVyIGdhdGVzIHRoZW0uIEEgc3RhZ2Ugd2l0aCBubyBpbWFnZS1iYWNrZWQgc3RlcCBoYXMgbm90aGluZ1xuICAgIC8vIHRvIGFzayBhYm91dC5cbiAgICBpZiAodGhpcy5ydW50aW1lVnVsbkNoZWNrICYmIGNoZWNrZWQubGVuZ3RoID4gMCkge1xuICAgICAgcHJlU3RlcHMudW5zaGlmdChjcmVhdGVSdW50aW1lVnVsbkNoZWNrU3RlcCh7XG4gICAgICAgIGlkOiB0aGlzLnVuaXF1ZUlkLmdlbmVyYXRlKGBzdGFnZToke3N0YWdlQWxpYXN9OnJ1bnRpbWUtdnVsbi1jaGVja2ApLFxuICAgICAgICBzdGVwczogY2hlY2tlZCxcbiAgICAgICAgcGxhdGZvcm1TZWNyZXROYW1lOiB0aGlzLnJ1bnRpbWVWdWxuQ2hlY2sucGxhdGZvcm1TZWNyZXROYW1lLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHBpcGVsaW5lLmFkZFdhdmUoc3RhZ2VBbGlhcywge1xuICAgICAgLi4uKHByZVN0ZXBzLmxlbmd0aCA+IDAgJiYgeyBwcmU6IHByZVN0ZXBzIH0pLFxuICAgICAgLi4uKHBvc3RTdGVwcy5sZW5ndGggPiAwICYmIHsgcG9zdDogcG9zdFN0ZXBzIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RlcChcbiAgICBzdGVwQ29uZmlnOiBTdGFnZU9wdGlvbnNbJ3N0ZXBzJ11bbnVtYmVyXSxcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBzdGFnZUFsaWFzOiBzdHJpbmcsXG4gICAgY2hlY2tlZDogUnVudGltZUNoZWNrU3RlcFtdLFxuICApIHtcbiAgICAvLyBUaGUgc3RlcCBsYWJlbCBldmVyeSBwZXItc3RlcCByZWNvcmQga2V5cyBvbiAobG9va3VwIGNvbnRleHQsIG1hbmlmZXN0LFxuICAgIC8vIHJ1bnRpbWUgY2hlY2spIOKAlCB3aGF0IHRoZSBwbGF0Zm9ybSdzIHNlY3VyaXR5IHZpZXcgam9pbnMgdGhlbSBieS5cbiAgICBjb25zdCBzdGVwS2V5ID0gcGx1Z2luU3RlcExhYmVsKHN0YWdlTmFtZSwgc3RlcENvbmZpZy5wbHVnaW4pO1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMucGx1Z2luTG9va3VwLnBsdWdpbihzdGVwQ29uZmlnLnBsdWdpbiwgc3RlcEtleSk7XG4gICAgLy8gQ29udHJhY3Q6IHRoZSBwaXBlbGluZSBtdXN0IHN1cHBseSB0aGUgcGx1Z2luJ3MgcmVxdWlyZWRcbiAgICAvLyBtZXRhZGF0YS92YXJzIHdpdGggdGhlIGRlY2xhcmVkIHR5cGVzLiBUaGUgQVBJIHJlZnVzZXMgc3VjaCBhIHBpcGVsaW5lXG4gICAgLy8gYXQgY3JlYXRlL3VwZGF0ZTsgdGhpcyBzdG9wcyBvbmUgdGhhdCByZWFjaGVkIHN5bnRoIGFub3RoZXIgd2F5LlxuICAgIGFzc2VydFBsdWdpbkNvbnRyYWN0KHBsdWdpbiwgY29udHJhY3RTY29wZUZyb21UZW1wbGF0ZVNjb3BlKHRoaXMucGlwZWxpbmVTY29wZSksXG4gICAgICBgJHtzdGFnZU5hbWV9LyR7cGx1Z2luU3RlcElkQWxpYXMoc3RlcENvbmZpZy5wbHVnaW4pfWApO1xuICAgIC8vIFBlci1zdGVwIHBsdWdpbiBjb25maWcgbGl2ZXMgb24gdGhlIHBsdWdpbiByZWZlcmVuY2UgKGBwbHVnaW4ubWV0YWRhdGFgIOKAlFxuICAgIC8vIGUuZy4gSkFWQV9WRVJTSU9OL0tPVExJTl9WRVJTSU9OL2NvbXB1dGV0eXBlIG92ZXJyaWRlcykuIHBsdWdpbkxvb2t1cC5wbHVnaW4oKVxuICAgIC8vIHJldHVybnMgdGhlIHJlc29sdmVkIENBVEFMT0cgcGx1Z2luIGFuZCBkcm9wcyB0aGUgcmVmZXJlbmNlIG1ldGFkYXRhIGluIHRoZVxuICAgIC8vIHByZS1yZXNvbHZlZCBwYXRoLCBzbyBtZXJnZSBpdCBoZXJlIHRvbyDigJQgb3RoZXJ3aXNlIHBlci1zdGVwIG92ZXJyaWRlcyBhcmVcbiAgICAvLyBzaWxlbnRseSBpZ25vcmVkIGFuZCB0aGUgYnVpbGQgZmFsbHMgYmFjayB0byBwbHVnaW4gZGVmYXVsdHMuXG4gICAgLy8gT3JkZXIgKGxhc3Qgd2lucyk6IGdsb2JhbCA8IHBsdWdpbi1yZWYgbWV0YWRhdGEgPCBzdGVwLWxldmVsIG1ldGFkYXRhLlxuICAgIGNvbnN0IHN0ZXBNZXRhZGF0YSA9IG1lcmdlKHRoaXMuZ2xvYmFsTWV0YWRhdGEsIHN0ZXBDb25maWcucGx1Z2luLm1ldGFkYXRhID8/IHt9LCBzdGVwQ29uZmlnLm1ldGFkYXRhID8/IHt9KTtcbiAgICAvLyBUV08gZGlmZmVyZW50IGlkZW50aXRpZXMsIGRlbGliZXJhdGVseSBrZXB0IGFwYXJ0OlxuICAgIC8vICAtIGBzdGVwSWRBbGlhc2AgbmFtZXMgdGhlIENESyBjb25zdHJ1Y3QuIEZvciBhbiB1bnF1YWxpZmllZCByZWZlcmVuY2VcbiAgICAvLyAgICBpdCBzdGF5cyBhcyBpdCBhbHdheXMgd2FzIChgYWxpYXMgPz8gbmFtZWApLCBiZWNhdXNlIGNoYW5naW5nIGl0XG4gICAgLy8gICAgcmVuYW1lcyB0aGUgQ29kZUJ1aWxkIHByb2plY3QncyBsb2dpY2FsIGlkIGFuZCBDbG91ZEZvcm1hdGlvbiB3b3VsZFxuICAgIC8vICAgIFJFUExBQ0UgZXZlcnkgdW5hbGlhc2VkIHN0ZXAncyBwcm9qZWN0IG9uIHRoZSBuZXh0IGRlcGxveSDigJQgZm9yIG5vXG4gICAgLy8gICAgYmVuZWZpdC4gQSBgcHVibGlzaGVyYCByZWZlcmVuY2UgYWRkcyB0aGUgcHVibGlzaGVyLlxuICAgIC8vICAtIGBwbHVnaW5BbGlhc2AgaXMgdGhlIEFSVElGQUNULUtFWSBzZWdtZW50IGFuZCBtdXN0IGZvbGxvdyB0aGUgb25lIHJ1bGVcbiAgICAvLyAgICBldmVyeSBrZXkgY29uc3VtZXIgdXNlcyAoYHBsdWdpbkFydGlmYWN0QWxpYXNgKS4gUmV1c2luZyB0aGUgY29uc3RydWN0XG4gICAgLy8gICAgdmFsdWUgd291bGQgcmVnaXN0ZXIgYOKApjpub2RlanMtYnVpbGQ6ZGlzdGAgZm9yIGFuIHVuYWxpYXNlZCBzdGVwIHdoaWxlXG4gICAgLy8gICAgdGhlIFVJIGFza3MgZm9yIGDigKY6bm9kZWpzLWJ1aWxkLWFsaWFzOmRpc3RgLCBhbmQgc3ludGggd291bGQgZmFpbC5cbiAgICBjb25zdCBzdGVwSWRBbGlhcyA9IHBsdWdpblN0ZXBJZEFsaWFzKHN0ZXBDb25maWcucGx1Z2luKTtcbiAgICBjb25zdCBwbHVnaW5BbGlhcyA9IHBsdWdpbkFydGlmYWN0QWxpYXMoc3RlcENvbmZpZy5wbHVnaW4pO1xuXG4gICAgaWYgKHN0ZXBDb25maWcuaW5wdXRBcnRpZmFjdCAmJiAhdGhpcy5hcnRpZmFjdE1hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN0ZXAgXCIke3N0ZXBJZEFsaWFzfVwiIHJlcXVpcmVzIGlucHV0QXJ0aWZhY3QgYnV0IG5vIGFydGlmYWN0TWFuYWdlciBpcyBjb25maWd1cmVkLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc3RlcENvbmZpZy5hZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHM/Lmxlbmd0aCAmJiAhdGhpcy5hcnRpZmFjdE1hbmFnZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFN0ZXAgXCIke3N0ZXBJZEFsaWFzfVwiIHJlcXVpcmVzIGFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyBidXQgbm8gYXJ0aWZhY3RNYW5hZ2VyIGlzIGNvbmZpZ3VyZWQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXQgPSBzdGVwQ29uZmlnLmlucHV0QXJ0aWZhY3QgJiYgdGhpcy5hcnRpZmFjdE1hbmFnZXJcbiAgICAgID8gdGhpcy5hcnRpZmFjdE1hbmFnZXIuZ2V0T3V0cHV0KHN0ZXBDb25maWcuaW5wdXRBcnRpZmFjdClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbElucHV0cyA9IHN0ZXBDb25maWcuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPy5sZW5ndGggJiYgdGhpcy5hcnRpZmFjdE1hbmFnZXJcbiAgICAgID8gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBzdGVwQ29uZmlnLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cy5tYXAoKHsgYXJ0aWZhY3QsIGRpcmVjdG9yeSB9KSA9PiBbXG4gICAgICAgICAgZGlyZWN0b3J5IHx8IGFydGlmYWN0Lm91dHB1dERpcmVjdG9yeSxcbiAgICAgICAgICB0aGlzLmFydGlmYWN0TWFuYWdlciEuZ2V0T3V0cHV0KGFydGlmYWN0KSxcbiAgICAgICAgXSksXG4gICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0ZXAgPSBjcmVhdGVDb2RlQnVpbGRTdGVwKHtcbiAgICAgIGlkOiB0aGlzLnVuaXF1ZUlkLmdlbmVyYXRlKGBzdGFnZToke3N0YWdlQWxpYXN9OiR7c3RlcElkQWxpYXN9YCksXG4gICAgICB1bmlxdWVJZDogdGhpcy51bmlxdWVJZCxcbiAgICAgIHBsdWdpbixcbiAgICAgIG1ldGFkYXRhOiBzdGVwTWV0YWRhdGEsXG4gICAgICBuZXR3b3JrOiBzdGVwQ29uZmlnLm5ldHdvcmssXG4gICAgICBzY29wZTogdGhpcy5zY29wZSxcbiAgICAgIGRlZmF1bHRDb21wdXRlVHlwZTogdGhpcy5kZWZhdWx0Q29tcHV0ZVR5cGUsXG4gICAgICBpbnB1dCxcbiAgICAgIGFkZGl0aW9uYWxJbnB1dHMsXG4gICAgICBhcnRpZmFjdE1hbmFnZXI6IHRoaXMuYXJ0aWZhY3RNYW5hZ2VyLFxuICAgICAgc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VBbGlhcyxcbiAgICAgIHBsdWdpbkFsaWFzLFxuICAgICAgcHJlSW5zdGFsbENvbW1hbmRzOiBzdGVwQ29uZmlnLnByZUluc3RhbGxDb21tYW5kcyxcbiAgICAgIHBvc3RJbnN0YWxsQ29tbWFuZHM6IHN0ZXBDb25maWcucG9zdEluc3RhbGxDb21tYW5kcyxcbiAgICAgIHByZUNvbW1hbmRzOiBzdGVwQ29uZmlnLnByZUNvbW1hbmRzLFxuICAgICAgcG9zdENvbW1hbmRzOiBzdGVwQ29uZmlnLnBvc3RDb21tYW5kcyxcbiAgICAgIGVudjogc3RlcENvbmZpZy5lbnYsXG4gICAgICB0aW1lb3V0OiBzdGVwQ29uZmlnLnRpbWVvdXQgPz8gcGx1Z2luLnRpbWVvdXQgPz8gdW5kZWZpbmVkLFxuICAgICAgLy8gQSBzY2FuL3NlY3VyaXR5LWNhdGVnb3J5IHBsdWdpbiBjYW4gbmV2ZXIgYmUgZG93bmdyYWRlZCBmcm9tICdmYWlsJyDigJQgc2VlIHJlc29sdmVGYWlsdXJlQmVoYXZpb3IuXG4gICAgICBmYWlsdXJlQmVoYXZpb3I6IHJlc29sdmVGYWlsdXJlQmVoYXZpb3IocGx1Z2luLmNhdGVnb3J5LCBzdGVwQ29uZmlnLmZhaWx1cmVCZWhhdmlvciA/PyBwbHVnaW4uZmFpbHVyZUJlaGF2aW9yKSxcbiAgICAgIG9yZ0lkOiB0aGlzLm9yZ0lkLFxuICAgICAgcGlwZWxpbmVTY29wZTogdGhpcy5waXBlbGluZVNjb3BlLFxuICAgIH0pO1xuICAgIHRoaXMuc3RlcE1hbmlmZXN0Py5yZWNvcmQoc3RlcCwgcGx1Z2luLCBzdGVwS2V5KTtcbiAgICBpZiAocGx1Z2luLmltYWdlRGlnZXN0ICYmIHBsdWdpbi5idWlsZFR5cGUgIT09ICdtZXRhZGF0YV9vbmx5Jykge1xuICAgICAgY2hlY2tlZC5wdXNoKHsgc3RlcEtleSwgaW1hZ2VEaWdlc3Q6IHBsdWdpbi5pbWFnZURpZ2VzdCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ZXA7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYW5kIGFkZHMgbXVsdGlwbGUgc3RhZ2VzIGFzIHdhdmVzIHRvIHRoZSBwaXBlbGluZSwgaW4gb3JkZXIuXG4gICAqL1xuICBhZGRTdGFnZXMocGlwZWxpbmU6IENvZGVQaXBlbGluZSwgc3RhZ2VzOiBTdGFnZU9wdGlvbnNbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygc3RhZ2VzKSB7XG4gICAgICB0aGlzLmFkZFN0YWdlKHBpcGVsaW5lLCBzdGFnZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtYnVpbGRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3N0YWdlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUd0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUUsT0FBTyxFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDhCQUE4QixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBOEMzSixtRkFBbUY7QUFDbkYsZ0ZBQWdGO0FBQ2hGLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztBQUVqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUNOLEtBQUssQ0FBWTtJQUNqQixZQUFZLENBQWU7SUFDM0IsUUFBUSxDQUFXO0lBQ25CLGNBQWMsQ0FBZTtJQUM3QixrQkFBa0IsQ0FBa0I7SUFDcEMsZUFBZSxDQUFtQjtJQUNsQyxLQUFLLENBQVU7SUFDZixhQUFhLENBQTBCO0lBQ3ZDLFlBQVksQ0FBd0I7SUFD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LFVBQVUsQ0FBQyxtQkFBbUI7WUFDbkQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ25DLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtZQUNyQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUc7WUFDbkIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTO1lBQzFELG9HQUFvRztZQUNwRyxlQUFlLEVBQUUsc0JBQXNCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUM7WUFDOUcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxRQUFzQixFQUFFLE1BQXNCO1FBQ3RELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IENvbXB1dGVUeXBlIGFzIENka0NvbXB1dGVUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBDb2RlUGlwZWxpbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBjb2RlUGlwZWxpbmVTdGFnZU5hbWUgfSBmcm9tICcuL2RlcGxveS1hdHRyaWJ1dGlvbi5qcyc7XG5pbXBvcnQgeyBQbHVnaW5Mb29rdXAgfSBmcm9tICcuL3BsdWdpbi1sb29rdXAuanMnO1xuaW1wb3J0IHsgY3JlYXRlUnVudGltZVZ1bG5DaGVja1N0ZXAgfSBmcm9tICcuL3J1bnRpbWUtdnVsbi1jaGVjay1zdGVwLmpzJztcbmltcG9ydCB0eXBlIHsgU3RlcE1hbmlmZXN0UmVjb3JkZXIgfSBmcm9tICcuL3N0ZXAtbWFuaWZlc3QtcmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU9wdGlvbnMgfSBmcm9tICcuL3N0ZXAtdHlwZXMuanMnO1xuaW1wb3J0IHsgdHlwZSBBcnRpZmFjdE1hbmFnZXIgfSBmcm9tICcuLi9jb3JlL2FydGlmYWN0LW1hbmFnZXIuanMnO1xuaW1wb3J0IHsgVW5pcXVlSWQgfSBmcm9tICcuLi9jb3JlL2lkLWdlbmVyYXRvci5qcyc7XG5pbXBvcnQgeyBtZXJnZSwgcmVzb2x2ZUZhaWx1cmVCZWhhdmlvciB9IGZyb20gJy4uL2NvcmUvbWV0YWRhdGEtaGVscGVycy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVDb2RlQnVpbGRTdGVwIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS1oZWxwZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgTWV0YURhdGFUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRQbHVnaW5Db250cmFjdCwgY29udHJhY3RTY29wZUZyb21UZW1wbGF0ZVNjb3BlLCBwbHVnaW5BcnRpZmFjdEFsaWFzLCBwbHVnaW5TdGVwSWRBbGlhcywgcGx1Z2luU3RlcExhYmVsIH0gZnJvbSAnLi4vY29yZS9wbHVnaW4tY29udHJhY3QuanMnO1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lQ2hlY2tTdGVwIH0gZnJvbSAnLi4vY29yZS9ydW50aW1lLWNoZWNrLmpzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBTdGFnZUJ1aWxkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZUJ1aWxkZXJQcm9wcyB7XG4gIC8qKiBDREsgY29uc3RydWN0IHNjb3BlIGZvciBjcmVhdGluZyBjaGlsZCBjb25zdHJ1Y3RzICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqIFBsdWdpbiBsb29rdXAgc2VydmljZSBmb3IgcmVzb2x2aW5nIHBsdWdpbiByZWZlcmVuY2VzIHRvIENESyBjb25zdHJ1Y3RzICovXG4gIHJlYWRvbmx5IHBsdWdpbkxvb2t1cDogUGx1Z2luTG9va3VwO1xuXG4gIC8qKiBVbmlxdWUgSUQgZ2VuZXJhdG9yIGZvciBjcmVhdGluZyBkZXRlcm1pbmlzdGljIGNvbnN0cnVjdCBJRHMgKi9cbiAgcmVhZG9ubHkgdW5pcXVlSWQ6IFVuaXF1ZUlkO1xuXG4gIC8qKiBHbG9iYWwgbWV0YWRhdGEgaW5oZXJpdGVkIGJ5IGFsbCBzdGFnZSBzdGVwcyAqL1xuICByZWFkb25seSBnbG9iYWxNZXRhZGF0YTogTWV0YURhdGFUeXBlO1xuXG4gIC8qKiBEZWZhdWx0IENvZGVCdWlsZCBjb21wdXRlIHR5cGUgZm9yIHN0ZXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBvbmUgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbXB1dGVUeXBlPzogQ2RrQ29tcHV0ZVR5cGU7XG5cbiAgLyoqIEFydGlmYWN0IG1hbmFnZXIgZm9yIHJlc29sdmluZyBpbnB1dCBhcnRpZmFjdCBrZXlzIHRvIEZpbGVTZXRzICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TWFuYWdlcj86IEFydGlmYWN0TWFuYWdlcjtcblxuICAvKiogVGVuYW50IGlkZW50aWZpZXIgZm9yIHJlc29sdmluZyBwZXItb3JnIHNlY3JldHMgZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyICovXG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZS1sZXZlbCBzY29wZSB1c2VkIHRvIHJlc29sdmUgYHt7IHBpcGVsaW5lLiogfX1gIHRlbXBsYXRlIHRva2Vuc1xuICAgKiBpbnNpZGUgcGx1Z2luIHNwZWNzLiBSZXF1aXJlZCDigJQgcGFzc2VkIHRocm91Z2ggdG8gYGNyZWF0ZUNvZGVCdWlsZFN0ZXBgXG4gICAqIG9uIGV2ZXJ5IHN0ZXAuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogUmVjb3JkcyBlYWNoIHN0ZXAncyByZXNvbHZlZCBwbHVnaW4gZm9yIHRoZSBzdGVwIG1hbmlmZXN0LiAqL1xuICByZWFkb25seSBzdGVwTWFuaWZlc3Q/OiBTdGVwTWFuaWZlc3RSZWNvcmRlcjtcblxuICAvKipcbiAgICogU2V0IHdoZW4gdGhlIHBpcGVsaW5lIG9wdGVkIGluIHRvIHRoZSBydW4tdGltZSB2dWxuZXJhYmlsaXR5IGNoZWNrXG4gICAqIChgUlVOVElNRV9WVUxOX0NIRUNLX0tFWWApOiBlYWNoIHN0YWdlIHRoZW4gZ2V0cyBhIHJlcG9ydC1vbmx5IHZlcmlmeSBzdGVwLlxuICAgKiBDYXJyaWVzIHRoZSBvcmcgcGxhdGZvcm0gc2VjcmV0IHRoZSB2ZXJpZnkgc3RlcCBhdXRoZW50aWNhdGVzIHdpdGguXG4gICAqL1xuICByZWFkb25seSBydW50aW1lVnVsbkNoZWNrPzogeyByZWFkb25seSBwbGF0Zm9ybVNlY3JldE5hbWU6IHN0cmluZyB9O1xufVxuXG4vLyBgY29kZVBpcGVsaW5lU3RhZ2VOYW1lYCBtb3ZlZCB0byB0aGUgQ0RLLWZyZWUgYGRlcGxveS1hdHRyaWJ1dGlvbi50c2Agc28gdGhlIEFQSVxuLy8gY2FuIGRlcml2ZSBgcGIuZGVwbG95c2Agd2l0aG91dCBwdWxsaW5nIGF3cy1jZGstbGliOyByZS1leHBvcnRlZCBoZXJlIGJlY2F1c2Vcbi8vIHN0YWdlIGNvbnN0cnVjdGlvbiBpcyB3aGVyZSBjYWxsZXJzIGV4cGVjdCB0byBmaW5kIGl0LlxuZXhwb3J0IHsgY29kZVBpcGVsaW5lU3RhZ2VOYW1lIH07XG5cbi8qKlxuICogQnVpbGRzIGFuZCBhZGRzIHBpcGVsaW5lIHN0YWdlcyAod2F2ZXMpIHRvIGEgQ29kZVBpcGVsaW5lLlxuICpcbiAqIEVhY2ggc3RhZ2UgaXMgcmVzb2x2ZWQgZnJvbSBoaWdoLWxldmVsIGNvbmZpZ3VyYXRpb24gKHBsdWdpbiBuYW1lcylcbiAqIGludG8gQ0RLIENvZGVCdWlsZCBzdGVwcyB2aWEgUGx1Z2luTG9va3VwLCB0aGVuIGFkZGVkIGFzIGEgd2F2ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhZ2VCdWlsZGVyID0gbmV3IFN0YWdlQnVpbGRlcih7XG4gKiAgIHNjb3BlOiB0aGlzLFxuICogICBwbHVnaW5Mb29rdXAsXG4gKiAgIHVuaXF1ZUlkLFxuICogICBnbG9iYWxNZXRhZGF0YTogbWVyZ2VkTWV0YWRhdGEsXG4gKiB9KTtcbiAqIHN0YWdlQnVpbGRlci5hZGRTdGFnZShwaXBlbGluZSwge1xuICogICBzdGFnZU5hbWU6ICdJbnRlZ3JhdGlvbiBUZXN0cycsXG4gKiAgIGFsaWFzOiAnaW50ZWdyYXRpb24nLFxuICogICBzdGVwczogW1xuICogICAgIHsgcGx1Z2luOiB7IG5hbWU6ICdqZXN0LWludGVncmF0aW9uJyB9IH0sXG4gKiAgICAgeyBwbHVnaW46IHsgbmFtZTogJ2UyZS10ZXN0cycsIGFsaWFzOiAnY3lwcmVzcycgfSB9LFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWdlQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5Mb29rdXA6IFBsdWdpbkxvb2t1cDtcbiAgcHJpdmF0ZSByZWFkb25seSB1bmlxdWVJZDogVW5pcXVlSWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsTWV0YWRhdGE6IE1ldGFEYXRhVHlwZTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29tcHV0ZVR5cGU/OiBDZGtDb21wdXRlVHlwZTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcnRpZmFjdE1hbmFnZXI/OiBBcnRpZmFjdE1hbmFnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlwZWxpbmVTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RlcE1hbmlmZXN0PzogU3RlcE1hbmlmZXN0UmVjb3JkZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcnVudGltZVZ1bG5DaGVjaz86IHsgcmVhZG9ubHkgcGxhdGZvcm1TZWNyZXROYW1lOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogU3RhZ2VCdWlsZGVyUHJvcHMpIHtcbiAgICB0aGlzLnNjb3BlID0gcHJvcHMuc2NvcGU7XG4gICAgdGhpcy5wbHVnaW5Mb29rdXAgPSBwcm9wcy5wbHVnaW5Mb29rdXA7XG4gICAgdGhpcy51bmlxdWVJZCA9IHByb3BzLnVuaXF1ZUlkO1xuICAgIHRoaXMuZ2xvYmFsTWV0YWRhdGEgPSBwcm9wcy5nbG9iYWxNZXRhZGF0YTtcbiAgICB0aGlzLmRlZmF1bHRDb21wdXRlVHlwZSA9IHByb3BzLmRlZmF1bHRDb21wdXRlVHlwZTtcbiAgICB0aGlzLmFydGlmYWN0TWFuYWdlciA9IHByb3BzLmFydGlmYWN0TWFuYWdlcjtcbiAgICB0aGlzLm9yZ0lkID0gcHJvcHMub3JnSWQ7XG4gICAgdGhpcy5waXBlbGluZVNjb3BlID0gcHJvcHMucGlwZWxpbmVTY29wZTtcbiAgICB0aGlzLnN0ZXBNYW5pZmVzdCA9IHByb3BzLnN0ZXBNYW5pZmVzdDtcbiAgICB0aGlzLnJ1bnRpbWVWdWxuQ2hlY2sgPSBwcm9wcy5ydW50aW1lVnVsbkNoZWNrO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGEgc3RhZ2UncyBwbHVnaW4tYmFzZWQgc3RlcCBjb25maWdzIGludG8gQ29kZUJ1aWxkIHN0ZXBzXG4gICAqIGFuZCBhZGRzIHRoZW0gYXMgYSB3YXZlIHRvIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIGFkZFN0YWdlKHBpcGVsaW5lOiBDb2RlUGlwZWxpbmUsIHN0YWdlOiBTdGFnZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZUFsaWFzID0gY29kZVBpcGVsaW5lU3RhZ2VOYW1lKHN0YWdlKTtcbiAgICBjb25zdCBjaGVja2VkOiBSdW50aW1lQ2hlY2tTdGVwW10gPSBbXTtcblxuICAgIGNvbnN0IHByZVN0ZXBzID0gc3RhZ2Uuc3RlcHNcbiAgICAgIC5maWx0ZXIocyA9PiAocy5wb3NpdGlvbiA/PyAncHJlJykgPT09ICdwcmUnKVxuICAgICAgLm1hcChzID0+IHRoaXMucmVzb2x2ZVN0ZXAocywgc3RhZ2Uuc3RhZ2VOYW1lLCBzdGFnZUFsaWFzLCBjaGVja2VkKSk7XG4gICAgY29uc3QgcG9zdFN0ZXBzID0gc3RhZ2Uuc3RlcHNcbiAgICAgIC5maWx0ZXIocyA9PiBzLnBvc2l0aW9uID09PSAncG9zdCcpXG4gICAgICAubWFwKHMgPT4gdGhpcy5yZXNvbHZlU3RlcChzLCBzdGFnZS5zdGFnZU5hbWUsIHN0YWdlQWxpYXMsIGNoZWNrZWQpKTtcblxuICAgIC8vIFJ1bi10aW1lIGNoZWNrOiBvbmUgdmVyaWZ5IHN0ZXAgcGVyIHN0YWdlLCBydW5uaW5nIEJFU0lERSB0aGUgc3RhZ2Unc1xuICAgIC8vIHN0ZXBzIOKAlCBpdCByZXBvcnRzIHRoZSBpbWFnZXMnIGN1cnJlbnQgdnVsbmVyYWJpbGl0eSBzdGF0ZSBpbnRvIHRoZSBidWlsZFxuICAgIC8vIGxvZyBhbmQgbmV2ZXIgZ2F0ZXMgdGhlbS4gQSBzdGFnZSB3aXRoIG5vIGltYWdlLWJhY2tlZCBzdGVwIGhhcyBub3RoaW5nXG4gICAgLy8gdG8gYXNrIGFib3V0LlxuICAgIGlmICh0aGlzLnJ1bnRpbWVWdWxuQ2hlY2sgJiYgY2hlY2tlZC5sZW5ndGggPiAwKSB7XG4gICAgICBwcmVTdGVwcy51bnNoaWZ0KGNyZWF0ZVJ1bnRpbWVWdWxuQ2hlY2tTdGVwKHtcbiAgICAgICAgaWQ6IHRoaXMudW5pcXVlSWQuZ2VuZXJhdGUoYHN0YWdlOiR7c3RhZ2VBbGlhc306cnVudGltZS12dWxuLWNoZWNrYCksXG4gICAgICAgIHN0ZXBzOiBjaGVja2VkLFxuICAgICAgICBwbGF0Zm9ybVNlY3JldE5hbWU6IHRoaXMucnVudGltZVZ1bG5DaGVjay5wbGF0Zm9ybVNlY3JldE5hbWUsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgcGlwZWxpbmUuYWRkV2F2ZShzdGFnZUFsaWFzLCB7XG4gICAgICAuLi4ocHJlU3RlcHMubGVuZ3RoID4gMCAmJiB7IHByZTogcHJlU3RlcHMgfSksXG4gICAgICAuLi4ocG9zdFN0ZXBzLmxlbmd0aCA+IDAgJiYgeyBwb3N0OiBwb3N0U3RlcHMgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVTdGVwKFxuICAgIHN0ZXBDb25maWc6IFN0YWdlT3B0aW9uc1snc3RlcHMnXVtudW1iZXJdLFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHN0YWdlQWxpYXM6IHN0cmluZyxcbiAgICBjaGVja2VkOiBSdW50aW1lQ2hlY2tTdGVwW10sXG4gICkge1xuICAgIC8vIFRoZSBzdGVwIGxhYmVsIGV2ZXJ5IHBlci1zdGVwIHJlY29yZCBrZXlzIG9uIChsb29rdXAgY29udGV4dCwgbWFuaWZlc3QsXG4gICAgLy8gcnVudGltZSBjaGVjaykg4oCUIHdoYXQgdGhlIHBsYXRmb3JtJ3Mgc2VjdXJpdHkgdmlldyBqb2lucyB0aGVtIGJ5LlxuICAgIGNvbnN0IHN0ZXBLZXkgPSBwbHVnaW5TdGVwTGFiZWwoc3RhZ2VOYW1lLCBzdGVwQ29uZmlnLnBsdWdpbik7XG4gICAgY29uc3QgcGx1Z2luID0gdGhpcy5wbHVnaW5Mb29rdXAucGx1Z2luKHN0ZXBDb25maWcucGx1Z2luLCBzdGVwS2V5KTtcbiAgICAvLyBDb250cmFjdDogdGhlIHBpcGVsaW5lIG11c3Qgc3VwcGx5IHRoZSBwbHVnaW4ncyByZXF1aXJlZFxuICAgIC8vIG1ldGFkYXRhL3ZhcnMgd2l0aCB0aGUgZGVjbGFyZWQgdHlwZXMuIFRoZSBBUEkgcmVmdXNlcyBzdWNoIGEgcGlwZWxpbmVcbiAgICAvLyBhdCBjcmVhdGUvdXBkYXRlOyB0aGlzIHN0b3BzIG9uZSB0aGF0IHJlYWNoZWQgc3ludGggYW5vdGhlciB3YXkuXG4gICAgYXNzZXJ0UGx1Z2luQ29udHJhY3QocGx1Z2luLCBjb250cmFjdFNjb3BlRnJvbVRlbXBsYXRlU2NvcGUodGhpcy5waXBlbGluZVNjb3BlKSxcbiAgICAgIGAke3N0YWdlTmFtZX0vJHtwbHVnaW5TdGVwSWRBbGlhcyhzdGVwQ29uZmlnLnBsdWdpbil9YCk7XG4gICAgLy8gUGVyLXN0ZXAgcGx1Z2luIGNvbmZpZyBsaXZlcyBvbiB0aGUgcGx1Z2luIHJlZmVyZW5jZSAoYHBsdWdpbi5tZXRhZGF0YWAg4oCUXG4gICAgLy8gZS5nLiBKQVZBX1ZFUlNJT04vS09UTElOX1ZFUlNJT04vY29tcHV0ZXR5cGUgb3ZlcnJpZGVzKS4gcGx1Z2luTG9va3VwLnBsdWdpbigpXG4gICAgLy8gcmV0dXJucyB0aGUgcmVzb2x2ZWQgQ0FUQUxPRyBwbHVnaW4gYW5kIGRyb3BzIHRoZSByZWZlcmVuY2UgbWV0YWRhdGEgaW4gdGhlXG4gICAgLy8gcHJlLXJlc29sdmVkIHBhdGgsIHNvIG1lcmdlIGl0IGhlcmUgdG9vIOKAlCBvdGhlcndpc2UgcGVyLXN0ZXAgb3ZlcnJpZGVzIGFyZVxuICAgIC8vIHNpbGVudGx5IGlnbm9yZWQgYW5kIHRoZSBidWlsZCBmYWxscyBiYWNrIHRvIHBsdWdpbiBkZWZhdWx0cy5cbiAgICAvLyBPcmRlciAobGFzdCB3aW5zKTogZ2xvYmFsIDwgcGx1Z2luLXJlZiBtZXRhZGF0YSA8IHN0ZXAtbGV2ZWwgbWV0YWRhdGEuXG4gICAgY29uc3Qgc3RlcE1ldGFkYXRhID0gbWVyZ2UodGhpcy5nbG9iYWxNZXRhZGF0YSwgc3RlcENvbmZpZy5wbHVnaW4ubWV0YWRhdGEgPz8ge30sIHN0ZXBDb25maWcubWV0YWRhdGEgPz8ge30pO1xuICAgIC8vIFRXTyBkaWZmZXJlbnQgaWRlbnRpdGllcywgZGVsaWJlcmF0ZWx5IGtlcHQgYXBhcnQ6XG4gICAgLy8gIC0gYHN0ZXBJZEFsaWFzYCBuYW1lcyB0aGUgQ0RLIGNvbnN0cnVjdC4gRm9yIGFuIHVucXVhbGlmaWVkIHJlZmVyZW5jZVxuICAgIC8vICAgIGl0IHN0YXlzIGFzIGl0IGFsd2F5cyB3YXMgKGBhbGlhcyA/PyBuYW1lYCksIGJlY2F1c2UgY2hhbmdpbmcgaXRcbiAgICAvLyAgICByZW5hbWVzIHRoZSBDb2RlQnVpbGQgcHJvamVjdCdzIGxvZ2ljYWwgaWQgYW5kIENsb3VkRm9ybWF0aW9uIHdvdWxkXG4gICAgLy8gICAgUkVQTEFDRSBldmVyeSB1bmFsaWFzZWQgc3RlcCdzIHByb2plY3Qgb24gdGhlIG5leHQgZGVwbG95IOKAlCBmb3Igbm9cbiAgICAvLyAgICBiZW5lZml0LiBBIGBwdWJsaXNoZXJgIHJlZmVyZW5jZSBhZGRzIHRoZSBwdWJsaXNoZXIuXG4gICAgLy8gIC0gYHBsdWdpbkFsaWFzYCBpcyB0aGUgQVJUSUZBQ1QtS0VZIHNlZ21lbnQgYW5kIG11c3QgZm9sbG93IHRoZSBvbmUgcnVsZVxuICAgIC8vICAgIGV2ZXJ5IGtleSBjb25zdW1lciB1c2VzIChgcGx1Z2luQXJ0aWZhY3RBbGlhc2ApLiBSZXVzaW5nIHRoZSBjb25zdHJ1Y3RcbiAgICAvLyAgICB2YWx1ZSB3b3VsZCByZWdpc3RlciBg4oCmOm5vZGVqcy1idWlsZDpkaXN0YCBmb3IgYW4gdW5hbGlhc2VkIHN0ZXAgd2hpbGVcbiAgICAvLyAgICB0aGUgVUkgYXNrcyBmb3IgYOKApjpub2RlanMtYnVpbGQtYWxpYXM6ZGlzdGAsIGFuZCBzeW50aCB3b3VsZCBmYWlsLlxuICAgIGNvbnN0IHN0ZXBJZEFsaWFzID0gcGx1Z2luU3RlcElkQWxpYXMoc3RlcENvbmZpZy5wbHVnaW4pO1xuICAgIGNvbnN0IHBsdWdpbkFsaWFzID0gcGx1Z2luQXJ0aWZhY3RBbGlhcyhzdGVwQ29uZmlnLnBsdWdpbik7XG5cbiAgICBpZiAoc3RlcENvbmZpZy5pbnB1dEFydGlmYWN0ICYmICF0aGlzLmFydGlmYWN0TWFuYWdlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU3RlcCBcIiR7c3RlcElkQWxpYXN9XCIgcmVxdWlyZXMgaW5wdXRBcnRpZmFjdCBidXQgbm8gYXJ0aWZhY3RNYW5hZ2VyIGlzIGNvbmZpZ3VyZWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChzdGVwQ29uZmlnLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cz8ubGVuZ3RoICYmICF0aGlzLmFydGlmYWN0TWFuYWdlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU3RlcCBcIiR7c3RlcElkQWxpYXN9XCIgcmVxdWlyZXMgYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzIGJ1dCBubyBhcnRpZmFjdE1hbmFnZXIgaXMgY29uZmlndXJlZC5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dCA9IHN0ZXBDb25maWcuaW5wdXRBcnRpZmFjdCAmJiB0aGlzLmFydGlmYWN0TWFuYWdlclxuICAgICAgPyB0aGlzLmFydGlmYWN0TWFuYWdlci5nZXRPdXRwdXQoc3RlcENvbmZpZy5pbnB1dEFydGlmYWN0KVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsSW5wdXRzID0gc3RlcENvbmZpZy5hZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHM/Lmxlbmd0aCAmJiB0aGlzLmFydGlmYWN0TWFuYWdlclxuICAgICAgPyBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIHN0ZXBDb25maWcuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzLm1hcCgoeyBhcnRpZmFjdCwgZGlyZWN0b3J5IH0pID0+IFtcbiAgICAgICAgICBkaXJlY3RvcnkgfHwgYXJ0aWZhY3Qub3V0cHV0RGlyZWN0b3J5LFxuICAgICAgICAgIHRoaXMuYXJ0aWZhY3RNYW5hZ2VyIS5nZXRPdXRwdXQoYXJ0aWZhY3QpLFxuICAgICAgICBdKSxcbiAgICAgIClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgc3RlcCA9IGNyZWF0ZUNvZGVCdWlsZFN0ZXAoe1xuICAgICAgaWQ6IHRoaXMudW5pcXVlSWQuZ2VuZXJhdGUoYHN0YWdlOiR7c3RhZ2VBbGlhc306JHtzdGVwSWRBbGlhc31gKSxcbiAgICAgIHVuaXF1ZUlkOiB0aGlzLnVuaXF1ZUlkLFxuICAgICAgcGx1Z2luLFxuICAgICAgbWV0YWRhdGE6IHN0ZXBNZXRhZGF0YSxcbiAgICAgIG5ldHdvcms6IHN0ZXBDb25maWcubmV0d29yayxcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3BlLFxuICAgICAgZGVmYXVsdENvbXB1dGVUeXBlOiB0aGlzLmRlZmF1bHRDb21wdXRlVHlwZSxcbiAgICAgIGlucHV0LFxuICAgICAgYWRkaXRpb25hbElucHV0cyxcbiAgICAgIGFydGlmYWN0TWFuYWdlcjogdGhpcy5hcnRpZmFjdE1hbmFnZXIsXG4gICAgICBzdGFnZU5hbWUsXG4gICAgICBzdGFnZUFsaWFzLFxuICAgICAgcGx1Z2luQWxpYXMsXG4gICAgICBwcmVJbnN0YWxsQ29tbWFuZHM6IHN0ZXBDb25maWcucHJlSW5zdGFsbENvbW1hbmRzLFxuICAgICAgcG9zdEluc3RhbGxDb21tYW5kczogc3RlcENvbmZpZy5wb3N0SW5zdGFsbENvbW1hbmRzLFxuICAgICAgcHJlQ29tbWFuZHM6IHN0ZXBDb25maWcucHJlQ29tbWFuZHMsXG4gICAgICBwb3N0Q29tbWFuZHM6IHN0ZXBDb25maWcucG9zdENvbW1hbmRzLFxuICAgICAgZW52OiBzdGVwQ29uZmlnLmVudixcbiAgICAgIHRpbWVvdXQ6IHN0ZXBDb25maWcudGltZW91dCA/PyBwbHVnaW4udGltZW91dCA/PyB1bmRlZmluZWQsXG4gICAgICAvLyBBIHNjYW4vc2VjdXJpdHktY2F0ZWdvcnkgcGx1Z2luIGNhbiBuZXZlciBiZSBkb3duZ3JhZGVkIGZyb20gJ2ZhaWwnIOKAlCBzZWUgcmVzb2x2ZUZhaWx1cmVCZWhhdmlvci5cbiAgICAgIGZhaWx1cmVCZWhhdmlvcjogcmVzb2x2ZUZhaWx1cmVCZWhhdmlvcihwbHVnaW4uY2F0ZWdvcnksIHN0ZXBDb25maWcuZmFpbHVyZUJlaGF2aW9yID8/IHBsdWdpbi5mYWlsdXJlQmVoYXZpb3IpLFxuICAgICAgb3JnSWQ6IHRoaXMub3JnSWQsXG4gICAgICBwaXBlbGluZVNjb3BlOiB0aGlzLnBpcGVsaW5lU2NvcGUsXG4gICAgfSk7XG4gICAgdGhpcy5zdGVwTWFuaWZlc3Q/LnJlY29yZChzdGVwLCBwbHVnaW4sIHN0ZXBLZXkpO1xuICAgIGlmIChwbHVnaW4uaW1hZ2VEaWdlc3QgJiYgcGx1Z2luLmJ1aWxkVHlwZSAhPT0gJ21ldGFkYXRhX29ubHknKSB7XG4gICAgICBjaGVja2VkLnB1c2goeyBzdGVwS2V5LCBpbWFnZURpZ2VzdDogcGx1Z2luLmltYWdlRGlnZXN0IH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbmQgYWRkcyBtdWx0aXBsZSBzdGFnZXMgYXMgd2F2ZXMgdG8gdGhlIHBpcGVsaW5lLCBpbiBvcmRlci5cbiAgICovXG4gIGFkZFN0YWdlcyhwaXBlbGluZTogQ29kZVBpcGVsaW5lLCBzdGFnZXM6IFN0YWdlT3B0aW9uc1tdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBzdGFnZXMpIHtcbiAgICAgIHRoaXMuYWRkU3RhZ2UocGlwZWxpbmUsIHN0YWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -56,4 +56,4 @@ export class StepManifestRecorder {
56
56
  return out;
57
57
  }
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1tYW5pZmVzdC1yZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZS9zdGVwLW1hbmlmZXN0LXJlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFLdEMsT0FBTyxFQUFFLHFCQUFxQixFQUEwQixNQUFNLDBCQUEwQixDQUFDO0FBRXpGOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxZQUFZLENBQUMsTUFBYztJQUNsQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUNkLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztJQUV0RiwySEFBMkg7SUFDM0gsTUFBTSxDQUFDLElBQVUsRUFBRSxNQUFjLEVBQUUsT0FBZTtRQUNoRCxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUsscUJBQXFCO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLFFBQWtCO1FBQ3hCLE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7Z0JBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsUUFBUTtvQkFBRSxTQUFTO2dCQUN4QixNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztnQkFDckMsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDUCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzFCLFVBQVU7b0JBQ1YsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ3ZCLGFBQWEsRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDN0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSTtvQkFDdkMsT0FBTztpQkFDUixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YSc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQgdHlwZSB7IFN0ZXAgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgUExBQ0VIT0xERVJfUExVR0lOX0lELCB0eXBlIFN0ZXBNYW5pZmVzdEVudHJ5IH0gZnJvbSAnLi4vY29yZS9zdGVwLW1hbmlmZXN0LmpzJztcblxuLyoqXG4gKiBDREsgUGlwZWxpbmVzJyBhY3Rpb24tbmFtZSBzYW5pdGl6ZXIgKGBwaXBlbGluZXMvbGliL3ByaXZhdGUvaWRlbnRpZmllcnNgLFxuICogbm90IGV4cG9ydGVkIGJ5IGF3cy1jZGstbGliKS4gVXNlZCBPTkxZIGFzIHRoZSBrZXkgdGhhdCBtYXRjaGVzIGEgcmVjb3JkZWRcbiAqIHN0ZXAgdG8gYW4gYWN0aW9uIG9mIHRoZSBidWlsdCBwaXBlbGluZSDigJQgdGhlIG5hbWVzIHRoYXQgbGFuZCBpbiB0aGVcbiAqIG1hbmlmZXN0IGFyZSByZWFkIG9mZiB0aGF0IHBpcGVsaW5lLiBJZiBDREsgZXZlciBuYW1lcyBhbiBhY3Rpb24gZGlmZmVyZW50bHlcbiAqIChlLmcuIGl0cyA+MTAwLWNoYXIgdHJ1bmNhdGlvbiksIHRoZSBzdGVwIHNpbXBseSBnb2VzIHVubWF0Y2hlZCBhbmQgaXMgbGVmdFxuICogb3V0OiBhIG1pc3NpbmcgbWFuaWZlc3Qgcm93LCBuZXZlciBhIHdyb25nIG9uZS4gdGVzdC9zdGVwLW1hbmlmZXN0LnRlc3QudHNcbiAqIHBpbnMgdGhlIG1hdGNoIGFnYWluc3QgYSByZWFsIHN5bnRoLlxuICovXG5mdW5jdGlvbiBjZGtBY3Rpb25LZXkoc3RlcElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RlcElkLnJlcGxhY2UoL1teQS1aYS16MC05LkBcXC1fXSsvZywgJ18nKTtcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyAoc3RlcCDihpIgcmVzb2x2ZWQgcGx1Z2luKSBwYWlycyB3aGlsZSB0aGUgc3RhZ2VzIGFyZSBidWlsdCwgdGhlblxuICogcmVhZHMgdGhlIGZpbmlzaGVkIENvZGVQaXBlbGluZSB0byBlbWl0IHRoZSBzdGVwIG1hbmlmZXN0LiBPbmx5XG4gKiBwbHVnaW5zIHRoYXQgd2VyZSByZWFsbHkgcmVzb2x2ZWQgYXJlIHJlY29yZGVkIOKAlCB0aGUgc3ludGgtdGltZVxuICogYGZhbGxiYWNrKClgIC8gYGJvb3RzdHJhcCgpYCBwbGFjZWhvbGRlcnMgbmFtZSBubyBgcGx1Z2luc2Agcm93LlxuICovXG5leHBvcnQgY2xhc3MgU3RlcE1hbmlmZXN0UmVjb3JkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGJ5QWN0aW9uS2V5ID0gbmV3IE1hcDxzdHJpbmcsIHsgcGx1Z2luOiBQbHVnaW47IHN0ZXBLZXk6IHN0cmluZyB9PigpO1xuXG4gIC8qKiBSZW1lbWJlciB0aGF0IGBzdGVwYCBydW5zIGBwbHVnaW5gIHVuZGVyIHN0ZXAgbGFiZWwgYHN0ZXBLZXlgIChgcGx1Z2luU3RlcExhYmVsYCkuIENhbGwgb25jZSBwZXIgcGx1Z2luLWJhY2tlZCBzdGVwLiAqL1xuICByZWNvcmQoc3RlcDogU3RlcCwgcGx1Z2luOiBQbHVnaW4sIHN0ZXBLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChwbHVnaW4uaWQgPT09IFBMQUNFSE9MREVSX1BMVUdJTl9JRCkgcmV0dXJuO1xuICAgIHRoaXMuYnlBY3Rpb25LZXkuc2V0KGNka0FjdGlvbktleShzdGVwLmlkKSwgeyBwbHVnaW4sIHN0ZXBLZXkgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1hbmlmZXN0IGZvciB0aGUgYnVpbHQgcGlwZWxpbmUuIENhbGwgYWZ0ZXIgYGJ1aWxkUGlwZWxpbmUoKWA6IHN0YWdlXG4gICAqIGFuZCBhY3Rpb24gbmFtZXMgY29tZSBmcm9tIGBwaXBlbGluZS5zdGFnZXNgLCBzbyBhIHN0YWdlIENESyBzcGxpdCBmb3JcbiAgICogZXhjZWVkaW5nIDUwIGFjdGlvbnMgKGA8c3RhZ2U+LjFgLCBgPHN0YWdlPi4yYCkgaXMgcmVwb3J0ZWQgYXMgQ29kZVBpcGVsaW5lXG4gICAqIHJlcG9ydHMgaXQuXG4gICAqL1xuICBlbnRyaWVzKHBpcGVsaW5lOiBQaXBlbGluZSk6IFN0ZXBNYW5pZmVzdEVudHJ5W10ge1xuICAgIGNvbnN0IG91dDogU3RlcE1hbmlmZXN0RW50cnlbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgcGlwZWxpbmUuc3RhZ2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBzdGFnZS5hY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBhY3Rpb24uYWN0aW9uUHJvcGVydGllcy5hY3Rpb25OYW1lO1xuICAgICAgICBjb25zdCByZWNvcmRlZCA9IHRoaXMuYnlBY3Rpb25LZXkuZ2V0KGFjdGlvbk5hbWUpO1xuICAgICAgICBpZiAoIXJlY29yZGVkKSBjb250aW51ZTtcbiAgICAgICAgY29uc3QgeyBwbHVnaW4sIHN0ZXBLZXkgfSA9IHJlY29yZGVkO1xuICAgICAgICBvdXQucHVzaCh7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBzdGFnZS5zdGFnZU5hbWUsXG4gICAgICAgICAgYWN0aW9uTmFtZSxcbiAgICAgICAgICBwbHVnaW5JZDogcGx1Z2luLmlkLFxuICAgICAgICAgIHBsdWdpbk5hbWU6IHBsdWdpbi5uYW1lLFxuICAgICAgICAgIHBsdWdpblZlcnNpb246IHBsdWdpbi52ZXJzaW9uLFxuICAgICAgICAgIGltYWdlRGlnZXN0OiBwbHVnaW4uaW1hZ2VEaWdlc3QgPz8gbnVsbCxcbiAgICAgICAgICBzdGVwS2V5LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1tYW5pZmVzdC1yZWNvcmRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3N0ZXAtbWFuaWZlc3QtcmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUt0QyxPQUFPLEVBQUUscUJBQXFCLEVBQTBCLE1BQU0sMEJBQTBCLENBQUM7QUFFekY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxNQUFjO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsV0FBVyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO0lBRXRGLDJIQUEySDtJQUMzSCxNQUFNLENBQUMsSUFBVSxFQUFFLE1BQWMsRUFBRSxPQUFlO1FBQ2hELElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxxQkFBcUI7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsUUFBa0I7UUFDeEIsTUFBTSxHQUFHLEdBQXdCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRO29CQUFFLFNBQVM7Z0JBQ3hCLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDO2dCQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztvQkFDMUIsVUFBVTtvQkFDVixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ25CLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPO29CQUM3QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJO29CQUN2QyxPQUFPO2lCQUNSLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhJztcbmltcG9ydCB0eXBlIHsgUGlwZWxpbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lJztcbmltcG9ydCB0eXBlIHsgU3RlcCB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBQTEFDRUhPTERFUl9QTFVHSU5fSUQsIHR5cGUgU3RlcE1hbmlmZXN0RW50cnkgfSBmcm9tICcuLi9jb3JlL3N0ZXAtbWFuaWZlc3QuanMnO1xuXG4vKipcbiAqIENESyBQaXBlbGluZXMnIGFjdGlvbi1uYW1lIHNhbml0aXplciAoYHBpcGVsaW5lcy9saWIvcHJpdmF0ZS9pZGVudGlmaWVyc2AsXG4gKiBub3QgZXhwb3J0ZWQgYnkgYXdzLWNkay1saWIpLiBVc2VkIE9OTFkgYXMgdGhlIGtleSB0aGF0IG1hdGNoZXMgYSByZWNvcmRlZFxuICogc3RlcCB0byBhbiBhY3Rpb24gb2YgdGhlIGJ1aWx0IHBpcGVsaW5lIOKAlCB0aGUgbmFtZXMgdGhhdCBsYW5kIGluIHRoZVxuICogbWFuaWZlc3QgYXJlIHJlYWQgb2ZmIHRoYXQgcGlwZWxpbmUuIElmIENESyBldmVyIG5hbWVzIGFuIGFjdGlvbiBkaWZmZXJlbnRseVxuICogKGUuZy4gaXRzID4xMDAtY2hhciB0cnVuY2F0aW9uKSwgdGhlIHN0ZXAgc2ltcGx5IGdvZXMgdW5tYXRjaGVkIGFuZCBpcyBsZWZ0XG4gKiBvdXQ6IGEgbWlzc2luZyBtYW5pZmVzdCByb3csIG5ldmVyIGEgd3Jvbmcgb25lLiB0ZXN0L3N0ZXAtbWFuaWZlc3QudGVzdC50c1xuICogcGlucyB0aGUgbWF0Y2ggYWdhaW5zdCBhIHJlYWwgc3ludGguXG4gKi9cbmZ1bmN0aW9uIGNka0FjdGlvbktleShzdGVwSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdGVwSWQucmVwbGFjZSgvW15BLVphLXowLTkuQFxcLV9dKy9nLCAnXycpO1xufVxuXG4vKipcbiAqIENvbGxlY3RzIChzdGVwIOKGkiByZXNvbHZlZCBwbHVnaW4pIHBhaXJzIHdoaWxlIHRoZSBzdGFnZXMgYXJlIGJ1aWx0LCB0aGVuXG4gKiByZWFkcyB0aGUgZmluaXNoZWQgQ29kZVBpcGVsaW5lIHRvIGVtaXQgdGhlIHN0ZXAgbWFuaWZlc3QuIE9ubHlcbiAqIHBsdWdpbnMgdGhhdCB3ZXJlIHJlYWxseSByZXNvbHZlZCBhcmUgcmVjb3JkZWQg4oCUIHRoZSBzeW50aC10aW1lXG4gKiBgZmFsbGJhY2soKWAgLyBgYm9vdHN0cmFwKClgIHBsYWNlaG9sZGVycyBuYW1lIG5vIGBwbHVnaW5zYCByb3cuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGVwTWFuaWZlc3RSZWNvcmRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnlBY3Rpb25LZXkgPSBuZXcgTWFwPHN0cmluZywgeyBwbHVnaW46IFBsdWdpbjsgc3RlcEtleTogc3RyaW5nIH0+KCk7XG5cbiAgLyoqIFJlbWVtYmVyIHRoYXQgYHN0ZXBgIHJ1bnMgYHBsdWdpbmAgdW5kZXIgc3RlcCBsYWJlbCBgc3RlcEtleWAgKGBwbHVnaW5TdGVwTGFiZWxgKS4gQ2FsbCBvbmNlIHBlciBwbHVnaW4tYmFja2VkIHN0ZXAuICovXG4gIHJlY29yZChzdGVwOiBTdGVwLCBwbHVnaW46IFBsdWdpbiwgc3RlcEtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHBsdWdpbi5pZCA9PT0gUExBQ0VIT0xERVJfUExVR0lOX0lEKSByZXR1cm47XG4gICAgdGhpcy5ieUFjdGlvbktleS5zZXQoY2RrQWN0aW9uS2V5KHN0ZXAuaWQpLCB7IHBsdWdpbiwgc3RlcEtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWFuaWZlc3QgZm9yIHRoZSBidWlsdCBwaXBlbGluZS4gQ2FsbCBhZnRlciBgYnVpbGRQaXBlbGluZSgpYDogc3RhZ2VcbiAgICogYW5kIGFjdGlvbiBuYW1lcyBjb21lIGZyb20gYHBpcGVsaW5lLnN0YWdlc2AsIHNvIGEgc3RhZ2UgQ0RLIHNwbGl0IGZvclxuICAgKiBleGNlZWRpbmcgNTAgYWN0aW9ucyAoYDxzdGFnZT4uMWAsIGA8c3RhZ2U+LjJgKSBpcyByZXBvcnRlZCBhcyBDb2RlUGlwZWxpbmVcbiAgICogcmVwb3J0cyBpdC5cbiAgICovXG4gIGVudHJpZXMocGlwZWxpbmU6IFBpcGVsaW5lKTogU3RlcE1hbmlmZXN0RW50cnlbXSB7XG4gICAgY29uc3Qgb3V0OiBTdGVwTWFuaWZlc3RFbnRyeVtdID0gW107XG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBwaXBlbGluZS5zdGFnZXMpIHtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHN0YWdlLmFjdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uTmFtZSA9IGFjdGlvbi5hY3Rpb25Qcm9wZXJ0aWVzLmFjdGlvbk5hbWU7XG4gICAgICAgIGNvbnN0IHJlY29yZGVkID0gdGhpcy5ieUFjdGlvbktleS5nZXQoYWN0aW9uTmFtZSk7XG4gICAgICAgIGlmICghcmVjb3JkZWQpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCB7IHBsdWdpbiwgc3RlcEtleSB9ID0gcmVjb3JkZWQ7XG4gICAgICAgIG91dC5wdXNoKHtcbiAgICAgICAgICBzdGFnZU5hbWU6IHN0YWdlLnN0YWdlTmFtZSxcbiAgICAgICAgICBhY3Rpb25OYW1lLFxuICAgICAgICAgIHBsdWdpbklkOiBwbHVnaW4uaWQsXG4gICAgICAgICAgcGx1Z2luTmFtZTogcGx1Z2luLm5hbWUsXG4gICAgICAgICAgcGx1Z2luVmVyc2lvbjogcGx1Z2luLnZlcnNpb24sXG4gICAgICAgICAgaW1hZ2VEaWdlc3Q6IHBsdWdpbi5pbWFnZURpZ2VzdCA/PyBudWxsLFxuICAgICAgICAgIHN0ZXBLZXksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG59XG4iXX0=