@btc-embedded/cdk-extensions 0.21.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +2 -2
- package/CHANGELOG.md +22 -0
- package/assets/constructs/api-keys/lambdas/pre-token.lambda/index.js +7 -1
- package/lib/constructs/EventPipe.js +1 -1
- package/lib/constructs/ExportedService.js +1 -1
- package/lib/constructs/S3Bucket.js +1 -1
- package/lib/constructs/SecureRestApi.js +1 -1
- package/lib/constructs/SecureRestApiV2.js +1 -1
- package/lib/constructs/api-keys/ApiKeyClientAuthorization.js +1 -1
- package/lib/constructs/api-keys/ApiKeyManagement.js +1 -1
- package/lib/constructs/api-keys/ApiKeyPreTokenHandler.js +1 -1
- package/lib/constructs/api-keys/ApiKeyStore.js +1 -1
- package/lib/constructs/api-keys/lambdas/pre-token.lambda.js +7 -2
- package/lib/extensions/ApiGatewayExtension.js +1 -1
- package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
- package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +1 -1
- package/lib/extensions/CloudMapExtension.js +1 -1
- package/lib/extensions/DeactivatableServiceExtension.js +1 -1
- package/lib/extensions/DeploymentConfigExtension.js +1 -1
- package/lib/extensions/DocumentDbAccessExtension.js +1 -1
- package/lib/extensions/DomainEventMessagingExtension.js +1 -1
- package/lib/extensions/EfsMountExtension.js +1 -1
- package/lib/extensions/ExtraContainerExtension.js +1 -1
- package/lib/extensions/HTTPApiExtension.js +1 -1
- package/lib/extensions/LogExtension.js +1 -1
- package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
- package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
- package/lib/extensions/OpenIdExtension.js +1 -1
- package/lib/extensions/OpenTelemetryExtension.js +1 -1
- package/lib/extensions/PostgresDbAccessExtension.js +1 -1
- package/lib/extensions/SharedVolumeExtension.js +1 -1
- package/lib/extensions/TcpKeepAliveExtension.js +1 -1
- package/lib/platform/ApiGateway.js +1 -1
- package/lib/platform/ApiGatewayVpcLink.js +2 -2
- package/lib/platform/ApplicationLoadBalancer.js +1 -1
- package/lib/platform/ApplicationLoadBalancerV2.js +2 -2
- package/lib/platform/BTCLogGroup.js +1 -1
- package/lib/platform/CognitoUserPool.js +2 -2
- package/lib/platform/DefaultUserPoolClients.js +1 -1
- package/lib/platform/DocumentDB.js +2 -2
- package/lib/platform/EcsCluster.js +1 -1
- package/lib/platform/EfsFileSystem.js +1 -1
- package/lib/platform/HostedZone.js +1 -1
- package/lib/platform/PrivateDnsNamespace.js +1 -1
- package/lib/platform/ResourceServer.js +1 -1
- package/lib/platform/Vpc.js +1 -1
- package/lib/platform/VpcV2.js +1 -1
- package/lib/stacks/ApplicationStack.js +1 -1
- package/lib/utils/BasePlatformStackResolver.js +1 -1
- package/lib/utils/StackParameter.js +1 -1
- package/lib/utils/configFileParsing.d.ts +0 -23
- package/lib/utils/configFileParsing.js +1 -36
- package/package.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { App, Environment, Stack } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
|
-
import { ApplicationStack } from "../stacks/ApplicationStack";
|
|
4
3
|
export type ConfigType = {
|
|
5
4
|
env?: Environment;
|
|
6
5
|
};
|
|
@@ -72,25 +71,3 @@ export declare function createApp<T extends ConfigType>({ directory, schema, cre
|
|
|
72
71
|
schema: ParseableSchema<T>;
|
|
73
72
|
createStack: (scope: Construct, config: T) => Stack;
|
|
74
73
|
}): App;
|
|
75
|
-
/**
|
|
76
|
-
* Create an AWS CDK app with ApplicationStack support.
|
|
77
|
-
*
|
|
78
|
-
* This function will create a CDK app with the stage configurations from the
|
|
79
|
-
* given directory. The stage is chosen based on the CDK_STAGE environment
|
|
80
|
-
* variable. If no stage is specified, all stages will be added to the app.
|
|
81
|
-
*
|
|
82
|
-
* Unlike {@link createApp}, this function requires the config to include
|
|
83
|
-
* `basePlatformStackName` and automatically sets it in the ApplicationStack
|
|
84
|
-
* context, making it available to all child constructs.
|
|
85
|
-
*
|
|
86
|
-
* @param directory the directory containing the stage configurations
|
|
87
|
-
* @param schema the schema to validate the configuration files (must include basePlatformStackName)
|
|
88
|
-
* @param createStack a function which instantiates a user-provided ApplicationStack
|
|
89
|
-
*
|
|
90
|
-
* @returns the app
|
|
91
|
-
*/
|
|
92
|
-
export declare function createApplicationApp<T extends ApplicationConfigType>({ directory, schema, createStack, }: {
|
|
93
|
-
directory: string;
|
|
94
|
-
schema: ParseableSchema<T>;
|
|
95
|
-
createStack: (scope: Construct, config: T) => ApplicationStack;
|
|
96
|
-
}): App;
|
|
@@ -5,7 +5,6 @@ exports.getStageConfigurations = getStageConfigurations;
|
|
|
5
5
|
exports.isDeveloperStack = isDeveloperStack;
|
|
6
6
|
exports.developerStackDifferentiator = developerStackDifferentiator;
|
|
7
7
|
exports.createApp = createApp;
|
|
8
|
-
exports.createApplicationApp = createApplicationApp;
|
|
9
8
|
const fs = require("fs");
|
|
10
9
|
const path = require("path/posix");
|
|
11
10
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
@@ -133,38 +132,4 @@ function createApp({ directory, schema, createStack, }) {
|
|
|
133
132
|
});
|
|
134
133
|
return app;
|
|
135
134
|
}
|
|
136
|
-
/**
|
|
137
|
-
* Create an AWS CDK app with ApplicationStack support.
|
|
138
|
-
*
|
|
139
|
-
* This function will create a CDK app with the stage configurations from the
|
|
140
|
-
* given directory. The stage is chosen based on the CDK_STAGE environment
|
|
141
|
-
* variable. If no stage is specified, all stages will be added to the app.
|
|
142
|
-
*
|
|
143
|
-
* Unlike {@link createApp}, this function requires the config to include
|
|
144
|
-
* `basePlatformStackName` and automatically sets it in the ApplicationStack
|
|
145
|
-
* context, making it available to all child constructs.
|
|
146
|
-
*
|
|
147
|
-
* @param directory the directory containing the stage configurations
|
|
148
|
-
* @param schema the schema to validate the configuration files (must include basePlatformStackName)
|
|
149
|
-
* @param createStack a function which instantiates a user-provided ApplicationStack
|
|
150
|
-
*
|
|
151
|
-
* @returns the app
|
|
152
|
-
*/
|
|
153
|
-
function createApplicationApp({ directory, schema, createStack, }) {
|
|
154
|
-
const stageName = process.env.CDK_STAGE || undefined;
|
|
155
|
-
if (!stageName) {
|
|
156
|
-
console.warn("warning: no stage specified via CDK_STAGE, synthesizing all stages. This is probably not what you want.");
|
|
157
|
-
}
|
|
158
|
-
class AppStage extends aws_cdk_lib_1.Stage {
|
|
159
|
-
constructor(scope, id, props, stackConfig) {
|
|
160
|
-
super(scope, generateId(id), props);
|
|
161
|
-
createStack(this, stackConfig);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
const app = new aws_cdk_lib_1.App();
|
|
165
|
-
getStageConfigurations({ directory, schema, stageName }).forEach(({ name, config }) => {
|
|
166
|
-
new AppStage(app, name, { env: config.env }, config);
|
|
167
|
-
});
|
|
168
|
-
return app;
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnRmlsZVBhcnNpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29uZmlnRmlsZVBhcnNpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnREEsMENBa0JDO0FBV0Qsd0RBc0JDO0FBK0JELDRDQUVDO0FBVUQsb0VBSUM7QUFlRCw4QkFzQ0M7QUFtQkQsb0RBc0NDO0FBaFFELHlCQUF5QjtBQUN6QixtQ0FBbUM7QUFDbkMsNkNBQXlFO0FBRXpFLDZCQUE2QjtBQUM3QixxQ0FBc0M7QUFHdEMsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0IsQ0FBQztBQXdCckQsU0FBUyxjQUFjLENBQUMsR0FBWTtJQUNsQyxPQUFPLENBQ0wsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixHQUFHLEtBQUssSUFBSTtRQUNaLFFBQVEsSUFBSSxHQUFHO1FBQ2YsS0FBSyxDQUFDLE9BQU8sQ0FBRSxHQUFXLENBQUMsTUFBTSxDQUFDLENBQ25DLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixJQUFZLEVBQ1osTUFBMEI7SUFFMUIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsSUFBSSxPQUFPO2dCQUN4QyxDQUFDLENBQUMsTUFBTTtxQkFDTCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMs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QU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aC9wb3NpeFwiO1xuaW1wb3J0IHsgQXBwLCBFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWdlLCBTdGFnZVByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwieWFtbFwiO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSB9IGZyb20gXCIuL2NvbW1vblwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TdGFjayB9IGZyb20gXCIuLi9zdGFja3MvQXBwbGljYXRpb25TdGFja1wiO1xuXG5jb25zdCBzdGFnZVN1ZmZpeFZhcmlhYmxlID0gXCJERVZFTE9QRVJfU1RBR0VfU1VGRklYXCI7XG5cbmV4cG9ydCB0eXBlIENvbmZpZ1R5cGUgPSB7XG4gIGVudj86IEVudmlyb25tZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25Db25maWdUeXBlID0gQ29uZmlnVHlwZSAmIHtcbiAgYmFzZVBsYXRmb3JtU3RhY2tOYW1lOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEEgc2NoZW1hIHdoaWNoIHByb3ZpZGVzIGEgYHBhcnNlYCBtZXRob2QgdG8gcGFyc2UgY29uZmlndXJhdGlvbiBkYXRhIHJlYWQgZnJvbSBhIGNvbmZpZyBmaWxlLlxuICovXG5leHBvcnQgdHlwZSBQYXJzZWFibGVTY2hlbWE8VCBleHRlbmRzIENvbmZpZ1R5cGU+ID0ge1xuICBwYXJzZTogKGRhdGE6IHVua25vd24pID0+IFQ7XG59O1xuXG50eXBlIFByaW50YWJsZUVycm9yID0ge1xuICBlcnJvcnM6IEFycmF5PHtcbiAgICBwYXRoOiBzdHJpbmdbXTtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gIH0+O1xufTtcblxuZnVuY3Rpb24gY2hlY2tFcnJvclR5cGUob2JqOiB1bmtub3duKTogb2JqIGlzIFByaW50YWJsZUVycm9yIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiICYmXG4gICAgb2JqICE9PSBudWxsICYmXG4gICAgXCJlcnJvcnNcIiBpbiBvYmogJiZcbiAgICBBcnJheS5pc0FycmF5KChvYmogYXMgYW55KS5lcnJvcnMpXG4gICk7XG59XG5cbi8qKlxuICogUGFyc2UgYSBZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdmFsaWRhdGUgaXQgYWdhaW5zdCB0aGUgZ2l2ZW4gc2NoZW1hLlxuICpcbiAqIEBwYXJhbSBmaWxlIHRoZSBmaWxlIHRvIHBhcnNlXG4gKiBAcGFyYW0gc2NoZW1hIHRoZSBzY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZVxuICogQHJldHVybnMgdGhlIHBhcnNlZCBjb25maWd1cmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb25maWdGaWxlPFQgZXh0ZW5kcyBDb25maWdUeXBlPihcbiAgZmlsZTogc3RyaW5nLFxuICBzY2hlbWE6IFBhcnNlYWJsZVNjaGVtYTxUPixcbikge1xuICB0cnkge1xuICAgIGNvbnN0IGNvbmZpZ0RhdGEgPSB5YW1sLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpKTtcbiAgICByZXR1cm4gc2NoZW1hLnBhcnNlKGNvbmZpZ0RhdGEpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGNoZWNrRXJyb3JUeXBlKGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB1bmFibGUgdG8gcGFyc2UgY29uZmlnIGZpbGUgJHtmaWxlfTpcXG5cXHRgICtcbiAgICAgICAgICBlLmVycm9yc1xuICAgICAgICAgICAgLm1hcCgoZXJyKSA9PiBgYXQgJyR7ZXJyLnBhdGguam9pbihcIi9cIil9JzogJHtlcnIubWVzc2FnZX1gKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXHRcIiksXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBzdGFnZSBjb25maWd1cmF0aW9ucyBhdmFpbGFibGUgaW4gdGhlIHByb3ZpZGVkIGNvbmZpZyBkaXJlY3RvcnkuXG4gKlxuICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHN0YWdlIGNvbmZpZ3VyYXRpb25zXG4gKiBAcGFyYW0gc2NoZW1hIHRoZSBzY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXNcbiAqIEBwYXJhbSBzdGFnZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHN0YWdlLCBsZWF2ZSB1bmRlZmluZWQgdG8gcmV0dXJuIGFsbCBzdGFnZXNcbiAqXG4gKiBAcmV0dXJucyBhIGxpc3Qgb2Ygc3RhZ2UgbmFtZSBhbmQgcGFyc2VkIGNvbmZpZyBjb250ZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhZ2VDb25maWd1cmF0aW9uczxUIGV4dGVuZHMgQ29uZmlnVHlwZT4oe1xuICBkaXJlY3RvcnksXG4gIHNjaGVtYSxcbiAgc3RhZ2VOYW1lLFxufToge1xuICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgc2NoZW1hOiBQYXJzZWFibGVTY2hlbWE8VD47XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbn0pIHtcbiAgcmV0dXJuIGZzXG4gICAgLnJlYWRkaXJTeW5jKGRpcmVjdG9yeSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGZpbGUpID0+XG4gICAgICAgIC9cXC4oeWE/bWwpJC8udGVzdChmaWxlKSAmJlxuICAgICAgICAoIXN0YWdlTmFtZSB8fCBmaWxlLnJlcGxhY2UoL1xcLih5YT9tbCkkLywgXCJcIikgPT09IHN0YWdlTmFtZSksXG4gICAgKVxuICAgIC5tYXAoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGZpbGUucmVwbGFjZSgvXFwuKHlhP21sKSQvLCBcIlwiKSxcbiAgICAgICAgY29uZmlnOiBwYXJzZUNvbmZpZ0ZpbGUocGF0aC5qb2luKGRpcmVjdG9yeSwgZmlsZSksIHNjaGVtYSksXG4gICAgICB9O1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgY3Vcblxuc3RvbSBzdGFjayBJRCwgaWYgdGhlIHZhcmlhYmxlIGRlZmluZWQgaW4ge0BsaW5rIHN0YWdlU3VmZml4VmFyaWFibGV9IGlzIHNldC5cbiAqIFRoZSB2YWx1ZSB3aWxsIGJlIGFwcGVuZGVkIGFzIHN1ZmZpeCB0byB0aGUgSUQuIElmIHRoZSB2YXJpYWJsZSBpcyBub3Qgc2V0LCB0aGUgb3JpZ2luYWxcbiAqIElEIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBpZCBUaGUgb3JpZ2luYWwgSUQgdG8gYmUgdXNlZCBhZCBiYXNlLlxuICogQHJldHVybnMgVGhlIHN1ZmZpeGVkIElEIG9yIHRoZSBvcmlnaW5hbCBJRCwgaWYgbm8gY3VzdG9tIHN0YWNrIGluc3RhbmNlIGlzIGNyZWF0ZWQuXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlSWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBzdGFnZVN1ZmZpeFZhbHVlID0gcHJvY2Vzcy5lbnZbc3RhZ2VTdWZmaXhWYXJpYWJsZV07XG4gIGlmIChzdGFnZVN1ZmZpeFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXN0YWdlU3VmZml4VmFsdWUubWF0Y2goL15bYS16QS1aMC05XSskLykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSB2YWx1ZSBzZXQgaW4gJHtzdGFnZVN1ZmZpeFZhcmlhYmxlfSBtYXkgbm90IGJlIGVtcHR5IGFuZCBtYXkgb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aWR9LSR7c3RhZ2VTdWZmaXhWYWx1ZX1gO1xuICB9XG4gIHJldHVybiBpZDtcbn1cblxuLyoqXG4gKiBUZXN0LCBpZiB0aGUgY3VycmVudCBkZXBsb3ltZW50IGlzIHRoYXQgb2YgYSBkZXZlbG9wZXIgc3RhY2suIFRoaXMgbWlnaHQgYmUgb2YgaW50ZXJlc3QgZm9yXG4gKiBzb21lIGNvbnN0cnVjdHMsIGFzIGEgZGlmZmVyZW50IGJlaGF2aW9yIGlzIGV4cGVjdGVkIGluIHRoZSBkZXZlbG9wZXIgZW52aXJvbm1lbnQuXG4gKlxuICogQHJldHVybnMgYHRydWVgLCBpZiBhIGRldmVsb3BlciBzdGFjayBpbnN0YW5jZSBpcyBkZXBsb3llZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGV2ZWxvcGVyU3RhY2soKTogYm9vbGVhbiB7XG4gIHJldHVybiBwcm9jZXNzLmVudltzdGFnZVN1ZmZpeFZhcmlhYmxlXSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEdldCBhIGRpZmZlcmVudGlhdG9yIHRoYXQgY2FuIGJlIHVzZWQgaW4gZGV2ZWxvcGVyIHN0YWNrcy4gVXNlIGNhc2VzIGZvciB0aGlzIGFyZVxuICogZGVwbG95bWVudHMgb2YgcmVzb3VyY2VzIHdoaWNoJ3MgbmFtZS9pZCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIG5hbWUgb2YgdGhlIHN0YWNrLlxuICogQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIG5vIGRldmVsb3BlciBzdGFjayBpcyBkZXBsb3llZC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIChzdGFydGluZyB3aXRoIGFuIHVwcGVyY2FzZSBsZXR0ZXIgZm9yIHVzZSBpbiBjYW1lbGNhc2UpIHRvXG4gKiAgZGlmZmVyZW50aWF0ZSB0aGUgcmVzb3VyY2UgbmFtZSBvciBhbiBlbXB0eSBzdHJpbmcgb2Ygbm8gZGV2ZWxvcGVyIHN0YWNrIGlzXG4gKiAgZGVwbG95ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXZlbG9wZXJTdGFja0RpZmZlcmVudGlhdG9yKCk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9jZXNzLmVudltzdGFnZVN1ZmZpeFZhcmlhYmxlXSAhPT0gdW5kZWZpbmVkXG4gICAgPyBjYXBpdGFsaXplKHByb2Nlc3MuZW52W3N0YWdlU3VmZml4VmFyaWFibGVdKVxuICAgIDogXCJcIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gQVdTIENESyBhcHAuXG4gKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBhIENESyBhcHAgd2l0aCB0aGUgc3RhZ2UgY29uZmlndXJhdGlvbnMgZnJvbSB0aGVcbiAqIGdpdmVuIGRpcmVjdG9yeS4gIFRoZSBzdGFnZSBpcyBjaG9zZW4gYmFzZWQgb24gdGhlIENES19TVEFHRSBlbnZpcm9ubWVudFxuICogdmFyaWFibGUuIElmIG5vIHN0YWdlIGlzIHNwZWNpZmllZCwgYWxsIHN0YWdlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBhcHAuXG4gKlxuICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHN0YWdlIGNvbmZpZ3VyYXRpb25zXG4gKiBAcGFyYW0gc2NoZW1hIHRoZSBzY2hlbWEgdG8gdmFsaWRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXNcbiAqIEBwYXJhbSBjcmVhdGVTdGFjayBhIGZ1bmN0aW9uIHdoaWNoIGluc3RhbnRpYXRlcyBhIHVzZXItcHJvdmlkZWQgc3RhY2tcbiAqXG4gKiBAcmV0dXJucyB0aGUgYXBwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHA8VCBleHRlbmRzIENvbmZpZ1R5cGU+KHtcbiAgZGlyZWN0b3J5LFxuICBzY2hlbWEsXG4gIGNyZWF0ZVN0YWNrLFxufToge1xuICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgc2NoZW1hOiBQYXJzZWFibGVTY2hlbWE8VD47XG4gIGNyZWF0ZVN0YWNrOiAoc2NvcGU6IENvbnN0cnVjdCwgY29uZmlnOiBUKSA9PiBTdGFjaztcbn0pIHtcbiAgY29uc3Qgc3RhZ2VOYW1lID0gcHJvY2Vzcy5lbnYuQ0RLX1NUQUdFIHx8IHVuZGVmaW5lZDtcblxuICBpZiAoIXN0YWdlTmFtZSkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIFwid2FybmluZzogbm8gc3RhZ2Ugc3BlY2lmaWVkIHZpYSBDREtfU1RBR0UsIHN5bnRoZXNpemluZyBhbGwgc3RhZ2VzLiBUaGlzIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50LlwiLFxuICAgICk7XG4gIH1cblxuICBjbGFzcyBBcHBTdGFnZSBleHRlbmRzIFN0YWdlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgICBpZDogc3RyaW5nLFxuICAgICAgcHJvcHM6IFN0YWdlUHJvcHMsXG4gICAgICBzdGFja0NvbmZpZzogVCxcbiAgICApIHtcbiAgICAgIHN1cGVyKHNjb3BlLCBnZW5lcmF0ZUlkKGlkKSwgcHJvcHMpO1xuICAgICAgY3JlYXRlU3RhY2sodGhpcywgc3RhY2tDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuICBnZXRTdGFnZUNvbmZpZ3VyYXRpb25zKHsgZGlyZWN0b3J5LCBzY2hlbWEsIHN0YWdlTmFtZSB9KS5mb3JFYWNoKFxuICAgICh7IG5hbWUsIGNvbmZpZyB9KSA9PiB7XG4gICAgICBuZXcgQXBwU3RhZ2UoYXBwLCBuYW1lLCB7IGVudjogY29uZmlnLmVudiB9LCBjb25maWcpO1xuICAgIH0sXG4gICk7XG5cbiAgcmV0dXJuIGFwcDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gQVdTIENESyBhcHAgd2l0aCBBcHBsaWNhdGlvblN0YWNrIHN1cHBvcnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBhIENESyBhcHAgd2l0aCB0aGUgc3RhZ2UgY29uZmlndXJhdGlvbnMgZnJvbSB0aGVcbiAqIGdpdmVuIGRpcmVjdG9yeS4gVGhlIHN0YWdlIGlzIGNob3NlbiBiYXNlZCBvbiB0aGUgQ0RLX1NUQUdFIGVudmlyb25tZW50XG4gKiB2YXJpYWJsZS4gSWYgbm8gc3RhZ2UgaXMgc3BlY2lmaWVkLCBhbGwgc3RhZ2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGFwcC5cbiAqXG4gKiBVbmxpa2Uge0BsaW5rIGNyZWF0ZUFwcH0sIHRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIGNvbmZpZyB0byBpbmNsdWRlXG4gKiBgYmFzZVBsYXRmb3JtU3RhY2tOYW1lYCBhbmQgYXV0b21hdGljYWxseSBzZXRzIGl0IGluIHRoZSBBcHBsaWNhdGlvblN0YWNrXG4gKiBjb250ZXh0LCBtYWtpbmcgaXQgYXZhaWxhYmxlIHRvIGFsbCBjaGlsZCBjb25zdHJ1Y3RzLlxuICpcbiAqIEBwYXJhbSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzdGFnZSBjb25maWd1cmF0aW9uc1xuICogQHBhcmFtIHNjaGVtYSB0aGUgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIChtdXN0IGluY2x1ZGUgYmFzZVBsYXRmb3JtU3RhY2tOYW1lKVxuICogQHBhcmFtIGNyZWF0ZVN0YWNrIGEgZnVuY3Rpb24gd2hpY2ggaW5zdGFudGlhdGVzIGEgdXNlci1wcm92aWRlZCBBcHBsaWNhdGlvblN0YWNrXG4gKlxuICogQHJldHVybnMgdGhlIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwbGljYXRpb25BcHA8VCBleHRlbmRzIEFwcGxpY2F0aW9uQ29uZmlnVHlwZT4oe1xuICBkaXJlY3RvcnksXG4gIHNjaGVtYSxcbiAgY3JlYXRlU3RhY2ssXG59OiB7XG4gIGRpcmVjdG9yeTogc3RyaW5nO1xuICBzY2hlbWE6IFBhcnNlYWJsZVNjaGVtYTxUPjtcbiAgY3JlYXRlU3RhY2s6IChzY29wZTogQ29uc3RydWN0LCBjb25maWc6IFQpID0+IEFwcGxpY2F0aW9uU3RhY2s7XG59KSB7XG4gIGNvbnN0IHN0YWdlTmFtZSA9IHByb2Nlc3MuZW52LkNES19TVEFHRSB8fCB1bmRlZmluZWQ7XG5cbiAgaWYgKCFzdGFnZU5hbWUpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBcIndhcm5pbmc6IG5vIHN0YWdlIHNwZWNpZmllZCB2aWEgQ0RLX1NUQUdFLCBzeW50aGVzaXppbmcgYWxsIHN0YWdlcy4gVGhpcyBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudC5cIixcbiAgICApO1xuICB9XG5cbiAgY2xhc3MgQXBwU3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBzY29wZTogQ29uc3RydWN0LFxuICAgICAgaWQ6IHN0cmluZyxcbiAgICAgIHByb3BzOiBTdGFnZVByb3BzLFxuICAgICAgc3RhY2tDb25maWc6IFQsXG4gICAgKSB7XG4gICAgICBzdXBlcihzY29wZSwgZ2VuZXJhdGVJZChpZCksIHByb3BzKTtcbiAgICAgIGNyZWF0ZVN0YWNrKHRoaXMsIHN0YWNrQ29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbiAgZ2V0U3RhZ2VDb25maWd1cmF0aW9ucyh7IGRpcmVjdG9yeSwgc2NoZW1hLCBzdGFnZU5hbWUgfSkuZm9yRWFjaChcbiAgICAoeyBuYW1lLCBjb25maWcgfSkgPT4ge1xuICAgICAgbmV3IEFwcFN0YWdlKGFwcCwgbmFtZSwgeyBlbnY6IGNvbmZpZy5lbnYgfSwgY29uZmlnKTtcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiBhcHA7XG59XG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnRmlsZVBhcnNpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29uZmlnRmlsZVBhcnNpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQ0EsMENBa0JDO0FBV0Qsd0RBc0JDO0FBK0JELDRDQUVDO0FBVUQsb0VBSUM7QUFlRCw4QkFzQ0M7QUF0TUQseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUNuQyw2Q0FBeUU7QUFFekUsNkJBQTZCO0FBQzdCLHFDQUFzQztBQUV0QyxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDO0FBd0JyRCxTQUFTLGNBQWMsQ0FBQyxHQUFZO0lBQ2xDLE9BQU8sQ0FDTCxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQ3ZCLEdBQUcsS0FBSyxJQUFJO1FBQ1osUUFBUSxJQUFJLEdBQUc7UUFDZixLQUFLLENBQUMsT0FBTyxDQUFFLEdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FDbkMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixlQUFlLENBQzdCLElBQVksRUFDWixNQUEwQjtJQUUxQixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUNiLCtCQUErQixJQUFJLE9BQU87Z0JBQ3hDLENBQUMsQ0FBQyxNQUFNO3FCQUNMLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFB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QUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGgvcG9zaXhcIjtcbmltcG9ydCB7IEFwcCwgRW52aXJvbm1lbnQsIFN0YWNrLCBTdGFnZSwgU3RhZ2VQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSBcInlhbWxcIjtcbmltcG9ydCB7IGNhcGl0YWxpemUgfSBmcm9tIFwiLi9jb21tb25cIjtcblxuY29uc3Qgc3RhZ2VTdWZmaXhWYXJpYWJsZSA9IFwiREVWRUxPUEVSX1NUQUdFX1NVRkZJWFwiO1xuXG5leHBvcnQgdHlwZSBDb25maWdUeXBlID0ge1xuICBlbnY/OiBFbnZpcm9ubWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uQ29uZmlnVHlwZSA9IENvbmZpZ1R5cGUgJiB7XG4gIGJhc2VQbGF0Zm9ybVN0YWNrTmFtZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIHNjaGVtYSB3aGljaCBwcm92aWRlcyBhIGBwYXJzZWAgbWV0aG9kIHRvIHBhcnNlIGNvbmZpZ3VyYXRpb24gZGF0YSByZWFkIGZyb20gYSBjb25maWcgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyc2VhYmxlU2NoZW1hPFQgZXh0ZW5kcyBDb25maWdUeXBlPiA9IHtcbiAgcGFyc2U6IChkYXRhOiB1bmtub3duKSA9PiBUO1xufTtcblxudHlwZSBQcmludGFibGVFcnJvciA9IHtcbiAgZXJyb3JzOiBBcnJheTx7XG4gICAgcGF0aDogc3RyaW5nW107XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9Pjtcbn07XG5cbmZ1bmN0aW9uIGNoZWNrRXJyb3JUeXBlKG9iajogdW5rbm93bik6IG9iaiBpcyBQcmludGFibGVFcnJvciB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJlxuICAgIG9iaiAhPT0gbnVsbCAmJlxuICAgIFwiZXJyb3JzXCIgaW4gb2JqICYmXG4gICAgQXJyYXkuaXNBcnJheSgob2JqIGFzIGFueSkuZXJyb3JzKVxuICApO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgWUFNTCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHZhbGlkYXRlIGl0IGFnYWluc3QgdGhlIGdpdmVuIHNjaGVtYS5cbiAqXG4gKiBAcGFyYW0gZmlsZSB0aGUgZmlsZSB0byBwYXJzZVxuICogQHBhcmFtIHNjaGVtYSB0aGUgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVcbiAqIEByZXR1cm5zIHRoZSBwYXJzZWQgY29uZmlndXJhdGlvbiBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29uZmlnRmlsZTxUIGV4dGVuZHMgQ29uZmlnVHlwZT4oXG4gIGZpbGU6IHN0cmluZyxcbiAgc2NoZW1hOiBQYXJzZWFibGVTY2hlbWE8VD4sXG4pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWdEYXRhID0geWFtbC5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZSwgXCJ1dGYtOFwiKSk7XG4gICAgcmV0dXJuIHNjaGVtYS5wYXJzZShjb25maWdEYXRhKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChjaGVja0Vycm9yVHlwZShlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdW5hYmxlIHRvIHBhcnNlIGNvbmZpZyBmaWxlICR7ZmlsZX06XFxuXFx0YCArXG4gICAgICAgICAgZS5lcnJvcnNcbiAgICAgICAgICAgIC5tYXAoKGVycikgPT4gYGF0ICcke2Vyci5wYXRoLmpvaW4oXCIvXCIpfSc6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgICAgICAgIC5qb2luKFwiXFxuXFx0XCIpLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgc3RhZ2UgY29uZmlndXJhdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBwcm92aWRlZCBjb25maWcgZGlyZWN0b3J5LlxuICpcbiAqIEBwYXJhbSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzdGFnZSBjb25maWd1cmF0aW9uc1xuICogQHBhcmFtIHNjaGVtYSB0aGUgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzXG4gKiBAcGFyYW0gc3RhZ2VOYW1lIHRoZSBuYW1lIG9mIHRoZSBzdGFnZSwgbGVhdmUgdW5kZWZpbmVkIHRvIHJldHVybiBhbGwgc3RhZ2VzXG4gKlxuICogQHJldHVybnMgYSBsaXN0IG9mIHN0YWdlIG5hbWUgYW5kIHBhcnNlZCBjb25maWcgY29udGVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YWdlQ29uZmlndXJhdGlvbnM8VCBleHRlbmRzIENvbmZpZ1R5cGU+KHtcbiAgZGlyZWN0b3J5LFxuICBzY2hlbWEsXG4gIHN0YWdlTmFtZSxcbn06IHtcbiAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gIHNjaGVtYTogUGFyc2VhYmxlU2NoZW1hPFQ+O1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG59KSB7XG4gIHJldHVybiBmc1xuICAgIC5yZWFkZGlyU3luYyhkaXJlY3RvcnkpXG4gICAgLmZpbHRlcihcbiAgICAgIChmaWxlKSA9PlxuICAgICAgICAvXFwuKHlhP21sKSQvLnRlc3QoZmlsZSkgJiZcbiAgICAgICAgKCFzdGFnZU5hbWUgfHwgZmlsZS5yZXBsYWNlKC9cXC4oeWE/bWwpJC8sIFwiXCIpID09PSBzdGFnZU5hbWUpLFxuICAgIClcbiAgICAubWFwKChmaWxlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBmaWxlLnJlcGxhY2UoL1xcLih5YT9tbCkkLywgXCJcIiksXG4gICAgICAgIGNvbmZpZzogcGFyc2VDb25maWdGaWxlKHBhdGguam9pbihkaXJlY3RvcnksIGZpbGUpLCBzY2hlbWEpLFxuICAgICAgfTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGN1XG5cbnN0b20gc3RhY2sgSUQsIGlmIHRoZSB2YXJpYWJsZSBkZWZpbmVkIGluIHtAbGluayBzdGFnZVN1ZmZpeFZhcmlhYmxlfSBpcyBzZXQuXG4gKiBUaGUgdmFsdWUgd2lsbCBiZSBhcHBlbmRlZCBhcyBzdWZmaXggdG8gdGhlIElELiBJZiB0aGUgdmFyaWFibGUgaXMgbm90IHNldCwgdGhlIG9yaWdpbmFsXG4gKiBJRCBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gaWQgVGhlIG9yaWdpbmFsIElEIHRvIGJlIHVzZWQgYWQgYmFzZS5cbiAqIEByZXR1cm5zIFRoZSBzdWZmaXhlZCBJRCBvciB0aGUgb3JpZ2luYWwgSUQsIGlmIG5vIGN1c3RvbSBzdGFjayBpbnN0YW5jZSBpcyBjcmVhdGVkLlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUlkKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgc3RhZ2VTdWZmaXhWYWx1ZSA9IHByb2Nlc3MuZW52W3N0YWdlU3VmZml4VmFyaWFibGVdO1xuICBpZiAoc3RhZ2VTdWZmaXhWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFzdGFnZVN1ZmZpeFZhbHVlLm1hdGNoKC9eW2EtekEtWjAtOV0rJC8pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgdmFsdWUgc2V0IGluICR7c3RhZ2VTdWZmaXhWYXJpYWJsZX0gbWF5IG5vdCBiZSBlbXB0eSBhbmQgbWF5IG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke2lkfS0ke3N0YWdlU3VmZml4VmFsdWV9YDtcbiAgfVxuICByZXR1cm4gaWQ7XG59XG5cbi8qKlxuICogVGVzdCwgaWYgdGhlIGN1cnJlbnQgZGVwbG95bWVudCBpcyB0aGF0IG9mIGEgZGV2ZWxvcGVyIHN0YWNrLiBUaGlzIG1pZ2h0IGJlIG9mIGludGVyZXN0IGZvclxuICogc29tZSBjb25zdHJ1Y3RzLCBhcyBhIGRpZmZlcmVudCBiZWhhdmlvciBpcyBleHBlY3RlZCBpbiB0aGUgZGV2ZWxvcGVyIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCwgaWYgYSBkZXZlbG9wZXIgc3RhY2sgaW5zdGFuY2UgaXMgZGVwbG95ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RldmVsb3BlclN0YWNrKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5lbnZbc3RhZ2VTdWZmaXhWYXJpYWJsZV0gIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgYSBkaWZmZXJlbnRpYXRvciB0aGF0IGNhbiBiZSB1c2VkIGluIGRldmVsb3BlciBzdGFja3MuIFVzZSBjYXNlcyBmb3IgdGhpcyBhcmVcbiAqIGRlcGxveW1lbnRzIG9mIHJlc291cmNlcyB3aGljaCdzIG5hbWUvaWQgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBuYW1lIG9mIHRoZSBzdGFjay5cbiAqIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiBubyBkZXZlbG9wZXIgc3RhY2sgaXMgZGVwbG95ZWQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyAoc3RhcnRpbmcgd2l0aCBhbiB1cHBlcmNhc2UgbGV0dGVyIGZvciB1c2UgaW4gY2FtZWxjYXNlKSB0b1xuICogIGRpZmZlcmVudGlhdGUgdGhlIHJlc291cmNlIG5hbWUgb3IgYW4gZW1wdHkgc3RyaW5nIG9mIG5vIGRldmVsb3BlciBzdGFjayBpc1xuICogIGRlcGxveWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV2ZWxvcGVyU3RhY2tEaWZmZXJlbnRpYXRvcigpOiBzdHJpbmcge1xuICByZXR1cm4gcHJvY2Vzcy5lbnZbc3RhZ2VTdWZmaXhWYXJpYWJsZV0gIT09IHVuZGVmaW5lZFxuICAgID8gY2FwaXRhbGl6ZShwcm9jZXNzLmVudltzdGFnZVN1ZmZpeFZhcmlhYmxlXSlcbiAgICA6IFwiXCI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIEFXUyBDREsgYXBwLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgYSBDREsgYXBwIHdpdGggdGhlIHN0YWdlIGNvbmZpZ3VyYXRpb25zIGZyb20gdGhlXG4gKiBnaXZlbiBkaXJlY3RvcnkuICBUaGUgc3RhZ2UgaXMgY2hvc2VuIGJhc2VkIG9uIHRoZSBDREtfU1RBR0UgZW52aXJvbm1lbnRcbiAqIHZhcmlhYmxlLiBJZiBubyBzdGFnZSBpcyBzcGVjaWZpZWQsIGFsbCBzdGFnZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgYXBwLlxuICpcbiAqIEBwYXJhbSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBzdGFnZSBjb25maWd1cmF0aW9uc1xuICogQHBhcmFtIHNjaGVtYSB0aGUgc2NoZW1hIHRvIHZhbGlkYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzXG4gKiBAcGFyYW0gY3JlYXRlU3RhY2sgYSBmdW5jdGlvbiB3aGljaCBpbnN0YW50aWF0ZXMgYSB1c2VyLXByb3ZpZGVkIHN0YWNrXG4gKlxuICogQHJldHVybnMgdGhlIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwPFQgZXh0ZW5kcyBDb25maWdUeXBlPih7XG4gIGRpcmVjdG9yeSxcbiAgc2NoZW1hLFxuICBjcmVhdGVTdGFjayxcbn06IHtcbiAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gIHNjaGVtYTogUGFyc2VhYmxlU2NoZW1hPFQ+O1xuICBjcmVhdGVTdGFjazogKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbmZpZzogVCkgPT4gU3RhY2s7XG59KSB7XG4gIGNvbnN0IHN0YWdlTmFtZSA9IHByb2Nlc3MuZW52LkNES19TVEFHRSB8fCB1bmRlZmluZWQ7XG5cbiAgaWYgKCFzdGFnZU5hbWUpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBcIndhcm5pbmc6IG5vIHN0YWdlIHNwZWNpZmllZCB2aWEgQ0RLX1NUQUdFLCBzeW50aGVzaXppbmcgYWxsIHN0YWdlcy4gVGhpcyBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudC5cIixcbiAgICApO1xuICB9XG5cbiAgY2xhc3MgQXBwU3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBzY29wZTogQ29uc3RydWN0LFxuICAgICAgaWQ6IHN0cmluZyxcbiAgICAgIHByb3BzOiBTdGFnZVByb3BzLFxuICAgICAgc3RhY2tDb25maWc6IFQsXG4gICAgKSB7XG4gICAgICBzdXBlcihzY29wZSwgZ2VuZXJhdGVJZChpZCksIHByb3BzKTtcbiAgICAgIGNyZWF0ZVN0YWNrKHRoaXMsIHN0YWNrQ29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbiAgZ2V0U3RhZ2VDb25maWd1cmF0aW9ucyh7IGRpcmVjdG9yeSwgc2NoZW1hLCBzdGFnZU5hbWUgfSkuZm9yRWFjaChcbiAgICAoeyBuYW1lLCBjb25maWcgfSkgPT4ge1xuICAgICAgbmV3IEFwcFN0YWdlKGFwcCwgbmFtZSwgeyBlbnY6IGNvbmZpZy5lbnYgfSwgY29uZmlnKTtcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiBhcHA7XG59XG4iXX0=
|