projen 0.76.20 → 0.76.22
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 +2947 -91
- package/lib/awscdk/auto-discover.js +5 -5
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +2 -2
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +1 -1
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +7 -2
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +1 -1
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/index.d.ts +1 -0
- package/lib/javascript/index.js +2 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/node-package.d.ts +35 -0
- package/lib/javascript/node-package.js +38 -2
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.d.ts +334 -0
- package/lib/javascript/yarnrc.js +149 -0
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +2 -2
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-runtime.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc-ts.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +7 -7
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +1 -1
|
@@ -127,5 +127,5 @@ class Bundler extends component_1.Component {
|
|
|
127
127
|
}
|
|
128
128
|
exports.Bundler = Bundler;
|
|
129
129
|
_a = JSII_RTTI_SYMBOL_1;
|
|
130
|
-
Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.76.
|
|
130
|
+
Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.76.22" };
|
|
131
131
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsaUNBQTBDO0FBQzFDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUFtQ2pEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLHFCQUFTO0lBQ3BDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxPQUFPLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFVBQTBCLEVBQUU7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoRCxXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUVILHNEQUFzRDtZQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLFVBQWtCLEVBQUUsT0FBeUI7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sSUFBSSxHQUFHO1lBQ1gsU0FBUztZQUNULFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYSxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQzlCLGVBQWUsT0FBTyxDQUFDLFFBQVEsR0FBRztZQUNsQyxjQUFjLE9BQU8sR0FBRztTQUN6QixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFDL0MsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUN2QztRQUVELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUI7UUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUM3QyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDckUsSUFBSSxPQUFPLEVBQUU7WUFDWCxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFO1lBQ3hELFdBQVcsRUFBRSxtQ0FBbUMsVUFBVSxFQUFFO1lBQzVELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxTQUFTLENBQUM7UUFDZCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUN4QyxJQUFJLEtBQUssRUFBRTtZQUNULFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksUUFBUSxFQUFFO2dCQUN2RCxXQUFXLEVBQUUsa0RBQWtELFVBQVUsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVTthQUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQjtRQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYztZQUM3QixDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLDZCQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7QUFoSkgsMEJBaUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVuZGVyQnVuZGxlTmFtZSB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQnVuZGxlcmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHNlbWFudGljIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIGBlc2J1aWxkYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzcGVjaWZpYyB2ZXJzaW9uIChpbXBsaWVzIGxhdGVzdClcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZGlyZWN0b3J5IGZvciBhbGwgYnVuZGxlcy5cbiAgICogQGRlZmF1bHQgXCJhc3NldHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRzRGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnN0YWxsIHRoZSBgYnVuZGxlYCBjb21tYW5kIGFzIGEgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZFRvUHJlQ29tcGlsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBmaWxlIGV4dGVuc2lvbnMgKHdpdGhvdXQgZG90KSBhbmQgbG9hZGVycyB0byB1c2UgZm9yIHRoaXMgZmlsZSB0eXBlLlxuICAgKiBMb2FkZXJzIGFyZSBhcHBlbmRlZCB0byB0aGUgZXNidWlsZCBjb21tYW5kIGJ5IGAtLWxvYWRlcjouZXh0ZW5zaW9uPWxvYWRlcmBcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEFkZHMgc3VwcG9ydCBmb3IgYnVuZGxpbmcgSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBpbnRvIGFcbiAqIHNpbmdsZSBmaWxlLiBJbiB0aGUgZnV0dXJlLCB0aGlzIHdpbGwgYWxzbyBzdXBwb3J0cyBidW5kbGluZyB3ZWJzaXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJ1bmRsZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYEJ1bmRsZXJgIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBhIHByb2plY3Qgb3IgYHVuZGVmaW5lZGAgaWZcbiAgICogdGhlcmUgaXMgbm8gQnVuZGxlci5cbiAgICogQHBhcmFtIHByb2plY3QgVGhlIHByb2plY3RcbiAgICogQHJldHVybnMgQSBidW5kbGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBCdW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0J1bmRsZXIgPSAobzogQ29tcG9uZW50KTogbyBpcyBCdW5kbGVyID0+IG8gaW5zdGFuY2VvZiBCdW5kbGVyO1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0J1bmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBgZXNidWlsZGAgKGlmIGRlZmluZWQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJvb3QgYnVuZGxlIGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidW5kbGVkaXI6IHN0cmluZztcblxuICBwcml2YXRlIF90YXNrOiBUYXNrIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IGFkZFRvUHJlQ29tcGlsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGBCdW5kbGVyYC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEJ1bmRsZXJPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZXNidWlsZFZlcnNpb24gPSBvcHRpb25zLmVzYnVpbGRWZXJzaW9uO1xuICAgIHRoaXMuYnVuZGxlZGlyID0gb3B0aW9ucy5hc3NldHNEaXIgPz8gXCJhc3NldHNcIjtcbiAgICB0aGlzLmFkZFRvUHJlQ29tcGlsZSA9IG9wdGlvbnMuYWRkVG9QcmVDb21waWxlID8/IHRydWU7XG4gICAgdGhpcy5sb2FkZXJzID0gb3B0aW9ucy5sb2FkZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgb3IgY3JlYXRlcyB0aGUgc2luZ2xldG9uIFwiYnVuZGxlXCIgdGFzayBvZiB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogSWYgdGhlIHByb2plY3QgZG9lc24ndCBoYXZlIGEgXCJidW5kbGVcIiB0YXNrLCBpdCB3aWxsIGJlIGNyZWF0ZWQgYW5kIHNwYXduZWRcbiAgICogZHVyaW5nIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYnVuZGxlVGFzaygpOiBUYXNrIHtcbiAgICBpZiAoIXRoaXMuX3Rhc2spIHtcbiAgICAgIHRoaXMuYWRkQnVuZGxpbmdTdXBwb3J0KCk7XG4gICAgICB0aGlzLl90YXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLmFkZFRhc2soXCJidW5kbGVcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmVwYXJlIGFzc2V0c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIGluc3RhbGwgdGhlIGJ1bmRsZSB0YXNrIGludG8gdGhlIHByZS1jb21waWxlIHBoYXNlLlxuICAgICAgaWYgKHRoaXMuYWRkVG9QcmVDb21waWxlKSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5wcmVDb21waWxlVGFzay5zcGF3bih0aGlzLl90YXNrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGFzayB0byB0aGUgcHJvamVjdCB3aGljaCBidW5kbGVzIGEgc3BlY2lmaWMgZW50cnlwb2ludCBhbmQgYWxsIG9mXG4gICAqIGl0cyBkZXBlbmRlbmNpZXMgaW50byBhIHNpbmdsZSBqYXZhc2NyaXB0IG91dHB1dCBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZW50cnlwb2ludCBUaGUgcmVsYXRpdmUgcGF0aCBvZiB0aGUgYXJ0aWZhY3Qgd2l0aGluIHRoZSBwcm9qZWN0XG4gICAqIEBwYXJhbSBvcHRpb25zIEJ1bmRsaW5nIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBhZGRCdW5kbGUoZW50cnlwb2ludDogc3RyaW5nLCBvcHRpb25zOiBBZGRCdW5kbGVPcHRpb25zKTogQnVuZGxlIHtcbiAgICBjb25zdCBuYW1lID0gcmVuZGVyQnVuZGxlTmFtZShlbnRyeXBvaW50KTtcblxuICAgIGNvbnN0IG91dGRpciA9IHBhdGgucG9zaXguam9pbih0aGlzLmJ1bmRsZWRpciwgbmFtZSk7XG4gICAgY29uc3Qgb3V0ZmlsZSA9IHBhdGgucG9zaXguam9pbihvdXRkaXIsIG9wdGlvbnMub3V0ZmlsZSA/PyBcImluZGV4LmpzXCIpO1xuICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICBcImVzYnVpbGRcIixcbiAgICAgIFwiLS1idW5kbGVcIixcbiAgICAgIGVudHJ5cG9pbnQsXG4gICAgICBgLS10YXJnZXQ9XCIke29wdGlvbnMudGFyZ2V0fVwiYCxcbiAgICAgIGAtLXBsYXRmb3JtPVwiJHtvcHRpb25zLnBsYXRmb3JtfVwiYCxcbiAgICAgIGAtLW91dGZpbGU9XCIke291dGZpbGV9XCJgLFxuICAgIF07XG5cbiAgICBjb25zdCB0c2NvbmZpZyA9IG9wdGlvbnMudHNjb25maWdQYXRoID8/IGZhbHNlO1xuICAgIGlmICh0c2NvbmZpZykge1xuICAgICAgYXJncy5wdXNoKGAtLXRzY29uZmlnPVwiJHt0c2NvbmZpZ31cImApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgeCBvZiBvcHRpb25zLmV4dGVybmFscyA/PyBbXSkge1xuICAgICAgYXJncy5wdXNoKGAtLWV4dGVybmFsOiR7eH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2VtYXAgPSBvcHRpb25zLnNvdXJjZW1hcCA/PyBmYWxzZTtcbiAgICBpZiAoc291cmNlbWFwKSB7XG4gICAgICBhcmdzLnB1c2goXCItLXNvdXJjZW1hcFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkZXJzID1cbiAgICAgIG9wdGlvbnMubG9hZGVycyA/PyBmYWxzZSA/IG9wdGlvbnMubG9hZGVycyA6IHRoaXMubG9hZGVycyA/PyBmYWxzZTtcbiAgICBpZiAobG9hZGVycykge1xuICAgICAgZm9yIChsZXQgW2V4dGVuc2lvbiwgbG9hZGVyXSBvZiBPYmplY3QuZW50cmllcyhsb2FkZXJzKSkge1xuICAgICAgICBhcmdzLnB1c2goYC0tbG9hZGVyOi4ke2V4dGVuc2lvbn09JHtsb2FkZXJ9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYnVuZGxlVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKGBidW5kbGU6JHtuYW1lfWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlIGEgSmF2YVNjcmlwdCBidW5kbGUgZnJvbSAke2VudHJ5cG9pbnR9YCxcbiAgICAgIGV4ZWM6IGFyZ3Muam9pbihcIiBcIiksXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1bmRsZVRhc2suc3Bhd24oYnVuZGxlVGFzayk7XG5cbiAgICBpZiAob3B0aW9ucy5leGVjdXRhYmxlID8/IGZhbHNlKSB7XG4gICAgICBidW5kbGVUYXNrLmV4ZWMoYGNobW9kICt4ICR7b3V0ZmlsZX1gKTtcbiAgICB9XG5cbiAgICBsZXQgd2F0Y2hUYXNrO1xuICAgIGNvbnN0IHdhdGNoID0gb3B0aW9ucy53YXRjaFRhc2sgPz8gdHJ1ZTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKGBidW5kbGU6JHtuYW1lfTp3YXRjaGAsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IGBDb250aW51b3VzbHkgdXBkYXRlIHRoZSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgICBleGVjOiBgJHthcmdzLmpvaW4oXCIgXCIpfSAtLXdhdGNoYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBidW5kbGVUYXNrOiBidW5kbGVUYXNrLFxuICAgICAgd2F0Y2hUYXNrOiB3YXRjaFRhc2ssXG4gICAgICBvdXRkaXI6IG91dGRpcixcbiAgICAgIG91dGZpbGU6IG91dGZpbGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYnVuZGxpbmcgc3VwcG9ydCB0byBhIHByb2plY3QuIFRoaXMgaXMgY2FsbGVkIGltcGxpY2l0bHkgd2hlblxuICAgKiBgYnVuZGxlVGFza2AgaXMgcmVmZXJlbmNlZCBmaXJzdC4gSXQgYWRkcyB0aGUgZGVwZW5kZW5jeSBvbiBgZXNidWlsZGAsXG4gICAqIGdpdGlnbm9yZS9ucG1pZ25vcmUsIGV0Yy5cbiAgICovXG4gIHByaXZhdGUgYWRkQnVuZGxpbmdTdXBwb3J0KCkge1xuICAgIGNvbnN0IGlnbm9yZUVudHJ5ID0gYC8ke3RoaXMuYnVuZGxlZGlyfS9gO1xuICAgIHRoaXMucHJvamVjdC5hZGRHaXRJZ25vcmUoaWdub3JlRW50cnkpO1xuICAgIHRoaXMucHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAhJHtpZ25vcmVFbnRyeX1gKTsgLy8gaW5jbHVkZSBpbiB0YXJiYWxsXG4gICAgY29uc3QgZGVwID0gdGhpcy5lc2J1aWxkVmVyc2lvblxuICAgICAgPyBgZXNidWlsZEAke3RoaXMuZXNidWlsZFZlcnNpb259YFxuICAgICAgOiBcImVzYnVpbGRcIjtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlIHtcbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcHJvZHVjZXMgdGhpcyBidW5kbGUuXG4gICAqL1xuICByZWFkb25seSBidW5kbGVUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUaGUgXCJ3YXRjaFwiIHRhc2sgZm9yIHRoaXMgYnVuZGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hUYXNrPzogVGFzaztcblxuICAvKipcbiAgICogTG9jYXRpb24gb2YgdGhlIG91dHB1dCBmaWxlIChyZWxhdGl2ZSB0byBwcm9qZWN0IHJvb3QpLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZmlsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCYXNlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBvdXRwdXQgZmlsZSAocmVsYXRpdmUgdG8gcHJvamVjdCByb290KS5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1bmRsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBZb3UgY2FuIG1hcmsgYSBmaWxlIG9yIGEgcGFja2FnZSBhcyBleHRlcm5hbCB0byBleGNsdWRlIGl0IGZyb20geW91ciBidWlsZC5cbiAgICogSW5zdGVhZCBvZiBiZWluZyBidW5kbGVkLCB0aGUgaW1wb3J0IHdpbGwgYmUgcHJlc2VydmVkICh1c2luZyByZXF1aXJlIGZvclxuICAgKiB0aGUgaWlmZSBhbmQgY2pzIGZvcm1hdHMgYW5kIHVzaW5nIGltcG9ydCBmb3IgdGhlIGVzbSBmb3JtYXQpIGFuZCB3aWxsIGJlXG4gICAqIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBUaGlzIGhhcyBzZXZlcmFsIHVzZXMuIEZpcnN0IG9mIGFsbCwgaXQgY2FuIGJlIHVzZWQgdG8gdHJpbSB1bm5lY2Vzc2FyeVxuICAgKiBjb2RlIGZyb20geW91ciBidW5kbGUgZm9yIGEgY29kZSBwYXRoIHRoYXQgeW91IGtub3cgd2lsbCBuZXZlciBiZSBleGVjdXRlZC5cbiAgICogRm9yIGV4YW1wbGUsIGEgcGFja2FnZSBtYXkgY29udGFpbiBjb2RlIHRoYXQgb25seSBydW5zIGluIG5vZGUgYnV0IHlvdSB3aWxsXG4gICAqIG9ubHkgYmUgdXNpbmcgdGhhdCBwYWNrYWdlIGluIHRoZSBicm93c2VyLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGltcG9ydFxuICAgKiBjb2RlIGluIG5vZGUgYXQgcnVuIHRpbWUgZnJvbSBhIHBhY2thZ2UgdGhhdCBjYW5ub3QgYmUgYnVuZGxlZC4gRm9yXG4gICAqIGV4YW1wbGUsIHRoZSBmc2V2ZW50cyBwYWNrYWdlIGNvbnRhaW5zIGEgbmF0aXZlIGV4dGVuc2lvbiwgd2hpY2ggZXNidWlsZFxuICAgKiBkb2Vzbid0IHN1cHBvcnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSW5jbHVkZSBhIHNvdXJjZSBtYXAgaW4gdGhlIGJ1bmRsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluIGFkZGl0aW9uIHRvIHRoZSBgYnVuZGxlOnh5emAgdGFzaywgY3JlYXRlcyBgYnVuZGxlOnh5ejp3YXRjaGAgdGFzayB3aGljaCB3aWxsXG4gICAqIGludm9rZSB0aGUgc2FtZSBlc2J1aWxkIGNvbW1hbmQgd2l0aCB0aGUgYC0td2F0Y2hgIGZsYWcuIFRoaXMgY2FuIGJlIHVzZWRcbiAgICogdG8gY29udGludXNvdWx5IHdhdGNoIGZvciBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB3YXRjaFRhc2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBhZGRCdW5kbGUoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQnVuZGxlT3B0aW9ucyBleHRlbmRzIEJ1bmRsaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBlc2J1aWxkIHRhcmdldC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJub2RlMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzYnVpbGQgcGxhdGZvcm0uXG4gICAqXG4gICAqIEBleGFtcGxlIFwibm9kZVwiXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdW5kbGVyIG91dHB1dCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBhc3NldCdzIG91dHB1dCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IFwiaW5kZXguanNcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogTWFyayB0aGUgb3V0cHV0IGZpbGUgYXMgZXhlY3V0YWJsZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGFibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgdHNjb25maWcuanNvbiBmaWxlIHRvIHVzZSBmb3IgYnVuZGxpbmdcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogTWFwIG9mIGZpbGUgZXh0ZW5zaW9ucyAod2l0aG91dCBkb3QpIGFuZCBsb2FkZXJzIHRvIHVzZSBmb3IgdGhpcyBmaWxlIHR5cGUuXG4gICAqIExvYWRlcnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlc2J1aWxkIGNvbW1hbmQgYnkgYC0tbG9hZGVyOi5leHRlbnNpb249bG9hZGVyYFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=
|
package/lib/javascript/eslint.js
CHANGED
|
@@ -315,5 +315,5 @@ class Eslint extends component_1.Component {
|
|
|
315
315
|
}
|
|
316
316
|
exports.Eslint = Eslint;
|
|
317
317
|
_a = JSII_RTTI_SYMBOL_1;
|
|
318
|
-
Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.76.
|
|
318
|
+
Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.76.22" };
|
|
319
319
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXNDO0FBRXRDLHNDQUFzQztBQUN0Qyw0Q0FBeUM7QUFFekMsa0NBQW1DO0FBRW5DLGtDQUFtQztBQXVIbkM7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxxQkFBUztJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFZLEVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxNQUFNLENBQUM7UUFDcEUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBbUNELFlBQVksT0FBb0IsRUFBRSxPQUFzQjtRQUN0RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUE3QmpCOztXQUVHO1FBQ2EsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFtQmhDLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzdCLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBUTVDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxVQUFVLENBQ2hCLFdBQVcsRUFDWCxxQ0FBcUMsRUFDckMsOEJBQThCLEVBQzlCLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFDbkMsc0JBQXNCLENBQ3ZCLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksa0JBQVMsQ0FBQztR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QztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUNuQjtZQUNFLFFBQVE7WUFDUixTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLE9BQU87WUFDUCxpQ0FBaUM7WUFDakMsR0FBRyxJQUFJLENBQUMsYUFBYTtTQUN0QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO0lBQ0osQ0FBQzs7QUF4WUgsd0JBeVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZXIgfSBmcm9tIFwiLi9wcmV0dGllclwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgUFJPSkVOX1JDIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi4vanNvblwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNsaW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGB0c2NvbmZpZy5qc29uYCB3aGljaCBzaG91bGQgYmUgdXNlZCBieSBlc2xpbnQuXG4gICAqIEBkZWZhdWx0IFwiLi90c2NvbmZpZy5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsZXMgb3IgZ2xvYiBwYXR0ZXJucyBvciBkaXJlY3RvcmllcyB3aXRoIHNvdXJjZSBmaWxlcyB0byBsaW50IChlLmcuIFsgXCJzcmNcIiBdKVxuICAgKi9cbiAgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEZpbGVzIG9yIGdsb2IgcGF0dGVybnMgb3IgZGlyZWN0b3JpZXMgd2l0aCBzb3VyY2UgZmlsZXMgdGhhdCBpbmNsdWRlIHRlc3RzIGFuZCBidWlsZCB0b29sc1xuICAgKlxuICAgKiBUaGVzZSBzb3VyY2VzIGFyZSBsaW50ZWQgYnV0IG1heSBhbHNvIGltcG9ydCBwYWNrYWdlcyBmcm9tIGBkZXZEZXBlbmRlbmNpZXNgLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2ZGlycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBGaWxlIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGxpbnRlZCAoZS5nLiBbIFwiLmpzXCIsIFwiLnRzXCIgXSlcbiAgICogQGRlZmF1bHQgW1wiLnRzXCJdXG4gICAqL1xuICByZWFkb25seSBmaWxlRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGZpbGUgcGF0dGVybnMgdGhhdCBzaG91bGQgbm90IGJlIGxpbnRlZCwgdXNpbmcgdGhlIHNhbWUgc3ludGF4XG4gICAqIGFzIC5naXRpZ25vcmUgcGF0dGVybnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsgJyouanMnLCAnKi5kLnRzJywgJ25vZGVfbW9kdWxlcy8nLCAnKi5nZW5lcmF0ZWQudHMnLCAnY292ZXJhZ2UnIF1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFByb2plbnJjIGZpbGUgdG8gbGludC4gVXNlIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlLlxuICAgKiBAZGVmYXVsdCBQUk9KRU5fUkNcbiAgICogQGRlcHJlY2F0ZWQgcHJvdmlkZSBhcyBgZGV2ZGlyc2BcbiAgICovXG4gIHJlYWRvbmx5IGxpbnRQcm9qZW5SY0ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBsaW50IC5wcm9qZW5yYy5qc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBkZXByZWNhdGVkIHNldCB0byBgZmFsc2VgIHRvIHJlbW92ZSBhbnkgYXV0b21hdGljIHJ1bGVzIGFuZCBhZGQgbWFudWFsbHlcbiAgICovXG4gIHJlYWRvbmx5IGxpbnRQcm9qZW5SYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBwcmV0dGllciBmb3IgY29kZSBmb3JtYXR0aW5nXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcmV0dGllcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBpbXBvcnQgYWxpYXMgZm9yIG1vZHVsZSBwYXRoc1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTWFwPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRW5hYmxlIGltcG9ydCBhbGlhcyBmb3IgbW9kdWxlIHBhdGhzXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsd2F5cyB0cnkgdG8gcmVzb2x2ZSB0eXBlcyB1bmRlciBgPHJvb3Q+QHR5cGVzYCBkaXJlY3RvcnkgZXZlbiBpdCBkb2Vzbid0IGNvbnRhaW4gYW55IHNvdXJjZSBjb2RlLlxuICAgKiBUaGlzIHByZXZlbnRzIGBpbXBvcnQvbm8tdW5yZXNvbHZlZGAgZXNsaW50IGVycm9ycyB3aGVuIGltcG9ydGluZyBhIGBAdHlwZXMvKmAgbW9kdWxlIHRoYXQgd291bGQgb3RoZXJ3aXNlIHJlbWFpbiB1bnJlc29sdmVkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0c0Fsd2F5c1RyeVR5cGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV3JpdGUgZXNsaW50IGNvbmZpZ3VyYXRpb24gYXMgWUFNTCBpbnN0ZWFkIG9mIEpTT05cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHlhbWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIGVzbGludCBydWxlcyBvdmVycmlkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVzbGludE92ZXJyaWRlIHtcbiAgLyoqXG4gICAqIEZpbGVzIG9yIGZpbGUgcGF0dGVybnMgb24gd2hpY2ggdG8gYXBwbHkgdGhlIG92ZXJyaWRlXG4gICAqL1xuICByZWFkb25seSBmaWxlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBhdHRlcm4ocykgdG8gZXhjbHVkZSBmcm9tIHRoaXMgb3ZlcnJpZGUuXG4gICAqIElmIGEgZmlsZSBtYXRjaGVzIGFueSBvZiB0aGUgZXhjbHVkZWQgcGF0dGVybnMsIHRoZSBjb25maWd1cmF0aW9uIHdvbuKAmXQgYXBwbHkuXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlZEZpbGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZW4gcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogeyBbcnVsZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZGVuIHBhcnNlclxuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWcocykgdG8gZXh0ZW5kIGluIHRoaXMgb3ZlcnJpZGVcbiAgICovXG4gIHJlYWRvbmx5IGV4dGVuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogYHBsdWdpbnNgIG92ZXJyaWRlXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBlc2xpbnQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b25lIEVzbGludCBjb21wb25lbnQgb2YgYSBwcm9qZWN0IG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBub25lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogRXNsaW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0VzbGludCA9IChjOiBDb21wb25lbnQpOiBjIGlzIEVzbGludCA9PiBjIGluc3RhbmNlb2YgRXNsaW50O1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0VzbGludCk7XG4gIH1cblxuICAvKipcbiAgICogZXNsaW50IHJ1bGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJ1bGVzOiB7IFtydWxlOiBzdHJpbmddOiBhbnlbXSB9O1xuXG4gIC8qKlxuICAgKiBlc2xpbnQgb3ZlcnJpZGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG92ZXJyaWRlczogRXNsaW50T3ZlcnJpZGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBlc2xpbnQgdGFzay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlc2xpbnRUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEaXJlY3QgYWNjZXNzIHRvIHRoZSBlc2xpbnQgY29uZmlndXJhdGlvbiAoZXNjYXBlIGhhdGNoKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZzogYW55O1xuXG4gIC8qKlxuICAgKiBGaWxlIHBhdHRlcm5zIHRoYXQgc2hvdWxkIG5vdCBiZSBsaW50ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBfZm9ybWF0dGluZ1J1bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxvd0RldkRlcHM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbHVnaW5zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZUV4dGVuc2lvbnM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9saW50UGF0dGVybnM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVQcm9qZWN0OiBOb2RlUHJvamVjdDtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogRXNsaW50T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5ub2RlUHJvamVjdCA9IHByb2plY3Q7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcHMoXG4gICAgICBcImVzbGludEBeOFwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvZXNsaW50LXBsdWdpbkBeNlwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyQF42XCIsXG4gICAgICBcImVzbGludC1pbXBvcnQtcmVzb2x2ZXItbm9kZVwiLFxuICAgICAgXCJlc2xpbnQtaW1wb3J0LXJlc29sdmVyLXR5cGVzY3JpcHRcIixcbiAgICAgIFwiZXNsaW50LXBsdWdpbi1pbXBvcnRcIlxuICAgICk7XG5cbiAgICBpZiAob3B0aW9ucy5hbGlhc01hcCkge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKFwiZXNsaW50LWltcG9ydC1yZXNvbHZlci1hbGlhc1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBsaW50UHJvamVuUmMgPSBvcHRpb25zLmxpbnRQcm9qZW5SYyA/PyB0cnVlO1xuICAgIGNvbnN0IGxpbnRQcm9qZW5SY0ZpbGUgPSBvcHRpb25zLmxpbnRQcm9qZW5SY0ZpbGUgPz8gUFJPSkVOX1JDO1xuXG4gICAgY29uc3QgZGV2ZGlycyA9IG9wdGlvbnMuZGV2ZGlycyA/PyBbXTtcblxuICAgIHRoaXMuX2xpbnRQYXR0ZXJucyA9IG5ldyBTZXQoW1xuICAgICAgLi4ub3B0aW9ucy5kaXJzLFxuICAgICAgLi4uZGV2ZGlycyxcbiAgICAgIC4uLihsaW50UHJvamVuUmMgJiYgbGludFByb2plblJjRmlsZSA/IFtsaW50UHJvamVuUmNGaWxlXSA6IFtdKSxcbiAgICBdKTtcbiAgICB0aGlzLl9maWxlRXh0ZW5zaW9ucyA9IG5ldyBTZXQob3B0aW9ucy5maWxlRXh0ZW5zaW9ucyA/PyBbXCIudHNcIl0pO1xuXG4gICAgdGhpcy5fYWxsb3dEZXZEZXBzID0gbmV3IFNldCgoZGV2ZGlycyA/PyBbXSkubWFwKChkaXIpID0+IGAqKi8ke2Rpcn0vKipgKSk7XG5cbiAgICB0aGlzLmVzbGludFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJlc2xpbnRcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiUnVucyBlc2xpbnQgYWdhaW5zdCB0aGUgY29kZWJhc2VcIixcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZVRhc2soKTtcblxuICAgIHByb2plY3QudGVzdFRhc2suc3Bhd24odGhpcy5lc2xpbnRUYXNrKTtcblxuICAgIC8vIGV4Y2x1ZGUgc29tZSBmaWxlc1xuICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKFwiLy5lc2xpbnRyYy5qc29uXCIpO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1J1bGVzID0ge1xuICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90eXBlc2NyaXB0LWVzbGludC90eXBlc2NyaXB0LWVzbGludC9ibG9iL21hc3Rlci9wYWNrYWdlcy9lc2xpbnQtcGx1Z2luL2RvY3MvcnVsZXMvaW5kZW50Lm1kXG4gICAgICBpbmRlbnQ6IFtcIm9mZlwiXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudFwiOiBbXCJlcnJvclwiLCAyXSxcblxuICAgICAgLy8gU3R5bGVcbiAgICAgIHF1b3RlczogW1wiZXJyb3JcIiwgXCJzaW5nbGVcIiwgeyBhdm9pZEVzY2FwZTogdHJ1ZSB9XSxcbiAgICAgIFwiY29tbWEtZGFuZ2xlXCI6IFtcImVycm9yXCIsIFwiYWx3YXlzLW11bHRpbGluZVwiXSwgLy8gZW5zdXJlcyBjbGVhbiBkaWZmcywgc2VlIGh0dHBzOi8vbWVkaXVtLmNvbS9AbmlrZ3JhZi93aHkteW91LXNob3VsZC1lbmZvcmNlLWRhbmdsaW5nLWNvbW1hcy1mb3ItbXVsdGlsaW5lLXN0YXRlbWVudHMtZDAzNGM5OGUzNmY4XG4gICAgICBcImNvbW1hLXNwYWNpbmdcIjogW1wiZXJyb3JcIiwgeyBiZWZvcmU6IGZhbHNlLCBhZnRlcjogdHJ1ZSB9XSwgLy8gc3BhY2UgYWZ0ZXIsIG5vIHNwYWNlIGJlZm9yZVxuICAgICAgXCJuby1tdWx0aS1zcGFjZXNcIjogW1wiZXJyb3JcIiwgeyBpZ25vcmVFT0xDb21tZW50czogZmFsc2UgfV0sIC8vIG5vIG11bHRpIHNwYWNlc1xuICAgICAgXCJhcnJheS1icmFja2V0LXNwYWNpbmdcIjogW1wiZXJyb3JcIiwgXCJuZXZlclwiXSwgLy8gWzEsIDIsIDNdXG4gICAgICBcImFycmF5LWJyYWNrZXQtbmV3bGluZVwiOiBbXCJlcnJvclwiLCBcImNvbnNpc3RlbnRcIl0sIC8vIGVuZm9yY2UgY29uc2lzdGVudCBsaW5lIGJyZWFrcyBiZXR3ZWVuIGJyYWNrZXRzXG4gICAgICBcIm9iamVjdC1jdXJseS1zcGFjaW5nXCI6IFtcImVycm9yXCIsIFwiYWx3YXlzXCJdLCAvLyB7IGtleTogJ3ZhbHVlJyB9XG4gICAgICBcIm9iamVjdC1jdXJseS1uZXdsaW5lXCI6IFtcImVycm9yXCIsIHsgbXVsdGlsaW5lOiB0cnVlLCBjb25zaXN0ZW50OiB0cnVlIH1dLCAvLyBlbmZvcmNlIGNvbnNpc3RlbnQgbGluZSBicmVha3MgYmV0d2VlbiBicmFjZXNcbiAgICAgIFwib2JqZWN0LXByb3BlcnR5LW5ld2xpbmVcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgYWxsb3dBbGxQcm9wZXJ0aWVzT25TYW1lTGluZTogdHJ1ZSB9LFxuICAgICAgXSwgLy8gZW5mb3JjZSBcInNhbWUgbGluZVwiIG9yIFwibXVsdGlwbGUgbGluZVwiIG9uIG9iamVjdCBwcm9wZXJ0aWVzXG4gICAgICBcImtleXdvcmQtc3BhY2luZ1wiOiBbXCJlcnJvclwiXSwgLy8gcmVxdWlyZSBhIHNwYWNlIGJlZm9yZSAmIGFmdGVyIGtleXdvcmRzXG4gICAgICBcImJyYWNlLXN0eWxlXCI6IFtcImVycm9yXCIsIFwiMXRic1wiLCB7IGFsbG93U2luZ2xlTGluZTogdHJ1ZSB9XSwgLy8gZW5mb3JjZSBvbmUgdHJ1ZSBicmFjZSBzdHlsZVxuICAgICAgXCJzcGFjZS1iZWZvcmUtYmxvY2tzXCI6IFtcImVycm9yXCJdLCAvLyByZXF1aXJlIHNwYWNlIGJlZm9yZSBibG9ja3NcbiAgICAgIGN1cmx5OiBbXCJlcnJvclwiLCBcIm11bHRpLWxpbmVcIiwgXCJjb25zaXN0ZW50XCJdLCAvLyByZXF1aXJlIGN1cmx5IGJyYWNlcyBmb3IgbXVsdGlsaW5lIGNvbnRyb2wgc3RhdGVtZW50c1xuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLWRlbGltaXRlci1zdHlsZVwiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gUmVxdWlyZSBzZW1pY29sb25zXG4gICAgICBzZW1pOiBbXCJlcnJvclwiLCBcImFsd2F5c1wiXSxcblxuICAgICAgLy8gTWF4IGxpbmUgbGVuZ3Roc1xuICAgICAgXCJtYXgtbGVuXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7XG4gICAgICAgICAgY29kZTogMTUwLFxuICAgICAgICAgIGlnbm9yZVVybHM6IHRydWUsIC8vIE1vc3QgY29tbW9uIHJlYXNvbiB0byBkaXNhYmxlIGl0XG4gICAgICAgICAgaWdub3JlU3RyaW5nczogdHJ1ZSwgLy8gVGhlc2UgYXJlIG5vdCBmYW50YXN0aWMgYnV0IG5lY2Vzc2FyeSBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgICBpZ25vcmVUZW1wbGF0ZUxpdGVyYWxzOiB0cnVlLFxuICAgICAgICAgIGlnbm9yZUNvbW1lbnRzOiB0cnVlLFxuICAgICAgICAgIGlnbm9yZVJlZ0V4cExpdGVyYWxzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcblxuICAgICAgLy8gRG9uJ3QgdW5uZWNlc3NhcmlseSBxdW90ZSBwcm9wZXJ0aWVzXG4gICAgICBcInF1b3RlLXByb3BzXCI6IFtcImVycm9yXCIsIFwiY29uc2lzdGVudC1hcy1uZWVkZWRcIl0sXG4gICAgfTtcblxuICAgIHRoaXMucnVsZXMgPSB7XG4gICAgICAvLyBSZXF1aXJlIHVzZSBvZiB0aGUgYGltcG9ydCB7IGZvbyB9IGZyb20gJ2Jhcic7YCBmb3JtIGluc3RlYWQgb2YgYGltcG9ydCBmb28gPSByZXF1aXJlKCdiYXInKTtgXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIFJlcXVpcmUgYWxsIGltcG9ydGVkIGRlcGVuZGVuY2llcyBhcmUgYWN0dWFsbHkgZGVjbGFyZWQgaW4gcGFja2FnZS5qc29uXG4gICAgICBcImltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1wiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIC8vIE9ubHkgYWxsb3cgaW1wb3J0aW5nIGRldkRlcGVuZGVuY2llcyBmcm9tIFwiZGV2ZGlyc1wiLlxuICAgICAgICAgIGRldkRlcGVuZGVuY2llczogKCkgPT4gdGhpcy5yZW5kZXJEZXZEZXBzQWxsb3dMaXN0KCksXG4gICAgICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IGZhbHNlLCAvLyBEaXNhbGxvdyBpbXBvcnRpbmcgb3B0aW9uYWwgZGVwZW5kZW5jaWVzICh0aG9zZSBzaG91bGRuJ3QgYmUgaW4gdXNlIGluIHRoZSBwcm9qZWN0KVxuICAgICAgICAgIHBlZXJEZXBlbmRlbmNpZXM6IHRydWUsIC8vIEFsbG93IGltcG9ydGluZyBwZWVyIGRlcGVuZGVuY2llcyAodGhhdCBhcmVuJ3QgYWxzbyBkaXJlY3QgZGVwZW5kZW5jaWVzKVxuICAgICAgICB9LFxuICAgICAgXSxcblxuICAgICAgLy8gUmVxdWlyZSBhbGwgaW1wb3J0ZWQgbGlicmFyaWVzIGFjdHVhbGx5IHJlc29sdmUgKCEhcmVxdWlyZWQgZm9yIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyB0byB3b3JrISEpXG4gICAgICBcImltcG9ydC9uby11bnJlc29sdmVkXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBSZXF1aXJlIGFuIG9yZGVyaW5nIG9uIGFsbCBpbXBvcnRzXG4gICAgICBcImltcG9ydC9vcmRlclwiOiBbXG4gICAgICAgIFwid2FyblwiLFxuICAgICAgICB7XG4gICAgICAgICAgZ3JvdXBzOiBbXCJidWlsdGluXCIsIFwiZXh0ZXJuYWxcIl0sXG4gICAgICAgICAgYWxwaGFiZXRpemU6IHsgb3JkZXI6IFwiYXNjXCIsIGNhc2VJbnNlbnNpdGl2ZTogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgXSxcblxuICAgICAgLy8gQ2Fubm90IGltcG9ydCBmcm9tIHRoZSBzYW1lIG1vZHVsZSB0d2ljZVxuICAgICAgXCJuby1kdXBsaWNhdGUtaW1wb3J0c1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gQ2Fubm90IHNoYWRvdyBuYW1lc1xuICAgICAgXCJuby1zaGFkb3dcIjogW1wib2ZmXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93XCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBSZXF1aXJlZCBzcGFjaW5nIGluIHByb3BlcnR5IGRlY2xhcmF0aW9ucyAoY29waWVkIGZyb20gVFNMaW50LCBkZWZhdWx0cyBhcmUgZ29vZClcbiAgICAgIFwia2V5LXNwYWNpbmdcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE5vIG11bHRpcGxlIGVtcHR5IGxpbmVzXG4gICAgICBcIm5vLW11bHRpcGxlLWVtcHR5LWxpbmVzXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBPbmUgb2YgdGhlIGVhc2llc3QgbWlzdGFrZXMgdG8gbWFrZVxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGluc2lkZSB0cnkvY2F0Y2ggYmxvY2tzLCBwcm9taXNlcyBhcmUgJ3JldHVybiBhd2FpdCdlZFxuICAgICAgLy8gKG11c3QgZGlzYWJsZSB0aGUgYmFzZSBydWxlIGFzIGl0IGNhbiByZXBvcnQgaW5jb3JyZWN0IGVycm9ycylcbiAgICAgIFwibm8tcmV0dXJuLWF3YWl0XCI6IFtcIm9mZlwiXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3JldHVybi1hd2FpdFwiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gVXNlbGVzcyBkaWZmIHJlc3VsdHNcbiAgICAgIFwibm8tdHJhaWxpbmctc3BhY2VzXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBNdXN0IHVzZSBmb28uYmFyIGluc3RlYWQgb2YgZm9vWydiYXInXSBpZiBwb3NzaWJsZVxuICAgICAgXCJkb3Qtbm90YXRpb25cIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIEFyZSB5b3Ugc3VyZSB8IGlzIG5vdCBhIHR5cG8gZm9yIHx8ID9cbiAgICAgIFwibm8tYml0d2lzZVwiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gTWVtYmVyIG9yZGVyaW5nXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgICBcInB1YmxpYy1zdGF0aWMtZmllbGRcIixcbiAgICAgICAgICAgIFwicHVibGljLXN0YXRpYy1tZXRob2RcIixcbiAgICAgICAgICAgIFwicHJvdGVjdGVkLXN0YXRpYy1maWVsZFwiLFxuICAgICAgICAgICAgXCJwcm90ZWN0ZWQtc3RhdGljLW1ldGhvZFwiLFxuICAgICAgICAgICAgXCJwcml2YXRlLXN0YXRpYy1maWVsZFwiLFxuICAgICAgICAgICAgXCJwcml2YXRlLXN0YXRpYy1tZXRob2RcIixcblxuICAgICAgICAgICAgXCJmaWVsZFwiLFxuXG4gICAgICAgICAgICAvLyBDb25zdHJ1Y3RvcnNcbiAgICAgICAgICAgIFwiY29uc3RydWN0b3JcIiwgLy8gPSBbXCJwdWJsaWMtY29uc3RydWN0b3JcIiwgXCJwcm90ZWN0ZWQtY29uc3RydWN0b3JcIiwgXCJwcml2YXRlLWNvbnN0cnVjdG9yXCJdXG5cbiAgICAgICAgICAgIC8vIE1ldGhvZHNcbiAgICAgICAgICAgIFwibWV0aG9kXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIC8vIE92ZXJyaWRlcyBmb3IgLnByb2plbnJjLmpzXG4gICAgLy8gQGRlcHJlY2F0ZWRcbiAgICBpZiAobGludFByb2plblJjKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpbGVzOiBbbGludFByb2plblJjRmlsZSB8fCBQUk9KRU5fUkNdLFxuICAgICAgICAgIHJ1bGVzOiB7XG4gICAgICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogXCJvZmZcIixcbiAgICAgICAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFwib2ZmXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgdGhpcy5pZ25vcmVQYXR0ZXJucyA9IG9wdGlvbnMuaWdub3JlUGF0dGVybnMgPz8gW1xuICAgICAgXCIqLmpzXCIsXG4gICAgICAvLyBAZGVwcmVjYXRlZFxuICAgICAgLi4uKGxpbnRQcm9qZW5SYyA/IFtgISR7bGludFByb2plblJjRmlsZSB8fCBQUk9KRU5fUkN9YF0gOiBbXSksXG4gICAgICBcIiouZC50c1wiLFxuICAgICAgXCJub2RlX21vZHVsZXMvXCIsXG4gICAgICBcIiouZ2VuZXJhdGVkLnRzXCIsXG4gICAgICBcImNvdmVyYWdlXCIsXG4gICAgXTtcblxuICAgIGNvbnN0IHRzY29uZmlnID0gb3B0aW9ucy50c2NvbmZpZ1BhdGggPz8gXCIuL3RzY29uZmlnLmpzb25cIjtcblxuICAgIHRoaXMuYWRkUGx1Z2lucyhcIkB0eXBlc2NyaXB0LWVzbGludFwiKTtcbiAgICB0aGlzLmFkZFBsdWdpbnMoXCJpbXBvcnRcIik7XG4gICAgdGhpcy5hZGRFeHRlbmRzKFwicGx1Z2luOmltcG9ydC90eXBlc2NyaXB0XCIpO1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBlbnY6IHtcbiAgICAgICAgamVzdDogdHJ1ZSxcbiAgICAgICAgbm9kZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByb290OiB0cnVlLFxuICAgICAgcGx1Z2luczogdGhpcy5fcGx1Z2lucyxcbiAgICAgIHBhcnNlcjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyXCIsXG4gICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgIGVjbWFWZXJzaW9uOiAyMDE4LFxuICAgICAgICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxuICAgICAgICBwcm9qZWN0OiB0c2NvbmZpZyxcbiAgICAgIH0sXG4gICAgICBleHRlbmRzOiB0aGlzLl9leHRlbmRzLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgXCJpbXBvcnQvcGFyc2Vyc1wiOiB7XG4gICAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyXCI6IFtcIi50c1wiLCBcIi50c3hcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1wb3J0L3Jlc29sdmVyXCI6IHtcbiAgICAgICAgICAuLi4ob3B0aW9ucy5hbGlhc01hcCAmJiB7XG4gICAgICAgICAgICBhbGlhczoge1xuICAgICAgICAgICAgICBtYXA6IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYWxpYXNNYXApLm1hcCgoW2ssIHZdKSA9PiBbaywgdl0pLFxuICAgICAgICAgICAgICBleHRlbnNpb25zOiBvcHRpb25zLmFsaWFzRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbm9kZToge30sXG4gICAgICAgICAgdHlwZXNjcmlwdDoge1xuICAgICAgICAgICAgcHJvamVjdDogdHNjb25maWcsXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy50c0Fsd2F5c1RyeVR5cGVzICE9PSBmYWxzZSAmJiB7IGFsd2F5c1RyeVR5cGVzOiB0cnVlIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaWdub3JlUGF0dGVybnM6IHRoaXMuaWdub3JlUGF0dGVybnMsXG4gICAgICBydWxlczogKCkgPT4gKHsgLi4udGhpcy5fZm9ybWF0dGluZ1J1bGVzLCAuLi50aGlzLnJ1bGVzIH0pLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLm92ZXJyaWRlcyxcbiAgICB9O1xuXG4gICAgaWYgKG9wdGlvbnMueWFtbCkge1xuICAgICAgbmV3IFlhbWxGaWxlKHByb2plY3QsIFwiLmVzbGludHJjLnltbFwiLCB7XG4gICAgICAgIG9iajogdGhpcy5jb25maWcsXG4gICAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgXCIuZXNsaW50cmMuanNvblwiLCB7XG4gICAgICAgIG9iajogdGhpcy5jb25maWcsXG4gICAgICAgIC8vIGh0dHBzOi8vZXNsaW50Lm9yZy9kb2NzL2xhdGVzdC91c2VyLWd1aWRlL2NvbmZpZ3VyaW5nL2NvbmZpZ3VyYXRpb24tZmlsZXMjY29tbWVudHMtaW4tY29uZmlndXJhdGlvbi1maWxlc1xuICAgICAgICBtYXJrZXI6IHRydWUsXG4gICAgICAgIGFsbG93Q29tbWVudHM6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgdXNlciBlbmFibGVkIHByZXR0aWVyIGV4cGxpY2l0bHkgX29yXyBpZiB0aGUgcHJvamVjdCBoYXMgYVxuICAgIC8vIGBQcmV0dGllcmAgY29tcG9uZW50LCB3ZSBzaGFsbCB0d2VhayBvdXIgY29uZmlndXJhdGlvbiBhY2NvcmRpbmdseS5cbiAgICBpZiAob3B0aW9ucy5wcmV0dGllciB8fCBQcmV0dGllci5vZihwcm9qZWN0KSkge1xuICAgICAgdGhpcy5lbmFibGVQcmV0dGllcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmaWxlLCBnbG9iIHBhdHRlcm4gb3IgZGlyZWN0b3J5IHdpdGggc291cmNlIGZpbGVzIHRvIGxpbnQgKGUuZy4gWyBcInNyY1wiIF0pXG4gICAqL1xuICBwdWJsaWMgYWRkTGludFBhdHRlcm4ocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy5fbGludFBhdHRlcm5zLmFkZChwYXR0ZXJuKTtcbiAgICB0aGlzLnVwZGF0ZVRhc2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXNsaW50IHJ1bGUuXG4gICAqL1xuICBwdWJsaWMgYWRkUnVsZXMocnVsZXM6IHsgW3J1bGU6IHN0cmluZ106IGFueSB9KSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocnVsZXMpKSB7XG4gICAgICB0aGlzLnJ1bGVzW2tdID0gdjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBlc2xpbnQgcGx1Z2luXG4gICAqIEBwYXJhbSBwbHVnaW5zIFRoZSBuYW1lcyBvZiBwbHVnaW5zIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFBsdWdpbnMoLi4ucGx1Z2luczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiBwbHVnaW5zKSB7XG4gICAgICB0aGlzLl9wbHVnaW5zLmFkZChwbHVnaW4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXNsaW50IG92ZXJyaWRlLlxuICAgKi9cbiAgcHVibGljIGFkZE92ZXJyaWRlKG92ZXJyaWRlOiBFc2xpbnRPdmVycmlkZSkge1xuICAgIHRoaXMub3ZlcnJpZGVzLnB1c2gob3ZlcnJpZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIG5vdCBsaW50IHRoZXNlIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIGFkZElnbm9yZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy5pZ25vcmVQYXR0ZXJucy5wdXNoKHBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gYGV4dGVuZHNgIGl0ZW0gdG8gdGhlIGVzbGludCBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gZXh0ZW5kTGlzdCBUaGUgbGlzdCBvZiBcImV4dGVuZHNcIiB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkRXh0ZW5kcyguLi5leHRlbmRMaXN0OiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgZXh0ZW5kIG9mIGV4dGVuZExpc3QpIHtcbiAgICAgIHRoaXMuX2V4dGVuZHMuYWRkKGV4dGVuZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGdsb2IgZmlsZSBwYXR0ZXJuIHdoaWNoIGFsbG93cyBpbXBvcnRpbmcgZGV2IGRlcGVuZGVuY2llcy5cbiAgICogQHBhcmFtIHBhdHRlcm4gZ2xvYiBwYXR0ZXJuLlxuICAgKi9cbiAgcHVibGljIGFsbG93RGV2RGVwcyhwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbGxvd0RldkRlcHMuYWRkKHBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgcHJldHRpZXIgZm9yIGNvZGUgZm9ybWF0dGluZy5cbiAgICovXG4gIHByaXZhdGUgZW5hYmxlUHJldHRpZXIoKSB7XG4gICAgdGhpcy5ub2RlUHJvamVjdC5hZGREZXZEZXBzKFxuICAgICAgXCJwcmV0dGllclwiLFxuICAgICAgXCJlc2xpbnQtcGx1Z2luLXByZXR0aWVyXCIsXG4gICAgICBcImVzbGludC1jb25maWctcHJldHRpZXJcIlxuICAgICk7XG5cbiAgICB0aGlzLmFkZFBsdWdpbnMoXCJwcmV0dGllclwiKTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdSdWxlcyA9IHtcbiAgICAgIFwicHJldHRpZXIvcHJldHRpZXJcIjogW1wiZXJyb3JcIl0sXG4gICAgfTtcblxuICAgIHRoaXMuYWRkRXh0ZW5kcyhcInByZXR0aWVyXCIsIFwicGx1Z2luOnByZXR0aWVyL3JlY29tbWVuZGVkXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJEZXZEZXBzQWxsb3dMaXN0KCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2FsbG93RGV2RGVwcyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSB0YXNrIHdpdGggdGhlIGN1cnJlbnQgbGlzdCBvZiBsaW50IHBhdHRlcm5zIGFuZCBmaWxlIGV4dGVuc2lvbnNcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlVGFzaygpIHtcbiAgICB0aGlzLmVzbGludFRhc2sucmVzZXQoXG4gICAgICBbXG4gICAgICAgIFwiZXNsaW50XCIsXG4gICAgICAgIGAtLWV4dCAke1suLi50aGlzLl9maWxlRXh0ZW5zaW9uc10uam9pbihcIixcIil9YCxcbiAgICAgICAgXCItLWZpeFwiLFxuICAgICAgICBcIi0tbm8tZXJyb3Itb24tdW5tYXRjaGVkLXBhdHRlcm5cIixcbiAgICAgICAgLi4udGhpcy5fbGludFBhdHRlcm5zLFxuICAgICAgXS5qb2luKFwiIFwiKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/javascript/index.js
CHANGED
|
@@ -24,4 +24,5 @@ __exportStar(require("./prettier"), exports);
|
|
|
24
24
|
__exportStar(require("./projenrc"), exports);
|
|
25
25
|
__exportStar(require("./typescript-config"), exports);
|
|
26
26
|
__exportStar(require("./upgrade-dependencies"), exports);
|
|
27
|
-
|
|
27
|
+
__exportStar(require("./yarnrc"), exports);
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQixzREFBb0M7QUFDcEMseURBQXVDO0FBQ3ZDLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2J1bmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VzbGludFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vamVzdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1wYWNrYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLXByb2plY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25wbS1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXR0aWVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9qZW5yY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdC1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3VwZ3JhZGUtZGVwZW5kZW5jaWVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi95YXJucmNcIjtcbiJdfQ==
|
package/lib/javascript/jest.js
CHANGED
|
@@ -27,7 +27,7 @@ class Transform {
|
|
|
27
27
|
}
|
|
28
28
|
exports.Transform = Transform;
|
|
29
29
|
_a = JSII_RTTI_SYMBOL_1;
|
|
30
|
-
Transform[_a] = { fqn: "projen.javascript.Transform", version: "0.76.
|
|
30
|
+
Transform[_a] = { fqn: "projen.javascript.Transform", version: "0.76.22" };
|
|
31
31
|
class WatchPlugin {
|
|
32
32
|
constructor(name, options) {
|
|
33
33
|
this.name = name;
|
|
@@ -46,7 +46,7 @@ class WatchPlugin {
|
|
|
46
46
|
}
|
|
47
47
|
exports.WatchPlugin = WatchPlugin;
|
|
48
48
|
_b = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
WatchPlugin[_b] = { fqn: "projen.javascript.WatchPlugin", version: "0.76.
|
|
49
|
+
WatchPlugin[_b] = { fqn: "projen.javascript.WatchPlugin", version: "0.76.22" };
|
|
50
50
|
var UpdateSnapshot;
|
|
51
51
|
(function (UpdateSnapshot) {
|
|
52
52
|
/**
|
|
@@ -76,7 +76,7 @@ class JestReporter {
|
|
|
76
76
|
}
|
|
77
77
|
exports.JestReporter = JestReporter;
|
|
78
78
|
_c = JSII_RTTI_SYMBOL_1;
|
|
79
|
-
JestReporter[_c] = { fqn: "projen.javascript.JestReporter", version: "0.76.
|
|
79
|
+
JestReporter[_c] = { fqn: "projen.javascript.JestReporter", version: "0.76.22" };
|
|
80
80
|
/**
|
|
81
81
|
* Installs the following npm scripts:
|
|
82
82
|
*
|
|
@@ -259,5 +259,5 @@ class Jest extends component_1.Component {
|
|
|
259
259
|
}
|
|
260
260
|
exports.Jest = Jest;
|
|
261
261
|
_d = JSII_RTTI_SYMBOL_1;
|
|
262
|
-
Jest[_d] = { fqn: "projen.javascript.Jest", version: "0.76.
|
|
262
|
+
Jest[_d] = { fqn: "projen.javascript.Jest", version: "0.76.22" };
|
|
263
263
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2plc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsaUNBQWlDO0FBQ2pDLDRDQUF5QztBQUN6Qyw4Q0FBNEM7QUFDNUMsa0NBQW1DO0FBR25DLE1BQU0sd0JBQXdCLEdBQUcsY0FBYyxDQUFDO0FBbWVoRCxNQUFhLFNBQVM7SUFDcEIsWUFDbUIsSUFBWSxFQUNaLE9BQWE7UUFEYixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtJQUM3QixDQUFDO0lBRUo7OztPQUdHO0lBQ0ksTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBZkgsOEJBZ0JDOzs7QUFFRCxNQUFhLFdBQVc7SUFDdEIsWUFDbUIsSUFBWSxFQUNaLE9BQWE7UUFEYixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtJQUM3QixDQUFDO0lBRUo7OztPQUdHO0lBQ0ksTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBZkgsa0NBZ0JDOzs7QUFxRkQsSUFBWSxjQVVYO0FBVkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsbUNBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCxpQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFWVyxjQUFj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Q0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFO1lBQ3hFLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNqQyxXQUFXLEVBQUUsd0JBQXdCO2dCQUNyQyxJQUFJLEVBQUUsZUFBZSxjQUFjLEVBQUU7YUFDdEMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQXBQSCxvQkFxUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSBcInNlbXZlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi4vanNvblwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbmNvbnN0IERFRkFVTFRfVEVTVF9SRVBPUlRTX0RJUiA9IFwidGVzdC1yZXBvcnRzXCI7XG5cbi8vIFB1bGxlZCBmcm9tIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvZW4vY29uZmlndXJhdGlvblxuZXhwb3J0IGludGVyZmFjZSBKZXN0Q29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiB0ZWxscyBKZXN0IHRoYXQgYWxsIGltcG9ydGVkIG1vZHVsZXMgaW4geW91ciB0ZXN0cyBzaG91bGQgYmUgbW9ja2VkIGF1dG9tYXRpY2FsbHkuXG4gICAqIEFsbCBtb2R1bGVzIHVzZWQgaW4geW91ciB0ZXN0cyB3aWxsIGhhdmUgYSByZXBsYWNlbWVudCBpbXBsZW1lbnRhdGlvbiwga2VlcGluZyB0aGUgQVBJIHN1cmZhY2VcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b21vY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBKZXN0IHJ1bnMgYWxsIHRlc3RzIGFuZCBwcm9kdWNlcyBhbGwgZXJyb3JzIGludG8gdGhlIGNvbnNvbGUgdXBvbiBjb21wbGV0aW9uLlxuICAgKiBUaGUgYmFpbCBjb25maWcgb3B0aW9uIGNhbiBiZSB1c2VkIGhlcmUgdG8gaGF2ZSBKZXN0IHN0b3AgcnVubmluZyB0ZXN0cyBhZnRlciBuIGZhaWx1cmVzLlxuICAgKiBTZXR0aW5nIGJhaWwgdG8gdHJ1ZSBpcyB0aGUgc2FtZSBhcyBzZXR0aW5nIGJhaWwgdG8gMS5cbiAgICogQGRlZmF1bHQgLSAwXG4gICAqL1xuICByZWFkb25seSBiYWlsPzogYm9vbGVhbiB8IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSBKZXN0IHNob3VsZCBzdG9yZSBpdHMgY2FjaGVkIGRlcGVuZGVuY3kgaW5mb3JtYXRpb25cbiAgICogQGRlZmF1bHQgLSBcIi90bXAvPHBhdGg+XCJcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGNsZWFyIG1vY2sgY2FsbHMgYW5kIGluc3RhbmNlcyBiZWZvcmUgZXZlcnkgdGVzdC5cbiAgICogRXF1aXZhbGVudCB0byBjYWxsaW5nIGplc3QuY2xlYXJBbGxNb2NrcygpIGJlZm9yZSBlYWNoIHRlc3QuXG4gICAqIFRoaXMgZG9lcyBub3QgcmVtb3ZlIGFueSBtb2NrIGltcGxlbWVudGF0aW9uIHRoYXQgbWF5IGhhdmUgYmVlbiBwcm92aWRlZFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjbGVhck1vY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvdmVyYWdlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBjb2xsZWN0ZWQgd2hpbGUgZXhlY3V0aW5nIHRoZSB0ZXN0LlxuICAgKiBCZWNhdXNlIHRoaXMgcmV0cm9maXRzIGFsbCBleGVjdXRlZCBmaWxlcyB3aXRoIGNvdmVyYWdlIGNvbGxlY3Rpb24gc3RhdGVtZW50cyxcbiAgICogaXQgbWF5IHNpZ25pZmljYW50bHkgc2xvdyBkb3duIHlvdXIgdGVzdHNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29sbGVjdENvdmVyYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgZ2xvYiBwYXR0ZXJucyBpbmRpY2F0aW5nIGEgc2V0IG9mIGZpbGVzIGZvciB3aGljaCBjb3ZlcmFnZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgY29sbGVjdGVkLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgY29sbGVjdENvdmVyYWdlRnJvbT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIEplc3Qgc2hvdWxkIG91dHB1dCBpdHMgY292ZXJhZ2UgZmlsZXMuXG4gICAqIEBkZWZhdWx0IFwiY292ZXJhZ2VcIlxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZ3MgdGhhdCBhcmUgbWF0Y2hlZCBhZ2FpbnN0IGFsbCBmaWxlIHBhdGhzIGJlZm9yZSBleGVjdXRpbmcgdGhlIHRlc3QuXG4gICAqIElmIHRoZSBmaWxlIHBhdGggbWF0Y2hlcyBhbnkgb2YgdGhlIHBhdHRlcm5zLCBjb3ZlcmFnZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHNraXBwZWRcbiAgICogQGRlZmF1bHQgXCIvbm9kZV9tb2R1bGVzL1wiXG4gICAqL1xuICByZWFkb25seSBjb3ZlcmFnZVBhdGhJZ25vcmVQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hpY2ggcHJvdmlkZXIgc2hvdWxkIGJlIHVzZWQgdG8gaW5zdHJ1bWVudCBjb2RlIGZvciBjb3ZlcmFnZS5cbiAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIGJhYmVsIChkZWZhdWx0KSBvciB2OFxuICAgKiBAZGVmYXVsdCAtIFwiYmFiZWxcIlxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VQcm92aWRlcj86IFwiYmFiZWxcIiB8IFwidjhcIjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHJlcG9ydGVyIG5hbWVzIHRoYXQgSmVzdCB1c2VzIHdoZW4gd3JpdGluZyBjb3ZlcmFnZSByZXBvcnRzLiBBbnkgaXN0YW5idWwgcmVwb3J0ZXIgY2FuIGJlIHVzZWRcbiAgICogQGRlZmF1bHQgLSBbXCJqc29uXCIsIFwibGNvdlwiLCBcInRleHRcIiwgXCJjbG92ZXJcIiwgXCJjb2JlcnR1cmFcIl1cbiAgICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlUmVwb3J0ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGdsb2JhbCBjb3ZlcmFnZSB0aHJlc2hvbGRzLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBjb25maWd1cmUgbWluaW11bSB0aHJlc2hvbGQgZW5mb3JjZW1lbnRcbiAgICogZm9yIGNvdmVyYWdlIHJlc3VsdHMuIFRocmVzaG9sZHMgY2FuIGJlIHNwZWNpZmllZCBhcyBnbG9iYWwsIGFzIGEgZ2xvYiwgYW5kIGFzIGEgZGlyZWN0b3J5IG9yIGZpbGUgcGF0aC5cbiAgICogSWYgdGhyZXNob2xkcyBhcmVuJ3QgbWV0LCBqZXN0IHdpbGwgZmFpbC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlVGhyZXNob2xkPzogQ292ZXJhZ2VUaHJlc2hvbGQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlIG9mIGEgY3VzdG9tIGRlcGVuZGVuY3kgZXh0cmFjdG9yLlxuICAgKiBJdCBtdXN0IGJlIGEgbm9kZSBtb2R1bGUgdGhhdCBleHBvcnRzIGFuIG9iamVjdCB3aXRoIGFuIGV4dHJhY3QgZnVuY3Rpb25cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lFeHRyYWN0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBmb3IgYSBsYWJlbCB0byBiZSBwcmludGVkIGFsb25nc2lkZSBhIHRlc3Qgd2hpbGUgaXQgaXMgcnVubmluZy5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nIHwgYW55O1xuXG4gIC8qKlxuICAgKiBNYWtlIGNhbGxpbmcgZGVwcmVjYXRlZCBBUElzIHRocm93IGhlbHBmdWwgZXJyb3IgbWVzc2FnZXMuIFVzZWZ1bCBmb3IgZWFzaW5nIHRoZSB1cGdyYWRlIHByb2Nlc3MuXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVycm9yT25EZXByZWNhdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGVzdCBmaWxlcyBydW4gaW5zaWRlIGEgdm0sIHdoaWNoIHNsb3dzIGNhbGxzIHRvIGdsb2JhbCBjb250ZXh0IHByb3BlcnRpZXMgKGUuZy4gTWF0aCkuXG4gICAqIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBzcGVjaWZ5IGV4dHJhIHByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZCBpbnNpZGUgdGhlIHZtIGZvciBmYXN0ZXIgbG9va3Vwcy5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhR2xvYmFscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUZXN0IGZpbGVzIGFyZSBub3JtYWxseSBpZ25vcmVkIGZyb20gY29sbGVjdGluZyBjb2RlIGNvdmVyYWdlLlxuICAgKiBXaXRoIHRoaXMgb3B0aW9uLCB5b3UgY2FuIG92ZXJ3cml0ZSB0aGlzIGJlaGF2aW9yIGFuZCBpbmNsdWRlIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIGluIGNvZGUgY292ZXJhZ2UuXG4gICAqIEBkZWZhdWx0IC0gWycnXVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VDb3ZlcmFnZU1hdGNoPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGdsb2JhbCB2YXJpYWJsZXMgdGhhdCBuZWVkIHRvIGJlIGF2YWlsYWJsZSBpbiBhbGwgdGVzdCBlbnZpcm9ubWVudHMuXG4gICAqIEBkZWZhdWx0IC0ge31cbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbHM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlIG9mIGEgY3VzdG9tIGdsb2JhbCBzZXR1cCBtb2R1bGUgd2hpY2ggZXhwb3J0cyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0IGlzXG4gICAqIHRyaWdnZXJlZCBvbmNlIGJlZm9yZSBhbGwgdGVzdCBzdWl0ZXMuIFRoaXMgZnVuY3Rpb24gZ2V0cyBKZXN0J3MgZ2xvYmFsQ29uZmlnIG9iamVjdCBhcyBhIHBhcmFtZXRlci5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNldHVwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHVzZSBvZiBhIGN1c3RvbSBnbG9iYWwgdGVhcmRvd24gbW9kdWxlIHdoaWNoIGV4cG9ydHMgYW4gYXN5bmMgZnVuY3Rpb24gdGhhdCBpc1xuICAgKiB0cmlnZ2VyZWQgb25jZSBhZnRlciBhbGwgdGVzdCBzdWl0ZXMuIFRoaXMgZnVuY3Rpb24gZ2V0cyBKZXN0J3MgZ2xvYmFsQ29uZmlnIG9iamVjdCBhcyBhIHBhcmFtZXRlci5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFRlYXJkb3duPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBjb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIGplc3QtaGFzdGUtbWFwLCBKZXN0J3MgaW50ZXJuYWwgZmlsZSBjcmF3bGVyL2NhY2hlIHN5c3RlbS5cbiAgICogQGRlZmF1bHQgLSB7fVxuICAgKi9cbiAgcmVhZG9ubHkgaGFzdGU/OiBIYXN0ZUNvbmZpZztcblxuICAvKipcbiAgICogSW5zZXJ0IEplc3QncyBnbG9iYWxzIChleHBlY3QsIHRlc3QsIGRlc2NyaWJlLCBiZWZvcmVFYWNoIGV0Yy4pIGludG8gdGhlIGdsb2JhbCBlbnZpcm9ubWVudC5cbiAgICogSWYgeW91IHNldCB0aGlzIHRvIGZhbHNlLCB5b3Ugc2hvdWxkIGltcG9ydCBmcm9tIEBqZXN0L2dsb2JhbHNcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbmplY3RHbG9iYWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBudW1iZXIgbGltaXRpbmcgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IGFyZSBhbGxvd2VkIHRvIHJ1biBhdCB0aGUgc2FtZSB0aW1lIHdoZW4gdXNpbmcgdGVzdC5jb25jdXJyZW50LlxuICAgKiBBbnkgdGVzdCBhYm92ZSB0aGlzIGxpbWl0IHdpbGwgYmUgcXVldWVkIGFuZCBleGVjdXRlZCBvbmNlIGEgc2xvdCBpcyByZWxlYXNlZC5cbiAgICogQGRlZmF1bHQgLSA1XG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXJzIHRoZSB3b3JrZXItcG9vbCB3aWxsIHNwYXduIGZvciBydW5uaW5nIHRlc3RzLiBJbiBzaW5nbGUgcnVuIG1vZGUsXG4gICAqIHRoaXMgZGVmYXVsdHMgdG8gdGhlIG51bWJlciBvZiB0aGUgY29yZXMgYXZhaWxhYmxlIG9uIHlvdXIgbWFjaGluZSBtaW51cyBvbmUgZm9yIHRoZSBtYWluIHRocmVhZFxuICAgKiBJbiB3YXRjaCBtb2RlLCB0aGlzIGRlZmF1bHRzIHRvIGhhbGYgb2YgdGhlIGF2YWlsYWJsZSBjb3JlcyBvbiB5b3VyIG1hY2hpbmUuXG4gICAqIEZvciBlbnZpcm9ubWVudHMgd2l0aCB2YXJpYWJsZSBDUFVzIGF2YWlsYWJsZSwgeW91IGNhbiB1c2UgcGVyY2VudGFnZSBiYXNlZCBjb25maWd1cmF0aW9uOiBcIm1heFdvcmtlcnNcIjogXCI1MCVcIlxuICAgKiBAZGVmYXVsdCAtIHRoZSBudW1iZXIgb2YgdGhlIGNvcmVzIGF2YWlsYWJsZSBvbiB5b3VyIG1hY2hpbmUgbWludXMgb25lIGZvciB0aGUgbWFpbiB0aHJlYWRcbiAgICovXG4gIHJlYWRvbmx5IG1heFdvcmtlcnM/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGRpcmVjdG9yeSBuYW1lcyB0byBiZSBzZWFyY2hlZCByZWN1cnNpdmVseSB1cCBmcm9tIHRoZSByZXF1aXJpbmcgbW9kdWxlJ3MgbG9jYXRpb24uXG4gICAqIFNldHRpbmcgdGhpcyBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCwgaWYgeW91IHdpc2ggdG8gc3RpbGwgc2VhcmNoIG5vZGVfbW9kdWxlcyBmb3IgcGFja2FnZXNcbiAgICogaW5jbHVkZSBpdCBhbG9uZyB3aXRoIGFueSBvdGhlciBvcHRpb25zOiBbXCJub2RlX21vZHVsZXNcIiwgXCJib3dlcl9jb21wb25lbnRzXCJdXG4gICAqIEBkZWZhdWx0IC0gW1wibm9kZV9tb2R1bGVzXCJdXG4gICAqL1xuICByZWFkb25seSBtb2R1bGVEaXJlY3Rvcmllcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBmaWxlIGV4dGVuc2lvbnMgeW91ciBtb2R1bGVzIHVzZS4gSWYgeW91IHJlcXVpcmUgbW9kdWxlcyB3aXRob3V0IHNwZWNpZnlpbmcgYSBmaWxlIGV4dGVuc2lvbixcbiAgICogdGhlc2UgYXJlIHRoZSBleHRlbnNpb25zIEplc3Qgd2lsbCBsb29rIGZvciwgaW4gbGVmdC10by1yaWdodCBvcmRlci5cbiAgICogQGRlZmF1bHQgLSBbXCJqc1wiLCBcImpzb25cIiwgXCJqc3hcIiwgXCJ0c1wiLCBcInRzeFwiLCBcIm5vZGVcIl1cbiAgICovXG4gIHJlYWRvbmx5IG1vZHVsZUZpbGVFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbWFwIGZyb20gcmVndWxhciBleHByZXNzaW9ucyB0byBtb2R1bGUgbmFtZXMgb3IgdG8gYXJyYXlzIG9mIG1vZHVsZSBuYW1lcyB0aGF0IGFsbG93IHRvIHN0dWIgb3V0XG4gICAqIHJlc291cmNlcywgbGlrZSBpbWFnZXMgb3Igc3R5bGVzIHdpdGggYSBzaW5nbGUgbW9kdWxlLlxuICAgKiBAZGVmYXVsdCAtIG51bGxcbiAgICovXG4gIHJlYWRvbmx5IG1vZHVsZU5hbWVNYXBwZXI/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZ3MgdGhhdCBhcmUgbWF0Y2hlZCBhZ2FpbnN0IGFsbCBtb2R1bGUgcGF0aHMgYmVmb3JlIHRob3NlIHBhdGhzIGFyZVxuICAgKiB0byBiZSBjb25zaWRlcmVkICd2aXNpYmxlJyB0byB0aGUgbW9kdWxlIGxvYWRlci4gSWYgYSBnaXZlbiBtb2R1bGUncyBwYXRoIG1hdGNoZXMgYW55IG9mIHRoZSBwYXR0ZXJucyxcbiAgICogaXQgd2lsbCBub3QgYmUgcmVxdWlyZSgpLWFibGUgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IG1vZHVsZVBhdGhJZ25vcmVQYXR0ZXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhbHRlcm5hdGl2ZSBBUEkgdG8gc2V0dGluZyB0aGUgTk9ERV9QQVRIIGVudiB2YXJpYWJsZSwgbW9kdWxlUGF0aHMgaXMgYW4gYXJyYXkgb2YgYWJzb2x1dGUgcGF0aHNcbiAgICogdG8gYWRkaXRpb25hbCBsb2NhdGlvbnMgdG8gc2VhcmNoIHdoZW4gcmVzb2x2aW5nIG1vZHVsZXMuIFVzZSB0aGUgPHJvb3REaXI+IHN0cmluZyB0b2tlbiB0byBpbmNsdWRlXG4gICAqIHRoZSBwYXRoIHRvIHlvdXIgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LiBFeGFtcGxlOiBbXCI8cm9vdERpcj4vYXBwL1wiXS5cbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlUGF0aHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy5cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIG5vdGlmaWNhdGlvbiBtb2RlLiBSZXF1aXJlcyBub3RpZnk6IHRydWVcbiAgICogQGRlZmF1bHQgLSBmYWlsdXJlLWNoYW5nZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5TW9kZT86XG4gICAgfCBcImFsd2F5c1wiXG4gICAgfCBcImZhaWx1cmVcIlxuICAgIHwgXCJzdWNjZXNzXCJcbiAgICB8IFwiY2hhbmdlXCJcbiAgICB8IFwic3VjY2Vzcy1jaGFuZ2VcIlxuICAgIHwgXCJmYWlsdXJlLWNoYW5nZVwiO1xuXG4gIC8qKlxuICAgKiBBIHByZXNldCB0aGF0IGlzIHVzZWQgYXMgYSBiYXNlIGZvciBKZXN0J3MgY29uZmlndXJhdGlvbi4gQSBwcmVzZXQgc2hvdWxkIHBvaW50IHRvIGFuIG5wbSBtb2R1bGVcbiAgICogdGhhdCBoYXMgYSBqZXN0LXByZXNldC5qc29uIG9yIGplc3QtcHJlc2V0LmpzIGZpbGUgYXQgdGhlIHJvb3QuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhdGggdG8gdGhlIHByZXR0aWVyIG5vZGUgbW9kdWxlIHVzZWQgdG8gdXBkYXRlIGlubGluZSBzbmFwc2hvdHMuXG4gICAqIEBkZWZhdWx0IC0gXCJwcmV0dGllclwiXG4gICAqL1xuICByZWFkb25seSBwcmV0dGllclBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHByb2plY3RzIGNvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWQgd2l0aCBhbiBhcnJheSBvZiBwYXRocyBvciBnbG9iIHBhdHRlcm5zLCBKZXN0IHdpbGxcbiAgICogcnVuIHRlc3RzIGluIGFsbCBvZiB0aGUgc3BlY2lmaWVkIHByb2plY3RzIGF0IHRoZSBzYW1lIHRpbWUuIFRoaXMgaXMgZ3JlYXQgZm9yIG1vbm9yZXBvcyBvclxuICAgKiB3aGVuIHdvcmtpbmcgb24gbXVsdGlwbGUgcHJvamVjdHMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RzPzogQXJyYXk8c3RyaW5nIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfT47XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIGFkZCBjdXN0b20gcmVwb3J0ZXJzIHRvIEplc3QuIEEgY3VzdG9tIHJlcG9ydGVyIGlzIGEgY2xhc3NcbiAgICogdGhhdCBpbXBsZW1lbnRzIG9uUnVuU3RhcnQsIG9uVGVzdFN0YXJ0LCBvblRlc3RSZXN1bHQsIG9uUnVuQ29tcGxldGUgbWV0aG9kcyB0aGF0IHdpbGwgYmVcbiAgICogY2FsbGVkIHdoZW4gYW55IG9mIHRob3NlIGV2ZW50cyBvY2N1cnMuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByZXBvcnRlcnM/OiBKZXN0UmVwb3J0ZXJbXTtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSByZXNldCBtb2NrIHN0YXRlIGJlZm9yZSBldmVyeSB0ZXN0LiBFcXVpdmFsZW50IHRvIGNhbGxpbmcgamVzdC5yZXNldEFsbE1vY2tzKClcbiAgICogYmVmb3JlIGVhY2ggdGVzdC4gVGhpcyB3aWxsIGxlYWQgdG8gYW55IG1vY2tzIGhhdmluZyB0aGVpciBmYWtlIGltcGxlbWVudGF0aW9ucyByZW1vdmVkIGJ1dFxuICAgKiBkb2VzIG5vdCByZXN0b3JlIHRoZWlyIGluaXRpYWwgaW1wbGVtZW50YXRpb24uXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc2V0TW9ja3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBlYWNoIHRlc3QgZmlsZSBnZXRzIGl0cyBvd24gaW5kZXBlbmRlbnQgbW9kdWxlIHJlZ2lzdHJ5LiBFbmFibGluZyByZXNldE1vZHVsZXNcbiAgICogZ29lcyBhIHN0ZXAgZnVydGhlciBhbmQgcmVzZXRzIHRoZSBtb2R1bGUgcmVnaXN0cnkgYmVmb3JlIHJ1bm5pbmcgZWFjaCBpbmRpdmlkdWFsIHRlc3QuXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlc2V0TW9kdWxlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlIG9mIGEgY3VzdG9tIHJlc29sdmVyLlxuICAgKiBodHRwczovL2plc3Rqcy5pby9kb2NzL2VuL2NvbmZpZ3VyYXRpb24jcmVzb2x2ZXItc3RyaW5nXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByZXNvbHZlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSByZXN0b3JlIG1vY2sgc3RhdGUgYmVmb3JlIGV2ZXJ5IHRlc3QuIEVxdWl2YWxlbnQgdG8gY2FsbGluZyBqZXN0LnJlc3RvcmVBbGxNb2NrcygpXG4gICAqIGJlZm9yZSBlYWNoIHRlc3QuIFRoaXMgd2lsbCBsZWFkIHRvIGFueSBtb2NrcyBoYXZpbmcgdGhlaXIgZmFrZSBpbXBsZW1lbnRhdGlvbnMgcmVtb3ZlZCBhbmRcbiAgICogcmVzdG9yZXMgdGhlaXIgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdG9yZU1vY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHJvb3QgZGlyZWN0b3J5IHRoYXQgSmVzdCBzaG91bGQgc2NhbiBmb3IgdGVzdHMgYW5kIG1vZHVsZXMgd2l0aGluLiBJZiB5b3UgcHV0IHlvdXIgSmVzdFxuICAgKiBjb25maWcgaW5zaWRlIHlvdXIgcGFja2FnZS5qc29uIGFuZCB3YW50IHRoZSByb290IGRpcmVjdG9yeSB0byBiZSB0aGUgcm9vdCBvZiB5b3VyIHJlcG8sIHRoZVxuICAgKiB2YWx1ZSBmb3IgdGhpcyBjb25maWcgcGFyYW0gd2lsbCBkZWZhdWx0IHRvIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuanNvbi5cbiAgICogQGRlZmF1bHQgLSBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuanNvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdERpcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdGhzIHRvIGRpcmVjdG9yaWVzIHRoYXQgSmVzdCBzaG91bGQgdXNlIHRvIHNlYXJjaCBmb3IgZmlsZXMgaW4uXG4gICAqIEBkZWZhdWx0IC0gW1wiPHJvb3REaXI+XCJdXG4gICAqL1xuICByZWFkb25seSByb290cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIHVzZSBhIGN1c3RvbSBydW5uZXIgaW5zdGVhZCBvZiBKZXN0J3MgZGVmYXVsdCB0ZXN0IHJ1bm5lci5cbiAgICogQGRlZmF1bHQgLSBcImplc3QtcnVubmVyXCJcbiAgICovXG4gIHJlYWRvbmx5IHJ1bm5lcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdGhzIHRvIG1vZHVsZXMgdGhhdCBydW4gc29tZSBjb2RlIHRvIGNvbmZpZ3VyZSBvciBzZXQgdXAgdGhlIHRlc3RpbmcgZW52aXJvbm1lbnQuXG4gICAqIEVhY2ggc2V0dXBGaWxlIHdpbGwgYmUgcnVuIG9uY2UgcGVyIHRlc3QgZmlsZS4gU2luY2UgZXZlcnkgdGVzdCBydW5zIGluIGl0cyBvd24gZW52aXJvbm1lbnQsXG4gICAqIHRoZXNlIHNjcmlwdHMgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgdGVzdGluZyBlbnZpcm9ubWVudCBpbW1lZGlhdGVseSBiZWZvcmUgZXhlY3V0aW5nIHRoZVxuICAgKiB0ZXN0IGNvZGUgaXRzZWxmLlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSBzZXR1cEZpbGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXRocyB0byBtb2R1bGVzIHRoYXQgcnVuIHNvbWUgY29kZSB0byBjb25maWd1cmUgb3Igc2V0IHVwIHRoZSB0ZXN0aW5nIGZyYW1ld29ya1xuICAgKiBiZWZvcmUgZWFjaCB0ZXN0IGZpbGUgaW4gdGhlIHN1aXRlIGlzIGV4ZWN1dGVkLiBTaW5jZSBzZXR1cEZpbGVzIGV4ZWN1dGVzIGJlZm9yZSB0aGUgdGVzdFxuICAgKiBmcmFtZXdvcmsgaXMgaW5zdGFsbGVkIGluIHRoZSBlbnZpcm9ubWVudCwgdGhpcyBzY3JpcHQgZmlsZSBwcmVzZW50cyB5b3UgdGhlIG9wcG9ydHVuaXR5IG9mXG4gICAqIHJ1bm5pbmcgc29tZSBjb2RlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0ZXN0IGZyYW1ld29yayBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIGVudmlyb25tZW50LlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSBzZXR1cEZpbGVzQWZ0ZXJFbnY/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIGEgdGVzdCBpcyBjb25zaWRlcmVkIGFzIHNsb3cgYW5kIHJlcG9ydGVkIGFzIHN1Y2ggaW4gdGhlIHJlc3VsdHMuXG4gICAqIEBkZWZhdWx0IC0gNVxuICAgKi9cbiAgcmVhZG9ubHkgc2xvd1Rlc3RUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIGEgbW9kdWxlIHRoYXQgY2FuIHJlc29sdmUgdGVzdDwtPnNuYXBzaG90IHBhdGguIFRoaXMgY29uZmlnIG9wdGlvbiBsZXRzIHlvdSBjdXN0b21pemVcbiAgICogd2hlcmUgSmVzdCBzdG9yZXMgc25hcHNob3QgZmlsZXMgb24gZGlzay5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90UmVzb2x2ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXRocyB0byBzbmFwc2hvdCBzZXJpYWxpemVyIG1vZHVsZXMgSmVzdCBzaG91bGQgdXNlIGZvciBzbmFwc2hvdCB0ZXN0aW5nLlxuICAgKiBAZGVmYXVsdCA9IFtdXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdFNlcmlhbGl6ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGVudmlyb25tZW50IHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0ZXN0aW5nLiBUaGUgZGVmYXVsdCBlbnZpcm9ubWVudCBpbiBKZXN0IGlzIGFcbiAgICogYnJvd3Nlci1saWtlIGVudmlyb25tZW50IHRocm91Z2gganNkb20uIElmIHlvdSBhcmUgYnVpbGRpbmcgYSBub2RlIHNlcnZpY2UsIHlvdSBjYW4gdXNlIHRoZSBub2RlXG4gICAqIG9wdGlvbiB0byB1c2UgYSBub2RlLWxpa2UgZW52aXJvbm1lbnQgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgLSBcImpzZG9tXCJcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RFbnZpcm9ubWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGVzdCBlbnZpcm9ubWVudCBvcHRpb25zIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRlc3RFbnZpcm9ubWVudC5cbiAgICogVGhlIHJlbGV2YW50IG9wdGlvbnMgZGVwZW5kIG9uIHRoZSBlbnZpcm9ubWVudC5cbiAgICogQGRlZmF1bHQgLSB7fVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEVudmlyb25tZW50T3B0aW9ucz86IGFueTtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBKZXN0IHJldHVybnMgb24gdGVzdCBmYWlsdXJlLlxuICAgKiBAZGVmYXVsdCAtIDFcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RGYWlsdXJlRXhpdENvZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBnbG9iIHBhdHRlcm5zIEplc3QgdXNlcyB0byBkZXRlY3QgdGVzdCBmaWxlcy4gQnkgZGVmYXVsdCBpdCBsb29rcyBmb3IgLmpzLCAuanN4LCAudHMgYW5kIC50c3hcbiAgICogZmlsZXMgaW5zaWRlIG9mIF9fdGVzdHNfXyBmb2xkZXJzLCBhcyB3ZWxsIGFzIGFueSBmaWxlcyB3aXRoIGEgc3VmZml4IG9mIC50ZXN0IG9yIC5zcGVjXG4gICAqIChlLmcuIENvbXBvbmVudC50ZXN0LmpzIG9yIENvbXBvbmVudC5zcGVjLmpzKS4gSXQgd2lsbCBhbHNvIGZpbmQgZmlsZXMgY2FsbGVkIHRlc3QuanMgb3Igc3BlYy5qcy5cbiAgICogQGRlZmF1bHQgWycqKlxcL19fdGVzdHNfXy8qKlxcLyouW2p0XXM/KHgpJywgJyoqXFwvPygqLikrKHNwZWN8dGVzdCkuW3RqXXM/KHgpJ11cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RNYXRjaD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiByZWdleHAgcGF0dGVybiBzdHJpbmdzIHRoYXQgYXJlIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdCBwYXRocyBiZWZvcmUgZXhlY3V0aW5nIHRoZSB0ZXN0LlxuICAgKiBJZiB0aGUgdGVzdCBwYXRoIG1hdGNoZXMgYW55IG9mIHRoZSBwYXR0ZXJucywgaXQgd2lsbCBiZSBza2lwcGVkLlxuICAgKiBAZGVmYXVsdCAtIFtcIi9ub2RlX21vZHVsZXMvXCJdXG4gICAqL1xuICByZWFkb25seSB0ZXN0UGF0aElnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIG9yIHBhdHRlcm5zIEplc3QgdXNlcyB0byBkZXRlY3QgdGVzdCBmaWxlcy4gQnkgZGVmYXVsdCBpdCBsb29rcyBmb3IgLmpzLCAuanN4LCAudHMgYW5kIC50c3hcbiAgICogZmlsZXMgaW5zaWRlIG9mIF9fdGVzdHNfXyBmb2xkZXJzLCBhcyB3ZWxsIGFzIGFueSBmaWxlcyB3aXRoIGEgc3VmZml4IG9mIC50ZXN0IG9yIC5zcGVjXG4gICAqIChlLmcuIENvbXBvbmVudC50ZXN0LmpzIG9yIENvbXBvbmVudC5zcGVjLmpzKS4gSXQgd2lsbCBhbHNvIGZpbmQgZmlsZXMgY2FsbGVkIHRlc3QuanMgb3Igc3BlYy5qcy5cbiAgICogQGRlZmF1bHQgLSAoL19fdGVzdHNfXy8uKnwoXFxcXC58LykodGVzdHxzcGVjKSlcXFxcLltqdF1zeD8kXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmVnZXg/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2YgYSBjdXN0b20gcmVzdWx0cyBwcm9jZXNzb3IuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmVzdWx0c1Byb2Nlc3Nvcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2YgYSBjdXN0b20gdGVzdCBydW5uZXIuIFRoZSBkZWZhdWx0IGlzIGphc21pbmUyLiBBIGN1c3RvbSB0ZXN0IHJ1bm5lclxuICAgKiBjYW4gYmUgcHJvdmlkZWQgYnkgc3BlY2lmeWluZyBhIHBhdGggdG8gYSB0ZXN0IHJ1bm5lciBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBcImphc21pbmUyXCJcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSdW5uZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gdXNlIGEgY3VzdG9tIHNlcXVlbmNlciBpbnN0ZWFkIG9mIEplc3QncyBkZWZhdWx0LlxuICAgKiBTb3J0IG1heSBvcHRpb25hbGx5IHJldHVybiBhIFByb21pc2UuXG4gICAqIEBkZWZhdWx0IC0gXCJAamVzdC90ZXN0LXNlcXVlbmNlclwiXG4gICAqL1xuICByZWFkb25seSB0ZXN0U2VxdWVuY2VyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHRpbWVvdXQgb2YgYSB0ZXN0IGluIG1pbGxpc2Vjb25kcy5cbiAgICogQGRlZmF1bHQgLSA1MDAwXG4gICAqL1xuICByZWFkb25seSB0ZXN0VGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gc2V0cyB0aGUgVVJMIGZvciB0aGUganNkb20gZW52aXJvbm1lbnQuIEl0IGlzIHJlZmxlY3RlZCBpbiBwcm9wZXJ0aWVzIHN1Y2ggYXMgbG9jYXRpb24uaHJlZi5cbiAgICogQGRlZmF1bHQgLSBcImh0dHA6Ly9sb2NhbGhvc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFVSTD86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHZhbHVlIHRvIGxlZ2FjeSBvciBmYWtlIGFsbG93cyB0aGUgdXNlIG9mIGZha2UgdGltZXJzIGZvciBmdW5jdGlvbnMgc3VjaCBhcyBzZXRUaW1lb3V0LlxuICAgKiBGYWtlIHRpbWVycyBhcmUgdXNlZnVsIHdoZW4gYSBwaWVjZSBvZiBjb2RlIHNldHMgYSBsb25nIHRpbWVvdXQgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHdhaXQgZm9yIGluIGEgdGVzdC5cbiAgICogQGRlZmF1bHQgLSBcInJlYWxcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZXJzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG1hcCBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gcGF0aHMgdG8gdHJhbnNmb3JtZXJzLiBBIHRyYW5zZm9ybWVyIGlzIGEgbW9kdWxlIHRoYXQgcHJvdmlkZXMgYVxuICAgKiBzeW5jaHJvbm91cyBmdW5jdGlvbiBmb3IgdHJhbnNmb3JtaW5nIHNvdXJjZSBmaWxlcy5cbiAgICogQGRlZmF1bHQgLSB7XCJcXFxcLltqdF1zeD8kXCI6IFwiYmFiZWwtamVzdFwifVxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtPzogeyBba2V5OiBzdHJpbmddOiBUcmFuc2Zvcm0gfTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcmVnZXhwIHBhdHRlcm4gc3RyaW5ncyB0aGF0IGFyZSBtYXRjaGVkIGFnYWluc3QgYWxsIHNvdXJjZSBmaWxlIHBhdGhzIGJlZm9yZSB0cmFuc2Zvcm1hdGlvbi5cbiAgICogSWYgdGhlIHRlc3QgcGF0aCBtYXRjaGVzIGFueSBvZiB0aGUgcGF0dGVybnMsIGl0IHdpbGwgbm90IGJlIHRyYW5zZm9ybWVkLlxuICAgKiBAZGVmYXVsdCAtIFtcIi9ub2RlX21vZHVsZXMvXCIsIFwiXFxcXC5wbnBcXFxcLlteXFxcXFxcL10rJFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtSWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcmVnZXhwIHBhdHRlcm4gc3RyaW5ncyB0aGF0IGFyZSBtYXRjaGVkIGFnYWluc3QgYWxsIG1vZHVsZXMgYmVmb3JlIHRoZSBtb2R1bGUgbG9hZGVyIHdpbGxcbiAgICogYXV0b21hdGljYWxseSByZXR1cm4gYSBtb2NrIGZvciB0aGVtLiBJZiBhIG1vZHVsZSdzIHBhdGggbWF0Y2hlcyBhbnkgb2YgdGhlIHBhdHRlcm5zIGluIHRoaXMgbGlzdCwgaXRcbiAgICogd2lsbCBub3QgYmUgYXV0b21hdGljYWxseSBtb2NrZWQgYnkgdGhlIG1vZHVsZSBsb2FkZXIuXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IHVubW9ja2VkTW9kdWxlUGF0aFBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGVhY2ggaW5kaXZpZHVhbCB0ZXN0IHNob3VsZCBiZSByZXBvcnRlZCBkdXJpbmcgdGhlIHJ1bi4gQWxsIGVycm9ycyB3aWxsIGFsc29cbiAgICogc3RpbGwgYmUgc2hvd24gb24gdGhlIGJvdHRvbSBhZnRlciBleGVjdXRpb24uIE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSB0ZXN0IGZpbGUgYmVpbmcgcnVuXG4gICAqIGl0IHdpbGwgZGVmYXVsdCB0byB0cnVlLlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgUmVnRXhwIHBhdHRlcm5zIHRoYXQgYXJlIG1hdGNoZWQgYWdhaW5zdCBhbGwgc291cmNlIGZpbGUgcGF0aHMgYmVmb3JlIHJlLXJ1bm5pbmcgdGVzdHNcbiAgICogaW4gd2F0Y2ggbW9kZS4gSWYgdGhlIGZpbGUgcGF0aCBtYXRjaGVzIGFueSBvZiB0aGUgcGF0dGVybnMsIHdoZW4gaXQgaXMgdXBkYXRlZCwgaXQgd2lsbCBub3QgdHJpZ2dlclxuICAgKiBhIHJlLXJ1biBvZiB0ZXN0cy5cbiAgICogQGRlZmF1bHQgLSBbXVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hQYXRoSWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICpcbiAgICogQGRlZmF1bHQgLVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hQbHVnaW5zPzogV2F0Y2hQbHVnaW5bXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2Ugd2F0Y2htYW4gZm9yIGZpbGUgY3Jhd2xpbmcuXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2htYW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gYWxsb3cgYW55IHZhbHVlXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsT3B0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gYWxsb3cgYW55IHZhbHVlIChKUy9UUyBvbmx5KVxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGFkZGl0aW9uYWxPcHRpb25zYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm0ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zPzogYW55XG4gICkge31cblxuICAvKipcbiAgICogQGpzaWkgaWdub3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBbdGhpcy5uYW1lLCB0aGlzLm9wdGlvbnNdO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYXRjaFBsdWdpbiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM/OiBhbnlcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5hbWUsIHRoaXMub3B0aW9uc107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBKZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb2xsZWN0IGNvdmVyYWdlLiBEZXByZWNhdGVkXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGplc3RDb25maWcuY29sbGVjdENvdmVyYWdlXG4gICAqL1xuICByZWFkb25seSBjb3ZlcmFnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluY2x1ZGUgdGhlIGB0ZXh0YCBjb3ZlcmFnZSByZXBvcnRlciwgd2hpY2ggbWVhbnMgdGhhdCBjb3ZlcmFnZSBzdW1tYXJ5IGlzIHByaW50ZWRcbiAgICogYXQgdGhlIGVuZCBvZiB0aGUgamVzdCBleGVjdXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlVGV4dD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYHRlc3RQYXRoSWdub3JlUGF0dGVybnNgIGFuZCBgY292ZXJhZ2VQYXRoSWdub3JlUGF0dGVybnNgXG4gICAqIEBkZWZhdWx0IFtcIi9ub2RlX21vZHVsZXMvXCJdXG4gICAqIEBkZXByZWNhdGVkIHVzZSBqZXN0Q29uZmlnLmNvdmVyYWdlUGF0aElnbm9yZVBhdHRlcm5zIG9yIGplc3RDb25maWcudGVzdFBhdGhJZ25vcmVQYXR0ZXJucyByZXNwZWN0aXZlbHlcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlc3VsdCBwcm9jZXNzaW5nIHdpdGggamVzdC1qdW5pdC5cbiAgICpcbiAgICogT3V0cHV0IGRpcmVjdG9yeSBpcyBgdGVzdC1yZXBvcnRzL2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGp1bml0UmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJlc2VydmUgdGhlIGRlZmF1bHQgSmVzdCByZXBvcnRlciB3aGVuIGFkZGl0aW9uYWwgcmVwb3J0ZXJzIGFyZSBhZGRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJlc2VydmVEZWZhdWx0UmVwb3J0ZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cGRhdGUgc25hcHNob3RzIGluIHRhc2sgXCJ0ZXN0XCIgKHdoaWNoIGlzIGV4ZWN1dGVkIGluIHRhc2sgXCJidWlsZFwiIGFuZCBidWlsZCB3b3JrZmxvd3MpLFxuICAgKiBvciBjcmVhdGUgYSBzZXBhcmF0ZSB0YXNrIFwidGVzdDp1cGRhdGVcIiBmb3IgdXBkYXRpbmcgc25hcHNob3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFMV0FZU1xuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU25hcHNob3Q/OiBVcGRhdGVTbmFwc2hvdDtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgamVzdCB0byB1c2UuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBzYW1lIHZlcnNpb24gaXMgdXNlZCBhcyB2ZXJzaW9uIG9mIGBAdHlwZXMvamVzdGAgYW5kIGB0cy1qZXN0YCAoaWYgVHlwZXNjcmlwdCBpbiB1c2UpLCBzbyBnaXZlbiB2ZXJzaW9uIHNob3VsZCB3b3JrIGFsc28gZm9yIHRob3NlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGluc3RhbGxzIHRoZSBsYXRlc3QgamVzdCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBqZXN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byBKU09OIGNvbmZpZyBmaWxlIGZvciBKZXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc2VwYXJhdGUgY29uZmlnIGZpbGUsIGplc3Qgc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiBwYWNrYWdlLmpzb25cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBKZXN0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBqZXN0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGplc3RDb25maWc/OiBKZXN0Q29uZmlnT3B0aW9ucztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIEplc3QgQ0xJIGludm9jYXRpb25cbiAgICogQGRlZmF1bHQgLSBubyBleHRyYSBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBleHRyYUNsaU9wdGlvbnM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVRocmVzaG9sZCB7XG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogbnVtYmVyO1xuICByZWFkb25seSBmdW5jdGlvbnM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGxpbmVzPzogbnVtYmVyO1xuICByZWFkb25seSBzdGF0ZW1lbnRzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVTbmFwc2hvdCB7XG4gIC8qKlxuICAgKiBBbHdheXMgdXBkYXRlIHNuYXBzaG90cyBpbiBcInRlc3RcIiB0YXNrLlxuICAgKi9cbiAgQUxXQVlTID0gXCJhbHdheXNcIixcblxuICAvKipcbiAgICogTmV2ZXIgdXBkYXRlIHNuYXBzaG90cyBpbiBcInRlc3RcIiB0YXNrIGFuZCBjcmVhdGUgYSBzZXBhcmF0ZSBcInRlc3Q6dXBkYXRlXCIgdGFzay5cbiAgICovXG4gIE5FVkVSID0gXCJuZXZlclwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc3RlQ29uZmlnIHtcbiAgcmVhZG9ubHkgY29tcHV0ZVNoYTE/OiBib29sZWFuO1xuICByZWFkb25seSBkZWZhdWx0UGxhdGZvcm0/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGhhc3RlSW1wbE1vZHVsZVBhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsYXRmb3Jtcz86IEFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IHRocm93T25Nb2R1bGVDb2xsaXNpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSmVzdFJlcG9ydGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCk6IGFueSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMubmFtZSwgdGhpcy5vcHRpb25zXTtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbGxzIHRoZSBmb2xsb3dpbmcgbnBtIHNjcmlwdHM6XG4gKlxuICogLSBgdGVzdGAsIGludGVuZGVkIGZvciB0ZXN0aW5nIGxvY2FsbHkgYW5kIGluIENJLiBXaWxsIHVwZGF0ZSBzbmFwc2hvdHMgdW5sZXNzIGB1cGRhdGVTbmFwc2hvdDogVXBkYXRlU25hcHNob3Q6IE5FVkVSYCBpcyBzZXQuXG4gKiAtIGB0ZXN0OndhdGNoYCwgaW50ZW5kZWQgZm9yIGF1dG9tYXRpY2FsbHkgcmVydW5uaW5nIHRlc3RzIHdoZW4gZmlsZXMgY2hhbmdlLlxuICogLSBgdGVzdDp1cGRhdGVgLCBpbnRlbmRlZCBmb3IgdGVzdGluZyBsb2NhbGx5IGFuZCB1cGRhdGluZyBzbmFwc2hvdHMgdG8gbWF0Y2ggdGhlIGxhdGVzdCB1bml0IHVuZGVyIHRlc3QuIE9ubHkgYXZhaWxhYmxlIHdoZW4gYHVwZGF0ZVNuYXBzaG90OiBVcGRhdGVTbmFwc2hvdDogTkVWRVJgLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEplc3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uZSBKZXN0IGNvbXBvbmVudCBvZiBhIHByb2plY3Qgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBKZXN0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0plc3QgPSAoYzogQ29tcG9uZW50KTogYyBpcyBKZXN0ID0+IGMgaW5zdGFuY2VvZiBKZXN0O1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0plc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZzogYW55O1xuXG4gIC8qKlxuICAgKiBKZXN0IHZlcnNpb24sIGluY2x1ZGluZyBgQGAgc3ltYm9sLCBsaWtlIGBAXjI5YFxuICAgKi9cbiAgcmVhZG9ubHkgamVzdFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogSmVzdCBjb25maWcgZmlsZS4gYHVuZGVmaW5lZGAgaWYgc2V0dGluZ3MgYXJlIHdyaXR0ZW4gdG8gYHBhY2thZ2UuanNvbmBcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBKc29uRmlsZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRlc3RNYXRjaDogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgaWdub3JlUGF0dGVybnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoSWdub3JlUGF0dGVybnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvdmVyYWdlUmVwb3J0ZXJzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnRlcnM6IEplc3RSZXBvcnRlcltdO1xuICBwcml2YXRlIHJlYWRvbmx5IGplc3RDb25maWc/OiBKZXN0Q29uZmlnT3B0aW9ucyAmIHtcbiAgICByZWFkb25seSBhZGRpdGlvbmFsT3B0aW9uczogdW5kZWZpbmVkO1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIH07XG4gIHByaXZhdGUgcmVhZG9ubHkgZXh0cmFDbGlPcHRpb25zOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfc25hcHNob3RSZXNvbHZlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBKZXN0T3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvLyBoYXJkIGRlcHJlY2F0aW9uXG4gICAgaWYgKChvcHRpb25zIGFzIGFueSkudHlwZXNjcmlwdENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnXCJqZXN0T3B0aW9ucy50eXBlc2NyaXB0Q29uZmlnXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwidHlwZXNjcmlwdFByb2plY3QudHNjb25maWdEZXZcIiBpbnN0ZWFkJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBKZXN0IHNuYXBzaG90IGZpbGVzIGFyZSBnZW5lcmF0ZWQgZmlsZXMhXG4gICAgcHJvamVjdC5yb290LmFubm90YXRlR2VuZXJhdGVkKFwiKi5zbmFwXCIpO1xuICAgIHRoaXMuamVzdFZlcnNpb24gPSBvcHRpb25zLmplc3RWZXJzaW9uID8gYEAke29wdGlvbnMuamVzdFZlcnNpb259YCA6IFwiXCI7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBqZXN0JHt0aGlzLmplc3RWZXJzaW9ufWApO1xuXG4gICAgdGhpcy5qZXN0Q29uZmlnID0ge1xuICAgICAgLi4ub3B0aW9ucy5qZXN0Q29uZmlnLFxuICAgICAgYWRkaXRpb25hbE9wdGlvbnM6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMuamVzdENvbmZpZz8uYWRkaXRpb25hbE9wdGlvbnMsXG4gICAgfTtcbiAgICB0aGlzLmV4dHJhQ2xpT3B0aW9ucyA9IG9wdGlvbnMuZXh0cmFDbGlPcHRpb25zID8/IFtdO1xuXG4gICAgdGhpcy5pZ25vcmVQYXR0ZXJucyA9IHRoaXMuamVzdENvbmZpZz8udGVzdFBhdGhJZ25vcmVQYXR0ZXJucyA/P1xuICAgICAgb3B0aW9ucy5pZ25vcmVQYXR0ZXJucyA/PyBbXCIvbm9kZV9tb2R1bGVzL1wiXTtcbiAgICB0aGlzLndhdGNoSWdub3JlUGF0dGVybnMgPSB0aGlzLmplc3RDb25maWc/LndhdGNoUGF0aElnbm9yZVBhdHRlcm5zID8/IFtcbiAgICAgIFwiL25vZGVfbW9kdWxlcy9cIixcbiAgICBdO1xuICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMgPSB0aGlzLmplc3RDb25maWc/LmNvdmVyYWdlUmVwb3J0ZXJzID8/IFtcbiAgICAgIFwianNvblwiLFxuICAgICAgXCJsY292XCIsXG4gICAgICBcImNsb3ZlclwiLFxuICAgICAgXCJjb2JlcnR1cmFcIixcbiAgICBdO1xuICAgIHRoaXMudGVzdE1hdGNoID0gdGhpcy5qZXN0Q29uZmlnPy50ZXN0TWF0Y2ggPz8gW1xuICAgICAgXCIqKi9fX3Rlc3RzX18vKiovKi5banRdcz8oeClcIixcbiAgICAgIFwiKiovPygqLikrKHNwZWN8dGVzdCkuW3RqXXM/KHgpXCIsXG4gICAgXTtcblxuICAgIGNvbnN0IGNvdmVyYWdlRGlyZWN0b3J5ID0gdGhpcy5qZXN0Q29uZmlnPy5jb3ZlcmFnZURpcmVjdG9yeSA/PyBcImNvdmVyYWdlXCI7XG5cbiAgICB0aGlzLnJlcG9ydGVycyA9IFtdO1xuXG4gICAgaWYgKG9wdGlvbnMucHJlc2VydmVEZWZhdWx0UmVwb3J0ZXJzID8/IHRydWUpIHtcbiAgICAgIHRoaXMucmVwb3J0ZXJzLnVuc2hpZnQobmV3IEplc3RSZXBvcnRlcihcImRlZmF1bHRcIikpO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4udGhpcy5qZXN0Q29uZmlnLFxuICAgICAgY2xlYXJNb2NrczogdGhpcy5qZXN0Q29uZmlnPy5jbGVhck1vY2tzID8/IHRydWUsXG4gICAgICBjb2xsZWN0Q292ZXJhZ2U6XG4gICAgICAgIG9wdGlvbnMuY292ZXJhZ2UgPz8gdGhpcy5qZXN0Q29uZmlnPy5jb2xsZWN0Q292ZXJhZ2UgPz8gdHJ1ZSxcbiAgICAgIGNvdmVyYWdlUmVwb3J0ZXJzOiB0aGlzLmNvdmVyYWdlUmVwb3J0ZXJzLFxuICAgICAgY292ZXJhZ2VEaXJlY3Rvcnk6IGNvdmVyYWdlRGlyZWN0b3J5LFxuICAgICAgY292ZXJhZ2VQYXRoSWdub3JlUGF0dGVybnM6XG4gICAgICAgIHRoaXMuamVzdENvbmZpZz8uY292ZXJhZ2VQYXRoSWdub3JlUGF0dGVybnMgPz8gdGhpcy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIHRlc3RQYXRoSWdub3JlUGF0dGVybnM6IHRoaXMuaWdub3JlUGF0dGVybnMsXG4gICAgICB3YXRjaFBhdGhJZ25vcmVQYXR0ZXJuczogdGhpcy53YXRjaElnbm9yZVBhdHRlcm5zLFxuICAgICAgdGVzdE1hdGNoOiB0aGlzLnRlc3RNYXRjaCxcbiAgICAgIHJlcG9ydGVyczogdGhpcy5yZXBvcnRlcnMsXG4gICAgICBzbmFwc2hvdFJlc29sdmVyOiAoKCkgPT4gdGhpcy5fc25hcHNob3RSZXNvbHZlcikgYXMgYW55LFxuICAgIH0gc2F0aXNmaWVzIEplc3RDb25maWdPcHRpb25zO1xuXG4gICAgaWYgKG9wdGlvbnMuanVuaXRSZXBvcnRpbmcgPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgcmVwb3J0c0RpciA9IERFRkFVTFRfVEVTVF9SRVBPUlRTX0RJUjtcblxuICAgICAgdGhpcy5hZGRSZXBvcnRlcihcbiAgICAgICAgbmV3IEplc3RSZXBvcnRlcihcImplc3QtanVuaXRcIiwgeyBvdXRwdXREaXJlY3Rvcnk6IHJlcG9ydHNEaXIgfSlcbiAgICAgICk7XG5cbiAgICAgIHByb2plY3QuYWRkRGV2RGVwcyhcImplc3QtanVuaXRAXjE1XCIpO1xuXG4gICAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFxuICAgICAgICBcIiMgamVzdC1qdW5pdCBhcnRpZmFjdHNcIixcbiAgICAgICAgYC8ke3JlcG9ydHNEaXJ9L2AsXG4gICAgICAgIFwianVuaXQueG1sXCJcbiAgICAgICk7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uZXhjbHVkZShcbiAgICAgICAgXCIjIGplc3QtanVuaXQgYXJ0aWZhY3RzXCIsXG4gICAgICAgIGAvJHtyZXBvcnRzRGlyfS9gLFxuICAgICAgICBcImp1bml0LnhtbFwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmplc3RDb25maWc/LnJlcG9ydGVycykge1xuICAgICAgZm9yIChjb25zdCByZXBvcnRlciBvZiB0aGlzLmplc3RDb25maWcucmVwb3J0ZXJzKSB7XG4gICAgICAgIHRoaXMuYWRkUmVwb3J0ZXIocmVwb3J0ZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmplc3RDb25maWc/LmNvdmVyYWdlVGhyZXNob2xkKSB7XG4gICAgICB0aGlzLmNvbmZpZy5jb3ZlcmFnZVRocmVzaG9sZCA9IHtcbiAgICAgICAgZ2xvYmFsOiB0aGlzLmplc3RDb25maWc/LmNvdmVyYWdlVGhyZXNob2xkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ3VyZVRlc3RDb21tYW5kKG9wdGlvbnMudXBkYXRlU25hcHNob3QgPz8gVXBkYXRlU25hcHNob3QuQUxXQVlTKTtcblxuICAgIGlmIChvcHRpb25zLmNvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgICB0aGlzLmZpbGUgPSBuZXcgSnNvbkZpbGUocHJvamVjdCwgb3B0aW9ucy5jb25maWdGaWxlUGF0aCwge1xuICAgICAgICBvYmo6IHRoaXMuY29uZmlnLFxuICAgICAgfSk7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uYWRkUGF0dGVybnMoYC8ke3RoaXMuZmlsZS5wYXRofWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IGplc3Q6IHRoaXMuY29uZmlnIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdmVyYWdlRGlyZWN0b3J5UGF0aCA9IHBhdGgucG9zaXguam9pbihcIi9cIiwgY292ZXJhZ2VEaXJlY3RvcnksIFwiL1wiKTtcbiAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uZXhjbHVkZShjb3ZlcmFnZURpcmVjdG9yeVBhdGgpO1xuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoY292ZXJhZ2VEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChvcHRpb25zLmNvdmVyYWdlVGV4dCA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmNvdmVyYWdlUmVwb3J0ZXJzLnB1c2goXCJ0ZXh0XCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGVzdCBtYXRjaCBwYXR0ZXJuLlxuICAgKiBAcGFyYW0gcGF0dGVybiBnbG9iIHBhdHRlcm4gdG8gbWF0Y2ggZm9yIHRlc3RzXG4gICAqL1xuICBwdWJsaWMgYWRkVGVzdE1hdGNoKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMudGVzdE1hdGNoLnB1c2gocGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdhdGNoIGlnbm9yZSBwYXR0ZXJuLlxuICAgKiBAcGFyYW0gcGF0dGVybiBUaGUgcGF0dGVybiAocmVndWxhciBleHByZXNzaW9uKS5cbiAgICovXG4gIHB1YmxpYyBhZGRXYXRjaElnbm9yZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy53YXRjaElnbm9yZVBhdHRlcm5zLnB1c2gocGF0dGVybik7XG4gIH1cblxuICBwdWJsaWMgYWRkSWdub3JlUGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlnbm9yZVBhdHRlcm5zLnB1c2gocGF0dGVybik7XG4gIH1cblxuICBwdWJsaWMgYWRkUmVwb3J0ZXIocmVwb3J0ZXI6IEplc3RSZXBvcnRlcikge1xuICAgIHRoaXMucmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBhIHNldHVwIGZpbGUgdG8gSmVzdCdzIHNldHVwRmlsZXMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGZpbGUgRmlsZSBwYXRoIHRvIHNldHVwIGZpbGVcbiAgICovXG4gIHB1YmxpYyBhZGRTZXR1cEZpbGUoZmlsZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5zZXR1cEZpbGVzKSB7XG4gICAgICB0aGlzLmNvbmZpZy5zZXR1cEZpbGVzID0gW107XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLnNldHVwRmlsZXMucHVzaChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYSBzZXR1cCBmaWxlIHRvIEplc3QncyBzZXR1cEZpbGVzQWZ0ZXJFbnYgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGZpbGUgRmlsZSBwYXRoIHRvIHNldHVwIGZpbGVcbiAgICovXG4gIHB1YmxpYyBhZGRTZXR1cEZpbGVBZnRlckVudihmaWxlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnNldHVwRmlsZXNBZnRlckVudikge1xuICAgICAgdGhpcy5jb25maWcuc2V0dXBGaWxlc0FmdGVyRW52ID0gW107XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLnNldHVwRmlsZXNBZnRlckVudi5wdXNoKGZpbGUpO1xuICB9XG5cbiAgcHVibGljIGFkZFNuYXBzaG90UmVzb2x2ZXIoZmlsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc25hcHNob3RSZXNvbHZlciA9IGZpbGU7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZVRlc3RDb21tYW5kKHVwZGF0ZVNuYXBzaG90OiBVcGRhdGVTbmFwc2hvdCkge1xuICAgIGNvbnN0IGplc3RPcHRzID0gW1wiLS1wYXNzV2l0aE5vVGVzdHNcIiwgLi4udGhpcy5leHRyYUNsaU9wdGlvbnNdO1xuICAgIGNvbnN0IGplc3RDb25maWdPcHRzID1cbiAgICAgIHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUucGF0aCAhPSBcImplc3QuY29uZmlnLmpzb25cIlxuICAgICAgICA/IGAgLWMgJHt0aGlzLmZpbGUucGF0aH1gXG4gICAgICAgIDogXCJcIjtcblxuICAgIC8vIGFzIHJlY29tbWVuZGVkIGluIHRoZSBqZXN0IGRvY3MsIG5vZGUgPiAxNCBtYXkgdXNlIG5hdGl2ZSB2OCBjb3ZlcmFnZSBjb2xsZWN0aW9uXG4gICAgLy8gaHR0cHM6Ly9qZXN0anMuaW8vZG9jcy9lbi9jbGkjLS1jb3ZlcmFnZXByb3ZpZGVycHJvdmlkZXJcbiAgICBpZiAoXG4gICAgICB0aGlzLnByb2plY3QgaW5zdGFuY2VvZiBOb2RlUHJvamVjdCAmJlxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2UubWluTm9kZVZlcnNpb24gJiZcbiAgICAgIHNlbXZlci5ndGUodGhpcy5wcm9qZWN0LnBhY2thZ2UubWluTm9kZVZlcnNpb24sIFwiMTQuMC4wXCIpXG4gICAgKSB7XG4gICAgICBqZXN0T3B0cy5wdXNoKFwiLS1jb3ZlcmFnZVByb3ZpZGVyPXY4XCIpO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVTbmFwc2hvdCA9PT0gVXBkYXRlU25hcHNob3QuQUxXQVlTKSB7XG4gICAgICBqZXN0T3B0cy5wdXNoKFwiLS11cGRhdGVTbmFwc2hvdFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgamVzdE9wdHMucHVzaChcIi0tY2lcIik7IC8vIHRvIHByZXZlbnQgYWNjZXB0aW5nIG5ldyBzbmFwc2hvdHNcblxuICAgICAgY29uc3QgdGVzdFVwZGF0ZSA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp1cGRhdGVcIik7XG4gICAgICBpZiAoIXRlc3RVcGRhdGUpIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJ0ZXN0OnVwZGF0ZVwiLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiVXBkYXRlIGplc3Qgc25hcHNob3RzXCIsXG4gICAgICAgICAgZXhlYzogYGplc3QgLS11cGRhdGVTbmFwc2hvdCAke2plc3RPcHRzLmpvaW4oXCIgXCIpfSR7amVzdENvbmZpZ09wdHN9YCxcbiAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm9qZWN0LnRlc3RUYXNrLmV4ZWMoYGplc3QgJHtqZXN0T3B0cy5qb2luKFwiIFwiKX0ke2plc3RDb25maWdPcHRzfWAsIHtcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdGVzdFdhdGNoID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJ0ZXN0OndhdGNoXCIpO1xuICAgIGlmICghdGVzdFdhdGNoKSB7XG4gICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhcInRlc3Q6d2F0Y2hcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJSdW4gamVzdCBpbiB3YXRjaCBtb2RlXCIsXG4gICAgICAgIGV4ZWM6IGBqZXN0IC0td2F0Y2gke2plc3RDb25maWdPcHRzfWAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { YarnrcOptions } from "./yarnrc";
|
|
1
2
|
import { Component } from "../component";
|
|
2
3
|
import { JsonFile } from "../json";
|
|
3
4
|
import { Project } from "../project";
|
|
@@ -250,6 +251,12 @@ export interface NodePackageOptions {
|
|
|
250
251
|
* @default - fetch all scoped packages from the public npm registry
|
|
251
252
|
*/
|
|
252
253
|
readonly scopedPackagesOptions?: ScopedPackagesOptions[];
|
|
254
|
+
/**
|
|
255
|
+
* Options for Yarn Berry
|
|
256
|
+
*
|
|
257
|
+
* @default - Yarn Berry v4 with all default options
|
|
258
|
+
*/
|
|
259
|
+
readonly yarnBerryOptions?: YarnBerryOptions;
|
|
253
260
|
}
|
|
254
261
|
/**
|
|
255
262
|
* Options for authorizing requests to a AWS CodeArtifact npm repository.
|
|
@@ -579,6 +586,10 @@ export declare class NodePackage extends Component {
|
|
|
579
586
|
private npmScriptForTask;
|
|
580
587
|
private readPackageJson;
|
|
581
588
|
private installDependencies;
|
|
589
|
+
private configureYarnBerry;
|
|
590
|
+
private checkForConflictingYarnOptions;
|
|
591
|
+
/** See https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored */
|
|
592
|
+
private configureYarnBerryGitignore;
|
|
582
593
|
}
|
|
583
594
|
export interface PeerDependencyOptions {
|
|
584
595
|
/**
|
|
@@ -637,4 +648,28 @@ export declare enum NpmAccess {
|
|
|
637
648
|
*/
|
|
638
649
|
RESTRICTED = "restricted"
|
|
639
650
|
}
|
|
651
|
+
/**
|
|
652
|
+
* Configure Yarn Berry
|
|
653
|
+
*/
|
|
654
|
+
export interface YarnBerryOptions {
|
|
655
|
+
/**
|
|
656
|
+
* A fully specified version to use for yarn (e.g., x.x.x)
|
|
657
|
+
*
|
|
658
|
+
* @default - 4.0.1
|
|
659
|
+
*/
|
|
660
|
+
readonly version?: string;
|
|
661
|
+
/**
|
|
662
|
+
* The yarnrc configuration.
|
|
663
|
+
*
|
|
664
|
+
* @default - a blank Yarn RC file
|
|
665
|
+
*/
|
|
666
|
+
readonly yarnRcOptions?: YarnrcOptions;
|
|
667
|
+
/**
|
|
668
|
+
* Should zero-installs be enabled?
|
|
669
|
+
* Learn more at: https://yarnpkg.com/features/caching#zero-installs
|
|
670
|
+
*
|
|
671
|
+
* @default false
|
|
672
|
+
*/
|
|
673
|
+
readonly zeroInstalls?: boolean;
|
|
674
|
+
}
|
|
640
675
|
export declare function defaultNpmToken(npmToken: string | undefined, registry: string | undefined): string | undefined;
|