@aws-cdk/toolkit-lib 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -402,7 +402,7 @@ declare const cx: ICloudAssemblySource;
402
402
 
403
403
  try {
404
404
  // Attempt a CDK Toolkit operation
405
- const deployment = await cdk.deploy(cloudAssembly, {
405
+ const deployment = await cdk.deploy(cx, {
406
406
  stacks: ['MyStack']
407
407
  });
408
408
 
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2025-04-16T09:44:54Z by build-info.sh",
3
- "commit": "25db152"
2
+ "comment": "Generated at 2025-04-23T12:19:20Z by build-info.sh",
3
+ "commit": "cd4ec06"
4
4
  }
package/db.json.gz CHANGED
Binary file
@@ -1,11 +1,20 @@
1
+ import type { AwsCredentialIdentityProvider } from '@smithy/types';
2
+ import type { SdkProviderServices } from '../shared-private';
1
3
  /**
2
4
  * Options for the default SDK provider
3
5
  */
4
6
  export interface SdkConfig {
5
7
  /**
6
- * Profile to read from ~/.aws
8
+ * The base credentials and region used to seed the Toolkit with
9
+ *
10
+ * @default BaseCredentials.awsCliCompatible()
11
+ */
12
+ readonly baseCredentials?: BaseCredentials;
13
+ /**
14
+ * Profile to read from ~/.aws for base credentials
7
15
  *
8
16
  * @default - No profile
17
+ * @deprecated Use `baseCredentials` instead
9
18
  */
10
19
  readonly profile?: string;
11
20
  /**
@@ -30,3 +39,72 @@ export interface SdkHttpOptions {
30
39
  */
31
40
  readonly caBundlePath?: string;
32
41
  }
42
+ export declare abstract class BaseCredentials {
43
+ /**
44
+ * Use no base credentials
45
+ *
46
+ * There will be no current account and no current region during synthesis. To
47
+ * successfully deploy with this set of base credentials:
48
+ *
49
+ * - The CDK app must provide concrete accounts and regions during synthesis
50
+ * - Credential plugins must be installed to provide credentials for those
51
+ * accounts.
52
+ */
53
+ static none(): BaseCredentials;
54
+ /**
55
+ * Obtain base credentials and base region the same way the AWS CLI would
56
+ *
57
+ * Credentials and region will be read from the environment first, falling back
58
+ * to INI files or other sources if available.
59
+ *
60
+ * The profile name is configurable.
61
+ */
62
+ static awsCliCompatible(options?: AwsCliCompatibleOptions): BaseCredentials;
63
+ /**
64
+ * Use a custom SDK identity provider for the base credentials
65
+ *
66
+ * If your provider uses STS calls to obtain base credentials, you must make
67
+ * sure to also configure the necessary HTTP options (like proxy and user
68
+ * agent) and the region on the STS client directly; the toolkit code cannot
69
+ * do this for you.
70
+ */
71
+ static custom(options: CustomBaseCredentialsOption): BaseCredentials;
72
+ /**
73
+ * Make SDK config from the BaseCredentials settings
74
+ */
75
+ abstract makeSdkConfig(services: SdkProviderServices): Promise<SdkBaseConfig>;
76
+ }
77
+ export interface AwsCliCompatibleOptions {
78
+ /**
79
+ * The profile to read from `~/.aws/credentials`.
80
+ *
81
+ * If not supplied the environment variable AWS_PROFILE will be used.
82
+ *
83
+ * @default - Use environment variable if set.
84
+ */
85
+ readonly profile?: string;
86
+ }
87
+ export interface CustomBaseCredentialsOption {
88
+ /**
89
+ * The credentials provider to use to obtain base credentials
90
+ *
91
+ * If your provider uses STS calls to obtain base credentials, you must make
92
+ * sure to also configure the necessary HTTP options (like proxy and user
93
+ * agent) on the STS client directly; the toolkit code cannot do this for you.
94
+ */
95
+ readonly provider: AwsCredentialIdentityProvider;
96
+ /**
97
+ * The default region to synthesize for
98
+ *
99
+ * CDK applications can override this region. NOTE: this region will *not*
100
+ * affect any STS calls made by the given provider, if any. You need to configure
101
+ * your credential provider separately.
102
+ *
103
+ * @default 'us-east-1'
104
+ */
105
+ readonly region?: string;
106
+ }
107
+ export interface SdkBaseConfig {
108
+ readonly credentialProvider: AwsCredentialIdentityProvider;
109
+ readonly defaultRegion?: string;
110
+ }
@@ -1,3 +1,76 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBkZWZhdWx0IFNESyBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0NvbmZpZyB7XG4gIC8qKlxuICAgKiBQcm9maWxlIHRvIHJlYWQgZnJvbSB+Ly5hd3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIVFRQIG9wdGlvbnMgZm9yIFNES1xuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE9wdGlvbnM/OiBTZGtIdHRwT3B0aW9ucztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBpbmRpdmlkdWFsIFNES3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZGtIdHRwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm94eSBhZGRyZXNzIHRvIHVzZVxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBwcm94eVxuICAgKi9cbiAgcmVhZG9ubHkgcHJveHlBZGRyZXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggdG8gYSBjZXJ0aWZpY2F0ZSBidW5kbGUgdGhhdCBjb250YWlucyBhIGNlcnQgdG8gYmUgdHJ1c3RlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gY2VydGlmaWNhdGUgYnVuZGxlXG4gICAqL1xuICByZWFkb25seSBjYUJ1bmRsZVBhdGg/OiBzdHJpbmc7XG59XG4iXX0=
3
+ exports.BaseCredentials = void 0;
4
+ const shared_private_1 = require("../shared-private");
5
+ class BaseCredentials {
6
+ /**
7
+ * Use no base credentials
8
+ *
9
+ * There will be no current account and no current region during synthesis. To
10
+ * successfully deploy with this set of base credentials:
11
+ *
12
+ * - The CDK app must provide concrete accounts and regions during synthesis
13
+ * - Credential plugins must be installed to provide credentials for those
14
+ * accounts.
15
+ */
16
+ static none() {
17
+ return new class extends BaseCredentials {
18
+ async makeSdkConfig() {
19
+ return {
20
+ credentialProvider: () => {
21
+ // eslint-disable-next-line @cdklabs/no-throw-default-error
22
+ throw new Error('No credentials available due to BaseCredentials.none()');
23
+ },
24
+ };
25
+ }
26
+ toString() {
27
+ return 'BaseCredentials.none()';
28
+ }
29
+ };
30
+ }
31
+ /**
32
+ * Obtain base credentials and base region the same way the AWS CLI would
33
+ *
34
+ * Credentials and region will be read from the environment first, falling back
35
+ * to INI files or other sources if available.
36
+ *
37
+ * The profile name is configurable.
38
+ */
39
+ static awsCliCompatible(options = {}) {
40
+ return new class extends BaseCredentials {
41
+ makeSdkConfig(services) {
42
+ const awsCli = new shared_private_1.AwsCliCompatible(services.ioHelper, services.requestHandler ?? {}, services.logger);
43
+ return awsCli.baseConfig(options.profile);
44
+ }
45
+ toString() {
46
+ return `BaseCredentials.awsCliCompatible(${JSON.stringify(options)})`;
47
+ }
48
+ };
49
+ }
50
+ /**
51
+ * Use a custom SDK identity provider for the base credentials
52
+ *
53
+ * If your provider uses STS calls to obtain base credentials, you must make
54
+ * sure to also configure the necessary HTTP options (like proxy and user
55
+ * agent) and the region on the STS client directly; the toolkit code cannot
56
+ * do this for you.
57
+ */
58
+ static custom(options) {
59
+ return new class extends BaseCredentials {
60
+ makeSdkConfig() {
61
+ return Promise.resolve({
62
+ credentialProvider: options.provider,
63
+ defaultRegion: options.region,
64
+ });
65
+ }
66
+ toString() {
67
+ return `BaseCredentials.custom(${JSON.stringify({
68
+ ...options,
69
+ provider: '...',
70
+ })})`;
71
+ }
72
+ };
73
+ }
74
+ }
75
+ exports.BaseCredentials = BaseCredentials;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxzREFBcUQ7QUE4Q3JELE1BQXNCLGVBQWU7SUFDbkM7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDaEIsT0FBTyxJQUFJLEtBQU0sU0FBUSxlQUFlO1lBQy9CLEtBQUssQ0FBQyxhQUFhO2dCQUN4QixPQUFPO29CQUNMLGtCQUFrQixFQUFFLEdBQUcsRUFBRTt3QkFDdkIsMkRBQTJEO3dCQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7b0JBQzVFLENBQUM7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFFTSxRQUFRO2dCQUNiLE9BQU8sd0JBQXdCLENBQUM7WUFDbEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFtQyxFQUFFO1FBQ2xFLE9BQU8sSUFBSSxLQUFNLFNBQVEsZUFBZTtZQUMvQixhQUFhLENBQUMsUUFBNkI7Z0JBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksaUNBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZHLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUVNLFFBQVE7Z0JBQ2IsT0FBTyxvQ0FBb0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3hFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQW9DO1FBQ3ZELE9BQU8sSUFBSSxLQUFNLFNBQVEsZUFBZTtZQUMvQixhQUFhO2dCQUNsQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7b0JBQ3JCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxRQUFRO29CQUNwQyxhQUFhLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQzlCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFTSxRQUFRO2dCQUNiLE9BQU8sMEJBQTBCLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQzlDLEdBQUcsT0FBTztvQkFDVixRQUFRLEVBQUUsS0FBSztpQkFDaEIsQ0FBQyxHQUFHLENBQUM7WUFDUixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FNRjtBQS9FRCwwQ0ErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF3c0NyZWRlbnRpYWxJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnQHNtaXRoeS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyU2VydmljZXMgfSBmcm9tICcuLi9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBBd3NDbGlDb21wYXRpYmxlIH0gZnJvbSAnLi4vc2hhcmVkLXByaXZhdGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBkZWZhdWx0IFNESyBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNka0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBjcmVkZW50aWFscyBhbmQgcmVnaW9uIHVzZWQgdG8gc2VlZCB0aGUgVG9vbGtpdCB3aXRoXG4gICAqXG4gICAqIEBkZWZhdWx0IEJhc2VDcmVkZW50aWFscy5hd3NDbGlDb21wYXRpYmxlKClcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VDcmVkZW50aWFscz86IEJhc2VDcmVkZW50aWFscztcblxuICAvKipcbiAgICogUHJvZmlsZSB0byByZWFkIGZyb20gfi8uYXdzIGZvciBiYXNlIGNyZWRlbnRpYWxzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcHJvZmlsZVxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGJhc2VDcmVkZW50aWFsc2AgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogSFRUUCBvcHRpb25zIGZvciBTREtcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBPcHRpb25zPzogU2RrSHR0cE9wdGlvbnM7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaW5kaXZpZHVhbCBTREtzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2RrSHR0cE9wdGlvbnMge1xuICAvKipcbiAgICogUHJveHkgYWRkcmVzcyB0byB1c2VcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcHJveHlcbiAgICovXG4gIHJlYWRvbmx5IHByb3h5QWRkcmVzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwYXRoIHRvIGEgY2VydGlmaWNhdGUgYnVuZGxlIHRoYXQgY29udGFpbnMgYSBjZXJ0IHRvIGJlIHRydXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIGNlcnRpZmljYXRlIGJ1bmRsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FCdW5kbGVQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNyZWRlbnRpYWxzIHtcbiAgLyoqXG4gICAqIFVzZSBubyBiYXNlIGNyZWRlbnRpYWxzXG4gICAqXG4gICAqIFRoZXJlIHdpbGwgYmUgbm8gY3VycmVudCBhY2NvdW50IGFuZCBubyBjdXJyZW50IHJlZ2lvbiBkdXJpbmcgc3ludGhlc2lzLiBUb1xuICAgKiBzdWNjZXNzZnVsbHkgZGVwbG95IHdpdGggdGhpcyBzZXQgb2YgYmFzZSBjcmVkZW50aWFsczpcbiAgICpcbiAgICogLSBUaGUgQ0RLIGFwcCBtdXN0IHByb3ZpZGUgY29uY3JldGUgYWNjb3VudHMgYW5kIHJlZ2lvbnMgZHVyaW5nIHN5bnRoZXNpc1xuICAgKiAtIENyZWRlbnRpYWwgcGx1Z2lucyBtdXN0IGJlIGluc3RhbGxlZCB0byBwcm92aWRlIGNyZWRlbnRpYWxzIGZvciB0aG9zZVxuICAgKiAgIGFjY291bnRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub25lKCk6IEJhc2VDcmVkZW50aWFscyB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIEJhc2VDcmVkZW50aWFscyB7XG4gICAgICBwdWJsaWMgYXN5bmMgbWFrZVNka0NvbmZpZygpOiBQcm9taXNlPFNka0Jhc2VDb25maWc+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjcmVkZW50aWFsUHJvdmlkZXI6ICgpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9uby10aHJvdy1kZWZhdWx0LWVycm9yXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGNyZWRlbnRpYWxzIGF2YWlsYWJsZSBkdWUgdG8gQmFzZUNyZWRlbnRpYWxzLm5vbmUoKScpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuICdCYXNlQ3JlZGVudGlhbHMubm9uZSgpJztcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbiBiYXNlIGNyZWRlbnRpYWxzIGFuZCBiYXNlIHJlZ2lvbiB0aGUgc2FtZSB3YXkgdGhlIEFXUyBDTEkgd291bGRcbiAgICpcbiAgICogQ3JlZGVudGlhbHMgYW5kIHJlZ2lvbiB3aWxsIGJlIHJlYWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgZmlyc3QsIGZhbGxpbmcgYmFja1xuICAgKiB0byBJTkkgZmlsZXMgb3Igb3RoZXIgc291cmNlcyBpZiBhdmFpbGFibGUuXG4gICAqXG4gICAqIFRoZSBwcm9maWxlIG5hbWUgaXMgY29uZmlndXJhYmxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhd3NDbGlDb21wYXRpYmxlKG9wdGlvbnM6IEF3c0NsaUNvbXBhdGlibGVPcHRpb25zID0ge30pOiBCYXNlQ3JlZGVudGlhbHMge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBCYXNlQ3JlZGVudGlhbHMge1xuICAgICAgcHVibGljIG1ha2VTZGtDb25maWcoc2VydmljZXM6IFNka1Byb3ZpZGVyU2VydmljZXMpOiBQcm9taXNlPFNka0Jhc2VDb25maWc+IHtcbiAgICAgICAgY29uc3QgYXdzQ2xpID0gbmV3IEF3c0NsaUNvbXBhdGlibGUoc2VydmljZXMuaW9IZWxwZXIsIHNlcnZpY2VzLnJlcXVlc3RIYW5kbGVyID8/IHt9LCBzZXJ2aWNlcy5sb2dnZXIpO1xuICAgICAgICByZXR1cm4gYXdzQ2xpLmJhc2VDb25maWcob3B0aW9ucy5wcm9maWxlKTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gYEJhc2VDcmVkZW50aWFscy5hd3NDbGlDb21wYXRpYmxlKCR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9KWA7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBjdXN0b20gU0RLIGlkZW50aXR5IHByb3ZpZGVyIGZvciB0aGUgYmFzZSBjcmVkZW50aWFsc1xuICAgKlxuICAgKiBJZiB5b3VyIHByb3ZpZGVyIHVzZXMgU1RTIGNhbGxzIHRvIG9idGFpbiBiYXNlIGNyZWRlbnRpYWxzLCB5b3UgbXVzdCBtYWtlXG4gICAqIHN1cmUgdG8gYWxzbyBjb25maWd1cmUgdGhlIG5lY2Vzc2FyeSBIVFRQIG9wdGlvbnMgKGxpa2UgcHJveHkgYW5kIHVzZXJcbiAgICogYWdlbnQpIGFuZCB0aGUgcmVnaW9uIG9uIHRoZSBTVFMgY2xpZW50IGRpcmVjdGx5OyB0aGUgdG9vbGtpdCBjb2RlIGNhbm5vdFxuICAgKiBkbyB0aGlzIGZvciB5b3UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShvcHRpb25zOiBDdXN0b21CYXNlQ3JlZGVudGlhbHNPcHRpb24pOiBCYXNlQ3JlZGVudGlhbHMge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBCYXNlQ3JlZGVudGlhbHMge1xuICAgICAgcHVibGljIG1ha2VTZGtDb25maWcoKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlcjogb3B0aW9ucy5wcm92aWRlcixcbiAgICAgICAgICBkZWZhdWx0UmVnaW9uOiBvcHRpb25zLnJlZ2lvbixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIGBCYXNlQ3JlZGVudGlhbHMuY3VzdG9tKCR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgcHJvdmlkZXI6ICcuLi4nLFxuICAgICAgICB9KX0pYDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgU0RLIGNvbmZpZyBmcm9tIHRoZSBCYXNlQ3JlZGVudGlhbHMgc2V0dGluZ3NcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBtYWtlU2RrQ29uZmlnKHNlcnZpY2VzOiBTZGtQcm92aWRlclNlcnZpY2VzKTogUHJvbWlzZTxTZGtCYXNlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NDbGlDb21wYXRpYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvZmlsZSB0byByZWFkIGZyb20gYH4vLmF3cy9jcmVkZW50aWFsc2AuXG4gICAqXG4gICAqIElmIG5vdCBzdXBwbGllZCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX1BST0ZJTEUgd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiBzZXQuXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUJhc2VDcmVkZW50aWFsc09wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgcHJvdmlkZXIgdG8gdXNlIHRvIG9idGFpbiBiYXNlIGNyZWRlbnRpYWxzXG4gICAqXG4gICAqIElmIHlvdXIgcHJvdmlkZXIgdXNlcyBTVFMgY2FsbHMgdG8gb2J0YWluIGJhc2UgY3JlZGVudGlhbHMsIHlvdSBtdXN0IG1ha2VcbiAgICogc3VyZSB0byBhbHNvIGNvbmZpZ3VyZSB0aGUgbmVjZXNzYXJ5IEhUVFAgb3B0aW9ucyAobGlrZSBwcm94eSBhbmQgdXNlclxuICAgKiBhZ2VudCkgb24gdGhlIFNUUyBjbGllbnQgZGlyZWN0bHk7IHRoZSB0b29sa2l0IGNvZGUgY2Fubm90IGRvIHRoaXMgZm9yIHlvdS5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgcmVnaW9uIHRvIHN5bnRoZXNpemUgZm9yXG4gICAqXG4gICAqIENESyBhcHBsaWNhdGlvbnMgY2FuIG92ZXJyaWRlIHRoaXMgcmVnaW9uLiBOT1RFOiB0aGlzIHJlZ2lvbiB3aWxsICpub3QqXG4gICAqIGFmZmVjdCBhbnkgU1RTIGNhbGxzIG1hZGUgYnkgdGhlIGdpdmVuIHByb3ZpZGVyLCBpZiBhbnkuIFlvdSBuZWVkIHRvIGNvbmZpZ3VyZVxuICAgKiB5b3VyIGNyZWRlbnRpYWwgcHJvdmlkZXIgc2VwYXJhdGVseS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3VzLWVhc3QtMSdcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZGtCYXNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyOiBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlcjtcblxuICByZWFkb25seSBkZWZhdWx0UmVnaW9uPzogc3RyaW5nO1xufVxuIl19
@@ -1,3 +1,4 @@
1
+ import '../../private/dispose-polyfill';
1
2
  import type * as cxapi from '@aws-cdk/cx-api';
2
3
  import type { ICloudAssemblySource, IReadableCloudAssembly } from './types';
3
4
  /**
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CachedCloudAssembly = void 0;
4
+ require("../../private/dispose-polyfill");
4
5
  const borrowed_assembly_1 = require("./private/borrowed-assembly");
5
6
  /**
6
7
  * A CloudAssemblySource that is caching its result once produced.
@@ -49,4 +50,4 @@ class CachedCloudAssembly {
49
50
  }
50
51
  }
51
52
  exports.CachedCloudAssembly = CachedCloudAssembly;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhY2hlZC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUVBQStEO0FBRy9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFhLG1CQUFtQjtJQUN0QixHQUFHLENBQXlCO0lBRXBDLFlBQW1CLEdBQTJCO1FBQzVDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLG9DQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUExQkQsa0RBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgQm9ycm93ZWRBc3NlbWJseSB9IGZyb20gJy4vcHJpdmF0ZS9ib3Jyb3dlZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBDbG91ZEFzc2VtYmx5U291cmNlIHRoYXQgaXMgY2FjaGluZyBpdHMgcmVzdWx0IG9uY2UgcHJvZHVjZWQuXG4gKlxuICogTW9zdCBUb29sa2l0IGludGVyYWN0aW9ucyBzaG91bGQgdXNlIGEgY2FjaGVkIHNvdXJjZS4gTm90IGNhY2hpbmcgaXNcbiAqIHJlbGV2YW50IHdoZW4gdGhlIHNvdXJjZSBjaGFuZ2VzIGZyZXF1ZW50bHkgYW5kIGl0IGlzIHRvIGV4cGVuc2l2ZSB0byBwcmVkaWN0XG4gKiBpZiB0aGUgc291cmNlIGhhcyBjaGFuZ2VkLlxuICpcbiAqIFRoZSBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAgaXMgYm90aCBpdHNlbGYgYSByZWFkYWJsZSBDbG91ZEFzc2VtYmx5LCBhcyB3ZWxsIGFzXG4gKiBhIENsb3VkIEFzc2VtYmx5IFNvdXJjZS4gVGhlIGxpZmV0aW1lcyBvZiBjbG91ZCBhc3NlbWJsaWVzIHByb2R1Y2VkIGJ5IHRoaXNcbiAqIHNvdXJjZSBhcmUgY291cGxlZCB0byB0aGUgbGlmZXRpbWUgb2YgdGhlIGBDYWNoZWRDbG91ZEFzc2VtYmx5YC4gSW4gb3RoZXJcbiAqIHdvcmRzOiB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb25zIG9mIHRob3NlIGNsb3VkIGFzc2VtYmxpZXMgZG9uJ3QgZG8gYW55dGhpbmc7XG4gKiBvbmx5IHRoZSBgZGlzcG9zZSgpYCBmdW5jdGlvbiBvZiB0aGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIHdpbGwgYmUgdXNlZC5cbiAqXG4gKiBOT1RFOiBpZiB3ZSBhcmUgY29uY2VybmVkIGFib3V0IGJvcnJvd2VkIGFzc2VtYmxpZXMgb3V0bGl2aW5nIHRoZSBwYXJlbnRcbiAqIChpLmUuIHRoZSBwYXJlbnQgZ2V0dGluZyBkaXNwb3NlZCB3aGlsZSBzb21lb25lIGlzIHN0aWxsIHdvcmtpbmcgd2l0aCB0aGVcbiAqIGJvcnJvd2VkIGNvcGllcyksIHdlIGNvdWxkIGNvbnNpZGVyIHJlZmVyZW5jaW5nIGNvdW50aW5nIGhlcmUuIFRoYXQgc2VlbXNcbiAqIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgZm9yIG5vdywgd2Ugd2lsbCBqdXN0IGFzc3VtZSB0aGF0IGV2ZXJ5b25lIGlzXG4gKiBiZWluZyBhIGdvb2QgY2l0aXplbiBhbiBib3Jyb3dlZCBjb3BpZXMgYXJlIG9ubHkgdXNlZCBieSB0aGUgdG9vbGtpdCBhbmRcbiAqIGltbWVkaWF0ZWx5IGRpc3Bvc2VkIG9mLlxuICpcbiAqIEJlY2F1c2UgYGRpc3Bvc2UoKWAgaXMgYSBuby1vcCBvbiB0aGUgYm9ycm93ZWQgYXNzZW1ibHksIHlvdSBjYW4gb21pdCBpdFxuICogd2l0aG91dCBjaGFuZ2luZyBiZWhhdmlvciwgYnV0IHRoYXQgd291bGQgdHVybiBpbnRvIGEgbGVhayBpZiB3ZSBldmVyIGludHJvZHVjZWRcbiAqIHJlZmVyZW5jZSBjb3VudGluZy4gRmFpbGluZyB0byBkaXNwb3NlIHRoZSByZXN1bHQgaWYgYSBgcHJvZHVjZSgpYCBjYWxsIG9mIGFcbiAqIGBDYWNoZWRDbG91ZEFzc2VtYmx5YCBpcyBjb25zaWRlcmVkIGEgYnVnLlxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVkQ2xvdWRBc3NlbWJseSBpbXBsZW1lbnRzIElDbG91ZEFzc2VtYmx5U291cmNlLCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgcHJpdmF0ZSBhc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGFzbTogSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSkge1xuICAgIHRoaXMuYXNtID0gYXNtO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG91ZEFzc2VtYmx5KCk6IGN4YXBpLkNsb3VkQXNzZW1ibHkge1xuICAgIHJldHVybiB0aGlzLmFzbS5jbG91ZEFzc2VtYmx5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHByb2R1Y2UoKTogUHJvbWlzZTxJUmVhZGFibGVDbG91ZEFzc2VtYmx5PiB7XG4gICAgcmV0dXJuIG5ldyBCb3Jyb3dlZEFzc2VtYmx5KHRoaXMuYXNtLmNsb3VkQXNzZW1ibHkpO1xuICB9XG5cbiAgcHVibGljIF91bmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNtLl91bmxvY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFzbS5kaXNwb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhY2hlZC1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXdDO0FBRXhDLG1FQUErRDtBQUcvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDdEIsR0FBRyxDQUF5QjtJQUVwQyxZQUFtQixHQUEyQjtRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBMUJELGtEQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IEJvcnJvd2VkQXNzZW1ibHkgfSBmcm9tICcuL3ByaXZhdGUvYm9ycm93ZWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IGlzIGNhY2hpbmcgaXRzIHJlc3VsdCBvbmNlIHByb2R1Y2VkLlxuICpcbiAqIE1vc3QgVG9vbGtpdCBpbnRlcmFjdGlvbnMgc2hvdWxkIHVzZSBhIGNhY2hlZCBzb3VyY2UuIE5vdCBjYWNoaW5nIGlzXG4gKiByZWxldmFudCB3aGVuIHRoZSBzb3VyY2UgY2hhbmdlcyBmcmVxdWVudGx5IGFuZCBpdCBpcyB0byBleHBlbnNpdmUgdG8gcHJlZGljdFxuICogaWYgdGhlIHNvdXJjZSBoYXMgY2hhbmdlZC5cbiAqXG4gKiBUaGUgYENhY2hlZENsb3VkQXNzZW1ibHlgIGlzIGJvdGggaXRzZWxmIGEgcmVhZGFibGUgQ2xvdWRBc3NlbWJseSwgYXMgd2VsbCBhc1xuICogYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UuIFRoZSBsaWZldGltZXMgb2YgY2xvdWQgYXNzZW1ibGllcyBwcm9kdWNlZCBieSB0aGlzXG4gKiBzb3VyY2UgYXJlIGNvdXBsZWQgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAuIEluIG90aGVyXG4gKiB3b3JkczogdGhlIGBkaXNwb3NlKClgIGZ1bmN0aW9ucyBvZiB0aG9zZSBjbG91ZCBhc3NlbWJsaWVzIGRvbid0IGRvIGFueXRoaW5nO1xuICogb25seSB0aGUgYGRpc3Bvc2UoKWAgZnVuY3Rpb24gb2YgdGhlIGBDYWNoZWRDbG91ZEFzc2VtYmx5YCB3aWxsIGJlIHVzZWQuXG4gKlxuICogTk9URTogaWYgd2UgYXJlIGNvbmNlcm5lZCBhYm91dCBib3Jyb3dlZCBhc3NlbWJsaWVzIG91dGxpdmluZyB0aGUgcGFyZW50XG4gKiAoaS5lLiB0aGUgcGFyZW50IGdldHRpbmcgZGlzcG9zZWQgd2hpbGUgc29tZW9uZSBpcyBzdGlsbCB3b3JraW5nIHdpdGggdGhlXG4gKiBib3Jyb3dlZCBjb3BpZXMpLCB3ZSBjb3VsZCBjb25zaWRlciByZWZlcmVuY2luZyBjb3VudGluZyBoZXJlLiBUaGF0IHNlZW1zXG4gKiB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIGZvciBub3csIHdlIHdpbGwganVzdCBhc3N1bWUgdGhhdCBldmVyeW9uZSBpc1xuICogYmVpbmcgYSBnb29kIGNpdGl6ZW4gYW4gYm9ycm93ZWQgY29waWVzIGFyZSBvbmx5IHVzZWQgYnkgdGhlIHRvb2xraXQgYW5kXG4gKiBpbW1lZGlhdGVseSBkaXNwb3NlZCBvZi5cbiAqXG4gKiBCZWNhdXNlIGBkaXNwb3NlKClgIGlzIGEgbm8tb3Agb24gdGhlIGJvcnJvd2VkIGFzc2VtYmx5LCB5b3UgY2FuIG9taXQgaXRcbiAqIHdpdGhvdXQgY2hhbmdpbmcgYmVoYXZpb3IsIGJ1dCB0aGF0IHdvdWxkIHR1cm4gaW50byBhIGxlYWsgaWYgd2UgZXZlciBpbnRyb2R1Y2VkXG4gKiByZWZlcmVuY2UgY291bnRpbmcuIEZhaWxpbmcgdG8gZGlzcG9zZSB0aGUgcmVzdWx0IGlmIGEgYHByb2R1Y2UoKWAgY2FsbCBvZiBhXG4gKiBgQ2FjaGVkQ2xvdWRBc3NlbWJseWAgaXMgY29uc2lkZXJlZCBhIGJ1Zy5cbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlZENsb3VkQXNzZW1ibHkgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIHByaXZhdGUgYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihhc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkpIHtcbiAgICB0aGlzLmFzbSA9IGFzbTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvdWRBc3NlbWJseSgpOiBjeGFwaS5DbG91ZEFzc2VtYmx5IHtcbiAgICByZXR1cm4gdGhpcy5hc20uY2xvdWRBc3NlbWJseTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT4ge1xuICAgIHJldHVybiBuZXcgQm9ycm93ZWRBc3NlbWJseSh0aGlzLmFzbS5jbG91ZEFzc2VtYmx5KTtcbiAgfVxuXG4gIHB1YmxpYyBfdW5sb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmFzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hc20uZGlzcG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import '../../../private/dispose-polyfill';
1
2
  import type * as cxapi from '@aws-cdk/cx-api';
2
3
  import type { IReadableCloudAssembly } from '../types';
3
4
  /**
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BorrowedAssembly = void 0;
4
+ require("../../../private/dispose-polyfill");
4
5
  /**
5
6
  * An implementation of `IReadableCloudAssembly` that does nothing except hold on to the CloudAssembly object
6
7
  *
@@ -19,4 +20,4 @@ class BorrowedAssembly {
19
20
  }
20
21
  }
21
22
  exports.BorrowedAssembly = BorrowedAssembly;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93ZWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib3Jyb3dlZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTs7OztHQUlHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDQztJQUE1QixZQUE0QixhQUFrQztRQUFsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7SUFDOUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO0lBQ3BCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztJQUNwQixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFaRCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB0eXBlIHsgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseWAgdGhhdCBkb2VzIG5vdGhpbmcgZXhjZXB0IGhvbGQgb24gdG8gdGhlIENsb3VkQXNzZW1ibHkgb2JqZWN0XG4gKlxuICogSXQgZG9lcyBub3Qgb3duIGEgbG9jaywgYW5kIGl0IGRvZXMgbm90IGNsZWFuIHRoZSB1bmRlcmx5aW5nIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJvcnJvd2VkQXNzZW1ibHkgaW1wbGVtZW50cyBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsb3VkQXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHkpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBfdW5sb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc3Bvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG59XG5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93ZWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJib3Jyb3dlZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFJM0M7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWdCO0lBQ0M7SUFBNUIsWUFBNEIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztJQUNwQixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBWkQsNENBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uLy4uLy4uL3ByaXZhdGUvZGlzcG9zZS1wb2x5ZmlsbCc7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYElSZWFkYWJsZUNsb3VkQXNzZW1ibHlgIHRoYXQgZG9lcyBub3RoaW5nIGV4Y2VwdCBob2xkIG9uIHRvIHRoZSBDbG91ZEFzc2VtYmx5IG9iamVjdFxuICpcbiAqIEl0IGRvZXMgbm90IG93biBhIGxvY2ssIGFuZCBpdCBkb2VzIG5vdCBjbGVhbiB0aGUgdW5kZXJseWluZyBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dlZEFzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbG91ZEFzc2VtYmx5OiBjeGFwaS5DbG91ZEFzc2VtYmx5KSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgX3VubG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxufVxuXG4iXX0=
@@ -65,7 +65,7 @@ class ContextAwareCloudAssemblySource {
65
65
  previouslyMissingKeys = missingKeysSet;
66
66
  if (tryLookup) {
67
67
  await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0241.msg('Some context information is missing. Fetching...', { missingKeys }));
68
- await shared_private_1.contextproviders.provideContextValues(assembly.manifest.missing, this.context, this.props.services.sdkProvider, this.ioHelper);
68
+ await shared_private_1.contextproviders.provideContextValues(assembly.manifest.missing, this.context, this.props.services.sdkProvider, this.props.services.pluginHost, this.ioHelper);
69
69
  // Cache the new context to disk
70
70
  await this.ioHelper.notify(private_1.IO.CDK_ASSEMBLY_I0042.msg(`Writing updated context to ${this.contextFile}...`, {
71
71
  contextFile: this.contextFile,
@@ -103,4 +103,4 @@ function equalSets(a, b) {
103
103
  }
104
104
  return true;
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hd2FyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LWF3YXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4Q0FBc0M7QUFDdEMseURBQXdEO0FBQ3hELHlEQUFvRjtBQUNwRix1REFBbUQ7QUFnQ25EOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwrQkFBK0I7SUFNYjtJQUErQztJQUxwRSxTQUFTLENBQVU7SUFDbkIsT0FBTyxDQUFVO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixRQUFRLENBQVc7SUFFM0IsWUFBNkIsTUFBNEIsRUFBbUIsS0FBcUM7UUFBcEYsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDL0csSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGdDQUFlLENBQUMsQ0FBQyx5Q0FBeUM7UUFDbEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixzR0FBc0c7UUFDdEcsZ0ZBQWdGO1FBQ2hGLG1GQUFtRjtRQUNuRiw4RUFBOEU7UUFDOUUsSUFBSSxxQkFBOEMsQ0FBQztRQUNuRCxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRWhELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENB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LENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNaXNzaW5nQ29udGV4dCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgY29udGV4dHByb3ZpZGVycyB9IGZyb20gJy4uLy4uL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFBST0pFQ1RfQ09OVEVYVCwgdHlwZSBDb250ZXh0LCB0eXBlIElvSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlLCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB7XG4gIC8qKlxuICAgKiBBV1Mgb2JqZWN0ICh1c2VkIGJ5IGNvbnRleHRwcm92aWRlcilcbiAgICogQGRlcHJlY2F0ZWQgY29udGV4dCBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIHRvb2xraXQgaXRzZWxmXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzO1xuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB1c2VkIHRvIHN0b3JlIGFwcGxpY2F0aW9uIGNvbnRleHQgaW4gKHJlbGF0aXZlIHRvIGN3ZCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiY2RrLmNvbnRleHQuanNvblwiXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0RmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogUHJvZHVjaW5nIGEgYGN4YXBpLkNsb3VkQXNzZW1ibHlgIHdpbGwgZmFpbCBpZiB0aGlzIGlzIGRpc2FibGVkIGFuZCBjb250ZXh0IGxvb2t1cHMgbmVlZCB0byBiZSBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgQ2xvdWRBc3NlbWJseVNvdXJjZSB0aGF0IHdyYXBzIGFub3RoZXIgQ2xvdWRBc3NlbWJseVNvdXJjZSBhbmQgcnVucyBhIGxvb2t1cCBsb29wIG9uIGl0XG4gKlxuICogVGhpcyBtZWFucyB0aGF0IGlmIHRoZSB1bmRlcmx5aW5nIENsb3VkQXNzZW1ibHlTb3VyY2UgcHJvZHVjZXMgYSBtYW5pZmVzdFxuICogd2l0aCBwcm92aWRlciBxdWVyaWVzIGluIGl0LCB0aGUgYENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2VgIHdpbGxcbiAqIHBlcmZvcm0gdGhlIG5lY2Vzc2FyeSBjb250ZXh0IGxvb2t1cHMgYW5kIGludm9rZSB0aGUgdW5kZXJseWluZ1xuICogYENsb3VkQXNzZW1ibHlTb3VyY2VgIGFnYWluIHdpdGggdGhldyBtaXNzaW5nIGNvbnRleHQgaW5mb3JtYXRpb24uXG4gKlxuICogVGhpcyBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgdW5kZXJseWluZyBgQ2xvdWRBc3NlbWJseVNvdXJjZWAgY2FuIHJlc3BvbmQgdG9cbiAqIHRoaXMgbmV3IGNvbnRleHQgaW5mb3JtYXRpb24gKGl0IG11c3QgYmUgYSBDREsgYXBwIHNvdXJjZSk7IGlmIGl0IGlzIGp1c3QgYVxuICogc3RhdGljIGRpcmVjdG9yeSwgdGhlbiB0aGUgY29udGVudHMgb2YgdGhlIGFzc2VtYmx5IHdvbid0IGNoYW5nZSBpbiByZXNwb25zZVxuICogdG8gY29udGV4dC5cbiAqXG4gKiBUaGUgY29udGV4dCBpcyBwYXNzZWQgYmV0d2VlbiBgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZWAgYW5kIHRoZSB3cmFwcGVkXG4gKiBjbG91ZCBhc3NlbWJseSBzb3VyY2UgdmlhIGEgY29udGV4IGZpbGUgb24gZGlzaywgc28gdGhlIHdyYXBwZWQgYXNzZW1ibHkgc291cmNlXG4gKiBzaG91bGQgcmUtcmVhZCB0aGUgY29udGV4dCBmaWxlIG9uIGV2ZXJ5IGludm9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlIGltcGxlbWVudHMgSUNsb3VkQXNzZW1ibHlTb3VyY2Uge1xuICBwcml2YXRlIGNhbkxvb2t1cDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0O1xuICBwcml2YXRlIGNvbnRleHRGaWxlOiBzdHJpbmc7XG4gIHByaXZhdGUgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc291cmNlOiBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzKSB7XG4gICAgdGhpcy5jYW5Mb29rdXAgPSBwcm9wcy5sb29rdXBzID8/IHRydWU7XG4gICAgdGhpcy5jb250ZXh0ID0gcHJvcHMuY29udGV4dDtcbiAgICB0aGlzLmNvbnRleHRGaWxlID0gcHJvcHMuY29udGV4dEZpbGUgPz8gUFJPSkVDVF9DT05URVhUOyAvLyBAdG9kbyBuZXcgZmVhdHVyZSBub3QgbmVlZGVkIHJpZ2h0IG5vd1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5zZXJ2aWNlcy5pb0hlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgQ2xvdWQgQXNzZW1ibHksIGkuZS4gYSBzZXQgb2Ygc3RhY2tzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcHJvZHVjZSgpOiBQcm9taXNlPElSZWFkYWJsZUNsb3VkQXNzZW1ibHk+IHtcbiAgICAvLyBXZSBtYXkgbmVlZCB0byBydW4gdGhlIGNsb3VkIGFzc2VtYmx5IHNvdXJjZSBtdWx0aXBsZSB0aW1lcyBpbiBvcmRlciB0byBzYXRpc2Z5IGFsbCBtaXNzaW5nIGNvbnRleHRcbiAgICAvLyAoV2hlbiB0aGUgc291cmNlIHByb2R1Y2VyIHJ1bnMsIGl0IHdpbGwgdGVsbCB1cyBhYm91dCBjb250ZXh0IGl0IHdhbnRzIHRvIHVzZVxuICAgIC8vIGJ1dCBpdCBtaXNzaW5nLiBXZSdsbCB0aGVuIGxvb2sgdXAgdGhlIGNvbnRleHQgYW5kIHJ1biB0aGUgZXhlY3V0YWJsZSBhZ2FpbiwgYW5kXG4gICAgLy8gYWdhaW4sIHVudGlsIGl0IGRvZXNuJ3QgY29tcGxhaW4gYW55bW9yZSBvciB3ZSd2ZSBzdG9wcGVkIG1ha2luZyBwcm9ncmVzcykuXG4gICAgbGV0IHByZXZpb3VzbHlNaXNzaW5nS2V5czogU2V0PHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IHJlYWRhYmxlQXNtID0gYXdhaXQgdGhpcy5zb3VyY2UucHJvZHVjZSgpO1xuXG4gICAgICBjb25zdCBhc3NlbWJseSA9IHJlYWRhYmxlQXNtLmNsb3VkQXNzZW1ibHk7XG4gICAgICBpZiAoYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZyAmJiBhc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbWlzc2luZ0tleXNTZXQgPSBtaXNzaW5nQ29udGV4dEtleXMoYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZyk7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdLZXlzID0gQXJyYXkuZnJvbShtaXNzaW5nS2V5c1NldCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNhbkxvb2t1cCkge1xuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgICAnQ29udGV4dCBsb29rdXBzIGhhdmUgYmVlbiBkaXNhYmxlZC4gJ1xuICAgICAgICAgICAgKyAnTWFrZSBzdXJlIGFsbCBuZWNlc3NhcnkgY29udGV4dCBpcyBhbHJlYWR5IGluIFxcJ2Nkay5jb250ZXh0Lmpzb25cXCcgYnkgcnVubmluZyBcXCdjZGsgc3ludGhcXCcgb24gYSBtYWNoaW5lIHdpdGggc3VmZmljaWVudCBBV1MgY3JlZGVudGlhbHMgYW5kIGNvbW1pdHRpbmcgdGhlIHJlc3VsdC4gJ1xuICAgICAgICAgICAgKyBgTWlzc2luZyBjb250ZXh0IGtleXM6ICcke21pc3NpbmdLZXlzLmpvaW4oJywgJyl9J2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRyeUxvb2t1cCA9IHRydWU7XG4gICAgICAgIGlmIChwcmV2aW91c2x5TWlzc2luZ0tleXMgJiYgZXF1YWxTZXRzKG1pc3NpbmdLZXlzU2V0LCBwcmV2aW91c2x5TWlzc2luZ0tleXMpKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMjQwLm1zZygnTm90IG1ha2luZyBwcm9ncmVzcyB0cnlpbmcgdG8gcmVzb2x2ZSBlbnZpcm9ubWVudGFsIGNvbnRleHQuIEdpdmluZyB1cC4nLCB7IG1pc3NpbmdLZXlzIH0pKTtcbiAgICAgICAgICB0cnlMb29rdXAgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzbHlNaXNzaW5nS2V5cyA9IG1pc3NpbmdLZXlzU2V0O1xuXG4gICAgICAgIGlmICh0cnlMb29rdXApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAyNDEubXNnKCdTb21lIGNvbnRleHQgaW5mb3JtYXRpb24gaXMgbWlzc2luZy4gRmV0Y2hpbmcuLi4nLCB7IG1pc3NpbmdLZXlzIH0pKTtcbiAgICAgICAgICBhd2FpdCBjb250ZXh0cHJvdmlkZXJzLnByb3ZpZGVDb250ZXh0VmFsdWVzKFxuICAgICAgICAgICAgYXNzZW1ibHkubWFuaWZlc3QubWlzc2luZyxcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2VydmljZXMuc2RrUHJvdmlkZXIsXG4gICAgICAgICAgICB0aGlzLmlvSGVscGVyLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBDYWNoZSB0aGUgbmV3IGNvbnRleHQgdG8gZGlza1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDA0Mi5tc2coYFdyaXRpbmcgdXBkYXRlZCBjb250ZXh0IHRvICR7dGhpcy5jb250ZXh0RmlsZX0uLi5gLCB7XG4gICAgICAgICAgICBjb250ZXh0RmlsZTogdGhpcy5jb250ZXh0RmlsZSxcbiAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dC5hbGwsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29udGV4dC5zYXZlKHRoaXMuY29udGV4dEZpbGUpO1xuXG4gICAgICAgICAgLy8gRXhlY3V0ZSBhZ2Fpbi4gVW5sb2NrIHRoZSBhc3NlbWJseSBoZXJlIHNvIHRoYXQgdGhlIHByb2R1Y2VyIGNhbiBhY3F1aXJlXG4gICAgICAgICAgLy8gYSByZWFkIGxvY2sgb24gdGhlIGRpcmVjdG9yeSBhZ2Fpbi5cbiAgICAgICAgICBhd2FpdCByZWFkYWJsZUFzbS5fdW5sb2NrKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlYWRhYmxlQXNtO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiBhbGwga2V5cyBvZiBtaXNzaW5nIGNvbnRleHQgaXRlbXNcbiAqL1xuZnVuY3Rpb24gbWlzc2luZ0NvbnRleHRLZXlzKG1pc3Npbmc/OiBNaXNzaW5nQ29udGV4dFtdKTogU2V0PHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFNldCgobWlzc2luZyB8fCBbXSkubWFwKG0gPT4gbS5rZXkpKTtcbn1cblxuLyoqXG4gKiBBcmUgdHdvIHNldHMgZXF1YWwgdG8gZWFjaCBvdGhlclxuICovXG5mdW5jdGlvbiBlcXVhbFNldHM8QT4oYTogU2V0PEE+LCBiOiBTZXQ8QT4pIHtcbiAgaWYgKGEuc2l6ZSAhPT0gYi5zaXplKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAoY29uc3QgeCBvZiBhKSB7XG4gICAgaWYgKCFiLmhhcyh4KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hd2FyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250ZXh0LWF3YXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4Q0FBc0M7QUFDdEMseURBQXdEO0FBQ3hELHlEQUFvRjtBQUNwRix1REFBbUQ7QUFnQ25EOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwrQkFBK0I7SUFNYjtJQUErQztJQUxwRSxTQUFTLENBQVU7SUFDbkIsT0FBTyxDQUFVO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixRQUFRLENBQVc7SUFFM0IsWUFBNkIsTUFBNEIsRUFBbUIsS0FBcUM7UUFBcEYsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFBbUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDL0csSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGdDQUFlLENBQUMsQ0FBQyx5Q0FBeUM7UUFDbEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixzR0FBc0c7UUFDdEcsZ0ZBQWdGO1FBQ2hGLG1GQUFtRjtRQUNuRiw4RUFBOEU7UUFDOUUsSUFBSSxxQkFBOEMsQ0FBQztRQUNuRCxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRWhELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENB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SyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBjb250ZXh0cHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgUFJPSkVDVF9DT05URVhULCB0eXBlIENvbnRleHQsIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHVibGljJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkQXNzZW1ibHlTb3VyY2UsIElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzIHtcbiAgLyoqXG4gICAqIEFXUyBvYmplY3QgKHVzZWQgYnkgY29udGV4dHByb3ZpZGVyKVxuICAgKiBAZGVwcmVjYXRlZCBjb250ZXh0IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgdG9vbGtpdCBpdHNlbGZcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXM7XG5cbiAgLyoqXG4gICAqIEFwcGxpY2F0aW9uIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIHVzZWQgdG8gc3RvcmUgYXBwbGljYXRpb24gY29udGV4dCBpbiAocmVsYXRpdmUgdG8gY3dkKS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjZGsuY29udGV4dC5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBQcm9kdWNpbmcgYSBgY3hhcGkuQ2xvdWRBc3NlbWJseWAgd2lsbCBmYWlsIGlmIHRoaXMgaXMgZGlzYWJsZWQgYW5kIGNvbnRleHQgbG9va3VwcyBuZWVkIHRvIGJlIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBDbG91ZEFzc2VtYmx5U291cmNlIHRoYXQgd3JhcHMgYW5vdGhlciBDbG91ZEFzc2VtYmx5U291cmNlIGFuZCBydW5zIGEgbG9va3VwIGxvb3Agb24gaXRcbiAqXG4gKiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlIHVuZGVybHlpbmcgQ2xvdWRBc3NlbWJseVNvdXJjZSBwcm9kdWNlcyBhIG1hbmlmZXN0XG4gKiB3aXRoIHByb3ZpZGVyIHF1ZXJpZXMgaW4gaXQsIHRoZSBgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZWAgd2lsbFxuICogcGVyZm9ybSB0aGUgbmVjZXNzYXJ5IGNvbnRleHQgbG9va3VwcyBhbmQgaW52b2tlIHRoZSB1bmRlcmx5aW5nXG4gKiBgQ2xvdWRBc3NlbWJseVNvdXJjZWAgYWdhaW4gd2l0aCB0aGV3IG1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGlzIG9ubHkgdXNlZnVsIGlmIHRoZSB1bmRlcmx5aW5nIGBDbG91ZEFzc2VtYmx5U291cmNlYCBjYW4gcmVzcG9uZCB0b1xuICogdGhpcyBuZXcgY29udGV4dCBpbmZvcm1hdGlvbiAoaXQgbXVzdCBiZSBhIENESyBhcHAgc291cmNlKTsgaWYgaXQgaXMganVzdCBhXG4gKiBzdGF0aWMgZGlyZWN0b3J5LCB0aGVuIHRoZSBjb250ZW50cyBvZiB0aGUgYXNzZW1ibHkgd29uJ3QgY2hhbmdlIGluIHJlc3BvbnNlXG4gKiB0byBjb250ZXh0LlxuICpcbiAqIFRoZSBjb250ZXh0IGlzIHBhc3NlZCBiZXR3ZWVuIGBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlYCBhbmQgdGhlIHdyYXBwZWRcbiAqIGNsb3VkIGFzc2VtYmx5IHNvdXJjZSB2aWEgYSBjb250ZXggZmlsZSBvbiBkaXNrLCBzbyB0aGUgd3JhcHBlZCBhc3NlbWJseSBzb3VyY2VcbiAqIHNob3VsZCByZS1yZWFkIHRoZSBjb250ZXh0IGZpbGUgb24gZXZlcnkgaW52b2NhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UgaW1wbGVtZW50cyBJQ2xvdWRBc3NlbWJseVNvdXJjZSB7XG4gIHByaXZhdGUgY2FuTG9va3VwOiBib29sZWFuO1xuICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHQ7XG4gIHByaXZhdGUgY29udGV4dEZpbGU6IHN0cmluZztcbiAgcHJpdmF0ZSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IElDbG91ZEFzc2VtYmx5U291cmNlLCBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMpIHtcbiAgICB0aGlzLmNhbkxvb2t1cCA9IHByb3BzLmxvb2t1cHMgPz8gdHJ1ZTtcbiAgICB0aGlzLmNvbnRleHQgPSBwcm9wcy5jb250ZXh0O1xuICAgIHRoaXMuY29udGV4dEZpbGUgPSBwcm9wcy5jb250ZXh0RmlsZSA/PyBQUk9KRUNUX0NPTlRFWFQ7IC8vIEB0b2RvIG5ldyBmZWF0dXJlIG5vdCBuZWVkZWQgcmlnaHQgbm93XG4gICAgdGhpcy5pb0hlbHBlciA9IHByb3BzLnNlcnZpY2VzLmlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBDbG91ZCBBc3NlbWJseSwgaS5lLiBhIHNldCBvZiBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwcm9kdWNlKCk6IFByb21pc2U8SVJlYWRhYmxlQ2xvdWRBc3NlbWJseT4ge1xuICAgIC8vIFdlIG1heSBuZWVkIHRvIHJ1biB0aGUgY2xvdWQgYXNzZW1ibHkgc291cmNlIG11bHRpcGxlIHRpbWVzIGluIG9yZGVyIHRvIHNhdGlzZnkgYWxsIG1pc3NpbmcgY29udGV4dFxuICAgIC8vIChXaGVuIHRoZSBzb3VyY2UgcHJvZHVjZXIgcnVucywgaXQgd2lsbCB0ZWxsIHVzIGFib3V0IGNvbnRleHQgaXQgd2FudHMgdG8gdXNlXG4gICAgLy8gYnV0IGl0IG1pc3NpbmcuIFdlJ2xsIHRoZW4gbG9vayB1cCB0aGUgY29udGV4dCBhbmQgcnVuIHRoZSBleGVjdXRhYmxlIGFnYWluLCBhbmRcbiAgICAvLyBhZ2FpbiwgdW50aWwgaXQgZG9lc24ndCBjb21wbGFpbiBhbnltb3JlIG9yIHdlJ3ZlIHN0b3BwZWQgbWFraW5nIHByb2dyZXNzKS5cbiAgICBsZXQgcHJldmlvdXNseU1pc3NpbmdLZXlzOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgcmVhZGFibGVBc20gPSBhd2FpdCB0aGlzLnNvdXJjZS5wcm9kdWNlKCk7XG5cbiAgICAgIGNvbnN0IGFzc2VtYmx5ID0gcmVhZGFibGVBc20uY2xvdWRBc3NlbWJseTtcbiAgICAgIGlmIChhc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nICYmIGFzc2VtYmx5Lm1hbmlmZXN0Lm1pc3NpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBtaXNzaW5nS2V5c1NldCA9IG1pc3NpbmdDb250ZXh0S2V5cyhhc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ0tleXMgPSBBcnJheS5mcm9tKG1pc3NpbmdLZXlzU2V0KTtcblxuICAgICAgICBpZiAoIXRoaXMuY2FuTG9va3VwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgICdDb250ZXh0IGxvb2t1cHMgaGF2ZSBiZWVuIGRpc2FibGVkLiAnXG4gICAgICAgICAgICArICdNYWtlIHN1cmUgYWxsIG5lY2Vzc2FyeSBjb250ZXh0IGlzIGFscmVhZHkgaW4gXFwnY2RrLmNvbnRleHQuanNvblxcJyBieSBydW5uaW5nIFxcJ2NkayBzeW50aFxcJyBvbiBhIG1hY2hpbmUgd2l0aCBzdWZmaWNpZW50IEFXUyBjcmVkZW50aWFscyBhbmQgY29tbWl0dGluZyB0aGUgcmVzdWx0LiAnXG4gICAgICAgICAgICArIGBNaXNzaW5nIGNvbnRleHQga2V5czogJyR7bWlzc2luZ0tleXMuam9pbignLCAnKX0nYCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdHJ5TG9va3VwID0gdHJ1ZTtcbiAgICAgICAgaWYgKHByZXZpb3VzbHlNaXNzaW5nS2V5cyAmJiBlcXVhbFNldHMobWlzc2luZ0tleXNTZXQsIHByZXZpb3VzbHlNaXNzaW5nS2V5cykpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAyNDAubXNnKCdOb3QgbWFraW5nIHByb2dyZXNzIHRyeWluZyB0byByZXNvbHZlIGVudmlyb25tZW50YWwgY29udGV4dC4gR2l2aW5nIHVwLicsIHsgbWlzc2luZ0tleXMgfSkpO1xuICAgICAgICAgIHRyeUxvb2t1cCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNseU1pc3NpbmdLZXlzID0gbWlzc2luZ0tleXNTZXQ7XG5cbiAgICAgICAgaWYgKHRyeUxvb2t1cCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDI0MS5tc2coJ1NvbWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBtaXNzaW5nLiBGZXRjaGluZy4uLicsIHsgbWlzc2luZ0tleXMgfSkpO1xuICAgICAgICAgIGF3YWl0IGNvbnRleHRwcm92aWRlcnMucHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gICAgICAgICAgICBhc3NlbWJseS5tYW5pZmVzdC5taXNzaW5nLFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zZXJ2aWNlcy5zZGtQcm92aWRlcixcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2VydmljZXMucGx1Z2luSG9zdCxcbiAgICAgICAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIENhY2hlIHRoZSBuZXcgY29udGV4dCB0byBkaXNrXG4gICAgICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMDQyLm1zZyhgV3JpdGluZyB1cGRhdGVkIGNvbnRleHQgdG8gJHt0aGlzLmNvbnRleHRGaWxlfS4uLmAsIHtcbiAgICAgICAgICAgIGNvbnRleHRGaWxlOiB0aGlzLmNvbnRleHRGaWxlLFxuICAgICAgICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LmFsbCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5jb250ZXh0LnNhdmUodGhpcy5jb250ZXh0RmlsZSk7XG5cbiAgICAgICAgICAvLyBFeGVjdXRlIGFnYWluLiBVbmxvY2sgdGhlIGFzc2VtYmx5IGhlcmUgc28gdGhhdCB0aGUgcHJvZHVjZXIgY2FuIGFjcXVpcmVcbiAgICAgICAgICAvLyBhIHJlYWQgbG9jayBvbiB0aGUgZGlyZWN0b3J5IGFnYWluLlxuICAgICAgICAgIGF3YWl0IHJlYWRhYmxlQXNtLl91bmxvY2soKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVhZGFibGVBc207XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCBrZXlzIG9mIG1pc3NpbmcgY29udGV4dCBpdGVtc1xuICovXG5mdW5jdGlvbiBtaXNzaW5nQ29udGV4dEtleXMobWlzc2luZz86IE1pc3NpbmdDb250ZXh0W10pOiBTZXQ8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgU2V0KChtaXNzaW5nIHx8IFtdKS5tYXAobSA9PiBtLmtleSkpO1xufVxuXG4vKipcbiAqIEFyZSB0d28gc2V0cyBlcXVhbCB0byBlYWNoIG90aGVyXG4gKi9cbmZ1bmN0aW9uIGVxdWFsU2V0czxBPihhOiBTZXQ8QT4sIGI6IFNldDxBPikge1xuICBpZiAoYS5zaXplICE9PSBiLnNpemUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZm9yIChjb25zdCB4IG9mIGEpIHtcbiAgICBpZiAoIWIuaGFzKHgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuIl19
@@ -1,3 +1,4 @@
1
+ import '../../../private/dispose-polyfill';
1
2
  import * as cxapi from '@aws-cdk/cx-api';
2
3
  import { type IReadLock, type IoHelper } from '../../../api/shared-private';
3
4
  import type { ToolkitServices } from '../../../toolkit/private';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExecutionEnvironment = void 0;
4
4
  exports.assemblyFromDirectory = assemblyFromDirectory;
5
+ require("../../../private/dispose-polyfill");
5
6
  const os = require("node:os");
6
7
  const path = require("node:path");
7
8
  const node_util_1 = require("node:util");
@@ -245,4 +246,4 @@ function synthOptsDefaults(synthOpts = {}) {
245
246
  ...synthOpts,
246
247
  }, true);
247
248
  }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvUEEsc0RBb0JDO0FBeFFELDhCQUE4QjtBQUM5QixrQ0FBa0M7QUFDbEMseUNBQW1DO0FBQ25DLDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsK0JBQStCO0FBQy9CLG1DQUE2QjtBQUM3QixnRUFBaUo7QUFDakosZ0VBQWlKO0FBQ2pKLGdEQUFtRTtBQUVuRSw4Q0FBc0M7QUFDdEMsdURBQW1EO0FBTW5ELE1BQWEsb0JBQW9CO0lBaUNiO0lBQ0E7SUFqQ2xCOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBeUIsRUFBRSxRQUE2QixFQUFFO1FBQ25GLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLHVCQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFZ0IsUUFBUSxDQUFXO0lBQ25CLFdBQVcsQ0FBYztJQUN6QixPQUFPLENBQWlDO0lBQ2pELElBQUksQ0FBeUI7SUFDN0IsV0FBVyxDQUFVO0lBRTdCLFlB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QztRQUNELE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLFlBQTZCLEVBQUU7SUFDeEQsT0FBTyxJQUFJLHlCQUFRLENBQUM7UUFDbEIsS0FBSyxFQUFFLEtBQUs7UUFDWixZQUFZLEVBQUUsSUFBSTtRQUNsQixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsU0FBUztLQUNiLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBsdGUgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgdHlwZSBJUmVhZExvY2ssIHR5cGUgSVdyaXRlTG9jaywgdHlwZSBTZGtQcm92aWRlciwgdHlwZSBJb0hlbHBlciwgbG9hZFRyZWUsIHNvbWUsIFNldHRpbmdzLCBSV0xvY2sgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgcHJlcGFyZURlZmF1bHRFbnZpcm9ubWVudCBhcyBvbGRQcmVwYXJlLCBwcmVwYXJlQ29udGV4dCwgc3BhY2VBdmFpbGFibGVGb3JDb250ZXh0LCBndWVzc0V4ZWN1dGFibGUgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgc3BsaXRCeVNpemUsIHZlcnNpb25OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9wcml2YXRlL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBUb29sa2l0U2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi90b29sa2l0L3ByaXZhdGUnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi8uLi9pby9wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBcHBTeW50aE9wdGlvbnMsIExvYWRBc3NlbWJseU9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5cbnR5cGUgRW52ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbnR5cGUgQ29udGV4dCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25FbnZpcm9ubWVudCBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gRXhlY3V0aW9uRW52aXJvbm1lbnRcbiAgICpcbiAgICogQW4gRXhlY3V0aW9uRW52aXJvbm1lbnQgaG9sZHMgYSB3cml0ZXIgbG9jayBvbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IHdoaWNoIHdpbGxcbiAgICogYmUgY2xlYW5lZCB1cCB3aGVuIHRoZSBvYmplY3QgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIEEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aWxsIGJlIGNyZWF0ZWQgaWYgbm9uZSBpcyBzdXBwbGllZCwgd2hpY2ggd2lsbCBiZSBjbGVhbmVkXG4gICAqIHVwIHdoZW4gdGhpcyBvYmplY3QgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIElmIGBtYXJrU3VjY2Vzc2Z1bCgpYCBpcyBjYWxsZWQsIHRoZSB3cml0ZXIgbG9jayBpcyBjb252ZXJ0ZWQgdG8gYSByZWFkZXIgbG9ja1xuICAgKiBhbmQgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHdpbGwgbm90IGJlIGNsZWFuZWQgdXAgYW55bW9yZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlKHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMsIHByb3BzOiB7IG91dGRpcj86IHN0cmluZyB9ID0ge30pIHtcbiAgICBsZXQgdGVtcERpciA9IGZhbHNlO1xuICAgIGxldCBkaXIgPSBwcm9wcy5vdXRkaXI7XG4gICAgaWYgKCFkaXIpIHtcbiAgICAgIHRlbXBEaXIgPSB0cnVlO1xuICAgICAgZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKGZzLnJlYWxwYXRoU3luYyhvcy50bXBkaXIoKSksICdjZGsub3V0JykpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcikuYWNxdWlyZVdyaXRlKCk7XG4gICAgcmV0dXJuIG5ldyBFeGVjdXRpb25FbnZpcm9ubWVudChzZXJ2aWNlcywgZGlyLCB0ZW1wRGlyLCBsb2NrKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWJ1Z0ZuOiAobXNnOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgbG9jazogSVdyaXRlTG9jayB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBzaG91bGRDbGVhbjogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMsXG4gICAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBvdXREaXJJc1RlbXBvcmFyeTogYm9vbGVhbixcbiAgICBsb2NrOiBJV3JpdGVMb2NrLFxuICApIHtcbiAgICB0aGlzLmlvSGVscGVyID0gc2VydmljZXMuaW9IZWxwZXI7XG4gICAgdGhpcy5zZGtQcm92aWRlciA9IHNlcnZpY2VzLnNka1Byb3ZpZGVyO1xuICAgIHRoaXMuZGVidWdGbiA9IChtc2c6IHN0cmluZykgPT4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9BU1NFTUJMWV9ERUJVRy5tc2cobXNnKSk7XG4gICAgdGhpcy5sb2NrID0gbG9jaztcbiAgICB0aGlzLnNob3VsZENsZWFuID0gb3V0RGlySXNUZW1wb3Jhcnk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCkge1xuICAgIGF3YWl0IHRoaXMubG9jaz8ucmVsZWFzZSgpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkQ2xlYW4pIHtcbiAgICAgIGF3YWl0IGZzLnJtKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGV4ZWN1dGlvbiBhcyBzdWNjZXNzZnVsLCB3aGljaCBzdG9wcyB0aGUgd3JpdGVyIGxvY2sgZnJvbSBiZWluZyByZWxlYXNlZCB1cG9uIGRpc3Bvc2FsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbWFya1N1Y2Nlc3NmdWwoKSB7XG4gICAgaWYgKCF0aGlzLmxvY2spIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBtYXJrIHN1Y2Nlc3NmdWwgbW9yZSB0aGFuIG9uY2UnKTtcbiAgICB9XG4gICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCB0aGlzLmxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgIHRoaXMubG9jayA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNob3VsZENsZWFuID0gZmFsc2U7XG4gICAgcmV0dXJuIHsgcmVhZExvY2sgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWdpbiBhbiBleGVjdXRpb24gaW4gdGhpcyBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBUaGlzIHdpbGwgYWNxdWlyZSBhIHdyaXRlIGxvY2sgb24gdGhlIGdpdmVuIGVudmlyb25tZW50LiBUaGUgd3JpdGUgbG9ja1xuICAgKiB3aWxsIGJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcmV0dXJuIG9iamVjdCBpcyBkaXNwb3NlZCwgdW5sZXNzIGl0XG4gICAqIGlzIGNvbnZlcnRlZCB0byBhIHJlYWRlciBsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJlZ2luRXhlY3V0aW9uKCk6IFByb21pc2U8eyB3cml0ZVRvUmVhZExvY2soKTogUHJvbWlzZTxJUmVhZExvY2s+IH0gJiBBc3luY0Rpc3Bvc2FibGU+IHtcbiAgICBjb25zdCBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayh0aGlzLm91dGRpcikuYWNxdWlyZVdyaXRlKCk7XG5cbiAgICBsZXQgY29udmVydGVkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIHdyaXRlVG9SZWFkTG9jaygpIHtcbiAgICAgICAgY29udmVydGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxvY2suY29udmVydFRvUmVhZGVyTG9jaygpO1xuICAgICAgfSxcbiAgICAgIFtTeW1ib2wuYXN5bmNEaXNwb3NlXTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBSZWxlYXNlIGlmIG5vdCBjb252ZXJ0ZWRcbiAgICAgICAgaWYgKCFjb252ZXJ0ZWQpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1ZXNzIHRoZSBleGVjdXRhYmxlIGZyb20gdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudFxuICAgKlxuICAgKiBPbmx5IGRvIHRoaXMgaWYgdGhlIGZpbGUgaXMgTk9UIG1hcmtlZCBhcyBleGVjdXRhYmxlLiBJZiBpdCBpcyxcbiAgICogd2UnbGwgZGVmZXIgdG8gdGhlIHNoZWJhbmcgaW5zaWRlIHRoZSBmaWxlIGl0c2VsZi5cbiAgICpcbiAgICogSWYgd2UncmUgb24gV2luZG93cywgd2UgQUxXQVlTIHRha2UgdGhlIGhhbmRsZXIsIHNpbmNlIGl0J3MgaGFyZCB0b1xuICAgKiB2ZXJpZnkgaWYgcmVnaXN0cnkgYXNzb2NpYXRpb25zIGhhdmUgb3IgaGF2ZSBub3QgYmVlbiBzZXQgdXAgZm9yIHRoaXNcbiAgICogZmlsZSB0eXBlLCBzbyB3ZSdsbCBhc3N1bWUgdGhlIHdvcnN0IGFuZCB0YWtlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgZ3Vlc3NFeGVjdXRhYmxlKGFwcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGd1ZXNzRXhlY3V0YWJsZShhcHAsIHRoaXMuZGVidWdGbik7XG4gIH1cblxuICAvKipcbiAgICogSWYgd2UgZG9uJ3QgaGF2ZSByZWdpb24vYWNjb3VudCBkZWZpbmVkIGluIGNvbnRleHQsIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBTREsgYmVoYXZpb3JcbiAgICogd2hlcmUgcmVnaW9uIGlzIHJldHJpZXZlZCBmcm9tIH4vLmF3cy9jb25maWcgYW5kIGFjY291bnQgaXMgYmFzZWQgb24gZGVmYXVsdCBjcmVkZW50aWFscyBwcm92aWRlclxuICAgKiBjaGFpbiBhbmQgdGhlbiBTVFMgaXMgcXVlcmllZC5cbiAgICpcbiAgICogVGhpcyBpcyBkb25lIG9wcG9ydHVuaXN0aWNhbGx5OiBmb3IgZXhhbXBsZSwgaWYgd2UgY2FuJ3QgYWNjZXNzIFNUUyBmb3Igc29tZSByZWFzb24gb3IgdGhlIHJlZ2lvblxuICAgKiBpcyBub3QgY29uZmlndXJlZCwgdGhlIGNvbnRleHQgdmFsdWUgd2lsbCBiZSAnbnVsbCcgYW5kIHRoZXJlIGNvdWxkIGZhaWx1cmVzIGRvd24gdGhlIGxpbmUuIEluXG4gICAqIHNvbWUgY2FzZXMsIHN5bnRoZXNpcyBkb2VzIG5vdCByZXF1aXJlIHJlZ2lvbi9hY2NvdW50IGluZm9ybWF0aW9uIGF0IGFsbCwgc28gdGhhdCBtaWdodCBiZSBwZXJmZWN0bHlcbiAgICogZmluZSBpbiBjZXJ0YWluIHNjZW5hcmlvcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWZhdWx0RW52VmFycygpOiBQcm9taXNlPEVudj4ge1xuICAgIGNvbnN0IGRlYnVnRm4gPSAobXNnOiBzdHJpbmcpID0+IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDAxMC5tc2cobXNnKSk7XG4gICAgY29uc3QgZW52ID0gYXdhaXQgb2xkUHJlcGFyZSh0aGlzLnNka1Byb3ZpZGVyLCBkZWJ1Z0ZuKTtcblxuICAgIGVudltjeGFwaS5PVVRESVJfRU5WXSA9IHRoaXMub3V0ZGlyO1xuICAgIGF3YWl0IGRlYnVnRm4oZm9ybWF0KCdvdXRkaXI6JywgdGhpcy5vdXRkaXIpKTtcblxuICAgIC8vIENMSSB2ZXJzaW9uIGluZm9ybWF0aW9uXG4gICAgZW52W2N4YXBpLkNMSV9BU01fVkVSU0lPTl9FTlZdID0gY3hzY2hlbWEuTWFuaWZlc3QudmVyc2lvbigpO1xuICAgIGVudltjeGFwaS5DTElfVkVSU0lPTl9FTlZdID0gdmVyc2lvbk51bWJlcigpO1xuXG4gICAgYXdhaXQgZGVidWdGbihmb3JtYXQoJ2VudjonLCBlbnYpKTtcbiAgICByZXR1cm4gZW52O1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1biBjb2RlIGZyb20gYSBkaWZmZXJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VEaXI8VD4oYmxvY2s6ICgpID0+IFByb21pc2U8VD4sIHdvcmtpbmdEaXI/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcmlnaW5hbFdvcmtpbmdEaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIHRyeSB7XG4gICAgICBpZiAod29ya2luZ0Rpcikge1xuICAgICAgICBwcm9jZXNzLmNoZGlyKHdvcmtpbmdEaXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgYmxvY2soKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHdvcmtpbmdEaXIpIHtcbiAgICAgICAgcHJvY2Vzcy5jaGRpcihvcmlnaW5hbFdvcmtpbmdEaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gY29kZSB3aXRoIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2l0aEVudjxUPihlbnY6IEVudiA9IHt9LCBibG9jazogKCkgPT4gUHJvbWlzZTxUPikge1xuICAgIGNvbnN0IG9yaWdpbmFsRW52ID0gcHJvY2Vzcy5lbnY7XG4gICAgdHJ5IHtcbiAgICAgIHByb2Nlc3MuZW52ID0ge1xuICAgICAgICAuLi5vcmlnaW5hbEVudixcbiAgICAgICAgLi4uZW52LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHByb2Nlc3MuZW52ID0gb3JpZ2luYWxFbnY7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1biBjb2RlIHdpdGggY29udGV4dCBzZXR1cCBpbnNpZGUgdGhlIGVudmlyb25tZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2l0aENvbnRleHQ8VD4oXG4gICAgaW5wdXRDb250ZXh0OiBDb250ZXh0LFxuICAgIGVudjogRW52LFxuICAgIHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30sXG4gICAgYmxvY2s6IChlbnY6IEVudiwgY29udGV4dDogQ29udGV4dCkgPT4gUHJvbWlzZTxUPixcbiAgKSB7XG4gICAgY29uc3QgY29udGV4dCA9IGF3YWl0IHByZXBhcmVDb250ZXh0KHN5bnRoT3B0c0RlZmF1bHRzKHN5bnRoT3B0cyksIGlucHV0Q29udGV4dCwgZW52LCB0aGlzLmRlYnVnRm4pO1xuICAgIGxldCBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW52VmFyaWFibGVTaXplTGltaXQgPSBvcy5wbGF0Zm9ybSgpID09PSAnd2luMzInID8gMzI3NjAgOiAxMzEwNzI7XG4gICAgICBjb25zdCBbc21hbGxDb250ZXh0LCBvdmVyZmxvd10gPSBzcGxpdEJ5U2l6ZShjb250ZXh0LCBzcGFjZUF2YWlsYWJsZUZvckNvbnRleHQoZW52LCBlbnZWYXJpYWJsZVNpemVMaW1pdCkpO1xuXG4gICAgICAvLyBTdG9yZSB0aGUgc2FmZSBwYXJ0IGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgICAgZW52W2N4YXBpLkNPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KHNtYWxsQ29udGV4dCk7XG5cbiAgICAgIC8vIElmIHRoZXJlIHdhcyBhbnkgb3ZlcmZsb3csIHdyaXRlIGl0IHRvIGEgdGVtcG9yYXJ5IGZpbGVcbiAgICAgIGlmIChPYmplY3Qua2V5cyhvdmVyZmxvdyA/PyB7fSkubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjb250ZXh0RGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrLWNvbnRleHQnKSk7XG4gICAgICAgIGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uID0gcGF0aC5qb2luKGNvbnRleHREaXIsICdjb250ZXh0LW92ZXJmbG93Lmpzb24nKTtcbiAgICAgICAgZnMud3JpdGVKU09OU3luYyhjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiwgb3ZlcmZsb3cpO1xuICAgICAgICBlbnZbY3hhcGkuQ09OVEVYVF9PVkVSRkxPV19MT0NBVElPTl9FTlZdID0gY29udGV4dE92ZXJmbG93TG9jYXRpb247XG4gICAgICB9XG5cbiAgICAgIC8vIGNhbGwgdGhlIGJsb2NrIGNvZGUgd2l0aCBuZXcgZW52aXJvbm1lbnRcbiAgICAgIHJldHVybiBhd2FpdCBibG9jayhlbnYsIGNvbnRleHQpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoY29udGV4dE92ZXJmbG93TG9jYXRpb24pIHtcbiAgICAgICAgZnMucmVtb3ZlU3luYyhwYXRoLmRpcm5hbWUoY29udGV4dE92ZXJmbG93TG9jYXRpb24pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBhc3NlbWJseSBzdXBwb3J0cyBjb250ZXh0IG92ZXJmbG93LCB3YXJuIG90aGVyd2lzZS5cbiAqXG4gKiBAcGFyYW0gYXNzZW1ibHkgdGhlIGFzc2VtYmx5IHRvIGNoZWNrXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrQ29udGV4dE92ZXJmbG93U3VwcG9ydChhc3NlbWJseTogY3hhcGkuQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHRyYWNlRm4gPSAobXNnOiBzdHJpbmcpID0+IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX0FTU0VNQkxZX1RSQUNFLm1zZyhtc2cpKTtcbiAgY29uc3QgdHJlZSA9IGF3YWl0IGxvYWRUcmVlKGFzc2VtYmx5LCB0cmFjZUZuKTtcbiAgY29uc3QgZnJhbWV3b3JrRG9lc05vdFN1cHBvcnRDb250ZXh0T3ZlcmZsb3cgPSBzb21lKHRyZWUsIG5vZGUgPT4ge1xuICAgIGNvbnN0IGZxbiA9IG5vZGUuY29uc3RydWN0SW5mbz8uZnFuO1xuICAgIGNvbnN0IHZlcnNpb24gPSBub2RlLmNvbnN0cnVjdEluZm8/LnZlcnNpb247XG4gICAgcmV0dXJuIChmcW4gPT09ICdhd3MtY2RrLWxpYi5BcHAnICYmIHZlcnNpb24gIT0gbnVsbCAmJiBsdGUodmVyc2lvbiwgJzIuMzguMCcpKSAvLyB2MlxuICAgIHx8IGZxbiA9PT0gJ0Bhd3MtY2RrL2NvcmUuQXBwJzsgLy8gdjFcbiAgfSk7XG5cbiAgLy8gV2UncmUgZGVhbGluZyB3aXRoIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBmcmFtZXdvcmsgaGVyZS4gSXQgaXMgdW5hd2FyZSBvZiB0aGUgdGVtcG9yYXJ5XG4gIC8vIGZpbGUsIHdoaWNoIG1lYW5zIHRoYXQgaXQgd2lsbCBpZ25vcmUgdGhlIGNvbnRleHQgb3ZlcmZsb3cuXG4gIGlmIChmcmFtZXdvcmtEb2VzTm90U3VwcG9ydENvbnRleHRPdmVyZmxvdykge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfVzAwMTAubXNnKCdQYXJ0IG9mIHRoZSBjb250ZXh0IGNvdWxkIG5vdCBiZSBzZW50IHRvIHRoZSBhcHBsaWNhdGlvbi4gUGxlYXNlIHVwZGF0ZSB0aGUgQVdTIENESyBsaWJyYXJ5IHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4nKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTYWZlbHkgY3JlYXRlIGFuIGFzc2VtYmx5IGZyb20gYSBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseURpcjogc3RyaW5nLCBpb0hlbHBlcjogSW9IZWxwZXIsIGxvYWRPcHRpb25zOiBMb2FkQXNzZW1ibHlPcHRpb25zID0ge30pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhc3NlbWJseSA9IG5ldyBjeGFwaS5DbG91ZEFzc2VtYmx5KGFzc2VtYmx5RGlyLCB7XG4gICAgICBza2lwVmVyc2lvbkNoZWNrOiAhKGxvYWRPcHRpb25zLmNoZWNrVmVyc2lvbiA/PyB0cnVlKSxcbiAgICAgIHNraXBFbnVtQ2hlY2s6ICEobG9hZE9wdGlvbnMuY2hlY2tFbnVtcyA/PyB0cnVlKSxcbiAgICAgIC8vIFdlIHNvcnQgYXMgd2UgZGVwbG95XG4gICAgICB0b3BvU29ydDogZmFsc2UsXG4gICAgfSk7XG4gICAgYXdhaXQgY2hlY2tDb250ZXh0T3ZlcmZsb3dTdXBwb3J0KGFzc2VtYmx5LCBpb0hlbHBlcik7XG4gICAgcmV0dXJuIGFzc2VtYmx5O1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIGlmIChlcnIubWVzc2FnZS5pbmNsdWRlcyhjeHNjaGVtYS5WRVJTSU9OX01JU01BVENIKSkge1xuICAgICAgLy8gdGhpcyBtZWFucyB0aGUgQ0xJIHZlcnNpb24gaXMgdG9vIG9sZC5cbiAgICAgIC8vIHdlIGluc3RydWN0IHRoZSB1c2VyIHRvIHVwZ3JhZGUuXG4gICAgICBjb25zdCBtZXNzYWdlID0gJ1RoaXMgQVdTIENESyBUb29sa2l0IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIEFXUyBDREsgbGlicmFyeSB1c2VkIGJ5IHlvdXIgYXBwbGljYXRpb24uIFBsZWFzZSB1cGdyYWRlIHRvIHRoZSBsYXRlc3QgdmVyc2lvbi4nO1xuICAgICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9FMTExMS5tc2cobWVzc2FnZSwgeyBlcnJvcjogZXJyIH0pKTtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYCR7bWVzc2FnZX1cXG4oJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN5bnRoT3B0c0RlZmF1bHRzKHN5bnRoT3B0czogQXBwU3ludGhPcHRpb25zID0ge30pOiBTZXR0aW5ncyB7XG4gIHJldHVybiBuZXcgU2V0dGluZ3Moe1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBwYXRoTWV0YWRhdGE6IHRydWUsXG4gICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICBhc3NldE1ldGFkYXRhOiB0cnVlLFxuICAgIGFzc2V0U3RhZ2luZzogdHJ1ZSxcbiAgICAuLi5zeW50aE9wdHMsXG4gIH0sIHRydWUpO1xufVxuIl19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVwYXJlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxUEEsc0RBb0JDO0FBelFELDZDQUEyQztBQUMzQyw4QkFBOEI7QUFDOUIsa0NBQWtDO0FBQ2xDLHlDQUFtQztBQUNuQywyREFBMkQ7QUFDM0QseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUMvQixtQ0FBNkI7QUFDN0IsZ0VBQWlKO0FBQ2pKLGdFQUFpSjtBQUNqSixnREFBbUU7QUFFbkUsOENBQXNDO0FBQ3RDLHVEQUFtRDtBQU1uRCxNQUFhLG9CQUFvQjtJQWlDYjtJQUNBO0lBakNsQjs7Ozs7Ozs7Ozs7T0FXRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQXlCLEVBQUUsUUFBNkIsRUFBRTtRQUNuRixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSx1QkFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRWdCLFFBQVEsQ0FBVztJQUNuQixXQUFXLENBQWM7SUFDekIsT0FBTyxDQUFpQztJQUNqRCxJQUFJLENBQXlCO0lBQzdCLFdBQVcs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QUFDO1FBQ3hELENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxZQUE2QixFQUFFO0lBQ3hELE9BQU8sSUFBSSx5QkFBUSxDQUFDO1FBQ2xCLEtBQUssRUFBRSxLQUFLO1FBQ1osWUFBWSxFQUFFLElBQUk7UUFDbEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLFNBQVM7S0FDYixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vLi4vLi4vcHJpdmF0ZS9kaXNwb3NlLXBvbHlmaWxsJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgbHRlIH0gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IHR5cGUgSVJlYWRMb2NrLCB0eXBlIElXcml0ZUxvY2ssIHR5cGUgU2RrUHJvdmlkZXIsIHR5cGUgSW9IZWxwZXIsIGxvYWRUcmVlLCBzb21lLCBTZXR0aW5ncywgUldMb2NrIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IHByZXBhcmVEZWZhdWx0RW52aXJvbm1lbnQgYXMgb2xkUHJlcGFyZSwgcHJlcGFyZUNvbnRleHQsIHNwYWNlQXZhaWxhYmxlRm9yQ29udGV4dCwgZ3Vlc3NFeGVjdXRhYmxlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IHNwbGl0QnlTaXplLCB2ZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vcHJpdmF0ZS91dGlsJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHVibGljJztcbmltcG9ydCB0eXBlIHsgQXBwU3ludGhPcHRpb25zLCBMb2FkQXNzZW1ibHlPcHRpb25zIH0gZnJvbSAnLi4vc291cmNlLWJ1aWxkZXInO1xuXG50eXBlIEVudiA9IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG50eXBlIENvbnRleHQgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uRW52aXJvbm1lbnQgaW1wbGVtZW50cyBBc3luY0Rpc3Bvc2FibGUge1xuICAvKipcbiAgICogQ3JlYXRlIGFuIEV4ZWN1dGlvbkVudmlyb25tZW50XG4gICAqXG4gICAqIEFuIEV4ZWN1dGlvbkVudmlyb25tZW50IGhvbGRzIGEgd3JpdGVyIGxvY2sgb24gdGhlIGdpdmVuIGRpcmVjdG9yeSB3aGljaCB3aWxsXG4gICAqIGJlIGNsZWFuZWQgdXAgd2hlbiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBBIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vbmUgaXMgc3VwcGxpZWQsIHdoaWNoIHdpbGwgYmUgY2xlYW5lZFxuICAgKiB1cCB3aGVuIHRoaXMgb2JqZWN0IGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBJZiBgbWFya1N1Y2Nlc3NmdWwoKWAgaXMgY2FsbGVkLCB0aGUgd3JpdGVyIGxvY2sgaXMgY29udmVydGVkIHRvIGEgcmVhZGVyIGxvY2tcbiAgICogYW5kIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB3aWxsIG5vdCBiZSBjbGVhbmVkIHVwIGFueW1vcmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZShzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzLCBwcm9wczogeyBvdXRkaXI/OiBzdHJpbmcgfSA9IHt9KSB7XG4gICAgbGV0IHRlbXBEaXIgPSBmYWxzZTtcbiAgICBsZXQgZGlyID0gcHJvcHMub3V0ZGlyO1xuICAgIGlmICghZGlyKSB7XG4gICAgICB0ZW1wRGlyID0gdHJ1ZTtcbiAgICAgIGRpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihmcy5yZWFscGF0aFN5bmMob3MudG1wZGlyKCkpLCAnY2RrLm91dCcpKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayhkaXIpLmFjcXVpcmVXcml0ZSgpO1xuICAgIHJldHVybiBuZXcgRXhlY3V0aW9uRW52aXJvbm1lbnQoc2VydmljZXMsIGRpciwgdGVtcERpciwgbG9jayk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWdGbjogKG1zZzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwcml2YXRlIGxvY2s6IElXcml0ZUxvY2sgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgc2hvdWxkQ2xlYW46IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzLFxuICAgIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0RGlySXNUZW1wb3Jhcnk6IGJvb2xlYW4sXG4gICAgbG9jazogSVdyaXRlTG9jayxcbiAgKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IHNlcnZpY2VzLmlvSGVscGVyO1xuICAgIHRoaXMuc2RrUHJvdmlkZXIgPSBzZXJ2aWNlcy5zZGtQcm92aWRlcjtcbiAgICB0aGlzLmRlYnVnRm4gPSAobXNnOiBzdHJpbmcpID0+IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfQVNTRU1CTFlfREVCVUcubXNnKG1zZykpO1xuICAgIHRoaXMubG9jayA9IGxvY2s7XG4gICAgdGhpcy5zaG91bGRDbGVhbiA9IG91dERpcklzVGVtcG9yYXJ5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpIHtcbiAgICBhd2FpdCB0aGlzLmxvY2s/LnJlbGVhc2UoKTtcblxuICAgIGlmICh0aGlzLnNob3VsZENsZWFuKSB7XG4gICAgICBhd2FpdCBmcy5ybSh0aGlzLm91dGRpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIHRoZSBleGVjdXRpb24gYXMgc3VjY2Vzc2Z1bCwgd2hpY2ggc3RvcHMgdGhlIHdyaXRlciBsb2NrIGZyb20gYmVpbmcgcmVsZWFzZWQgdXBvbiBkaXNwb3NhbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIG1hcmtTdWNjZXNzZnVsKCkge1xuICAgIGlmICghdGhpcy5sb2NrKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgbWFyayBzdWNjZXNzZnVsIG1vcmUgdGhhbiBvbmNlJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlYWRMb2NrID0gYXdhaXQgdGhpcy5sb2NrLmNvbnZlcnRUb1JlYWRlckxvY2soKTtcbiAgICB0aGlzLmxvY2sgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zaG91bGRDbGVhbiA9IGZhbHNlO1xuICAgIHJldHVybiB7IHJlYWRMb2NrIH07XG4gIH1cblxuICAvKipcbiAgICogQmVnaW4gYW4gZXhlY3V0aW9uIGluIHRoaXMgZW52aXJvbm1lbnRcbiAgICpcbiAgICogVGhpcyB3aWxsIGFjcXVpcmUgYSB3cml0ZSBsb2NrIG9uIHRoZSBnaXZlbiBlbnZpcm9ubWVudC4gVGhlIHdyaXRlIGxvY2tcbiAgICogd2lsbCBiZSByZWxlYXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIHJldHVybiBvYmplY3QgaXMgZGlzcG9zZWQsIHVubGVzcyBpdFxuICAgKiBpcyBjb252ZXJ0ZWQgdG8gYSByZWFkZXIgbG9jay5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiZWdpbkV4ZWN1dGlvbigpOiBQcm9taXNlPHsgd3JpdGVUb1JlYWRMb2NrKCk6IFByb21pc2U8SVJlYWRMb2NrPiB9ICYgQXN5bmNEaXNwb3NhYmxlPiB7XG4gICAgY29uc3QgbG9jayA9IGF3YWl0IG5ldyBSV0xvY2sodGhpcy5vdXRkaXIpLmFjcXVpcmVXcml0ZSgpO1xuXG4gICAgbGV0IGNvbnZlcnRlZCA9IGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICBhc3luYyB3cml0ZVRvUmVhZExvY2soKSB7XG4gICAgICAgIGNvbnZlcnRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBsb2NrLmNvbnZlcnRUb1JlYWRlckxvY2soKTtcbiAgICAgIH0sXG4gICAgICBbU3ltYm9sLmFzeW5jRGlzcG9zZV06IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gUmVsZWFzZSBpZiBub3QgY29udmVydGVkXG4gICAgICAgIGlmICghY29udmVydGVkKSB7XG4gICAgICAgICAgYXdhaXQgbG9jay5yZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHdWVzcyB0aGUgZXhlY3V0YWJsZSBmcm9tIHRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRcbiAgICpcbiAgICogT25seSBkbyB0aGlzIGlmIHRoZSBmaWxlIGlzIE5PVCBtYXJrZWQgYXMgZXhlY3V0YWJsZS4gSWYgaXQgaXMsXG4gICAqIHdlJ2xsIGRlZmVyIHRvIHRoZSBzaGViYW5nIGluc2lkZSB0aGUgZmlsZSBpdHNlbGYuXG4gICAqXG4gICAqIElmIHdlJ3JlIG9uIFdpbmRvd3MsIHdlIEFMV0FZUyB0YWtlIHRoZSBoYW5kbGVyLCBzaW5jZSBpdCdzIGhhcmQgdG9cbiAgICogdmVyaWZ5IGlmIHJlZ2lzdHJ5IGFzc29jaWF0aW9ucyBoYXZlIG9yIGhhdmUgbm90IGJlZW4gc2V0IHVwIGZvciB0aGlzXG4gICAqIGZpbGUgdHlwZSwgc28gd2UnbGwgYXNzdW1lIHRoZSB3b3JzdCBhbmQgdGFrZSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIGd1ZXNzRXhlY3V0YWJsZShhcHA6IHN0cmluZykge1xuICAgIHJldHVybiBndWVzc0V4ZWN1dGFibGUoYXBwLCB0aGlzLmRlYnVnRm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHdlIGRvbid0IGhhdmUgcmVnaW9uL2FjY291bnQgZGVmaW5lZCBpbiBjb250ZXh0LCB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgU0RLIGJlaGF2aW9yXG4gICAqIHdoZXJlIHJlZ2lvbiBpcyByZXRyaWV2ZWQgZnJvbSB+Ly5hd3MvY29uZmlnIGFuZCBhY2NvdW50IGlzIGJhc2VkIG9uIGRlZmF1bHQgY3JlZGVudGlhbHMgcHJvdmlkZXJcbiAgICogY2hhaW4gYW5kIHRoZW4gU1RTIGlzIHF1ZXJpZWQuXG4gICAqXG4gICAqIFRoaXMgaXMgZG9uZSBvcHBvcnR1bmlzdGljYWxseTogZm9yIGV4YW1wbGUsIGlmIHdlIGNhbid0IGFjY2VzcyBTVFMgZm9yIHNvbWUgcmVhc29uIG9yIHRoZSByZWdpb25cbiAgICogaXMgbm90IGNvbmZpZ3VyZWQsIHRoZSBjb250ZXh0IHZhbHVlIHdpbGwgYmUgJ251bGwnIGFuZCB0aGVyZSBjb3VsZCBmYWlsdXJlcyBkb3duIHRoZSBsaW5lLiBJblxuICAgKiBzb21lIGNhc2VzLCBzeW50aGVzaXMgZG9lcyBub3QgcmVxdWlyZSByZWdpb24vYWNjb3VudCBpbmZvcm1hdGlvbiBhdCBhbGwsIHNvIHRoYXQgbWlnaHQgYmUgcGVyZmVjdGx5XG4gICAqIGZpbmUgaW4gY2VydGFpbiBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVmYXVsdEVudlZhcnMoKTogUHJvbWlzZTxFbnY+IHtcbiAgICBjb25zdCBkZWJ1Z0ZuID0gKG1zZzogc3RyaW5nKSA9PiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAwMTAubXNnKG1zZykpO1xuICAgIGNvbnN0IGVudiA9IGF3YWl0IG9sZFByZXBhcmUodGhpcy5zZGtQcm92aWRlciwgZGVidWdGbik7XG5cbiAgICBlbnZbY3hhcGkuT1VURElSX0VOVl0gPSB0aGlzLm91dGRpcjtcbiAgICBhd2FpdCBkZWJ1Z0ZuKGZvcm1hdCgnb3V0ZGlyOicsIHRoaXMub3V0ZGlyKSk7XG5cbiAgICAvLyBDTEkgdmVyc2lvbiBpbmZvcm1hdGlvblxuICAgIGVudltjeGFwaS5DTElfQVNNX1ZFUlNJT05fRU5WXSA9IGN4c2NoZW1hLk1hbmlmZXN0LnZlcnNpb24oKTtcbiAgICBlbnZbY3hhcGkuQ0xJX1ZFUlNJT05fRU5WXSA9IHZlcnNpb25OdW1iZXIoKTtcblxuICAgIGF3YWl0IGRlYnVnRm4oZm9ybWF0KCdlbnY6JywgZW52KSk7XG4gICAgcmV0dXJuIGVudjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gY29kZSBmcm9tIGEgZGlmZmVyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hhbmdlRGlyPFQ+KGJsb2NrOiAoKSA9PiBQcm9taXNlPFQ+LCB3b3JraW5nRGlyPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxXb3JraW5nRGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHdvcmtpbmdEaXIpIHtcbiAgICAgICAgcHJvY2Vzcy5jaGRpcih3b3JraW5nRGlyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh3b3JraW5nRGlyKSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIob3JpZ2luYWxXb3JraW5nRGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVuIGNvZGUgd2l0aCBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHdpdGhFbnY8VD4oZW52OiBFbnYgPSB7fSwgYmxvY2s6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICBjb25zdCBvcmlnaW5hbEVudiA9IHByb2Nlc3MuZW52O1xuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzLmVudiA9IHtcbiAgICAgICAgLi4ub3JpZ2luYWxFbnYsXG4gICAgICAgIC4uLmVudixcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBwcm9jZXNzLmVudiA9IG9yaWdpbmFsRW52O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gY29kZSB3aXRoIGNvbnRleHQgc2V0dXAgaW5zaWRlIHRoZSBlbnZpcm9ubWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdpdGhDb250ZXh0PFQ+KFxuICAgIGlucHV0Q29udGV4dDogQ29udGV4dCxcbiAgICBlbnY6IEVudixcbiAgICBzeW50aE9wdHM6IEFwcFN5bnRoT3B0aW9ucyA9IHt9LFxuICAgIGJsb2NrOiAoZW52OiBFbnYsIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8VD4sXG4gICkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBhd2FpdCBwcmVwYXJlQ29udGV4dChzeW50aE9wdHNEZWZhdWx0cyhzeW50aE9wdHMpLCBpbnB1dENvbnRleHQsIGVudiwgdGhpcy5kZWJ1Z0ZuKTtcbiAgICBsZXQgY29udGV4dE92ZXJmbG93TG9jYXRpb24gPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudlZhcmlhYmxlU2l6ZUxpbWl0ID0gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IDMyNzYwIDogMTMxMDcyO1xuICAgICAgY29uc3QgW3NtYWxsQ29udGV4dCwgb3ZlcmZsb3ddID0gc3BsaXRCeVNpemUoY29udGV4dCwgc3BhY2VBdmFpbGFibGVGb3JDb250ZXh0KGVudiwgZW52VmFyaWFibGVTaXplTGltaXQpKTtcblxuICAgICAgLy8gU3RvcmUgdGhlIHNhZmUgcGFydCBpbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICAgIGVudltjeGFwaS5DT05URVhUX0VOVl0gPSBKU09OLnN0cmluZ2lmeShzbWFsbENvbnRleHQpO1xuXG4gICAgICAvLyBJZiB0aGVyZSB3YXMgYW55IG92ZXJmbG93LCB3cml0ZSBpdCB0byBhIHRlbXBvcmFyeSBmaWxlXG4gICAgICBpZiAoT2JqZWN0LmtleXMob3ZlcmZsb3cgPz8ge30pLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgY29udGV4dERpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1jb250ZXh0JykpO1xuICAgICAgICBjb250ZXh0T3ZlcmZsb3dMb2NhdGlvbiA9IHBhdGguam9pbihjb250ZXh0RGlyLCAnY29udGV4dC1vdmVyZmxvdy5qc29uJyk7XG4gICAgICAgIGZzLndyaXRlSlNPTlN5bmMoY29udGV4dE92ZXJmbG93TG9jYXRpb24sIG92ZXJmbG93KTtcbiAgICAgICAgZW52W2N4YXBpLkNPTlRFWFRfT1ZFUkZMT1dfTE9DQVRJT05fRU5WXSA9IGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBjYWxsIHRoZSBibG9jayBjb2RlIHdpdGggbmV3IGVudmlyb25tZW50XG4gICAgICByZXR1cm4gYXdhaXQgYmxvY2soZW52LCBjb250ZXh0KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uKSB7XG4gICAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5kaXJuYW1lKGNvbnRleHRPdmVyZmxvd0xvY2F0aW9uKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gYXNzZW1ibHkgc3VwcG9ydHMgY29udGV4dCBvdmVyZmxvdywgd2FybiBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIGFzc2VtYmx5IHRoZSBhc3NlbWJseSB0byBjaGVja1xuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0NvbnRleHRPdmVyZmxvd1N1cHBvcnQoYXNzZW1ibHk6IGN4YXBpLkNsb3VkQXNzZW1ibHksIGlvSGVscGVyOiBJb0hlbHBlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0cmFjZUZuID0gKG1zZzogc3RyaW5nKSA9PiBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9BU1NFTUJMWV9UUkFDRS5tc2cobXNnKSk7XG4gIGNvbnN0IHRyZWUgPSBhd2FpdCBsb2FkVHJlZShhc3NlbWJseSwgdHJhY2VGbik7XG4gIGNvbnN0IGZyYW1ld29ya0RvZXNOb3RTdXBwb3J0Q29udGV4dE92ZXJmbG93ID0gc29tZSh0cmVlLCBub2RlID0+IHtcbiAgICBjb25zdCBmcW4gPSBub2RlLmNvbnN0cnVjdEluZm8/LmZxbjtcbiAgICBjb25zdCB2ZXJzaW9uID0gbm9kZS5jb25zdHJ1Y3RJbmZvPy52ZXJzaW9uO1xuICAgIHJldHVybiAoZnFuID09PSAnYXdzLWNkay1saWIuQXBwJyAmJiB2ZXJzaW9uICE9IG51bGwgJiYgbHRlKHZlcnNpb24sICcyLjM4LjAnKSkgLy8gdjJcbiAgICB8fCBmcW4gPT09ICdAYXdzLWNkay9jb3JlLkFwcCc7IC8vIHYxXG4gIH0pO1xuXG4gIC8vIFdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgZnJhbWV3b3JrIGhlcmUuIEl0IGlzIHVuYXdhcmUgb2YgdGhlIHRlbXBvcmFyeVxuICAvLyBmaWxlLCB3aGljaCBtZWFucyB0aGF0IGl0IHdpbGwgaWdub3JlIHRoZSBjb250ZXh0IG92ZXJmbG93LlxuICBpZiAoZnJhbWV3b3JrRG9lc05vdFN1cHBvcnRDb250ZXh0T3ZlcmZsb3cpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX1cwMDEwLm1zZygnUGFydCBvZiB0aGUgY29udGV4dCBjb3VsZCBub3QgYmUgc2VudCB0byB0aGUgYXBwbGljYXRpb24uIFBsZWFzZSB1cGRhdGUgdGhlIEFXUyBDREsgbGlicmFyeSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uJykpO1xuICB9XG59XG5cbi8qKlxuICogU2FmZWx5IGNyZWF0ZSBhbiBhc3NlbWJseSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlbWJseUZyb21EaXJlY3RvcnkoYXNzZW1ibHlEaXI6IHN0cmluZywgaW9IZWxwZXI6IElvSGVscGVyLCBsb2FkT3B0aW9uczogTG9hZEFzc2VtYmx5T3B0aW9ucyA9IHt9KSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBuZXcgY3hhcGkuQ2xvdWRBc3NlbWJseShhc3NlbWJseURpciwge1xuICAgICAgc2tpcFZlcnNpb25DaGVjazogIShsb2FkT3B0aW9ucy5jaGVja1ZlcnNpb24gPz8gdHJ1ZSksXG4gICAgICBza2lwRW51bUNoZWNrOiAhKGxvYWRPcHRpb25zLmNoZWNrRW51bXMgPz8gdHJ1ZSksXG4gICAgICAvLyBXZSBzb3J0IGFzIHdlIGRlcGxveVxuICAgICAgdG9wb1NvcnQ6IGZhbHNlLFxuICAgIH0pO1xuICAgIGF3YWl0IGNoZWNrQ29udGV4dE92ZXJmbG93U3VwcG9ydChhc3NlbWJseSwgaW9IZWxwZXIpO1xuICAgIHJldHVybiBhc3NlbWJseTtcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UuaW5jbHVkZXMoY3hzY2hlbWEuVkVSU0lPTl9NSVNNQVRDSCkpIHtcbiAgICAgIC8vIHRoaXMgbWVhbnMgdGhlIENMSSB2ZXJzaW9uIGlzIHRvbyBvbGQuXG4gICAgICAvLyB3ZSBpbnN0cnVjdCB0aGUgdXNlciB0byB1cGdyYWRlLlxuICAgICAgY29uc3QgbWVzc2FnZSA9ICdUaGlzIEFXUyBDREsgVG9vbGtpdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBBV1MgQ0RLIGxpYnJhcnkgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdXBncmFkZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uJztcbiAgICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTExMTEubXNnKG1lc3NhZ2UsIHsgZXJyb3I6IGVyciB9KSk7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGAke21lc3NhZ2V9XFxuKCR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5mdW5jdGlvbiBzeW50aE9wdHNEZWZhdWx0cyhzeW50aE9wdHM6IEFwcFN5bnRoT3B0aW9ucyA9IHt9KTogU2V0dGluZ3Mge1xuICByZXR1cm4gbmV3IFNldHRpbmdzKHtcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgcGF0aE1ldGFkYXRhOiB0cnVlLFxuICAgIHZlcnNpb25SZXBvcnRpbmc6IHRydWUsXG4gICAgYXNzZXRNZXRhZGF0YTogdHJ1ZSxcbiAgICBhc3NldFN0YWdpbmc6IHRydWUsXG4gICAgLi4uc3ludGhPcHRzLFxuICB9LCB0cnVlKTtcbn1cbiJdfQ==
@@ -94,9 +94,9 @@ class CloudAssemblySourceBuilder {
94
94
  try {
95
95
  const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, { outdir: props.outdir }), true);
96
96
  const env = await execution.defaultEnvVars();
97
- const assembly = await execution.changeDir(async () => execution.withContext(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => execution.withEnv(envWithContext, () => {
97
+ const assembly = await execution.changeDir(async () => execution.withContext(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => execution.withEnv(envWithContext, async () => {
98
98
  try {
99
- return builder({
99
+ return await builder({
100
100
  outdir: execution.outdir,
101
101
  context: ctx,
102
102
  });
@@ -240,4 +240,4 @@ class CloudAssemblySourceBuilder {
240
240
  }
241
241
  }
242
242
  exports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUcvQixpRUFBeUU7QUFDekUsaUNBQTRDO0FBQzVDLHFEQUErRTtBQUUvRSw4Q0FBc0M7QUFDdEMseURBQWlFO0FBQ2pFLHVEQUFrRTtBQUVsRSwyREFBNEQ7QUFFNUQsTUFBc0IsMEJBQTBCO0lBUTlDOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixPQUF3QixFQUN4QixRQUE2QixFQUFFO1FBRS9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUkseUJBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsT0FBTztZQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsT0FBTyxJQUFJLHNEQUErQixDQUN4QztZQUNFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTs7O29CQUNsQixNQUFZLFNBQVMsa0NBQUcsTUFBTSxxQ0FBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFBLENBQUM7b0JBRTlGLE1BQU0sR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMs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LEVBQ0Qsb0JBQW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4TEQsZ0VBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQXNzZW1ibHlEaXJlY3RvcnlQcm9wcywgQXNzZW1ibHlTb3VyY2VQcm9wcywgSUNsb3VkQXNzZW1ibHlTb3VyY2UgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgfSBmcm9tICcuL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UgfSBmcm9tICcuL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IGV4ZWNJbkNoaWxkUHJvY2VzcyB9IGZyb20gJy4vZXhlYyc7XG5pbXBvcnQgeyBFeGVjdXRpb25FbnZpcm9ubWVudCwgYXNzZW1ibHlGcm9tRGlyZWN0b3J5IH0gZnJvbSAnLi9wcmVwYXJlLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgQ29udGV4dCwgUldMb2NrLCBTZXR0aW5ncyB9IGZyb20gJy4uLy4uL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciwgQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseUJ1aWxkZXIgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5pbXBvcnQgeyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuL3JlYWRhYmxlLWFzc2VtYmx5JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEhlbHBlciB0byBwcm92aWRlIHRoZSBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB3aXRoIHJlcXVpcmVkIHRvb2xraXQgc2VydmljZXNcbiAgICogQGludGVybmFsXG4gICAqIEBkZXByZWNhdGVkIHRoaXMgc2hvdWxkIG1vdmUgdG8gdGhlIHRvb2xraXQgcmVhbGx5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpOiBQcm9taXNlPFRvb2xraXRTZXJ2aWNlcz47XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkIEFzc2VtYmx5IGZyb20gYSBDbG91ZCBBc3NlbWJseSBidWlsZGVyIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBIHRlbXBvcmFyeSBvdXRwdXQgZGlyZWN0b3J5IHdpbGwgYmUgY3JlYXRlZCBpZiBubyBvdXRwdXQgZGlyZWN0b3J5IGlzXG4gICAqIGV4cGxpY2l0bHkgZ2l2ZW4uIFRoaXMgZGlyZWN0b3J5IHdpbGwgYmUgY2xlYW5lZCB1cCBpZiBzeW50aGVzaXMgZmFpbHMsIG9yXG4gICAqIHdoZW4gdGhlIENsb3VkIEFzc2VtYmx5IHByb2R1Y2VkIGJ5IHRoaXMgc291cmNlIGlzIGRpc3Bvc2VkLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gYnVpbGRlciB0aGUgYnVpbGRlciBmdW5jdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5QnVpbGRlcihcbiAgICBidWlsZGVyOiBBc3NlbWJseUJ1aWxkZXIsXG4gICAgcHJvcHM6IEFzc2VtYmx5U291cmNlUHJvcHMgPSB7fSxcbiAgKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IENvbnRleHQoeyBiYWc6IG5ldyBTZXR0aW5ncyhwcm9wcy5jb250ZXh0ID8/IHt9KSB9KTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbG9va3VwczogcHJvcHMubG9va3VwcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpcjogcHJvcHMub3V0ZGlyIH0pO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gYXdhaXQgZXhlY3V0aW9uLmRlZmF1bHRFbnZWYXJzKCk7XG4gICAgICAgICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBleGVjdXRpb24uY2hhbmdlRGlyKGFzeW5jICgpID0+XG4gICAgICAgICAgICBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zID8/IHt9LCBhc3luYyAoZW52V2l0aENvbnRleHQsIGN0eCkgPT5cbiAgICAgICAgICAgICAgZXhlY3V0aW9uLndpdGhFbnYoZW52V2l0aENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIoe1xuICAgICAgICAgICAgICAgICAgICBvdXRkaXI6IGV4ZWN1dGlvbi5vdXRkaXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAvLyByZS10aHJvdyB0b29sa2l0IGVycm9ycyB1bmNoYW5nZWRcbiAgICAgICAgICAgICAgICAgIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3cmFwIGludG8gYW4gYXNzZW1ibHkgZXJyb3JcbiAgICAgICAgICAgICAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aENhdXNlKCdBc3NlbWJseSBidWlsZGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSwgcHJvcHMud29ya2luZ0RpcmVjdG9yeSk7XG5cbiAgICAgICAgICAvLyBDb252ZXJ0IHdoYXQgd2UgZ290IHRvIHRoZSBkZWZpbml0ZWx5IGNvcnJlY3QgdHlwZSB3ZSdyZSBleHBlY3RpbmcsIGEgY3hhcGkuQ2xvdWRBc3NlbWJseVxuICAgICAgICAgIGNvbnN0IGFzbSA9IGN4YXBpLkNsb3VkQXNzZW1ibHkuaXNDbG91ZEFzc2VtYmx5KGFzc2VtYmx5KVxuICAgICAgICAgICAgPyBhc3NlbWJseVxuICAgICAgICAgICAgOiBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3RvcnkoYXNzZW1ibHkuZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZXhlY3V0aW9uLm1hcmtTdWNjZXNzZnVsKCk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZTogZXhlY3V0aW9uLm91dERpcklzVGVtcG9yYXJ5IH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkIEFzc2VtYmx5IGZyb20gYW4gZXhpc3RpbmcgYXNzZW1ibHkgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBBIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIGZvciB0aGUgZGlyZWN0b3J5LiBUaGlzIG1lYW5zIHRoYXQgd2hpbGVcbiAgICogdGhlIENsb3VkQXNzZW1ibHkgaXMgYmVpbmcgdXNlZCwgbm8gQ0RLIGFwcCBzeW50aGVzaXMgY2FuIHRha2UgcGxhY2UgaW50b1xuICAgKiB0aGF0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IG9mIGEgYWxyZWFkeSBwcm9kdWNlZCBDbG91ZCBBc3NlbWJseS5cbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5RGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlEaXJlY3RvcnlQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQ6IG5ldyBDb250ZXh0KCksIC8vIEB0b2RvIHRoZXJlIGlzIHByb2JhYmx5IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnRleHRhd2FyZSBhbmQgY29udGV4dGxvb2t1cCBzb3VyY2VzXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMTUwLm1zZygnLS1hcHAgcG9pbnRzIHRvIGEgY2xvdWQgYXNzZW1ibHksIHNvIHdlIGJ5cGFzcyBzeW50aCcpKTtcblxuICAgICAgICAgIGNvbnN0IHJlYWRMb2NrID0gYXdhaXQgbmV3IFJXTG9jayhkaXJlY3RvcnkpLmFjcXVpcmVSZWFkKCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFzbSA9IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShkaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgcmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBmYWxzZSB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBhd2FpdCByZWFkTG9jay5yZWxlYXNlKCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBVc2UgYSBkaXJlY3RvcnkgY29udGFpbmluZyBhbiBBV1MgQ0RLIGFwcCBhcyBzb3VyY2UuXG4gICAqXG4gICAqIEEgdGVtcG9yYXJ5IG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vIG91dHB1dCBkaXJlY3RvcnkgaXNcbiAgICogZXhwbGljaXRseSBnaXZlbi4gVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjbGVhbmVkIHVwIGlmIHN5bnRoZXNpcyBmYWlscywgb3JcbiAgICogd2hlbiB0aGUgQ2xvdWQgQXNzZW1ibHkgcHJvZHVjZWQgYnkgdGhpcyBzb3VyY2UgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIEEgd3JpdGUgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgZHVyYXRpb24gb2ZcbiAgICogdGhlIENESyBhcHAgc3ludGhlc2lzICh3aGljaCBtZWFucyB0aGF0IG5vIHR3byBhcHBzIGNhbiBzeW50aGVzaXplIGF0IHRoZVxuICAgKiBzYW1lIHRpbWUpLCBhbmQgYWZ0ZXIgc3ludGhlc2lzIGEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlXG4gICAqIGRpcmVjdG9yeS4gIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUNka0FwcChhcHA6IHN0cmluZywgcHJvcHM6IEFzc2VtYmx5U291cmNlUHJvcHMgPSB7fSk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICAvLyBAdG9kbyB0aGlzIGRlZmluaXRlbHkgbmVlZHMgdG8gcmVhZCBmaWxlcyBmcm9tIHRoZSBDV0RcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IENvbnRleHQoeyBiYWc6IG5ldyBTZXR0aW5ncyhwcm9wcy5jb250ZXh0ID8/IHt9KSB9KTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgbG9va3VwczogcHJvcHMubG9va3VwcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5U291cmNlKFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICAvLyBjb25zdCBidWlsZCA9IHRoaXMucHJvcHMuY29uZmlndXJhdGlvbi5zZXR0aW5ncy5nZXQoWydidWlsZCddKTtcbiAgICAgICAgICAvLyBpZiAoYnVpbGQpIHtcbiAgICAgICAgICAvLyAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2VzcyhidWlsZCwgeyBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgfSk7XG4gICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgY29uc3Qgb3V0ZGlyID0gcHJvcHMub3V0ZGlyID8/ICdjZGsub3V0JztcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMubWtkaXJwU3luYyhvdXRkaXIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBvdXRwdXQgZGlyZWN0b3J5IGF0ICcke291dGRpcn0nICgke2UubWVzc2FnZX0pLmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IHVzaW5nIGV4ZWN1dGlvbiA9IGF3YWl0IEV4ZWN1dGlvbkVudmlyb25tZW50LmNyZWF0ZShzZXJ2aWNlcywgeyBvdXRkaXIgfSk7XG5cbiAgICAgICAgICBjb25zdCBjb21tYW5kTGluZSA9IGF3YWl0IGV4ZWN1dGlvbi5ndWVzc0V4ZWN1dGFibGUoYXBwKTtcbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZXhlY3V0aW9uLndpdGhDb250ZXh0KGNvbnRleHQuYWxsLCBlbnYsIHByb3BzLnN5bnRoT3B0aW9ucywgYXN5bmMgKGVudldpdGhDb250ZXh0LCBfY3R4KSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoY29tbWFuZExpbmUuam9pbignICcpLCB7XG4gICAgICAgICAgICAgIGV2ZW50UHVibGlzaGVyOiBhc3luYyAodHlwZSwgbGluZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kxMDAxLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRlcnInOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0UxMDAyLm1zZyhsaW5lKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXh0cmFFbnY6IGVudldpdGhDb250ZXh0LFxuICAgICAgICAgICAgICBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgYXNtID0gYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KG91dGRpciwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuXG4gICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZXhlY3V0aW9uLm1hcmtTdWNjZXNzZnVsKCk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBleGVjdXRpb24ub3V0RGlySXNUZW1wb3JhcnkgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUcvQixpRUFBeUU7QUFDekUsaUNBQTRDO0FBQzVDLHFEQUErRTtBQUUvRSw4Q0FBc0M7QUFDdEMseURBQWlFO0FBQ2pFLHVEQUFrRTtBQUVsRSwyREFBNEQ7QUFFNUQsTUFBc0IsMEJBQTBCO0lBUTlDOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixPQUF3QixFQUN4QixRQUE2QixFQUFFO1FBRS9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUkseUJBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsT0FBTztZQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsT0FBTyxJQUFJLHNEQUErQixDQUN4QztZQUNFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTs7O29CQUNsQixNQUFZLFNBQVMsa0NBQUcsTUFBTSxxQ0FBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFBLENBQUM7b0JBRTlGLE1BQU0sR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMs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OzthQUNKO1NBQ0YsRUFDRCxvQkFBb0IsQ0FDckIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhMRCxnRUF3TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURpcmVjdG9yeVByb3BzLCBBc3NlbWJseVNvdXJjZVByb3BzLCBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnkgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBDb250ZXh0LCBSV0xvY2ssIFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yLCBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5QnVpbGRlciB9IGZyb20gJy4uL3NvdXJjZS1idWlsZGVyJztcbmltcG9ydCB7IFJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vcmVhZGFibGUtYXNzZW1ibHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIge1xuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyBzaG91bGQgbW92ZSB0byB0aGUgdG9vbGtpdCByZWFsbHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc291cmNlQnVpbGRlclNlcnZpY2VzKCk6IFByb21pc2U8VG9vbGtpdFNlcnZpY2VzPjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhIENsb3VkIEFzc2VtYmx5IGJ1aWxkZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqIEEgdGVtcG9yYXJ5IG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vIG91dHB1dCBkaXJlY3RvcnkgaXNcbiAgICogZXhwbGljaXRseSBnaXZlbi4gVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjbGVhbmVkIHVwIGlmIHN5bnRoZXNpcyBmYWlscywgb3JcbiAgICogd2hlbiB0aGUgQ2xvdWQgQXNzZW1ibHkgcHJvZHVjZWQgYnkgdGhpcyBzb3VyY2UgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIEEgd3JpdGUgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgZHVyYXRpb24gb2ZcbiAgICogdGhlIENESyBhcHAgc3ludGhlc2lzICh3aGljaCBtZWFucyB0aGF0IG5vIHR3byBhcHBzIGNhbiBzeW50aGVzaXplIGF0IHRoZVxuICAgKiBzYW1lIHRpbWUpLCBhbmQgYWZ0ZXIgc3ludGhlc2lzIGEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlXG4gICAqIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBidWlsZGVyIHRoZSBidWlsZGVyIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlCdWlsZGVyKFxuICAgIGJ1aWxkZXI6IEFzc2VtYmx5QnVpbGRlcixcbiAgICBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9LFxuICApOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHsgb3V0ZGlyOiBwcm9wcy5vdXRkaXIgfSk7XG5cbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGV4ZWN1dGlvbi5jaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICBleGVjdXRpb24ud2l0aEVudihlbnZXaXRoQ29udGV4dCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIHJlLXRocm93IHRvb2xraXQgZXJyb3JzIHVuY2hhbmdlZFxuICAgICAgICAgICAgICAgICAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdyYXAgaW50byBhbiBhc3NlbWJseSBlcnJvclxuICAgICAgICAgICAgICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoJ0Fzc2VtYmx5IGJ1aWxkZXIgZmFpbGVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLCBwcm9wcy53b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIC8vIENvbnZlcnQgd2hhdCB3ZSBnb3QgdG8gdGhlIGRlZmluaXRlbHkgY29ycmVjdCB0eXBlIHdlJ3JlIGV4cGVjdGluZywgYSBjeGFwaS5DbG91ZEFzc2VtYmx5XG4gICAgICAgICAgY29uc3QgYXNtID0gY3hhcGkuQ2xvdWRBc3NlbWJseS5pc0Nsb3VkQXNzZW1ibHkoYXNzZW1ibHkpXG4gICAgICAgICAgICA/IGFzc2VtYmx5XG4gICAgICAgICAgICA6IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseS5kaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBleGVjdXRpb24ub3V0RGlySXNUZW1wb3JhcnkgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhbiBleGlzdGluZyBhc3NlbWJseSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgZm9yIHRoZSBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZVxuICAgKiB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREsgYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvXG4gICAqIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IHRoZSBkaXJlY3Rvcnkgb2YgYSBhbHJlYWR5IHByb2R1Y2VkIENsb3VkIEFzc2VtYmx5LlxuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlEaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseURpcmVjdG9yeVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dDogbmV3IENvbnRleHQoKSwgLy8gQHRvZG8gdGhlcmUgaXMgcHJvYmFibHkgYSBkaWZmZXJlbmNlIGJldHdlZW4gY29udGV4dGF3YXJlIGFuZCBjb250ZXh0bG9va3VwIHNvdXJjZXNcbiAgICAgIGxvb2t1cHM6IGZhbHNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAxNTAubXNnKCctLWFwcCBwb2ludHMgdG8gYSBjbG91ZCBhc3NlbWJseSwgc28gd2UgYnlwYXNzIHN5bnRoJykpO1xuXG4gICAgICAgICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcmVjdG9yeSkuYWNxdWlyZVJlYWQoKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYXNtID0gYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCByZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlYWRMb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIEFXUyBDREsgYXBwIGFzIHNvdXJjZS5cbiAgICpcbiAgICogQSB0ZW1wb3Jhcnkgb3V0cHV0IGRpcmVjdG9yeSB3aWxsIGJlIGNyZWF0ZWQgaWYgbm8gb3V0cHV0IGRpcmVjdG9yeSBpc1xuICAgKiBleHBsaWNpdGx5IGdpdmVuLiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAgaWYgc3ludGhlc2lzIGZhaWxzLCBvclxuICAgKiB3aGVuIHRoZSBDbG91ZCBBc3NlbWJseSBwcm9kdWNlZCBieSB0aGlzIHNvdXJjZSBpcyBkaXNwb3NlZC5cbiAgICpcbiAgICogQSB3cml0ZSBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBkdXJhdGlvbiBvZlxuICAgKiB0aGUgQ0RLIGFwcCBzeW50aGVzaXMgKHdoaWNoIG1lYW5zIHRoYXQgbm8gdHdvIGFwcHMgY2FuIHN5bnRoZXNpemUgYXQgdGhlXG4gICAqIHNhbWUgdGltZSksIGFuZCBhZnRlciBzeW50aGVzaXMgYSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGVcbiAgICogZGlyZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQ2RrQXBwKGFwcDogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIC8vIEB0b2RvIHRoaXMgZGVmaW5pdGVseSBuZWVkcyB0byByZWFkIGZpbGVzIGZyb20gdGhlIENXRFxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIC8vIGNvbnN0IGJ1aWxkID0gdGhpcy5wcm9wcy5jb25maWd1cmF0aW9uLnNldHRpbmdzLmdldChbJ2J1aWxkJ10pO1xuICAgICAgICAgIC8vIGlmIChidWlsZCkge1xuICAgICAgICAgIC8vICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGJ1aWxkLCB7IGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSB9KTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpciB9KTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZXhlY3V0aW9uLmd1ZXNzRXhlY3V0YWJsZShhcHApO1xuICAgICAgICAgIGNvbnN0IGVudiA9IGF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zLCBhc3luYyAoZW52V2l0aENvbnRleHQsIF9jdHgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2Vzcyhjb21tYW5kTGluZS5qb2luKCcgJyksIHtcbiAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBleHRyYUVudjogZW52V2l0aENvbnRleHQsXG4gICAgICAgICAgICAgIGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgc3VjY2Vzcy5yZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGV4ZWN1dGlvbi5vdXREaXJJc1RlbXBvcmFyeSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG59XG5cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import '../../../private/dispose-polyfill';
1
2
  import type { IoHelper } from '../../shared-private';
2
3
  import { BaseStackAssembly, StackCollection } from '../../shared-private';
3
4
  import type { StackSelector } from '../stack-selector';