projen 0.102.0 → 0.103.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.
Files changed (190) hide show
  1. package/.jsii +1173 -1104
  2. package/README.md +23 -0
  3. package/lib/ai-instructions.js +2 -2
  4. package/lib/awscdk/auto-discover.js +6 -6
  5. package/lib/awscdk/awscdk-app-java.js +1 -1
  6. package/lib/awscdk/awscdk-app-py.js +1 -1
  7. package/lib/awscdk/awscdk-app-ts.js +1 -1
  8. package/lib/awscdk/awscdk-construct.js +1 -1
  9. package/lib/awscdk/awscdk-deps-java.js +1 -1
  10. package/lib/awscdk/awscdk-deps-js.js +1 -1
  11. package/lib/awscdk/awscdk-deps-py.js +1 -1
  12. package/lib/awscdk/awscdk-deps.js +1 -1
  13. package/lib/awscdk/cdk-config.d.ts +4 -0
  14. package/lib/awscdk/cdk-config.js +4 -4
  15. package/lib/awscdk/cdk-tasks.js +1 -1
  16. package/lib/awscdk/integration-test.d.ts +1 -0
  17. package/lib/awscdk/integration-test.js +38 -10
  18. package/lib/awscdk/lambda-extension.js +1 -1
  19. package/lib/awscdk/lambda-function.js +2 -2
  20. package/lib/build/build-workflow.js +4 -3
  21. package/lib/cdk/auto-discover-base.js +2 -2
  22. package/lib/cdk/construct-lib.js +1 -1
  23. package/lib/cdk/integration-test-base.js +17 -3
  24. package/lib/cdk/jsii-build.js +10 -4
  25. package/lib/cdk/jsii-docgen.js +1 -1
  26. package/lib/cdk/jsii-project.d.ts +2 -4
  27. package/lib/cdk/jsii-project.js +10 -11
  28. package/lib/cdk8s/auto-discover.js +2 -2
  29. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  30. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  31. package/lib/cdk8s/cdk8s-construct.js +1 -1
  32. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  33. package/lib/cdk8s/cdk8s-deps.js +1 -1
  34. package/lib/cdk8s/integration-test.js +3 -3
  35. package/lib/cdktf/cdktf-construct.js +1 -1
  36. package/lib/cdktn/cdktn-app-ts.js +1 -1
  37. package/lib/cdktn/cdktn-config.js +1 -1
  38. package/lib/cdktn/cdktn-construct.js +1 -1
  39. package/lib/cdktn/cdktn-deps.js +1 -1
  40. package/lib/cdktn/cdktn-tasks.js +1 -1
  41. package/lib/circleci/circleci.js +1 -1
  42. package/lib/cleanup.js +6 -33
  43. package/lib/cli/task-runtime.js +30 -8
  44. package/lib/clobber.js +11 -6
  45. package/lib/component.js +2 -2
  46. package/lib/dependencies.js +1 -1
  47. package/lib/dev-env.js +1 -1
  48. package/lib/docker-compose/docker-compose-service.js +1 -1
  49. package/lib/docker-compose/docker-compose.js +1 -1
  50. package/lib/file.js +1 -1
  51. package/lib/gitattributes.js +1 -1
  52. package/lib/github/actions-provider.js +1 -1
  53. package/lib/github/auto-approve.d.ts +2 -15
  54. package/lib/github/auto-approve.js +3 -4
  55. package/lib/github/auto-merge.js +1 -1
  56. package/lib/github/auto-queue.d.ts +2 -6
  57. package/lib/github/auto-queue.js +3 -3
  58. package/lib/github/dependabot.js +1 -1
  59. package/lib/github/dependency-review.d.ts +2 -12
  60. package/lib/github/dependency-review.js +3 -4
  61. package/lib/github/github-credentials.js +1 -1
  62. package/lib/github/github-project.js +1 -1
  63. package/lib/github/github.d.ts +26 -0
  64. package/lib/github/github.js +17 -2
  65. package/lib/github/merge-queue.js +1 -1
  66. package/lib/github/mergify.js +1 -1
  67. package/lib/github/pr-template.js +1 -1
  68. package/lib/github/private/util.d.ts +0 -2
  69. package/lib/github/private/util.js +1 -13
  70. package/lib/github/pull-request-backport.d.ts +2 -1
  71. package/lib/github/pull-request-backport.js +3 -3
  72. package/lib/github/pull-request-lint.d.ts +2 -15
  73. package/lib/github/pull-request-lint.js +4 -5
  74. package/lib/github/stale.d.ts +2 -15
  75. package/lib/github/stale.js +3 -4
  76. package/lib/github/task-workflow-job.js +4 -4
  77. package/lib/github/task-workflow.js +1 -1
  78. package/lib/github/workflow-actions.js +4 -3
  79. package/lib/github/workflow-jobs.js +1 -1
  80. package/lib/github/workflow-steps.js +1 -1
  81. package/lib/github/workflows.js +1 -1
  82. package/lib/gitlab/configuration.js +1 -1
  83. package/lib/gitlab/gitlab-configuration.js +1 -1
  84. package/lib/gitlab/nested-configuration.js +1 -1
  85. package/lib/gitpod.d.ts +6 -0
  86. package/lib/gitpod.js +2 -2
  87. package/lib/ignore-file.js +1 -1
  88. package/lib/ini.js +1 -1
  89. package/lib/java/java-project.js +1 -1
  90. package/lib/java/junit.js +1 -1
  91. package/lib/java/maven-compile.js +1 -1
  92. package/lib/java/maven-packaging.js +8 -3
  93. package/lib/java/maven-sample.js +1 -1
  94. package/lib/java/pom.js +2 -2
  95. package/lib/java/projenrc.js +13 -4
  96. package/lib/javascript/biome/biome.js +9 -4
  97. package/lib/javascript/bundler.d.ts +8 -0
  98. package/lib/javascript/bundler.js +13 -13
  99. package/lib/javascript/eslint.d.ts +7 -0
  100. package/lib/javascript/eslint.js +14 -11
  101. package/lib/javascript/jest.d.ts +8 -0
  102. package/lib/javascript/jest.js +17 -11
  103. package/lib/javascript/license-checker.js +1 -1
  104. package/lib/javascript/node-package.d.ts +1 -1
  105. package/lib/javascript/node-package.js +32 -15
  106. package/lib/javascript/node-project.js +38 -25
  107. package/lib/javascript/npm-config.js +1 -1
  108. package/lib/javascript/pnpm-workspace-config.js +2 -2
  109. package/lib/javascript/pnpm-workspace.js +1 -1
  110. package/lib/javascript/prettier.js +1 -1
  111. package/lib/javascript/projenrc.js +1 -1
  112. package/lib/javascript/typescript-config.js +2 -2
  113. package/lib/javascript/upgrade-dependencies.js +9 -6
  114. package/lib/javascript/yarnrc.js +1 -1
  115. package/lib/json-patch.js +1 -1
  116. package/lib/json.js +1 -1
  117. package/lib/license.js +1 -1
  118. package/lib/logger.js +1 -1
  119. package/lib/makefile.d.ts +2 -0
  120. package/lib/makefile.js +2 -2
  121. package/lib/object-file.js +1 -1
  122. package/lib/project-build.js +1 -1
  123. package/lib/project-tree.js +1 -1
  124. package/lib/project.d.ts +4 -0
  125. package/lib/project.js +2 -2
  126. package/lib/projects.js +1 -1
  127. package/lib/projenrc-json.js +1 -1
  128. package/lib/projenrc.js +1 -1
  129. package/lib/python/pip.js +1 -1
  130. package/lib/python/poetry.js +7 -4
  131. package/lib/python/projenrc.js +1 -1
  132. package/lib/python/pyproject-toml-file.js +1 -1
  133. package/lib/python/pytest-sample.js +1 -1
  134. package/lib/python/pytest.d.ts +5 -2
  135. package/lib/python/pytest.js +9 -8
  136. package/lib/python/python-project.js +1 -1
  137. package/lib/python/python-sample.js +1 -1
  138. package/lib/python/requirements-file.js +1 -1
  139. package/lib/python/setuppy.js +1 -1
  140. package/lib/python/setuptools.js +10 -4
  141. package/lib/python/uv-config.js +1 -1
  142. package/lib/python/uv.js +3 -3
  143. package/lib/python/venv.js +1 -1
  144. package/lib/readme.js +1 -1
  145. package/lib/release/publisher.d.ts +5 -0
  146. package/lib/release/publisher.js +90 -37
  147. package/lib/release/release-trigger.d.ts +10 -0
  148. package/lib/release/release-trigger.js +7 -2
  149. package/lib/release/release.d.ts +17 -2
  150. package/lib/release/release.js +16 -10
  151. package/lib/renovatebot.js +1 -1
  152. package/lib/run-task.cjs +13 -4
  153. package/lib/runner-options.d.ts +34 -0
  154. package/lib/runner-options.js +1 -1
  155. package/lib/sample-file.js +2 -2
  156. package/lib/script-runner.js +1 -1
  157. package/lib/source-code.js +1 -1
  158. package/lib/task-model.d.ts +3 -3
  159. package/lib/task-model.js +1 -1
  160. package/lib/task-shell.d.ts +3 -0
  161. package/lib/task-shell.js +5 -2
  162. package/lib/task.d.ts +4 -0
  163. package/lib/task.js +2 -2
  164. package/lib/tasks.js +1 -1
  165. package/lib/testing.js +1 -1
  166. package/lib/textfile.js +1 -1
  167. package/lib/toml.js +1 -1
  168. package/lib/typescript/projenrc-ts.js +1 -1
  169. package/lib/typescript/projenrc.js +1 -1
  170. package/lib/typescript/typescript-runner.js +1 -1
  171. package/lib/typescript/typescript-typedoc.js +1 -1
  172. package/lib/typescript/typescript.js +5 -5
  173. package/lib/util/dax.d.ts +12 -1
  174. package/lib/util/dax.js +17 -4
  175. package/lib/util/path.d.ts +39 -0
  176. package/lib/util/path.js +90 -1
  177. package/lib/version.js +2 -2
  178. package/lib/vscode/devcontainer.js +1 -1
  179. package/lib/vscode/extensions.js +1 -1
  180. package/lib/vscode/launch-config.js +1 -1
  181. package/lib/vscode/settings.js +1 -1
  182. package/lib/vscode/vscode.js +1 -1
  183. package/lib/web/next.js +3 -3
  184. package/lib/web/postcss.js +1 -1
  185. package/lib/web/react.js +3 -3
  186. package/lib/web/tailwind.js +1 -1
  187. package/lib/xmlfile.js +1 -1
  188. package/lib/yaml.js +1 -1
  189. package/package.json +1 -1
  190. package/BREAKING_CHANGES.md +0 -855
@@ -1,6 +1,7 @@
1
1
  import type { IConstruct } from "constructs";
2
2
  import type { GithubCredentials } from "./github-credentials";
3
3
  import { Component } from "../component";
4
+ import type { RunsOnOptions } from "../runner-options";
4
5
  /**
5
6
  * The merge method used to add the PR to the merge queue
6
7
  *
@@ -14,7 +15,7 @@ export declare enum MergeMethod {
14
15
  /**
15
16
  * Options for 'AutoQueue'
16
17
  */
17
- export interface AutoQueueOptions {
18
+ export interface AutoQueueOptions extends RunsOnOptions {
18
19
  /**
19
20
  * Only pull requests authored by these Github usernames will have auto-queue enabled.
20
21
  * @default - pull requests from all users are eligible for auto-queuing
@@ -42,11 +43,6 @@ export interface AutoQueueOptions {
42
43
  * @default MergeMethod.SQUASH
43
44
  */
44
45
  readonly mergeMethod?: MergeMethod;
45
- /**
46
- * Github Runner selection labels
47
- * @default ["ubuntu-latest"]
48
- */
49
- readonly runsOn?: string[];
50
46
  /**
51
47
  * The branch names that we should auto-queue for
52
48
  *
@@ -54,7 +54,7 @@ var MergeMethod;
54
54
  * PRs will be merged once they pass required checks.
55
55
  */
56
56
  class AutoQueue extends component_1.Component {
57
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.102.0" };
57
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.103.1" };
58
58
  constructor(scope, options = {}) {
59
59
  super(scope);
60
60
  const workflowEngine = github_1.GitHub.of(this.project);
@@ -104,7 +104,7 @@ class AutoQueue extends component_1.Component {
104
104
  }
105
105
  const autoQueueJob = {
106
106
  name: "Set AutoQueue on PR #${{ github.event.number }}",
107
- runsOn: options.runsOn ?? ["ubuntu-latest"],
107
+ ...workflowEngine.runsOnConfig(options),
108
108
  permissions: {
109
109
  pullRequests: workflows.JobPermission.WRITE,
110
110
  contents: workflows.JobPermission.WRITE,
@@ -156,4 +156,4 @@ class AutoQueue extends component_1.Component {
156
156
  }
157
157
  }
158
158
  exports.AutoQueue = AutoQueue;
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvYXV0by1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EscUNBQWtDO0FBRWxDLDZEQUErQztBQUMvQyw0Q0FBeUM7QUFFekM7Ozs7R0FJRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQTRFRDs7O0dBR0c7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUzs7SUFDdEMsWUFBWSxLQUFpQixFQUFFLFVBQTRCLEVBQUU7UUFDM0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FDRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQ2IsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUVqRCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQ2IsR0FBRztnQkFDRCxNQUFNO3FCQUNILEdBQUcsQ0FDRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osc0RBQXNELENBQUMsSUFBSSxDQUM5RDtx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d0NBQXdDO1lBQ3hDLEVBQUU7WUFDRixrRkFBa0Y7WUFDbEYsd0ZBQXdGO1lBQ3hGLGdGQUFnRjtZQUNoRixFQUFFO1lBQ0YseUZBQXlGO1lBQ3pGLDZHQUE2RztZQUM3RywrQkFBK0I7WUFDL0IsRUFBRTtZQUNGLG1FQUFtRTtZQUNuRSxpQkFBaUIsRUFBRTtnQkFDakIsS0FBSyxFQUFFO29CQUNMLFFBQVE7b0JBQ1IsVUFBVTtvQkFDVixrQkFBa0I7b0JBQ2xCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDakQ7Z0JBQ0QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O0FBM0hILDhCQTRIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB0eXBlIHsgR2l0aHViQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi9naXRodWItY3JlZGVudGlhbHNcIjtcbmltcG9ydCAqIGFzIHdvcmtmbG93cyBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcblxuLyoqXG4gKiBUaGUgbWVyZ2UgbWV0aG9kIHVzZWQgdG8gYWRkIHRoZSBQUiB0byB0aGUgbWVyZ2UgcXVldWVcbiAqXG4gKiBCZWhhdmlvciBjYW4gYmUgZnVydGhlciBjb25maWd1cmVkIGluIHJlcG9zaXRvcnkgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBlbnVtIE1lcmdlTWV0aG9kIHtcbiAgU1FVQVNIID0gXCJzcXVhc2hcIixcbiAgTUVSR0UgPSBcIm1lcmdlXCIsXG4gIFJFQkFTRSA9IFwicmViYXNlXCIsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgJ0F1dG9RdWV1ZSdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvUXVldWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9ubHkgcHVsbCByZXF1ZXN0cyBhdXRob3JlZCBieSB0aGVzZSBHaXRodWIgdXNlcm5hbWVzIHdpbGwgaGF2ZSBhdXRvLXF1ZXVlIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0IC0gcHVsbCByZXF1ZXN0cyBmcm9tIGFsbCB1c2VycyBhcmUgZWxpZ2libGUgZm9yIGF1dG8tcXVldWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZFVzZXJuYW1lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPbmx5IHB1bGwgcmVxdWVzdHMgd2l0aCBvbmUgb2YgdGhpcyBsYWJlbHMgd2lsbCBoYXZlIGF1dG8tcXVldWUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgLSBhbGwgcHVsbCByZXF1ZXN0cyBhcmUgZWxpZ2libGUgZm9yIGF1dG8tcXVldWVpbmdcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDaG9vc2UgYSBtZXRob2QgZm9yIGF1dGhlbnRpY2F0aW5nIHdpdGggR2l0SHViIHRvIGVuYWJsZSBhdXRvLXF1ZXVlIG9uIHB1bGwgcmVxdWVzdHMuXG4gICAqXG4gICAqIFRoZSB3b3JrZmxvdyBjYW5ub3QgdXNlIGEgZGVmYXVsdCBnaXRodWIgdG9rZW4uIFF1ZXVpbmcgYSBQUlxuICAgKiB3aXRoIHRoZSBkZWZhdWx0IHRva2VuIHdpbGwgbm90IHRyaWdnZXIgYW55IG1lcmdlIHF1ZXVlIHdvcmtmbG93cyxcbiAgICogd2hpY2ggcmVzdWx0cyBpbiB0aGUgUFIganVzdCBub3QgZ2V0dGluZyBtZXJnZWQgYXQgYWxsLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcHJvamVuLmlvL2RvY3MvaW50ZWdyYXRpb25zL2dpdGh1Yi9cbiAgICogQGRlZmF1bHQgLSB1c2VzIGNyZWRlbnRpYWxzIGZyb20gdGhlIEdpdEh1YiBjb21wb25lbnRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNyZWRlbnRpYWxzPzogR2l0aHViQ3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdXNlZCB0byBhZGQgdGhlIFBSIHRvIHRoZSBtZXJnZSBxdWV1ZVxuICAgKiBBbnkgYnJhbmNoIHByb3RlY3Rpb24gcnVsZXMgbXVzdCBhbGxvdyB0aGlzIG1lcmdlIG1ldGhvZC5cbiAgICogQGRlZmF1bHQgTWVyZ2VNZXRob2QuU1FVQVNIXG4gICAqL1xuICByZWFkb25seSBtZXJnZU1ldGhvZD86IE1lcmdlTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIHNlbGVjdGlvbiBsYWJlbHNcbiAgICogQGRlZmF1bHQgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVuc09uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggbmFtZXMgdGhhdCB3ZSBzaG91bGQgYXV0by1xdWV1ZSBmb3JcbiAgICpcbiAgICogVGhpcyBzZXQgb2YgYnJhbmNoZXMgc2hvdWxkIGJlIGEgc3Vic2V0IG9mIGBNZXJnZVF1ZXVlT3B0aW9ucy50YXJnZXRCcmFuY2hlc2AuXG4gICAqXG4gICAqIEJlIHN1cmUgbm90IHRvIGVuYWJsZSBgYXV0b1F1ZXVlYCBmb3IgYnJhbmNoZXMgdGhhdCBkb24ndCBoYXZlIGJyYW5jaCBydWxlc1xuICAgKiB3aXRoIG1lcmdlIHJlcXVpcmVtZW50cyBzZXQgdXAsIG90aGVyd2lzZSBuZXcgUFJzIHdpbGwgYmUgbWVyZ2VkXG4gICAqIGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW5nIHdpdGhvdXQgYSBjaGFuY2UgZm9yIHJldmlldy5cbiAgICpcbiAgICogIyMgQXV0b21hdGljYWxseSBtZXJnaW5nIGEgc2V0IG9mIFN0YWNrZWQgUFJzXG4gICAqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byBgWydtYWluJ11gIHlvdSBjYW4gYXV0b21hdGljYWxseSBtZXJnZSBhIHNldCBvZiBTdGFja2VkIFBSc1xuICAgKiBpbiB0aGUgcmlnaHQgb3JkZXIuIEl0IHdvcmtzIGxpa2UgdGhpczpcbiAgICpcbiAgICogLSBDcmVhdGUgUFIgIzEgZnJvbSBicmFuY2ggYGFgLCB0YXJnZXRpbmcgYG1haW5gLlxuICAgKiAtIENyZWF0ZSBQUiAjMiBmcm9tIGJyYW5jaCBgYmAsIHRhcmdldGluZyBicmFuY2ggYGFgLlxuICAgKiAtIENyZWF0ZSBQUiAjMyBmcm9tIGJyYW5jaCBgY2AsIHRhcmdldGluZyBicmFuY2ggYGJgLlxuICAgKlxuICAgKiBJbml0aWFsbHksIFBSICMxIHdpbGwgYmUgc2V0IHRvIGF1dG8tbWVyZ2UsIFBScyAjMiBhbmQgIzMgd2lsbCBub3QuXG4gICAqXG4gICAqIE9uY2UgUFIgIzEgcGFzc2VzIGFsbCBvZiBpdHMgcmVxdWlyZW1lbnRzIGl0IHdpbGwgbWVyZ2UuIFRoYXQgd2lsbCBkZWxldGVcbiAgICogYnJhbmNoIGBhYCBhbmQgY2hhbmdlICB0aGUgdGFyZ2V0IGJyYW5jaCBvZiBQUiAjMiBjaGFuZ2UgdG8gYG1haW5gLiBBdCB0aGF0XG4gICAqIHBvaW50LCBhdXRvLXF1ZXVlaW5nIHdpbGwgc3dpdGNoIG9uIGZvciBQUiAjMiBhbmQgaXQgZ2V0cyBtZXJnZWQsIGV0Yy5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBUaGlzIGNvbXBvbmVudCB3aWxsIG5ldmVyIGRpc2FibGUgQXV0b01lcmdlLCBvbmx5IGVuYWJsZSBpdC4gU28gaWYgYSBQUiBpc1xuICAgKiA+IGluaXRpYWxseSB0YXJnZXRlZCBhdCBvbmUgb2YgdGhlIGJyYW5jaGVzIGluIHRoaXMgbGlzdCwgYW5kIHRoZW5cbiAgICogPiBzdWJzZXF1ZW50bHkgcmV0YXJnZXRlZCB0byBhbm90aGVyIGJyYW5jaCwgKkF1dG9NZXJnZSBpcyBub3RcbiAgICogPiBhdXRvbWF0aWNhbGx5IHR1cm5lZCBvZmYqLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QnJhbmNoZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IGFkZCBwdWxsIHJlcXVlc3RzIHRvIHRoZSBtZXJnZSBxdWV1ZVxuICogUFJzIHdpbGwgYmUgbWVyZ2VkIG9uY2UgdGhleSBwYXNzIHJlcXVpcmVkIGNoZWNrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9RdWV1ZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBJQ29uc3RydWN0LCBvcHRpb25zOiBBdXRvUXVldWVPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihzY29wZSk7XG5cbiAgICBjb25zdCB3b3JrZmxvd0VuZ2luZSA9IEdpdEh1Yi5vZih0aGlzLnByb2plY3QpO1xuICAgIGlmICghd29ya2Zsb3dFbmdpbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBhZGQgJHtcbiAgICAgICAgICBuZXcudGFyZ2V0Lm5hbWVcbiAgICAgICAgfSB0byBwcm9qZWN0IHdpdGhvdXQgR2l0SHViIGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgR2l0SHViIGZvciB0aGlzIHByb2plY3QuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxzID0gb3B0aW9ucy5sYWJlbHMgPz8gW107XG4gICAgY29uc3QgdXNlcm5hbWVzID0gb3B0aW9ucy5hbGxvd2VkVXNlcm5hbWVzID8/IFtdO1xuXG4gICAgY29uc3QgY29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaChcbiAgICAgICAgXCIoXCIgK1xuICAgICAgICAgIGxhYmVsc1xuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgKGwpID0+XG4gICAgICAgICAgICAgICAgYGNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJyR7bH0nKWAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbihcIiB8fCBcIikgK1xuICAgICAgICAgIFwiKVwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVzZXJuYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgIFwiKFwiICtcbiAgICAgICAgICB1c2VybmFtZXNcbiAgICAgICAgICAgIC5tYXAoKHUpID0+IGBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gPT0gJyR7dX0nYClcbiAgICAgICAgICAgIC5qb2luKFwiIHx8IFwiKSArXG4gICAgICAgICAgXCIpXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBuZWVkc0VkaXRlZEV2ZW50ID0gZmFsc2U7XG4gICAgaWYgKG9wdGlvbnMudGFyZ2V0QnJhbmNoZXMpIHtcbiAgICAgIC8vIEJyYW5jaCBjb25kaXRpb25zLCBiYXNlZCBvZmYgdGhlICdvcGVuZWQnIG9yICdlZGl0ZWQnIGV2ZW50cy5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUgY3VycmVudCB3b3JrZmxvdyB3aWxsIG9ubHkgcnVuIGlmIHRoZSB0YXJnZXQgYnJhbmNoIGlzIG9uZSBvZiB0aGUgaW50ZW5kZWRcbiAgICAgIC8vIG9uZXMsIHNvIHdlIG9ubHkgbmVlZCB0byBjaGVjayBpZiB0aGUgZXZlbnQgdHlwZSBpcyBjb3JyZWN0LlxuICAgICAgbmVlZHNFZGl0ZWRFdmVudCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGlzT3BlbmVkID0gYGdpdGh1Yi5ldmVudC5hY3Rpb24gPT0gJ29wZW5lZCdgO1xuICAgICAgY29uc3QgaXNCcmFuY2hDaGFuZ2VkID0gYChnaXRodWIuZXZlbnQuYWN0aW9uID09ICdlZGl0ZWQnICYmIGdpdGh1Yi5ldmVudC5jaGFuZ2VzLmJhc2UpYDtcblxuICAgICAgY29uZGl0aW9ucy5wdXNoKGAoJHtpc09wZW5lZH0gfHwgJHtpc0JyYW5jaENoYW5nZWR9KWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWRlbnRpYWxzID1cbiAgICAgIG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHMgPz8gd29ya2Zsb3dFbmdpbmUucHJvamVuQ3JlZGVudGlhbHM7XG4gICAgY29uc3QgbWVyZ2VNZXRob2QgPSBvcHRpb25zLm1lcmdlTWV0aG9kID8/IE1lcmdlTWV0aG9kLlNRVUFTSDtcblxuICAgIC8vIFRoZSBtZXJnZSBtZXRob2QgaXMgaW50ZXJwb2xhdGVkIGludG8gYSBzaGVsbCBjb21tYW5kIGJlbG93LiBFdmVuIHRob3VnaCB0aGVcbiAgICAvLyB0eXBlIHN5c3RlbSByZXN0cmljdHMgdGhpcyB0byBgTWVyZ2VNZXRob2RgLCB0aGF0IGd1YXJhbnRlZSBkb2VzIG5vdCBob2xkIGZvclxuICAgIC8vIGNvbnN1bWVycyBpbiBvdGhlciBqc2lpIGxhbmd1YWdlcyBvciBwbGFpbiBKYXZhU2NyaXB0LCBzbyB2YWxpZGF0ZSBleHBsaWNpdGx5LlxuICAgIGNvbnN0IHZhbGlkTWVyZ2VNZXRob2RzID0gT2JqZWN0LnZhbHVlcyhNZXJnZU1ldGhvZCk7XG4gICAgaWYgKCF2YWxpZE1lcmdlTWV0aG9kcy5pbmNsdWRlcyhtZXJnZU1ldGhvZCkpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBPYmplY3QuZW50cmllcyhNZXJnZU1ldGhvZClcbiAgICAgICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gYE1lcmdlTWV0aG9kLiR7bmFtZX0gKFwiJHt2YWx1ZX1cIilgKVxuICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBtZXJnZU1ldGhvZCBcIiR7bWVyZ2VNZXRob2R9XCIgaW4gQXV0b1F1ZXVlT3B0aW9ucy4gYCArXG4gICAgICAgICAgYFNldCAnbWVyZ2VNZXRob2QnIHRvIG9uZSBvZjogJHthbGxvd2VkfSwgb3IgbGVhdmUgaXQgdW5zZXQgdG8gZGVmYXVsdCB0byBNZXJnZU1ldGhvZC5TUVVBU0guYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXV0b1F1ZXVlSm9iOiB3b3JrZmxvd3MuSm9iID0ge1xuICAgICAgbmFtZTogXCJTZXQgQXV0b1F1ZXVlIG9uIFBSICMke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fVwiLFxuICAgICAgcnVuc09uOiBvcHRpb25zLnJ1bnNPbiA/PyBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgcHVsbFJlcXVlc3RzOiB3b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGlmOiBjb25kaXRpb25zLmxlbmd0aCA/IGNvbmRpdGlvbnMuam9pbihcIiAmJiBcIikgOiB1bmRlZmluZWQsXG4gICAgICBlbnZpcm9ubWVudDogY3JlZGVudGlhbHMuZW52aXJvbm1lbnQsXG4gICAgICBzdGVwczogW1xuICAgICAgICAuLi5jcmVkZW50aWFscy5zZXR1cFN0ZXBzLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IFwiYXV0by1xdWV1ZS1wclwiLFxuICAgICAgICAgIHJ1bjogYGdoIHByIG1lcmdlIC0tYXV0byAtLSR7bWVyZ2VNZXRob2R9IFwiJFBSX05VTUJFUlwiIC0tcmVwbyBcIiRHSF9SRVBPXCJgLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgR0hfVE9LRU46IGNyZWRlbnRpYWxzLnRva2VuUmVmLFxuICAgICAgICAgICAgR0hfUkVQTzogXCIke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX1cIixcbiAgICAgICAgICAgIFBSX05VTUJFUjogXCIke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IHdvcmtmbG93RW5naW5lLmFkZFdvcmtmbG93KFwiYXV0by1xdWV1ZVwiKTtcbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICAvLyBUaGUgJ3B1bGwgcmVxdWVzdCcgZXZlbnQgZ2l2ZXMgdGhlIHdvcmtmbG93ICdyZWFkLW9ubHknIHBlcm1pc3Npb25zIG9uIHNvbWVcbiAgICAgIC8vIHB1bGwgcmVxdWVzdHMgKHN1Y2ggYXMgdGhlIG9uZXMgZnJvbSBkZXBlbmRhYm90KSB3aGVuIHVzaW5nIHRoZSBgR0lUSFVCX1RPS0VOYFxuICAgICAgLy8gc2VjdXJpdHkgdG9rZW4uIFRoaXMgcHJldmVudHMgdGhlIHdvcmtmbG93IGZyb20gYXBwcm92aW5nIHRoZXNlIHB1bGwgcmVxdWVzdHMuXG4gICAgICAvLyBHaXRodWIgaGFzIHBsYWNlZCB0aGlzIGd1YXJkIHNvIGFzIHRvIHByZXZlbnQgc2VjdXJpdHkgYXR0YWNrcyBieSBzaW1wbHkgb3BlbmluZ1xuICAgICAgLy8gYSBwdWxsIHJlcXVlc3QgYW5kIHRyaWdnZXJpbmcgYSB3b3JrZmxvdyBvbiBhIGNvbW1pdCB0aGF0IHdhcyBub3QgdmV0dGVkIHRvIG1ha2VcbiAgICAgIC8vIHVuaW50ZW5kZWQgY2hhbmdlcyB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICAgIC8vXG4gICAgICAvLyBJbnN0ZWFkIHVzZSB0aGUgJ3B1bGwgcmVxdWVzdCB0YXJnZXQnIGV2ZW50IGhlcmUgdGhhdCBnaXZlcyB0aGUgR2l0aHViIHdvcmtmbG93XG4gICAgICAvLyAncmVhZC13cml0ZScgcGVybWlzc2lvbnMuIFRoaXMgaXMgc2FmZSBiZWNhdXNlLCB0aGlzIGV2ZW50LCB1bmxpa2UgdGhlICdwdWxsIHJlcXVlc3QnXG4gICAgICAvLyBldmVudCByZWZlcmVuY2VzIHRoZSBCQVNFIGNvbW1pdCBvZiB0aGUgcHVsbCByZXF1ZXN0IGFuZCBub3QgdGhlIEhFQUQgY29tbWl0LlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgZW5hYmxlIGF1dG8tcXVldWUgd2hlbiBhIFBSIGlzIG9wZW5lZCwgcmVvcGVuZWQgb3IgbW92aW5nIGZyb20gRHJhZnQgdG8gUmVhZHksXG4gICAgICAvLyBvciByZXRhcmdldGVkIHRvIGEgZGlmZmVyZW50IGJyYW5jaC4gU3BlY2lmaWNhbGx5LCBpZiBhIHVzZXIgZGlzYWJsZXMgYXV0by1xdWV1ZSB3ZSB0cnkgdmVyeSBoYXJkIHRvIGF2b2lkXG4gICAgICAvLyBhY2NpZGVudGFsbHkgcmUtZW5hYmxpbmcgaXQuXG4gICAgICAvL1xuICAgICAgLy8gVGhlICdlZGl0ZWQnIHRyaWdnZXIgaXMgb25seSB1c2VkIHRvIGRldGVjdCBiYXNlIGJyYW5jaCBjaGFuZ2VzLlxuICAgICAgcHVsbFJlcXVlc3RUYXJnZXQ6IHtcbiAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICBcIm9wZW5lZFwiLFxuICAgICAgICAgIFwicmVvcGVuZWRcIixcbiAgICAgICAgICBcInJlYWR5X2Zvcl9yZXZpZXdcIixcbiAgICAgICAgICAuLi4obmVlZHNFZGl0ZWRFdmVudCA/IFtcImVkaXRlZFwiIGFzIGNvbnN0XSA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgYnJhbmNoZXM6IG9wdGlvbnMudGFyZ2V0QnJhbmNoZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHdvcmtmbG93LmFkZEpvYnMoeyBlbmFibGVBdXRvUXVldWU6IGF1dG9RdWV1ZUpvYiB9KTtcbiAgfVxufVxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvYXV0by1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EscUNBQWtDO0FBRWxDLDZEQUErQztBQUMvQyw0Q0FBeUM7QUFHekM7Ozs7R0FJRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQXNFRDs7O0dBR0c7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUzs7SUFDdEMsWUFBWSxLQUFpQixFQUFFLFVBQTRCLEVBQUU7UUFDM0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FDRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQ2IsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUVqRCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQ2IsR0FBRztnQkFDRCxNQUFNO3FCQUNILEdBQUcsQ0FDRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osc0RBQXNELENBQUMsSUFBSSxDQUM5RDtx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eEMsRUFBRTtZQUNGLGtGQUFrRjtZQUNsRix3RkFBd0Y7WUFDeEYsZ0ZBQWdGO1lBQ2hGLEVBQUU7WUFDRix5RkFBeUY7WUFDekYsNkdBQTZHO1lBQzdHLCtCQUErQjtZQUMvQixFQUFFO1lBQ0YsbUVBQW1FO1lBQ25FLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLLEVBQUU7b0JBQ0wsUUFBUTtvQkFDUixVQUFVO29CQUNWLGtCQUFrQjtvQkFDbEIsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNqRDtnQkFDRCxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWM7YUFDakM7U0FDRixDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7QUEzSEgsOEJBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gXCIuL2dpdGh1YlwiO1xuaW1wb3J0IHR5cGUgeyBHaXRodWJDcmVkZW50aWFscyB9IGZyb20gXCIuL2dpdGh1Yi1jcmVkZW50aWFsc1wiO1xuaW1wb3J0ICogYXMgd29ya2Zsb3dzIGZyb20gXCIuL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5cbi8qKlxuICogVGhlIG1lcmdlIG1ldGhvZCB1c2VkIHRvIGFkZCB0aGUgUFIgdG8gdGhlIG1lcmdlIHF1ZXVlXG4gKlxuICogQmVoYXZpb3IgY2FuIGJlIGZ1cnRoZXIgY29uZmlndXJlZCBpbiByZXBvc2l0b3J5IHNldHRpbmdzLlxuICovXG5leHBvcnQgZW51bSBNZXJnZU1ldGhvZCB7XG4gIFNRVUFTSCA9IFwic3F1YXNoXCIsXG4gIE1FUkdFID0gXCJtZXJnZVwiLFxuICBSRUJBU0UgPSBcInJlYmFzZVwiLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yICdBdXRvUXVldWUnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1F1ZXVlT3B0aW9ucyBleHRlbmRzIFJ1bnNPbk9wdGlvbnMge1xuICAvKipcbiAgICogT25seSBwdWxsIHJlcXVlc3RzIGF1dGhvcmVkIGJ5IHRoZXNlIEdpdGh1YiB1c2VybmFtZXMgd2lsbCBoYXZlIGF1dG8tcXVldWUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgLSBwdWxsIHJlcXVlc3RzIGZyb20gYWxsIHVzZXJzIGFyZSBlbGlnaWJsZSBmb3IgYXV0by1xdWV1aW5nXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkVXNlcm5hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9ubHkgcHVsbCByZXF1ZXN0cyB3aXRoIG9uZSBvZiB0aGlzIGxhYmVscyB3aWxsIGhhdmUgYXV0by1xdWV1ZSBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCAtIGFsbCBwdWxsIHJlcXVlc3RzIGFyZSBlbGlnaWJsZSBmb3IgYXV0by1xdWV1ZWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENob29zZSBhIG1ldGhvZCBmb3IgYXV0aGVudGljYXRpbmcgd2l0aCBHaXRIdWIgdG8gZW5hYmxlIGF1dG8tcXVldWUgb24gcHVsbCByZXF1ZXN0cy5cbiAgICpcbiAgICogVGhlIHdvcmtmbG93IGNhbm5vdCB1c2UgYSBkZWZhdWx0IGdpdGh1YiB0b2tlbi4gUXVldWluZyBhIFBSXG4gICAqIHdpdGggdGhlIGRlZmF1bHQgdG9rZW4gd2lsbCBub3QgdHJpZ2dlciBhbnkgbWVyZ2UgcXVldWUgd29ya2Zsb3dzLFxuICAgKiB3aGljaCByZXN1bHRzIGluIHRoZSBQUiBqdXN0IG5vdCBnZXR0aW5nIG1lcmdlZCBhdCBhbGwuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wcm9qZW4uaW8vZG9jcy9pbnRlZ3JhdGlvbnMvZ2l0aHViL1xuICAgKiBAZGVmYXVsdCAtIHVzZXMgY3JlZGVudGlhbHMgZnJvbSB0aGUgR2l0SHViIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuQ3JlZGVudGlhbHM/OiBHaXRodWJDcmVkZW50aWFscztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGFkZCB0aGUgUFIgdG8gdGhlIG1lcmdlIHF1ZXVlXG4gICAqIEFueSBicmFuY2ggcHJvdGVjdGlvbiBydWxlcyBtdXN0IGFsbG93IHRoaXMgbWVyZ2UgbWV0aG9kLlxuICAgKiBAZGVmYXVsdCBNZXJnZU1ldGhvZC5TUVVBU0hcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWV0aG9kPzogTWVyZ2VNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggbmFtZXMgdGhhdCB3ZSBzaG91bGQgYXV0by1xdWV1ZSBmb3JcbiAgICpcbiAgICogVGhpcyBzZXQgb2YgYnJhbmNoZXMgc2hvdWxkIGJlIGEgc3Vic2V0IG9mIGBNZXJnZVF1ZXVlT3B0aW9ucy50YXJnZXRCcmFuY2hlc2AuXG4gICAqXG4gICAqIEJlIHN1cmUgbm90IHRvIGVuYWJsZSBgYXV0b1F1ZXVlYCBmb3IgYnJhbmNoZXMgdGhhdCBkb24ndCBoYXZlIGJyYW5jaCBydWxlc1xuICAgKiB3aXRoIG1lcmdlIHJlcXVpcmVtZW50cyBzZXQgdXAsIG90aGVyd2lzZSBuZXcgUFJzIHdpbGwgYmUgbWVyZ2VkXG4gICAqIGltbWVkaWF0ZWx5IGFmdGVyIGNyZWF0aW5nIHdpdGhvdXQgYSBjaGFuY2UgZm9yIHJldmlldy5cbiAgICpcbiAgICogIyMgQXV0b21hdGljYWxseSBtZXJnaW5nIGEgc2V0IG9mIFN0YWNrZWQgUFJzXG4gICAqXG4gICAqIElmIHlvdSBzZXQgdGhpcyB0byBgWydtYWluJ11gIHlvdSBjYW4gYXV0b21hdGljYWxseSBtZXJnZSBhIHNldCBvZiBTdGFja2VkIFBSc1xuICAgKiBpbiB0aGUgcmlnaHQgb3JkZXIuIEl0IHdvcmtzIGxpa2UgdGhpczpcbiAgICpcbiAgICogLSBDcmVhdGUgUFIgIzEgZnJvbSBicmFuY2ggYGFgLCB0YXJnZXRpbmcgYG1haW5gLlxuICAgKiAtIENyZWF0ZSBQUiAjMiBmcm9tIGJyYW5jaCBgYmAsIHRhcmdldGluZyBicmFuY2ggYGFgLlxuICAgKiAtIENyZWF0ZSBQUiAjMyBmcm9tIGJyYW5jaCBgY2AsIHRhcmdldGluZyBicmFuY2ggYGJgLlxuICAgKlxuICAgKiBJbml0aWFsbHksIFBSICMxIHdpbGwgYmUgc2V0IHRvIGF1dG8tbWVyZ2UsIFBScyAjMiBhbmQgIzMgd2lsbCBub3QuXG4gICAqXG4gICAqIE9uY2UgUFIgIzEgcGFzc2VzIGFsbCBvZiBpdHMgcmVxdWlyZW1lbnRzIGl0IHdpbGwgbWVyZ2UuIFRoYXQgd2lsbCBkZWxldGVcbiAgICogYnJhbmNoIGBhYCBhbmQgY2hhbmdlICB0aGUgdGFyZ2V0IGJyYW5jaCBvZiBQUiAjMiBjaGFuZ2UgdG8gYG1haW5gLiBBdCB0aGF0XG4gICAqIHBvaW50LCBhdXRvLXF1ZXVlaW5nIHdpbGwgc3dpdGNoIG9uIGZvciBQUiAjMiBhbmQgaXQgZ2V0cyBtZXJnZWQsIGV0Yy5cbiAgICpcbiAgICogPiBbIUlNUE9SVEFOVF1cbiAgICogPiBUaGlzIGNvbXBvbmVudCB3aWxsIG5ldmVyIGRpc2FibGUgQXV0b01lcmdlLCBvbmx5IGVuYWJsZSBpdC4gU28gaWYgYSBQUiBpc1xuICAgKiA+IGluaXRpYWxseSB0YXJnZXRlZCBhdCBvbmUgb2YgdGhlIGJyYW5jaGVzIGluIHRoaXMgbGlzdCwgYW5kIHRoZW5cbiAgICogPiBzdWJzZXF1ZW50bHkgcmV0YXJnZXRlZCB0byBhbm90aGVyIGJyYW5jaCwgKkF1dG9NZXJnZSBpcyBub3RcbiAgICogPiBhdXRvbWF0aWNhbGx5IHR1cm5lZCBvZmYqLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QnJhbmNoZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IGFkZCBwdWxsIHJlcXVlc3RzIHRvIHRoZSBtZXJnZSBxdWV1ZVxuICogUFJzIHdpbGwgYmUgbWVyZ2VkIG9uY2UgdGhleSBwYXNzIHJlcXVpcmVkIGNoZWNrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9RdWV1ZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBJQ29uc3RydWN0LCBvcHRpb25zOiBBdXRvUXVldWVPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihzY29wZSk7XG5cbiAgICBjb25zdCB3b3JrZmxvd0VuZ2luZSA9IEdpdEh1Yi5vZih0aGlzLnByb2plY3QpO1xuICAgIGlmICghd29ya2Zsb3dFbmdpbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBhZGQgJHtcbiAgICAgICAgICBuZXcudGFyZ2V0Lm5hbWVcbiAgICAgICAgfSB0byBwcm9qZWN0IHdpdGhvdXQgR2l0SHViIGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgR2l0SHViIGZvciB0aGlzIHByb2plY3QuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxzID0gb3B0aW9ucy5sYWJlbHMgPz8gW107XG4gICAgY29uc3QgdXNlcm5hbWVzID0gb3B0aW9ucy5hbGxvd2VkVXNlcm5hbWVzID8/IFtdO1xuXG4gICAgY29uc3QgY29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaChcbiAgICAgICAgXCIoXCIgK1xuICAgICAgICAgIGxhYmVsc1xuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgKGwpID0+XG4gICAgICAgICAgICAgICAgYGNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJyR7bH0nKWAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbihcIiB8fCBcIikgK1xuICAgICAgICAgIFwiKVwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVzZXJuYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgIFwiKFwiICtcbiAgICAgICAgICB1c2VybmFtZXNcbiAgICAgICAgICAgIC5tYXAoKHUpID0+IGBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gPT0gJyR7dX0nYClcbiAgICAgICAgICAgIC5qb2luKFwiIHx8IFwiKSArXG4gICAgICAgICAgXCIpXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBuZWVkc0VkaXRlZEV2ZW50ID0gZmFsc2U7XG4gICAgaWYgKG9wdGlvbnMudGFyZ2V0QnJhbmNoZXMpIHtcbiAgICAgIC8vIEJyYW5jaCBjb25kaXRpb25zLCBiYXNlZCBvZmYgdGhlICdvcGVuZWQnIG9yICdlZGl0ZWQnIGV2ZW50cy5cbiAgICAgIC8vXG4gICAgICAvLyBUaGUgY3VycmVudCB3b3JrZmxvdyB3aWxsIG9ubHkgcnVuIGlmIHRoZSB0YXJnZXQgYnJhbmNoIGlzIG9uZSBvZiB0aGUgaW50ZW5kZWRcbiAgICAgIC8vIG9uZXMsIHNvIHdlIG9ubHkgbmVlZCB0byBjaGVjayBpZiB0aGUgZXZlbnQgdHlwZSBpcyBjb3JyZWN0LlxuICAgICAgbmVlZHNFZGl0ZWRFdmVudCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGlzT3BlbmVkID0gYGdpdGh1Yi5ldmVudC5hY3Rpb24gPT0gJ29wZW5lZCdgO1xuICAgICAgY29uc3QgaXNCcmFuY2hDaGFuZ2VkID0gYChnaXRodWIuZXZlbnQuYWN0aW9uID09ICdlZGl0ZWQnICYmIGdpdGh1Yi5ldmVudC5jaGFuZ2VzLmJhc2UpYDtcblxuICAgICAgY29uZGl0aW9ucy5wdXNoKGAoJHtpc09wZW5lZH0gfHwgJHtpc0JyYW5jaENoYW5nZWR9KWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWRlbnRpYWxzID1cbiAgICAgIG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHMgPz8gd29ya2Zsb3dFbmdpbmUucHJvamVuQ3JlZGVudGlhbHM7XG4gICAgY29uc3QgbWVyZ2VNZXRob2QgPSBvcHRpb25zLm1lcmdlTWV0aG9kID8/IE1lcmdlTWV0aG9kLlNRVUFTSDtcblxuICAgIC8vIFRoZSBtZXJnZSBtZXRob2QgaXMgaW50ZXJwb2xhdGVkIGludG8gYSBzaGVsbCBjb21tYW5kIGJlbG93LiBFdmVuIHRob3VnaCB0aGVcbiAgICAvLyB0eXBlIHN5c3RlbSByZXN0cmljdHMgdGhpcyB0byBgTWVyZ2VNZXRob2RgLCB0aGF0IGd1YXJhbnRlZSBkb2VzIG5vdCBob2xkIGZvclxuICAgIC8vIGNvbnN1bWVycyBpbiBvdGhlciBqc2lpIGxhbmd1YWdlcyBvciBwbGFpbiBKYXZhU2NyaXB0LCBzbyB2YWxpZGF0ZSBleHBsaWNpdGx5LlxuICAgIGNvbnN0IHZhbGlkTWVyZ2VNZXRob2RzID0gT2JqZWN0LnZhbHVlcyhNZXJnZU1ldGhvZCk7XG4gICAgaWYgKCF2YWxpZE1lcmdlTWV0aG9kcy5pbmNsdWRlcyhtZXJnZU1ldGhvZCkpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBPYmplY3QuZW50cmllcyhNZXJnZU1ldGhvZClcbiAgICAgICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gYE1lcmdlTWV0aG9kLiR7bmFtZX0gKFwiJHt2YWx1ZX1cIilgKVxuICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBtZXJnZU1ldGhvZCBcIiR7bWVyZ2VNZXRob2R9XCIgaW4gQXV0b1F1ZXVlT3B0aW9ucy4gYCArXG4gICAgICAgICAgYFNldCAnbWVyZ2VNZXRob2QnIHRvIG9uZSBvZjogJHthbGxvd2VkfSwgb3IgbGVhdmUgaXQgdW5zZXQgdG8gZGVmYXVsdCB0byBNZXJnZU1ldGhvZC5TUVVBU0guYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXV0b1F1ZXVlSm9iOiB3b3JrZmxvd3MuSm9iID0ge1xuICAgICAgbmFtZTogXCJTZXQgQXV0b1F1ZXVlIG9uIFBSICMke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fVwiLFxuICAgICAgLi4ud29ya2Zsb3dFbmdpbmUucnVuc09uQ29uZmlnKG9wdGlvbnMpLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgcHVsbFJlcXVlc3RzOiB3b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGlmOiBjb25kaXRpb25zLmxlbmd0aCA/IGNvbmRpdGlvbnMuam9pbihcIiAmJiBcIikgOiB1bmRlZmluZWQsXG4gICAgICBlbnZpcm9ubWVudDogY3JlZGVudGlhbHMuZW52aXJvbm1lbnQsXG4gICAgICBzdGVwczogW1xuICAgICAgICAuLi5jcmVkZW50aWFscy5zZXR1cFN0ZXBzLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IFwiYXV0by1xdWV1ZS1wclwiLFxuICAgICAgICAgIHJ1bjogYGdoIHByIG1lcmdlIC0tYXV0byAtLSR7bWVyZ2VNZXRob2R9IFwiJFBSX05VTUJFUlwiIC0tcmVwbyBcIiRHSF9SRVBPXCJgLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgR0hfVE9LRU46IGNyZWRlbnRpYWxzLnRva2VuUmVmLFxuICAgICAgICAgICAgR0hfUkVQTzogXCIke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX1cIixcbiAgICAgICAgICAgIFBSX05VTUJFUjogXCIke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IHdvcmtmbG93RW5naW5lLmFkZFdvcmtmbG93KFwiYXV0by1xdWV1ZVwiKTtcbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICAvLyBUaGUgJ3B1bGwgcmVxdWVzdCcgZXZlbnQgZ2l2ZXMgdGhlIHdvcmtmbG93ICdyZWFkLW9ubHknIHBlcm1pc3Npb25zIG9uIHNvbWVcbiAgICAgIC8vIHB1bGwgcmVxdWVzdHMgKHN1Y2ggYXMgdGhlIG9uZXMgZnJvbSBkZXBlbmRhYm90KSB3aGVuIHVzaW5nIHRoZSBgR0lUSFVCX1RPS0VOYFxuICAgICAgLy8gc2VjdXJpdHkgdG9rZW4uIFRoaXMgcHJldmVudHMgdGhlIHdvcmtmbG93IGZyb20gYXBwcm92aW5nIHRoZXNlIHB1bGwgcmVxdWVzdHMuXG4gICAgICAvLyBHaXRodWIgaGFzIHBsYWNlZCB0aGlzIGd1YXJkIHNvIGFzIHRvIHByZXZlbnQgc2VjdXJpdHkgYXR0YWNrcyBieSBzaW1wbHkgb3BlbmluZ1xuICAgICAgLy8gYSBwdWxsIHJlcXVlc3QgYW5kIHRyaWdnZXJpbmcgYSB3b3JrZmxvdyBvbiBhIGNvbW1pdCB0aGF0IHdhcyBub3QgdmV0dGVkIHRvIG1ha2VcbiAgICAgIC8vIHVuaW50ZW5kZWQgY2hhbmdlcyB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICAgIC8vXG4gICAgICAvLyBJbnN0ZWFkIHVzZSB0aGUgJ3B1bGwgcmVxdWVzdCB0YXJnZXQnIGV2ZW50IGhlcmUgdGhhdCBnaXZlcyB0aGUgR2l0aHViIHdvcmtmbG93XG4gICAgICAvLyAncmVhZC13cml0ZScgcGVybWlzc2lvbnMuIFRoaXMgaXMgc2FmZSBiZWNhdXNlLCB0aGlzIGV2ZW50LCB1bmxpa2UgdGhlICdwdWxsIHJlcXVlc3QnXG4gICAgICAvLyBldmVudCByZWZlcmVuY2VzIHRoZSBCQVNFIGNvbW1pdCBvZiB0aGUgcHVsbCByZXF1ZXN0IGFuZCBub3QgdGhlIEhFQUQgY29tbWl0LlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgZW5hYmxlIGF1dG8tcXVldWUgd2hlbiBhIFBSIGlzIG9wZW5lZCwgcmVvcGVuZWQgb3IgbW92aW5nIGZyb20gRHJhZnQgdG8gUmVhZHksXG4gICAgICAvLyBvciByZXRhcmdldGVkIHRvIGEgZGlmZmVyZW50IGJyYW5jaC4gU3BlY2lmaWNhbGx5LCBpZiBhIHVzZXIgZGlzYWJsZXMgYXV0by1xdWV1ZSB3ZSB0cnkgdmVyeSBoYXJkIHRvIGF2b2lkXG4gICAgICAvLyBhY2NpZGVudGFsbHkgcmUtZW5hYmxpbmcgaXQuXG4gICAgICAvL1xuICAgICAgLy8gVGhlICdlZGl0ZWQnIHRyaWdnZXIgaXMgb25seSB1c2VkIHRvIGRldGVjdCBiYXNlIGJyYW5jaCBjaGFuZ2VzLlxuICAgICAgcHVsbFJlcXVlc3RUYXJnZXQ6IHtcbiAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICBcIm9wZW5lZFwiLFxuICAgICAgICAgIFwicmVvcGVuZWRcIixcbiAgICAgICAgICBcInJlYWR5X2Zvcl9yZXZpZXdcIixcbiAgICAgICAgICAuLi4obmVlZHNFZGl0ZWRFdmVudCA/IFtcImVkaXRlZFwiIGFzIGNvbnN0XSA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgYnJhbmNoZXM6IG9wdGlvbnMudGFyZ2V0QnJhbmNoZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHdvcmtmbG93LmFkZEpvYnMoeyBlbmFibGVBdXRvUXVldWU6IGF1dG9RdWV1ZUpvYiB9KTtcbiAgfVxufVxuIl19
@@ -166,7 +166,7 @@ var VersioningStrategy;
166
166
  * on the lockfile itself will be proposed.
167
167
  */
168
168
  class Dependabot extends component_1.Component {
169
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.102.0" };
169
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.103.1" };
170
170
  /**
171
171
  * The raw dependabot configuration.
172
172
  * @see https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
@@ -1,10 +1,10 @@
1
1
  import type { GitHub } from "./github";
2
2
  import { Component } from "../component";
3
- import type { GroupRunnerOptions } from "../runner-options";
3
+ import type { RunsOnOptions } from "../runner-options";
4
4
  /**
5
5
  * Options for the DependencyReview component.
6
6
  */
7
- export interface DependencyReviewOptions {
7
+ export interface DependencyReviewOptions extends RunsOnOptions {
8
8
  /**
9
9
  * The severity level at which the action will fail.
10
10
  *
@@ -77,16 +77,6 @@ export interface DependencyReviewOptions {
77
77
  * @default 3
78
78
  */
79
79
  readonly warnOnOpenSSFScorecardLevel?: number;
80
- /**
81
- * Github Runner selection labels.
82
- *
83
- * @default ["ubuntu-latest"]
84
- */
85
- readonly runsOn?: string[];
86
- /**
87
- * Github Runner Group selection options.
88
- */
89
- readonly runsOnGroup?: GroupRunnerOptions;
90
80
  }
91
81
  /**
92
82
  * Adds a GitHub workflow that runs the dependency-review-action on pull requests.
@@ -6,7 +6,6 @@ const actions_const_1 = require("./actions.const");
6
6
  const workflow_steps_1 = require("./workflow-steps");
7
7
  const workflows_model_1 = require("./workflows-model");
8
8
  const component_1 = require("../component");
9
- const runner_options_1 = require("../runner-options");
10
9
  /**
11
10
  * Adds a GitHub workflow that runs the dependency-review-action on pull requests.
12
11
  *
@@ -16,7 +15,7 @@ const runner_options_1 = require("../runner-options");
16
15
  * @see https://github.com/actions/dependency-review-action
17
16
  */
18
17
  class DependencyReview extends component_1.Component {
19
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.102.0" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.103.1" };
20
19
  constructor(github, options = {}) {
21
20
  super(github.project);
22
21
  const commentSummary = options.commentSummaryInPr ?? "always";
@@ -27,7 +26,7 @@ class DependencyReview extends component_1.Component {
27
26
  });
28
27
  workflow.addJobs({
29
28
  "dependency-review": {
30
- ...(0, runner_options_1.filteredRunsOnOptions)(options.runsOn, options.runsOnGroup),
29
+ ...github.runsOnConfig(options),
31
30
  permissions: {
32
31
  contents: workflows_model_1.JobPermission.READ,
33
32
  ...(commentSummary !== "never"
@@ -60,4 +59,4 @@ class DependencyReview extends component_1.Component {
60
59
  }
61
60
  }
62
61
  exports.DependencyReview = DependencyReview;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL2RlcGVuZGVuY3ktcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtREFBZ0Q7QUFFaEQscURBQWlEO0FBQ2pELHVEQUFrRDtBQUNsRCw0Q0FBeUM7QUFFekMsc0RBQTBEO0FBdUcxRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxxQkFBUzs7SUFDN0MsWUFBWSxNQUFjLEVBQUUsVUFBbUMsRUFBRTtRQUMvRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxRQUFRLENBQUM7UUFFOUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixXQUFXLEVBQUUsRUFBRTtZQUNmLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNmLG1CQUFtQixFQUFFO2dCQUNuQixHQUFHLElBQUEsc0NBQXFCLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUM3RCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtvQkFDNUIsR0FBRyxDQUFDLGNBQWMsS0FBSyxPQUFPO3dCQUM1QixDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLLEVBQUU7d0JBQ3ZDLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQ1I7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLDhCQUFhLENBQUMsUUFBUSxFQUFFO29CQUN4Qjt3QkFDRSxJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixJQUFJLEVBQUUsNkJBQWEsQ0FBQyxnQ0FBZ0M7d0JBQ3BELElBQUksRUFBRTs0QkFDSixrQkFBa0IsRUFBRSxPQUFPLENBQUMsY0FBYzs0QkFDMUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUNuRCxxQkFBcUIsRUFBRSxPQUFPLENBQUMsa0JBQWtCOzRCQUNqRCxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVk7NEJBQ3JDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQzs0QkFDbEQsYUFBYSxFQUFFLE9BQU8sQ0FBQyxVQUFVOzRCQUNqQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUM3QyxlQUFlLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUNqRCx1QkFBdUIsRUFBRSxjQUFjOzRCQUN2QyxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVE7NEJBQzdCLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7NEJBQ3RELGlDQUFpQyxFQUMvQixPQUFPLENBQUMsMkJBQTJCO3lCQUN0QztxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3Q0gsNENBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2l0SHViQWN0aW9ucyB9IGZyb20gXCIuL2FjdGlvbnMuY29uc3RcIjtcbmltcG9ydCB0eXBlIHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5pbXBvcnQgeyBXb3JrZmxvd1N0ZXBzIH0gZnJvbSBcIi4vd29ya2Zsb3ctc3RlcHNcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgR3JvdXBSdW5uZXJPcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5pbXBvcnQgeyBmaWx0ZXJlZFJ1bnNPbk9wdGlvbnMgfSBmcm9tIFwiLi4vcnVubmVyLW9wdGlvbnNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgRGVwZW5kZW5jeVJldmlldyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwZW5kZW5jeVJldmlld09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHNldmVyaXR5IGxldmVsIGF0IHdoaWNoIHRoZSBhY3Rpb24gd2lsbCBmYWlsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pbmltdW0gc2V2ZXJpdHkgKGFjdGlvbiBkZWZhdWx0IGlzIFwibG93XCIpXG4gICAqL1xuICByZWFkb25seSBmYWlsT25TZXZlcml0eT86IFwibG93XCIgfCBcIm1vZGVyYXRlXCIgfCBcImhpZ2hcIiB8IFwiY3JpdGljYWxcIjtcblxuICAvKipcbiAgICogTGlzdCBvZiBhbGxvd2VkIFNQRFggbGljZW5zZSBpZGVudGlmaWVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsaWNlbnNlIGFsbG93LWxpc3RcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93TGljZW5zZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIHZ1bG5lcmFiaWxpdHkgY2hlY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZ1bG5lcmFiaWxpdHlDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBsaWNlbnNlIGNoZWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTY29wZXMgb2YgZGVwZW5kZW5jaWVzIHRvIGZhaWwgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NvcGVzIGZpbHRlciAoYWN0aW9uIGRlZmF1bHQgaXMgXCJydW50aW1lXCIpXG4gICAqL1xuICByZWFkb25seSBmYWlsT25TY29wZXM/OiBBcnJheTxcInJ1bnRpbWVcIiB8IFwiZGV2ZWxvcG1lbnRcIiB8IFwidW5rbm93blwiPjtcblxuICAvKipcbiAgICogUGF0aCB0byBhbiBleHRlcm5hbCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0ZXJuYWwgY29uZmlnXG4gICAqL1xuICByZWFkb25seSBjb25maWdGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgQWR2aXNvcnkgRGF0YWJhc2UgSURzIHRoYXQgY2FuIGJlIHNraXBwZWQgZHVyaW5nIGRldGVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZHZpc29yaWVzIGFyZSBza2lwcGVkXG4gICAqL1xuICByZWFkb25seSBhbGxvd0doc2FzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBhY2thZ2VzIHRvIGJsb2NrIGluIGEgUFIgKGluIHB1cmwgZm9ybWF0KS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYWNrYWdlcyBhcmUgZGVuaWVkXG4gICAqL1xuICByZWFkb25seSBkZW55UGFja2FnZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwb3N0IGEgY29tbWVudCBzdW1tYXJ5IG9uIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJhbHdheXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudFN1bW1hcnlJblByPzogXCJhbHdheXNcIiB8IFwib24tZmFpbHVyZVwiIHwgXCJuZXZlclwiO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHRoZSBhY3Rpb24gd2lsbCBvbmx5IHdhcm4gYW5kIG5vdCBmYWlsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2Fybk9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG93IE9wZW5TU0YgU2NvcmVjYXJkIHNjb3JlcyBmb3IgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzaG93T3BlblNTRlNjb3JlY2FyZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNjb3JlIHRocmVzaG9sZCBmb3IgT3BlblNTRiBTY29yZWNhcmQgd2FybmluZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5Pbk9wZW5TU0ZTY29yZWNhcmRMZXZlbD86IG51bWJlcjtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCJ1YnVudHUtbGF0ZXN0XCJdXG4gICAqL1xuICByZWFkb25seSBydW5zT24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBHcm91cCBzZWxlY3Rpb24gb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xufVxuXG4vKipcbiAqIEFkZHMgYSBHaXRIdWIgd29ya2Zsb3cgdGhhdCBydW5zIHRoZSBkZXBlbmRlbmN5LXJldmlldy1hY3Rpb24gb24gcHVsbCByZXF1ZXN0cy5cbiAqXG4gKiBUaGlzIGFjdGlvbiBzY2FucyBwdWxsIHJlcXVlc3RzIGZvciBkZXBlbmRlbmN5IGNoYW5nZXMgYW5kIHJhaXNlcyBhbiBlcnJvclxuICogaWYgYW55IHZ1bG5lcmFiaWxpdGllcyBvciBpbnZhbGlkIGxpY2Vuc2VzIGFyZSBpbnRyb2R1Y2VkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvZGVwZW5kZW5jeS1yZXZpZXctYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBlbmRlbmN5UmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IERlcGVuZGVuY3lSZXZpZXdPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihnaXRodWIucHJvamVjdCk7XG5cbiAgICBjb25zdCBjb21tZW50U3VtbWFyeSA9IG9wdGlvbnMuY29tbWVudFN1bW1hcnlJblByID8/IFwiYWx3YXlzXCI7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5hZGRXb3JrZmxvdyhcImRlcGVuZGVuY3ktcmV2aWV3XCIpO1xuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7fSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgd29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBcImRlcGVuZGVuY3ktcmV2aWV3XCI6IHtcbiAgICAgICAgLi4uZmlsdGVyZWRSdW5zT25PcHRpb25zKG9wdGlvbnMucnVuc09uLCBvcHRpb25zLnJ1bnNPbkdyb3VwKSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIC4uLihjb21tZW50U3VtbWFyeSAhPT0gXCJuZXZlclwiXG4gICAgICAgICAgICA/IHsgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkRlcGVuZGVuY3kgUmV2aWV3XCIsXG4gICAgICAgICAgICB1c2VzOiBHaXRIdWJBY3Rpb25zLkFDVElPTlNfREVQRU5ERU5DWV9SRVZJRVdfQUNUSU9OLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcImZhaWwtb24tc2V2ZXJpdHlcIjogb3B0aW9ucy5mYWlsT25TZXZlcml0eSxcbiAgICAgICAgICAgICAgXCJhbGxvdy1saWNlbnNlc1wiOiBvcHRpb25zLmFsbG93TGljZW5zZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJ2dWxuZXJhYmlsaXR5LWNoZWNrXCI6IG9wdGlvbnMudnVsbmVyYWJpbGl0eUNoZWNrLFxuICAgICAgICAgICAgICBcImxpY2Vuc2UtY2hlY2tcIjogb3B0aW9ucy5saWNlbnNlQ2hlY2ssXG4gICAgICAgICAgICAgIFwiZmFpbC1vbi1zY29wZXNcIjogb3B0aW9ucy5mYWlsT25TY29wZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJjb25maWctZmlsZVwiOiBvcHRpb25zLmNvbmZpZ0ZpbGUsXG4gICAgICAgICAgICAgIFwiYWxsb3ctZ2hzYXNcIjogb3B0aW9ucy5hbGxvd0doc2FzPy5qb2luKFwiLCBcIiksXG4gICAgICAgICAgICAgIFwiZGVueS1wYWNrYWdlc1wiOiBvcHRpb25zLmRlbnlQYWNrYWdlcz8uam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgICBcImNvbW1lbnQtc3VtbWFyeS1pbi1wclwiOiBjb21tZW50U3VtbWFyeSxcbiAgICAgICAgICAgICAgXCJ3YXJuLW9ubHlcIjogb3B0aW9ucy53YXJuT25seSxcbiAgICAgICAgICAgICAgXCJzaG93LW9wZW5zc2Ytc2NvcmVjYXJkXCI6IG9wdGlvbnMuc2hvd09wZW5TU0ZTY29yZWNhcmQsXG4gICAgICAgICAgICAgIFwid2Fybi1vbi1vcGVuc3NmLXNjb3JlY2FyZC1sZXZlbFwiOlxuICAgICAgICAgICAgICAgIG9wdGlvbnMud2Fybk9uT3BlblNTRlNjb3JlY2FyZExldmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL2RlcGVuZGVuY3ktcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtREFBZ0Q7QUFFaEQscURBQWlEO0FBQ2pELHVEQUFrRDtBQUNsRCw0Q0FBeUM7QUE0RnpDOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHFCQUFTOztJQUM3QyxZQUFZLE1BQWMsRUFBRSxVQUFtQyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixJQUFJLFFBQVEsQ0FBQztRQUU5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNWLFdBQVcsRUFBRSxFQUFFO1lBQ2YsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ2YsbUJBQW1CLEVBQUU7Z0JBQ25CLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLFdBQVcsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQWEsQ0FBQyxJQUFJO29CQUM1QixHQUFHLENBQUMsY0FBYyxLQUFLLE9BQU87d0JBQzVCLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUssRUFBRTt3QkFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDUjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsOEJBQWEsQ0FBQyxRQUFRLEVBQUU7b0JBQ3hCO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLElBQUksRUFBRSw2QkFBYSxDQUFDLGdDQUFnQzt3QkFDcEQsSUFBSSxFQUFFOzRCQUNKLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxjQUFjOzRCQUMxQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ25ELHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7NEJBQ2pELGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWTs0QkFDckMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUNsRCxhQUFhLEVBQUUsT0FBTyxDQUFDLFVBQVU7NEJBQ2pDLGFBQWEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ2pELHVCQUF1QixFQUFFLGNBQWM7NEJBQ3ZDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUTs0QkFDN0Isd0JBQXdCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjs0QkFDdEQsaUNBQWlDLEVBQy9CLE9BQU8sQ0FBQywyQkFBMkI7eUJBQ3RDO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdDSCw0Q0E4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWJBY3Rpb25zIH0gZnJvbSBcIi4vYWN0aW9ucy5jb25zdFwiO1xuaW1wb3J0IHR5cGUgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IFdvcmtmbG93U3RlcHMgfSBmcm9tIFwiLi93b3JrZmxvdy1zdGVwc1wiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCIuL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIERlcGVuZGVuY3lSZXZpZXcgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGVuY3lSZXZpZXdPcHRpb25zIGV4dGVuZHMgUnVuc09uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc2V2ZXJpdHkgbGV2ZWwgYXQgd2hpY2ggdGhlIGFjdGlvbiB3aWxsIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWluaW11bSBzZXZlcml0eSAoYWN0aW9uIGRlZmF1bHQgaXMgXCJsb3dcIilcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPblNldmVyaXR5PzogXCJsb3dcIiB8IFwibW9kZXJhdGVcIiB8IFwiaGlnaFwiIHwgXCJjcml0aWNhbFwiO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFsbG93ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpY2Vuc2UgYWxsb3ctbGlzdFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaWNlbnNlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgdnVsbmVyYWJpbGl0eSBjaGVjay5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdnVsbmVyYWJpbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGxpY2Vuc2UgY2hlY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNjb3BlcyBvZiBkZXBlbmRlbmNpZXMgdG8gZmFpbCBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzY29wZXMgZmlsdGVyIChhY3Rpb24gZGVmYXVsdCBpcyBcInJ1bnRpbWVcIilcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxPblNjb3Blcz86IEFycmF5PFwicnVudGltZVwiIHwgXCJkZXZlbG9wbWVudFwiIHwgXCJ1bmtub3duXCI+O1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGFuIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleHRlcm5hbCBjb25maWdcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ0ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBBZHZpc29yeSBEYXRhYmFzZSBJRHMgdGhhdCBjYW4gYmUgc2tpcHBlZCBkdXJpbmcgZGV0ZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkdmlzb3JpZXMgYXJlIHNraXBwZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93R2hzYXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGFja2FnZXMgdG8gYmxvY2sgaW4gYSBQUiAoaW4gcHVybCBmb3JtYXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBhY2thZ2VzIGFyZSBkZW5pZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlbnlQYWNrYWdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvc3QgYSBjb21tZW50IHN1bW1hcnkgb24gdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImFsd2F5c1wiXG4gICAqL1xuICByZWFkb25seSBjb21tZW50U3VtbWFyeUluUHI/OiBcImFsd2F5c1wiIHwgXCJvbi1mYWlsdXJlXCIgfCBcIm5ldmVyXCI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIGFjdGlvbiB3aWxsIG9ubHkgd2FybiBhbmQgbm90IGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB3YXJuT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3cgT3BlblNTRiBTY29yZWNhcmQgc2NvcmVzIGZvciBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNob3dPcGVuU1NGU2NvcmVjYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2NvcmUgdGhyZXNob2xkIGZvciBPcGVuU1NGIFNjb3JlY2FyZCB3YXJuaW5ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgd2Fybk9uT3BlblNTRlNjb3JlY2FyZExldmVsPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYSBHaXRIdWIgd29ya2Zsb3cgdGhhdCBydW5zIHRoZSBkZXBlbmRlbmN5LXJldmlldy1hY3Rpb24gb24gcHVsbCByZXF1ZXN0cy5cbiAqXG4gKiBUaGlzIGFjdGlvbiBzY2FucyBwdWxsIHJlcXVlc3RzIGZvciBkZXBlbmRlbmN5IGNoYW5nZXMgYW5kIHJhaXNlcyBhbiBlcnJvclxuICogaWYgYW55IHZ1bG5lcmFiaWxpdGllcyBvciBpbnZhbGlkIGxpY2Vuc2VzIGFyZSBpbnRyb2R1Y2VkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvZGVwZW5kZW5jeS1yZXZpZXctYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBlbmRlbmN5UmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IERlcGVuZGVuY3lSZXZpZXdPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihnaXRodWIucHJvamVjdCk7XG5cbiAgICBjb25zdCBjb21tZW50U3VtbWFyeSA9IG9wdGlvbnMuY29tbWVudFN1bW1hcnlJblByID8/IFwiYWx3YXlzXCI7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5hZGRXb3JrZmxvdyhcImRlcGVuZGVuY3ktcmV2aWV3XCIpO1xuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7fSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgd29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBcImRlcGVuZGVuY3ktcmV2aWV3XCI6IHtcbiAgICAgICAgLi4uZ2l0aHViLnJ1bnNPbkNvbmZpZyhvcHRpb25zKSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIC4uLihjb21tZW50U3VtbWFyeSAhPT0gXCJuZXZlclwiXG4gICAgICAgICAgICA/IHsgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkRlcGVuZGVuY3kgUmV2aWV3XCIsXG4gICAgICAgICAgICB1c2VzOiBHaXRIdWJBY3Rpb25zLkFDVElPTlNfREVQRU5ERU5DWV9SRVZJRVdfQUNUSU9OLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcImZhaWwtb24tc2V2ZXJpdHlcIjogb3B0aW9ucy5mYWlsT25TZXZlcml0eSxcbiAgICAgICAgICAgICAgXCJhbGxvdy1saWNlbnNlc1wiOiBvcHRpb25zLmFsbG93TGljZW5zZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJ2dWxuZXJhYmlsaXR5LWNoZWNrXCI6IG9wdGlvbnMudnVsbmVyYWJpbGl0eUNoZWNrLFxuICAgICAgICAgICAgICBcImxpY2Vuc2UtY2hlY2tcIjogb3B0aW9ucy5saWNlbnNlQ2hlY2ssXG4gICAgICAgICAgICAgIFwiZmFpbC1vbi1zY29wZXNcIjogb3B0aW9ucy5mYWlsT25TY29wZXM/LmpvaW4oXCIsIFwiKSxcbiAgICAgICAgICAgICAgXCJjb25maWctZmlsZVwiOiBvcHRpb25zLmNvbmZpZ0ZpbGUsXG4gICAgICAgICAgICAgIFwiYWxsb3ctZ2hzYXNcIjogb3B0aW9ucy5hbGxvd0doc2FzPy5qb2luKFwiLCBcIiksXG4gICAgICAgICAgICAgIFwiZGVueS1wYWNrYWdlc1wiOiBvcHRpb25zLmRlbnlQYWNrYWdlcz8uam9pbihcIiwgXCIpLFxuICAgICAgICAgICAgICBcImNvbW1lbnQtc3VtbWFyeS1pbi1wclwiOiBjb21tZW50U3VtbWFyeSxcbiAgICAgICAgICAgICAgXCJ3YXJuLW9ubHlcIjogb3B0aW9ucy53YXJuT25seSxcbiAgICAgICAgICAgICAgXCJzaG93LW9wZW5zc2Ytc2NvcmVjYXJkXCI6IG9wdGlvbnMuc2hvd09wZW5TU0ZTY29yZWNhcmQsXG4gICAgICAgICAgICAgIFwid2Fybi1vbi1vcGVuc3NmLXNjb3JlY2FyZC1sZXZlbFwiOlxuICAgICAgICAgICAgICAgIG9wdGlvbnMud2Fybk9uT3BlblNTRlNjb3JlY2FyZExldmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -42,7 +42,7 @@ const actions_const_1 = require("./actions.const");
42
42
  */
43
43
  class GithubCredentials {
44
44
  options;
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.102.0" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.103.1" };
46
46
  /**
47
47
  * Provide API access through a GitHub personal access token.
48
48
  *
@@ -21,7 +21,7 @@ const vscode_1 = require("../vscode");
21
21
  * "engines" can be used to implement our CI/CD solutions.
22
22
  */
23
23
  class GitHubProject extends project_1.Project {
24
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.102.0" };
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.103.1" };
25
25
  /**
26
26
  * Access all github components.
27
27
  *
@@ -14,6 +14,7 @@ import { CheckoutSubmodules } from "./workflow-steps";
14
14
  import { GithubWorkflow } from "./workflows";
15
15
  import { Component } from "../component";
16
16
  import type { Project } from "../project";
17
+ import type { GroupRunnerOptions, RunsOnConfig, RunsOnOptions } from "../runner-options";
17
18
  export interface GitHubOptions {
18
19
  /**
19
20
  * Whether mergify should be enabled on this repository or not.
@@ -111,6 +112,21 @@ export interface GitHubOptions {
111
112
  * @default CheckoutSubmodules.DISABLED
112
113
  */
113
114
  readonly checkoutSubmodules?: CheckoutSubmodules;
115
+ /**
116
+ * Github Runner selection labels
117
+ * @default ["ubuntu-latest"]
118
+ * @description Defines a target Runner by labels for all workflows.
119
+ * Can be overridden on a per-component basis.
120
+ * @throws {Error} if both `workflowRunsOn` and `workflowRunsOnGroup` are specified
121
+ */
122
+ readonly workflowRunsOn?: string[];
123
+ /**
124
+ * Github Runner Group selection options
125
+ * @description Defines a target Runner Group by name and/or labels for all workflows.
126
+ * Can be overridden on a per-component basis.
127
+ * @throws {Error} if both `workflowRunsOn` and `workflowRunsOnGroup` are specified
128
+ */
129
+ readonly workflowRunsOnGroup?: GroupRunnerOptions;
114
130
  }
115
131
  export declare class GitHub extends Component {
116
132
  /**
@@ -142,6 +158,8 @@ export declare class GitHub extends Component {
142
158
  readonly actions: GitHubActionsProvider;
143
159
  private readonly _downloadLfs?;
144
160
  private readonly _checkoutSubmodules?;
161
+ private readonly _workflowRunsOn?;
162
+ private readonly _workflowRunsOnGroup?;
145
163
  constructor(project: Project, options?: GitHubOptions);
146
164
  /**
147
165
  * All workflows.
@@ -168,4 +186,12 @@ export declare class GitHub extends Component {
168
186
  * Whether checking out Git submodules is enabled for this GitHub project.
169
187
  */
170
188
  get checkoutSubmodules(): CheckoutSubmodules;
189
+ /**
190
+ * Resolves the `runsOn`/`runsOnGroup` config for a job, falling back to the
191
+ * project's global runner selection (`workflowRunsOn`/`workflowRunsOnGroup`)
192
+ * when `options` does not specify one.
193
+ * @param options per-job runner selection that takes precedence over the
194
+ * project's global default
195
+ */
196
+ runsOnConfig(options?: RunsOnOptions): RunsOnConfig;
171
197
  }
@@ -14,8 +14,9 @@ const pull_request_lint_1 = require("./pull-request-lint");
14
14
  const workflow_steps_1 = require("./workflow-steps");
15
15
  const workflows_1 = require("./workflows");
16
16
  const component_1 = require("../component");
17
+ const runner_options_1 = require("../runner-options");
17
18
  class GitHub extends component_1.Component {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.102.0" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.103.1" };
19
20
  /**
20
21
  * Returns the `GitHub` component of a project or `undefined` if the project
21
22
  * does not have a GitHub component.
@@ -48,12 +49,16 @@ class GitHub extends component_1.Component {
48
49
  actions;
49
50
  _downloadLfs;
50
51
  _checkoutSubmodules;
52
+ _workflowRunsOn;
53
+ _workflowRunsOnGroup;
51
54
  constructor(project, options = {}) {
52
55
  super(project);
53
56
  this.actions = new actions_provider_1.GitHubActionsProvider();
54
57
  this.workflowsEnabled = options.workflows ?? true;
55
58
  this._downloadLfs = options.downloadLfs;
56
59
  this._checkoutSubmodules = options.checkoutSubmodules;
60
+ this._workflowRunsOn = options.workflowRunsOn;
61
+ this._workflowRunsOnGroup = options.workflowRunsOnGroup;
57
62
  if (options.projenCredentials) {
58
63
  this.projenCredentials = options.projenCredentials;
59
64
  }
@@ -125,6 +130,16 @@ class GitHub extends component_1.Component {
125
130
  get checkoutSubmodules() {
126
131
  return this._checkoutSubmodules ?? workflow_steps_1.CheckoutSubmodules.DISABLED;
127
132
  }
133
+ /**
134
+ * Resolves the `runsOn`/`runsOnGroup` config for a job, falling back to the
135
+ * project's global runner selection (`workflowRunsOn`/`workflowRunsOnGroup`)
136
+ * when `options` does not specify one.
137
+ * @param options per-job runner selection that takes precedence over the
138
+ * project's global default
139
+ */
140
+ runsOnConfig(options = {}) {
141
+ return (0, runner_options_1.filteredRunsOnOptions)(options.runsOn ?? this._workflowRunsOn, options.runsOnGroup ?? this._workflowRunsOnGroup);
142
+ }
128
143
  }
129
144
  exports.GitHub = GitHub;
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlEQUEyRDtBQUUzRCw2Q0FBMEM7QUFFMUMsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUV6RCwrQ0FBMkM7QUFFM0MsdUNBQW9DO0FBQ3BDLCtDQUFvRDtBQUVwRCxtRUFBOEQ7QUFFOUQsMkRBQXNEO0FBQ3RELHFEQUFzRDtBQUN0RCwyQ0FBNkM7QUFDN0MsNENBQXlDO0FBbUh6QyxNQUFhLE1BQU8sU0FBUSxxQkFBUzs7SUFDbkM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVksRUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLE1BQU0sQ0FBQztRQUNwRSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDYSxPQUFPLENBQVc7SUFFbEM7OztPQUdHO0lBQ2EsVUFBVSxDQUFjO0lBRXhDOztPQUVHO0lBQ2EsZ0JBQWdCLENBQVU7SUFFMUM7O09BRUc7SUFDYSxpQkFBaUIsQ0FBb0I7SUFFckQ7O09BRUc7SUFDYSxPQUFPLENBQXdCO0lBRTlCLFlBQVksQ0FBVztJQUN2QixtQkFBbUIsQ0FBc0I7SUFFMUQsWUFBbUIsT0FBZ0IsRUFBRSxVQUF5QixFQUFFO1FBQzlELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx3Q0FBcUIsRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9B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QUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxtQ0FBa0IsQ0FBQyxRQUFRLENBQUM7SUFDakUsQ0FBQzs7QUF0SUgsd0JBdUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2l0SHViQWN0aW9uc1Byb3ZpZGVyIH0gZnJvbSBcIi4vYWN0aW9ucy1wcm92aWRlclwiO1xuaW1wb3J0IHR5cGUgeyBEZXBlbmRhYm90T3B0aW9ucyB9IGZyb20gXCIuL2RlcGVuZGFib3RcIjtcbmltcG9ydCB7IERlcGVuZGFib3QgfSBmcm9tIFwiLi9kZXBlbmRhYm90XCI7XG5pbXBvcnQgdHlwZSB7IERlcGVuZGVuY3lSZXZpZXdPcHRpb25zIH0gZnJvbSBcIi4vZGVwZW5kZW5jeS1yZXZpZXdcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lSZXZpZXcgfSBmcm9tIFwiLi9kZXBlbmRlbmN5LXJldmlld1wiO1xuaW1wb3J0IHsgR2l0aHViQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi9naXRodWItY3JlZGVudGlhbHNcIjtcbmltcG9ydCB0eXBlIHsgTWVyZ2VRdWV1ZU9wdGlvbnMgfSBmcm9tIFwiLi9tZXJnZS1xdWV1ZVwiO1xuaW1wb3J0IHsgTWVyZ2VRdWV1ZSB9IGZyb20gXCIuL21lcmdlLXF1ZXVlXCI7XG5pbXBvcnQgdHlwZSB7IE1lcmdpZnlPcHRpb25zIH0gZnJvbSBcIi4vbWVyZ2lmeVwiO1xuaW1wb3J0IHsgTWVyZ2lmeSB9IGZyb20gXCIuL21lcmdpZnlcIjtcbmltcG9ydCB7IFB1bGxSZXF1ZXN0VGVtcGxhdGUgfSBmcm9tIFwiLi9wci10ZW1wbGF0ZVwiO1xuaW1wb3J0IHR5cGUgeyBQdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucyB9IGZyb20gXCIuL3B1bGwtcmVxdWVzdC1iYWNrcG9ydFwiO1xuaW1wb3J0IHsgUHVsbFJlcXVlc3RCYWNrcG9ydCB9IGZyb20gXCIuL3B1bGwtcmVxdWVzdC1iYWNrcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBQdWxsUmVxdWVzdExpbnRPcHRpb25zIH0gZnJvbSBcIi4vcHVsbC1yZXF1ZXN0LWxpbnRcIjtcbmltcG9ydCB7IFB1bGxSZXF1ZXN0TGludCB9IGZyb20gXCIuL3B1bGwtcmVxdWVzdC1saW50XCI7XG5pbXBvcnQgeyBDaGVja291dFN1Ym1vZHVsZXMgfSBmcm9tIFwiLi93b3JrZmxvdy1zdGVwc1wiO1xuaW1wb3J0IHsgR2l0aHViV29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvd3NcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG1lcmdpZnkgc2hvdWxkIGJlIGVuYWJsZWQgb24gdGhpcyByZXBvc2l0b3J5IG9yIG5vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2lmeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIE1lcmdpZnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBtZXJnaWZ5T3B0aW9ucz86IE1lcmdpZnlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbWVyZ2UgcXVldWUgc2hvdWxkIGJlIHVzZWQgb24gdGhpcyByZXBvc2l0b3J5IHRvIG1lcmdlIHB1bGwgcmVxdWVzdHMuXG4gICAqIFJlcXVpcmVzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvZiB0aGUgcmVwb3NpdG9yaWVzIGJyYW5jaCBwcm90ZWN0aW9uIHJ1bGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2VRdWV1ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIE1lcmdlUXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBtZXJnZVF1ZXVlT3B0aW9ucz86IE1lcmdlUXVldWVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIEdpdEh1YiB3b3JrZmxvd3MuIElmIHRoaXMgaXMgc2V0IHRvIGBmYWxzZWAsIHdvcmtmbG93cyB3aWxsIG5vdCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgYSB3b3JrZmxvdyB0aGF0IGFsbG93cyBiYWNrcG9ydCBvZiBQUnMgdG8gb3RoZXIgYnJhbmNoZXMgdXNpbmcgbGFiZWxzLlxuICAgKiBXaGVuIG9wZW5pbmcgYSBuZXcgUFIgYWRkIGEgYmFja3BvcnQgbGFiZWwgdG8gaXQsXG4gICAqIGFuZCB0aGUgUFIgd2lsbCBiZSBiYWNrcG9ydGVkIHRvIHRoZSB0YXJnZXQgYnJhbmNoZXMgb25jZSB0aGUgUFIgaXMgbWVyZ2VkLlxuICAgKlxuICAgKiBTaG91bGQgbm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBtZXJnaWZ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RCYWNrcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHB1bGwgcmVxdWVzdCBiYWNrcG9ydC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYFB1bGxSZXF1ZXN0QmFja3BvcnRPcHRpb25zYFxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RCYWNrcG9ydE9wdGlvbnM/OiBQdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucztcblxuICAvKipcbiAgICogQWRkIGEgd29ya2Zsb3cgdGhhdCBwZXJmb3JtcyBiYXNpYyBjaGVja3MgZm9yIHB1bGwgcmVxdWVzdHMsIGxpa2VcbiAgICogdmFsaWRhdGluZyB0aGF0IFBScyBmb2xsb3cgQ29udmVudGlvbmFsIENvbW1pdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0TGludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGEgcHVsbCByZXF1ZXN0IGxpbnRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYFB1bGxSZXF1ZXN0TGludE9wdGlvbnNgXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdExpbnRPcHRpb25zPzogUHVsbFJlcXVlc3RMaW50T3B0aW9ucztcblxuICAvKipcbiAgICogQ2hvb3NlIGEgbWV0aG9kIG9mIHByb3ZpZGluZyBHaXRIdWIgQVBJIGFjY2VzcyBmb3IgcHJvamVuIHdvcmtmbG93cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgYSBwZXJzb25hbCBhY2Nlc3MgdG9rZW4gbmFtZWQgUFJPSkVOX0dJVEhVQl9UT0tFTlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuQ3JlZGVudGlhbHM/OiBHaXRodWJDcmVkZW50aWFscztcblxuICAvKipcbiAgICogRG93bmxvYWQgZmlsZXMgaW4gTEZTIGluIHdvcmtmbG93c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIGlmIHRoZSBhc3NvY2lhdGVkIHByb2plY3QgaGFzIGBsZnNQYXR0ZXJuc2AsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkb3dubG9hZExmcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgZGVwZW5kZW5jeS1yZXZpZXctYWN0aW9uIHdvcmtmbG93IG9uIHB1bGwgcmVxdWVzdHMuXG4gICAqXG4gICAqIEFkZHMgYSBzZXBhcmF0ZSB3b3JrZmxvdyB0aGF0IHJ1bnMgYGFjdGlvbnMvZGVwZW5kZW5jeS1yZXZpZXctYWN0aW9uYFxuICAgKiB0byBzY2FuIHB1bGwgcmVxdWVzdHMgZm9yIG5ld2x5IGludHJvZHVjZWQgdnVsbmVyYWJsZSBvciBub24tY29tcGxpYW50XG4gICAqIGRlcGVuZGVuY2llcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lSZXZpZXc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgZGVwZW5kZW5jeSByZXZpZXcgd29ya2Zsb3cuXG4gICAqXG4gICAqIE9ubHkgdXNlZCB3aGVuIGBkZXBlbmRlbmN5UmV2aWV3YCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmN5UmV2aWV3T3B0aW9ucz86IERlcGVuZGVuY3lSZXZpZXdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNoZWNrb3V0IEdpdCBzdWJtb2R1bGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDaGVja291dFN1Ym1vZHVsZXMuRElTQUJMRURcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrb3V0U3VibW9kdWxlcz86IENoZWNrb3V0U3VibW9kdWxlcztcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YiBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgR2l0SHViYCBjb21wb25lbnQgb2YgYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBwcm9qZWN0XG4gICAqIGRvZXMgbm90IGhhdmUgYSBHaXRIdWIgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogR2l0SHViIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0dpdEh1YiA9IChjOiBDb21wb25lbnQpOiBjIGlzIEdpdEh1YiA9PiBjIGluc3RhbmNlb2YgR2l0SHViO1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0dpdEh1Yik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGBNZXJnaWZ5YCBjb21wb25lbnQgY29uZmlndXJlZCBvbiB0aGlzIHJlcG9zaXRvcnlcbiAgICogVGhpcyBpcyBgdW5kZWZpbmVkYCBpZiBNZXJnaWZ5IGlzIG5vdCBlbmFibGVkIGZvciB0aGlzIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVyZ2lmeT86IE1lcmdpZnk7XG5cbiAgLyoqXG4gICAqIFRoZSBgTWVyZ2VRdWV1ZWAgY29tcG9uZW50IGNvbmZpZ3VyZWQgb24gdGhpcyByZXBvc2l0b3J5XG4gICAqIFRoaXMgaXMgYHVuZGVmaW5lZGAgaWYgbWVyZ2UgcXVldWVzIGFyZSBub3QgZW5hYmxlZCBmb3IgdGhpcyByZXBvc2l0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1lcmdlUXVldWU/OiBNZXJnZVF1ZXVlO1xuXG4gIC8qKlxuICAgKiBBcmUgd29ya2Zsb3dzIGVuYWJsZWQ/XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dzRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2l0SHViIEFQSSBhdXRoZW50aWNhdGlvbiBtZXRob2QgdXNlZCBieSBwcm9qZW4gd29ya2Zsb3dzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2plbkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBBY3Rpb25zIHByb3ZpZGVyIHVzZWQgdG8gbWFuYWdlIHRoZSB2ZXJzaW9ucyBvZiBhY3Rpb25zIHVzZWQgaW4gc3RlcHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25zOiBHaXRIdWJBY3Rpb25zUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG93bmxvYWRMZnM/OiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jaGVja291dFN1Ym1vZHVsZXM/OiBDaGVja291dFN1Ym1vZHVsZXM7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEdpdEh1Yk9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEdpdEh1YkFjdGlvbnNQcm92aWRlcigpO1xuXG4gICAgdGhpcy53b3JrZmxvd3NFbmFibGVkID0gb3B0aW9ucy53b3JrZmxvd3MgPz8gdHJ1ZTtcblxuICAgIHRoaXMuX2Rvd25sb2FkTGZzID0gb3B0aW9ucy5kb3dubG9hZExmcztcbiAgICB0aGlzLl9jaGVja291dFN1Ym1vZHVsZXMgPSBvcHRpb25zLmNoZWNrb3V0U3VibW9kdWxlcztcblxuICAgIGlmIChvcHRpb25zLnByb2plbkNyZWRlbnRpYWxzKSB7XG4gICAgICB0aGlzLnByb2plbkNyZWRlbnRpYWxzID0gb3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZGVmYXVsdFxuICAgICAgdGhpcy5wcm9qZW5DcmVkZW50aWFscyA9IEdpdGh1YkNyZWRlbnRpYWxzLmZyb21QZXJzb25hbEFjY2Vzc1Rva2VuKHtcbiAgICAgICAgc2VjcmV0OiBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1lcmdpZnkgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5tZXJnaWZ5ID0gbmV3IE1lcmdpZnkodGhpcywgb3B0aW9ucy5tZXJnaWZ5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubWVyZ2VRdWV1ZSA/PyBmYWxzZSkge1xuICAgICAgdGhpcy5tZXJnZVF1ZXVlID0gbmV3IE1lcmdlUXVldWUodGhpcywgb3B0aW9ucy5tZXJnZVF1ZXVlT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMucHVsbFJlcXVlc3RMaW50ID8/IHRydWUpIHtcbiAgICAgIG5ldyBQdWxsUmVxdWVzdExpbnQodGhpcywgb3B0aW9ucy5wdWxsUmVxdWVzdExpbnRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5wdWxsUmVxdWVzdEJhY2twb3J0ID8/IGZhbHNlKSB7XG4gICAgICBpZiAob3B0aW9ucy5tZXJnaWZ5KSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0QmFja3BvcnQgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggbWVyZ2lmeSBhcyBtZXJnaWZ5IHByb3ZpZGVzIGl0cyBvd24gYmFja3BvcnQgZnVuY3Rpb25hbGl0eS4gUGxlYXNlIGRpc2FibGUgcHVsbFJlcXVlc3RCYWNrcG9ydCBvciBtZXJnaWZ5LlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbmV3IFB1bGxSZXF1ZXN0QmFja3BvcnQodGhpcywgb3B0aW9ucy5wdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGVwZW5kZW5jeVJldmlldyA/PyBmYWxzZSkge1xuICAgICAgbmV3IERlcGVuZGVuY3lSZXZpZXcodGhpcywgb3B0aW9ucy5kZXBlbmRlbmN5UmV2aWV3T3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFsbCB3b3JrZmxvd3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHdvcmtmbG93cygpOiBHaXRodWJXb3JrZmxvd1tdIHtcbiAgICBjb25zdCBpc1dvcmtmbG93ID0gKGM6IENvbXBvbmVudCk6IGMgaXMgR2l0aHViV29ya2Zsb3cgPT5cbiAgICAgIGMgaW5zdGFuY2VvZiBHaXRodWJXb3JrZmxvdztcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmNvbXBvbmVudHNcbiAgICAgIC5maWx0ZXIoaXNXb3JrZmxvdylcbiAgICAgIC5zb3J0KCh3MSwgdzIpID0+IHcxLm5hbWUubG9jYWxlQ29tcGFyZSh3Mi5uYW1lKSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdvcmtmbG93IHRvIHRoZSBwcm9qZWN0LlxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKiBAcmV0dXJucyBhIEdpdGh1YldvcmtmbG93IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgYWRkV29ya2Zsb3cobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSBuZXcgR2l0aHViV29ya2Zsb3codGhpcywgbmFtZSk7XG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG5cbiAgcHVibGljIGFkZFB1bGxSZXF1ZXN0VGVtcGxhdGUoLi4uY29udGVudDogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbmV3IFB1bGxSZXF1ZXN0VGVtcGxhdGUodGhpcywgeyBsaW5lczogY29udGVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREZXBlbmRhYm90KG9wdGlvbnM/OiBEZXBlbmRhYm90T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgRGVwZW5kYWJvdCh0aGlzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhIEdpdEh1YiB3b3JrZmxvdyBieSBuYW1lLiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSB3b3JrZmxvdyBjYW5ub3QgYmUgZm91bmQuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBHaXRIdWIgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyB0cnlGaW5kV29ya2Zsb3cobmFtZTogc3RyaW5nKTogdW5kZWZpbmVkIHwgR2l0aHViV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLndvcmtmbG93cy5maW5kKCh3KSA9PiB3Lm5hbWUgPT09IG5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZG93bmxvYWRpbmcgZnJvbSBMRlMgaXMgZW5hYmxlZCBmb3IgdGhpcyBHaXRIdWIgcHJvamVjdFxuICAgKi9cbiAgcHVibGljIGdldCBkb3dubG9hZExmcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZG93bmxvYWRMZnMgPz8gdGhpcy5wcm9qZWN0LmdpdGF0dHJpYnV0ZXMuaGFzTGZzUGF0dGVybnM7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBjaGVja2luZyBvdXQgR2l0IHN1Ym1vZHVsZXMgaXMgZW5hYmxlZCBmb3IgdGhpcyBHaXRIdWIgcHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tvdXRTdWJtb2R1bGVzKCk6IENoZWNrb3V0U3VibW9kdWxlcyB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrb3V0U3VibW9kdWxlcyA/PyBDaGVja291dFN1Ym1vZHVsZXMuRElTQUJMRUQ7XG4gIH1cbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlEQUEyRDtBQUUzRCw2Q0FBMEM7QUFFMUMsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUV6RCwrQ0FBMkM7QUFFM0MsdUNBQW9DO0FBQ3BDLCtDQUFvRDtBQUVwRCxtRUFBOEQ7QUFFOUQsMkRBQXNEO0FBQ3RELHFEQUFzRDtBQUN0RCwyQ0FBNkM7QUFDN0MsNENBQXlDO0FBT3pDLHNEQUEwRDtBQW1JMUQsTUFBYSxNQUFPLFNBQVEscUJBQVM7O0lBQ25DOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFZLEVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxNQUFNLENBQUM7UUFDcEUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ2EsT0FBTyxDQUFXO0lBRWxDOzs7T0FHRztJQUNhLFVBQVUsQ0FBYztJQUV4Qzs7T0FFRztJQUNhLGdCQUFnQixDQUFVO0lBRTFDOztPQUVHO0lBQ2EsaUJBQWlCLENBQW9CO0lBRXJEOztPQUVHO0lBQ2EsT0FBTyxDQUF3QjtJQUU5QixZQUFZLENBQVc7SUFDdkIsbUJBQW1CLENBQXNCO0lBQ3pDLGVBQWUsQ0FBWTtJQUMzQixvQkFBb0IsQ0FBc0I7SUFFM0QsWUFBbUIsT0FBZ0IsRUFBRSxVQUF5QixFQUFFO1FBQzlELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx3Q0FBcUIsRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9B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QUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxtQ0FBa0IsQ0FBQyxRQUFRLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxVQUF5QixFQUFFO1FBQzdDLE9BQU8sSUFBQSxzQ0FBcUIsRUFDMUIsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUN0QyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FDakQsQ0FBQztJQUNKLENBQUM7O0FBeEpILHdCQXlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdpdEh1YkFjdGlvbnNQcm92aWRlciB9IGZyb20gXCIuL2FjdGlvbnMtcHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIHsgRGVwZW5kYWJvdE9wdGlvbnMgfSBmcm9tIFwiLi9kZXBlbmRhYm90XCI7XG5pbXBvcnQgeyBEZXBlbmRhYm90IH0gZnJvbSBcIi4vZGVwZW5kYWJvdFwiO1xuaW1wb3J0IHR5cGUgeyBEZXBlbmRlbmN5UmV2aWV3T3B0aW9ucyB9IGZyb20gXCIuL2RlcGVuZGVuY3ktcmV2aWV3XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5UmV2aWV3IH0gZnJvbSBcIi4vZGVwZW5kZW5jeS1yZXZpZXdcIjtcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSBcIi4vZ2l0aHViLWNyZWRlbnRpYWxzXCI7XG5pbXBvcnQgdHlwZSB7IE1lcmdlUXVldWVPcHRpb25zIH0gZnJvbSBcIi4vbWVyZ2UtcXVldWVcIjtcbmltcG9ydCB7IE1lcmdlUXVldWUgfSBmcm9tIFwiLi9tZXJnZS1xdWV1ZVwiO1xuaW1wb3J0IHR5cGUgeyBNZXJnaWZ5T3B0aW9ucyB9IGZyb20gXCIuL21lcmdpZnlcIjtcbmltcG9ydCB7IE1lcmdpZnkgfSBmcm9tIFwiLi9tZXJnaWZ5XCI7XG5pbXBvcnQgeyBQdWxsUmVxdWVzdFRlbXBsYXRlIH0gZnJvbSBcIi4vcHItdGVtcGxhdGVcIjtcbmltcG9ydCB0eXBlIHsgUHVsbFJlcXVlc3RCYWNrcG9ydE9wdGlvbnMgfSBmcm9tIFwiLi9wdWxsLXJlcXVlc3QtYmFja3BvcnRcIjtcbmltcG9ydCB7IFB1bGxSZXF1ZXN0QmFja3BvcnQgfSBmcm9tIFwiLi9wdWxsLXJlcXVlc3QtYmFja3BvcnRcIjtcbmltcG9ydCB0eXBlIHsgUHVsbFJlcXVlc3RMaW50T3B0aW9ucyB9IGZyb20gXCIuL3B1bGwtcmVxdWVzdC1saW50XCI7XG5pbXBvcnQgeyBQdWxsUmVxdWVzdExpbnQgfSBmcm9tIFwiLi9wdWxsLXJlcXVlc3QtbGludFwiO1xuaW1wb3J0IHsgQ2hlY2tvdXRTdWJtb2R1bGVzIH0gZnJvbSBcIi4vd29ya2Zsb3ctc3RlcHNcIjtcbmltcG9ydCB7IEdpdGh1YldvcmtmbG93IH0gZnJvbSBcIi4vd29ya2Zsb3dzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHR5cGUge1xuICBHcm91cFJ1bm5lck9wdGlvbnMsXG4gIFJ1bnNPbkNvbmZpZyxcbiAgUnVuc09uT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5pbXBvcnQgeyBmaWx0ZXJlZFJ1bnNPbk9wdGlvbnMgfSBmcm9tIFwiLi4vcnVubmVyLW9wdGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgbWVyZ2lmeSBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGlzIHJlcG9zaXRvcnkgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBtZXJnaWZ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgTWVyZ2lmeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdpZnlPcHRpb25zPzogTWVyZ2lmeU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBtZXJnZSBxdWV1ZSBzaG91bGQgYmUgdXNlZCBvbiB0aGlzIHJlcG9zaXRvcnkgdG8gbWVyZ2UgcHVsbCByZXF1ZXN0cy5cbiAgICogUmVxdWlyZXMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9mIHRoZSByZXBvc2l0b3JpZXMgYnJhbmNoIHByb3RlY3Rpb24gcnVsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtZXJnZVF1ZXVlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgTWVyZ2VRdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlUXVldWVPcHRpb25zPzogTWVyZ2VRdWV1ZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgR2l0SHViIHdvcmtmbG93cy4gSWYgdGhpcyBpcyBzZXQgdG8gYGZhbHNlYCwgd29ya2Zsb3dzIHdpbGwgbm90IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZCBhIHdvcmtmbG93IHRoYXQgYWxsb3dzIGJhY2twb3J0IG9mIFBScyB0byBvdGhlciBicmFuY2hlcyB1c2luZyBsYWJlbHMuXG4gICAqIFdoZW4gb3BlbmluZyBhIG5ldyBQUiBhZGQgYSBiYWNrcG9ydCBsYWJlbCB0byBpdCxcbiAgICogYW5kIHRoZSBQUiB3aWxsIGJlIGJhY2twb3J0ZWQgdG8gdGhlIHRhcmdldCBicmFuY2hlcyBvbmNlIHRoZSBQUiBpcyBtZXJnZWQuXG4gICAqXG4gICAqIFNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIG1lcmdpZnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdEJhY2twb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgcHVsbCByZXF1ZXN0IGJhY2twb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHNlZSBkZWZhdWx0cyBpbiBgUHVsbFJlcXVlc3RCYWNrcG9ydE9wdGlvbnNgXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucz86IFB1bGxSZXF1ZXN0QmFja3BvcnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBBZGQgYSB3b3JrZmxvdyB0aGF0IHBlcmZvcm1zIGJhc2ljIGNoZWNrcyBmb3IgcHVsbCByZXF1ZXN0cywgbGlrZVxuICAgKiB2YWxpZGF0aW5nIHRoYXQgUFJzIGZvbGxvdyBDb252ZW50aW9uYWwgQ29tbWl0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RMaW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgYSBwdWxsIHJlcXVlc3QgbGludGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHNlZSBkZWZhdWx0cyBpbiBgUHVsbFJlcXVlc3RMaW50T3B0aW9uc2BcbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0TGludE9wdGlvbnM/OiBQdWxsUmVxdWVzdExpbnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDaG9vc2UgYSBtZXRob2Qgb2YgcHJvdmlkaW5nIEdpdEh1YiBBUEkgYWNjZXNzIGZvciBwcm9qZW4gd29ya2Zsb3dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBhIHBlcnNvbmFsIGFjY2VzcyB0b2tlbiBuYW1lZCBQUk9KRU5fR0lUSFVCX1RPS0VOXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5DcmVkZW50aWFscz86IEdpdGh1YkNyZWRlbnRpYWxzO1xuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBmaWxlcyBpbiBMRlMgaW4gd29ya2Zsb3dzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgaWYgdGhlIGFzc29jaWF0ZWQgcHJvamVjdCBoYXMgYGxmc1BhdHRlcm5zYCwgYGZhbHNlYCBvdGhlcndpc2VcbiAgICovXG4gIHJlYWRvbmx5IGRvd25sb2FkTGZzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIHRoZSBkZXBlbmRlbmN5LXJldmlldy1hY3Rpb24gd29ya2Zsb3cgb24gcHVsbCByZXF1ZXN0cy5cbiAgICpcbiAgICogQWRkcyBhIHNlcGFyYXRlIHdvcmtmbG93IHRoYXQgcnVucyBgYWN0aW9ucy9kZXBlbmRlbmN5LXJldmlldy1hY3Rpb25gXG4gICAqIHRvIHNjYW4gcHVsbCByZXF1ZXN0cyBmb3IgbmV3bHkgaW50cm9kdWNlZCB2dWxuZXJhYmxlIG9yIG5vbi1jb21wbGlhbnRcbiAgICogZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVJldmlldz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSBkZXBlbmRlbmN5IHJldmlldyB3b3JrZmxvdy5cbiAgICpcbiAgICogT25seSB1c2VkIHdoZW4gYGRlcGVuZGVuY3lSZXZpZXdgIGlzIGB0cnVlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lSZXZpZXdPcHRpb25zPzogRGVwZW5kZW5jeVJldmlld09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2tvdXQgR2l0IHN1Ym1vZHVsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IENoZWNrb3V0U3VibW9kdWxlcy5ESVNBQkxFRFxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tvdXRTdWJtb2R1bGVzPzogQ2hlY2tvdXRTdWJtb2R1bGVzO1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIHNlbGVjdGlvbiBsYWJlbHNcbiAgICogQGRlZmF1bHQgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyBhIHRhcmdldCBSdW5uZXIgYnkgbGFiZWxzIGZvciBhbGwgd29ya2Zsb3dzLlxuICAgKiBDYW4gYmUgb3ZlcnJpZGRlbiBvbiBhIHBlci1jb21wb25lbnQgYmFzaXMuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBpZiBib3RoIGB3b3JrZmxvd1J1bnNPbmAgYW5kIGB3b3JrZmxvd1J1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1J1bnNPbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIEdyb3VwIHNlbGVjdGlvbiBvcHRpb25zXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGEgdGFyZ2V0IFJ1bm5lciBHcm91cCBieSBuYW1lIGFuZC9vciBsYWJlbHMgZm9yIGFsbCB3b3JrZmxvd3MuXG4gICAqIENhbiBiZSBvdmVycmlkZGVuIG9uIGEgcGVyLWNvbXBvbmVudCBiYXNpcy5cbiAgICogQHRocm93cyB7RXJyb3J9IGlmIGJvdGggYHdvcmtmbG93UnVuc09uYCBhbmQgYHdvcmtmbG93UnVuc09uR3JvdXBgIGFyZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93UnVuc09uR3JvdXA/OiBHcm91cFJ1bm5lck9wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYEdpdEh1YmAgY29tcG9uZW50IG9mIGEgcHJvamVjdCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgcHJvamVjdFxuICAgKiBkb2VzIG5vdCBoYXZlIGEgR2l0SHViIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEdpdEh1YiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNHaXRIdWIgPSAoYzogQ29tcG9uZW50KTogYyBpcyBHaXRIdWIgPT4gYyBpbnN0YW5jZW9mIEdpdEh1YjtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNHaXRIdWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBgTWVyZ2lmeWAgY29tcG9uZW50IGNvbmZpZ3VyZWQgb24gdGhpcyByZXBvc2l0b3J5XG4gICAqIFRoaXMgaXMgYHVuZGVmaW5lZGAgaWYgTWVyZ2lmeSBpcyBub3QgZW5hYmxlZCBmb3IgdGhpcyByZXBvc2l0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1lcmdpZnk/OiBNZXJnaWZ5O1xuXG4gIC8qKlxuICAgKiBUaGUgYE1lcmdlUXVldWVgIGNvbXBvbmVudCBjb25maWd1cmVkIG9uIHRoaXMgcmVwb3NpdG9yeVxuICAgKiBUaGlzIGlzIGB1bmRlZmluZWRgIGlmIG1lcmdlIHF1ZXVlcyBhcmUgbm90IGVuYWJsZWQgZm9yIHRoaXMgcmVwb3NpdG9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXJnZVF1ZXVlPzogTWVyZ2VRdWV1ZTtcblxuICAvKipcbiAgICogQXJlIHdvcmtmbG93cyBlbmFibGVkP1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93c0VuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBBUEkgYXV0aGVudGljYXRpb24gbWV0aG9kIHVzZWQgYnkgcHJvamVuIHdvcmtmbG93cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZW5DcmVkZW50aWFsczogR2l0aHViQ3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgQWN0aW9ucyBwcm92aWRlciB1c2VkIHRvIG1hbmFnZSB0aGUgdmVyc2lvbnMgb2YgYWN0aW9ucyB1c2VkIGluIHN0ZXBzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uczogR2l0SHViQWN0aW9uc1Byb3ZpZGVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rvd25sb2FkTGZzPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hlY2tvdXRTdWJtb2R1bGVzPzogQ2hlY2tvdXRTdWJtb2R1bGVzO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrZmxvd1J1bnNPbj86IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrZmxvd1J1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBHaXRIdWJPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBHaXRIdWJBY3Rpb25zUHJvdmlkZXIoKTtcblxuICAgIHRoaXMud29ya2Zsb3dzRW5hYmxlZCA9IG9wdGlvbnMud29ya2Zsb3dzID8/IHRydWU7XG5cbiAgICB0aGlzLl9kb3dubG9hZExmcyA9IG9wdGlvbnMuZG93bmxvYWRMZnM7XG4gICAgdGhpcy5fY2hlY2tvdXRTdWJtb2R1bGVzID0gb3B0aW9ucy5jaGVja291dFN1Ym1vZHVsZXM7XG4gICAgdGhpcy5fd29ya2Zsb3dSdW5zT24gPSBvcHRpb25zLndvcmtmbG93UnVuc09uO1xuICAgIHRoaXMuX3dvcmtmbG93UnVuc09uR3JvdXAgPSBvcHRpb25zLndvcmtmbG93UnVuc09uR3JvdXA7XG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscykge1xuICAgICAgdGhpcy5wcm9qZW5DcmVkZW50aWFscyA9IG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGRlZmF1bHRcbiAgICAgIHRoaXMucHJvamVuQ3JlZGVudGlhbHMgPSBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5tZXJnaWZ5ID8/IHRydWUpIHtcbiAgICAgIHRoaXMubWVyZ2lmeSA9IG5ldyBNZXJnaWZ5KHRoaXMsIG9wdGlvbnMubWVyZ2lmeU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1lcmdlUXVldWUgPz8gZmFsc2UpIHtcbiAgICAgIHRoaXMubWVyZ2VRdWV1ZSA9IG5ldyBNZXJnZVF1ZXVlKHRoaXMsIG9wdGlvbnMubWVyZ2VRdWV1ZU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnB1bGxSZXF1ZXN0TGludCA/PyB0cnVlKSB7XG4gICAgICBuZXcgUHVsbFJlcXVlc3RMaW50KHRoaXMsIG9wdGlvbnMucHVsbFJlcXVlc3RMaW50T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMucHVsbFJlcXVlc3RCYWNrcG9ydCA/PyBmYWxzZSkge1xuICAgICAgaWYgKG9wdGlvbnMubWVyZ2lmeSkge1xuICAgICAgICB0aGlzLnByb2plY3QubG9nZ2VyLndhcm4oXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdEJhY2twb3J0IHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIG1lcmdpZnkgYXMgbWVyZ2lmeSBwcm92aWRlcyBpdHMgb3duIGJhY2twb3J0IGZ1bmN0aW9uYWxpdHkuIFBsZWFzZSBkaXNhYmxlIHB1bGxSZXF1ZXN0QmFja3BvcnQgb3IgbWVyZ2lmeS5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIG5ldyBQdWxsUmVxdWVzdEJhY2twb3J0KHRoaXMsIG9wdGlvbnMucHVsbFJlcXVlc3RCYWNrcG9ydE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmRlcGVuZGVuY3lSZXZpZXcgPz8gZmFsc2UpIHtcbiAgICAgIG5ldyBEZXBlbmRlbmN5UmV2aWV3KHRoaXMsIG9wdGlvbnMuZGVwZW5kZW5jeVJldmlld09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgd29ya2Zsb3dzLlxuICAgKi9cbiAgcHVibGljIGdldCB3b3JrZmxvd3MoKTogR2l0aHViV29ya2Zsb3dbXSB7XG4gICAgY29uc3QgaXNXb3JrZmxvdyA9IChjOiBDb21wb25lbnQpOiBjIGlzIEdpdGh1YldvcmtmbG93ID0+XG4gICAgICBjIGluc3RhbmNlb2YgR2l0aHViV29ya2Zsb3c7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5jb21wb25lbnRzXG4gICAgICAuZmlsdGVyKGlzV29ya2Zsb3cpXG4gICAgICAuc29ydCgodzEsIHcyKSA9PiB3MS5uYW1lLmxvY2FsZUNvbXBhcmUodzIubmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB3b3JrZmxvdyB0byB0aGUgcHJvamVjdC5cbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICogQHJldHVybnMgYSBHaXRodWJXb3JrZmxvdyBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIGFkZFdvcmtmbG93KG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gbmV3IEdpdGh1YldvcmtmbG93KHRoaXMsIG5hbWUpO1xuICAgIHJldHVybiB3b3JrZmxvdztcbiAgfVxuXG4gIHB1YmxpYyBhZGRQdWxsUmVxdWVzdFRlbXBsYXRlKC4uLmNvbnRlbnQ6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIG5ldyBQdWxsUmVxdWVzdFRlbXBsYXRlKHRoaXMsIHsgbGluZXM6IGNvbnRlbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkRGVwZW5kYWJvdChvcHRpb25zPzogRGVwZW5kYWJvdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IERlcGVuZGFib3QodGhpcywgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYSBHaXRIdWIgd29ya2Zsb3cgYnkgbmFtZS4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgd29ya2Zsb3cgY2Fubm90IGJlIGZvdW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgR2l0SHViIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgdHJ5RmluZFdvcmtmbG93KG5hbWU6IHN0cmluZyk6IHVuZGVmaW5lZCB8IEdpdGh1YldvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy53b3JrZmxvd3MuZmluZCgodykgPT4gdy5uYW1lID09PSBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGRvd25sb2FkaW5nIGZyb20gTEZTIGlzIGVuYWJsZWQgZm9yIHRoaXMgR2l0SHViIHByb2plY3RcbiAgICovXG4gIHB1YmxpYyBnZXQgZG93bmxvYWRMZnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rvd25sb2FkTGZzID8/IHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmhhc0xmc1BhdHRlcm5zO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hlY2tpbmcgb3V0IEdpdCBzdWJtb2R1bGVzIGlzIGVuYWJsZWQgZm9yIHRoaXMgR2l0SHViIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoZWNrb3V0U3VibW9kdWxlcygpOiBDaGVja291dFN1Ym1vZHVsZXMge1xuICAgIHJldHVybiB0aGlzLl9jaGVja291dFN1Ym1vZHVsZXMgPz8gQ2hlY2tvdXRTdWJtb2R1bGVzLkRJU0FCTEVEO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBgcnVuc09uYC9gcnVuc09uR3JvdXBgIGNvbmZpZyBmb3IgYSBqb2IsIGZhbGxpbmcgYmFjayB0byB0aGVcbiAgICogcHJvamVjdCdzIGdsb2JhbCBydW5uZXIgc2VsZWN0aW9uIChgd29ya2Zsb3dSdW5zT25gL2B3b3JrZmxvd1J1bnNPbkdyb3VwYClcbiAgICogd2hlbiBgb3B0aW9uc2AgZG9lcyBub3Qgc3BlY2lmeSBvbmUuXG4gICAqIEBwYXJhbSBvcHRpb25zIHBlci1qb2IgcnVubmVyIHNlbGVjdGlvbiB0aGF0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGVcbiAgICogcHJvamVjdCdzIGdsb2JhbCBkZWZhdWx0XG4gICAqL1xuICBwdWJsaWMgcnVuc09uQ29uZmlnKG9wdGlvbnM6IFJ1bnNPbk9wdGlvbnMgPSB7fSk6IFJ1bnNPbkNvbmZpZyB7XG4gICAgcmV0dXJuIGZpbHRlcmVkUnVuc09uT3B0aW9ucyhcbiAgICAgIG9wdGlvbnMucnVuc09uID8/IHRoaXMuX3dvcmtmbG93UnVuc09uLFxuICAgICAgb3B0aW9ucy5ydW5zT25Hcm91cCA/PyB0aGlzLl93b3JrZmxvd1J1bnNPbkdyb3VwLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -10,7 +10,7 @@ const github_1 = require("./github");
10
10
  */
11
11
  class MergeQueue extends component_1.Component {
12
12
  options;
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.102.0" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.103.1" };
14
14
  constructor(scope, options = {}) {
15
15
  super(scope);
16
16
  this.options = options;
@@ -6,7 +6,7 @@ const component_1 = require("../component");
6
6
  const util_1 = require("../util");
7
7
  const yaml_1 = require("../yaml");
8
8
  class Mergify extends component_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.102.0" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.103.1" };
10
10
  rules = new Array();
11
11
  queues = new Array();
12
12
  // The actual YAML file will only be created if at least 1 rule is added.
@@ -7,7 +7,7 @@ const textfile_1 = require("../textfile");
7
7
  * Template for GitHub pull requests.
8
8
  */
9
9
  class PullRequestTemplate extends textfile_1.TextFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.102.0" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.103.1" };
11
11
  /**
12
12
  * Returns the `PullRequestTemplate` instance associated with a project or `undefined` if
13
13
  * there is no PullRequestTemplate.
@@ -1,8 +1,6 @@
1
1
  import type { Project } from "../../project";
2
2
  export declare function secretToString(secretName: string): string;
3
3
  export declare function context(value: string): string;
4
- export declare function isHiddenPath(path: string): boolean;
5
- export declare function ensureNotHiddenPath(value: string, name: string): void;
6
4
  /**
7
5
  * Turn any JavaScript value into a GitHub expression
8
6
  */
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.secretToString = secretToString;
4
4
  exports.context = context;
5
- exports.isHiddenPath = isHiddenPath;
6
- exports.ensureNotHiddenPath = ensureNotHiddenPath;
7
5
  exports.toGitHubExpr = toGitHubExpr;
8
6
  exports.projectPathRelativeToRepoRoot = projectPathRelativeToRepoRoot;
9
7
  const node_path_1 = require("node:path");
@@ -15,16 +13,6 @@ function secretToString(secretName) {
15
13
  function context(value) {
16
14
  return `\${{ ${value} }}`;
17
15
  }
18
- // Checks if part of the file path is hidden
19
- function isHiddenPath(path) {
20
- return /(^|\/)\.[^\/\.]/g.test(path);
21
- }
22
- // Helper to assert a path is not hidden
23
- function ensureNotHiddenPath(value, name) {
24
- if (isHiddenPath(value)) {
25
- throw Error(`${name} cannot be a hidden path, got: ${value}`);
26
- }
27
- }
28
16
  /**
29
17
  * Turn any JavaScript value into a GitHub expression
30
18
  */
@@ -60,4 +48,4 @@ function toGitHubExpr(x) {
60
48
  function projectPathRelativeToRepoRoot(project) {
61
49
  return (0, path_1.ensureRelativePathStartsWithDot)((0, util_1.normalizePersistedPath)((0, node_path_1.relative)(project.root.outdir, project.outdir)));
62
50
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9naXRodWIvcHJpdmF0ZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0Esd0NBRUM7QUFFRCwwQkFFQztBQUdELG9DQUVDO0FBR0Qsa0RBSUM7QUFLRCxvQ0FnQkM7QUFjRCxzRUFJQztBQTlERCx5Q0FBcUM7QUFFckMscUNBQW9EO0FBQ3BELDBDQUFrRTtBQUVsRSxTQUFnQixjQUFjLENBQUMsVUFBa0I7SUFDL0MsT0FBTyxnQkFBZ0IsVUFBVSxLQUFLLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxLQUFhO0lBQ25DLE9BQU8sUUFBUSxLQUFLLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsNENBQTRDO0FBQzVDLFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCx3Q0FBd0M7QUFDeEMsU0FBZ0IsbUJBQW1CLENBQUMsS0FBYSxFQUFFLElBQVk7SUFDN0QsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssQ0FBQyxHQUFHLElBQUksa0NBQWtDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxDQUFtQjtJQUM5QyxRQUFRLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLFNBQVM7WUFDWixvRkFBb0Y7WUFDcEYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLEtBQUssUUFBUTtZQUNYLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNmLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxPQUFPLFlBQVksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hEO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxPQUFnQjtJQUM1RCxPQUFPLElBQUEsc0NBQStCLEVBQ3BDLElBQUEsNkJBQXNCLEVBQUMsSUFBQSxvQkFBUSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL3Byb2plY3RcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVBlcnNpc3RlZFBhdGggfSBmcm9tIFwiLi4vLi4vdXRpbFwiO1xuaW1wb3J0IHsgZW5zdXJlUmVsYXRpdmVQYXRoU3RhcnRzV2l0aERvdCB9IGZyb20gXCIuLi8uLi91dGlsL3BhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3JldFRvU3RyaW5nKHNlY3JldE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgXFwke3sgc2VjcmV0cy4ke3NlY3JldE5hbWV9IH19YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gYFxcJHt7ICR7dmFsdWV9IH19YDtcbn1cblxuLy8gQ2hlY2tzIGlmIHBhcnQgb2YgdGhlIGZpbGUgcGF0aCBpcyBoaWRkZW5cbmV4cG9ydCBmdW5jdGlvbiBpc0hpZGRlblBhdGgocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiAvKF58XFwvKVxcLlteXFwvXFwuXS9nLnRlc3QocGF0aCk7XG59XG5cbi8vIEhlbHBlciB0byBhc3NlcnQgYSBwYXRoIGlzIG5vdCBoaWRkZW5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVOb3RIaWRkZW5QYXRoKHZhbHVlOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICBpZiAoaXNIaWRkZW5QYXRoKHZhbHVlKSkge1xuICAgIHRocm93IEVycm9yKGAke25hbWV9IGNhbm5vdCBiZSBhIGhpZGRlbiBwYXRoLCBnb3Q6ICR7dmFsdWV9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGFueSBKYXZhU2NyaXB0IHZhbHVlIGludG8gYSBHaXRIdWIgZXhwcmVzc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HaXRIdWJFeHByKHg6IE5vbk51bGxhYmxlPGFueT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKHR5cGVvZiB4KSB7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIGAnJHt4LnJlcGxhY2UoLycvZywgYCcnYCl9J2A7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAvLyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHZhbHVlIGlzIGFsc28gdGhlIEdIIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWVcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh4KTtcbiAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICBpZiAoeCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGZyb21KU09OKCR7dG9HaXRIdWJFeHByKEpTT04uc3RyaW5naWZ5KHgpKX0pYDtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0eXBlOiAke3R5cGVvZiB4fWApO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBvZiBhIHByb2plY3QgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeVxuICpcbiAqIFRoaXMgaXMgYSBiaXQgb2YgaGFjayBhdCB0aGUgbW9tZW50LCBiZWNhdXNlIHByb2plY3RzIGN1cnJlbnRseSBkb24ndCBoYXZlIHRoZSBjb25jZXB0IG9mIGEgcmVwb3NpdG9yeS5cbiAqIFRoZSBgLmdpdGh1YmAgZGlyZWN0b3J5IGlzIGFsd2F5cyBjcmVhdGVkIHdpdGhpbiB0aGUgb3V0ZGlyIG9mIHRoZSByb290IHByb2plY3QuXG4gKiBDb25zZXF1ZW50bHkgdGhpcyBtZWFucyBhIEdpdEh1YiByb290IHByb2plY3QgY2Fubm90IHJlYWxseSBoYXZlIGFuIG91dGRpciBhbmQgR0ggV29ya2Zsb3dzIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiBPciBpbiBvdGhlciB3b3JkcywgdGhlIG91dGRpciBvZiB0aGUgcm9vdCBwcm9qZWN0IGlzIHRvIGJlIGFzc3VtZWQgdGhlIHJlcG9zaXRvcnkgcm9vdC5cbiAqXG4gKiBUaGlzIGhlbHBlciBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgY29ycmVjdCBgd29ya2luZy1kaXJlY3RvcnlgIGZvciBhIGdpdmVuIHByb2plY3QuXG4gKlxuICogQHJldHVybnMgcGF0aCB0byBiZSB1c2VkIGFzIGB3b3JraW5nLWRpcmVjdG9yeWAgb2YgYSBHaXRIdWIgd29ya2Zsb3csIHRoaXMgaXMgbmV2ZXIgZW1wdHkgYW5kIHdpbGwgcmV0dXJuIGAuL2AgZm9yIHRoZSByb290IHByb2plY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2plY3RQYXRoUmVsYXRpdmVUb1JlcG9Sb290KHByb2plY3Q6IFByb2plY3QpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlUmVsYXRpdmVQYXRoU3RhcnRzV2l0aERvdChcbiAgICBub3JtYWxpemVQZXJzaXN0ZWRQYXRoKHJlbGF0aXZlKHByb2plY3Qucm9vdC5vdXRkaXIsIHByb2plY3Qub3V0ZGlyKSksXG4gICk7XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9naXRodWIvcHJpdmF0ZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0Esd0NBRUM7QUFFRCwwQkFFQztBQUtELG9DQWdCQztBQWNELHNFQUlDO0FBbERELHlDQUFxQztBQUVyQyxxQ0FBb0Q7QUFDcEQsMENBQWtFO0FBRWxFLFNBQWdCLGNBQWMsQ0FBQyxVQUFrQjtJQUMvQyxPQUFPLGdCQUFnQixVQUFVLEtBQUssQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLEtBQWE7SUFDbkMsT0FBTyxRQUFRLEtBQUssS0FBSyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxDQUFtQjtJQUM5QyxRQUFRLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLFNBQVM7WUFDWixvRkFBb0Y7WUFDcEYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLEtBQUssUUFBUTtZQUNYLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNmLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxPQUFPLFlBQVksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hEO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxPQUFnQjtJQUM1RCxPQUFPLElBQUEsc0NBQStCLEVBQ3BDLElBQUEsNkJBQXNCLEVBQUMsSUFBQSxvQkFBUSxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL3Byb2plY3RcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZVBlcnNpc3RlZFBhdGggfSBmcm9tIFwiLi4vLi4vdXRpbFwiO1xuaW1wb3J0IHsgZW5zdXJlUmVsYXRpdmVQYXRoU3RhcnRzV2l0aERvdCB9IGZyb20gXCIuLi8uLi91dGlsL3BhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlY3JldFRvU3RyaW5nKHNlY3JldE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgXFwke3sgc2VjcmV0cy4ke3NlY3JldE5hbWV9IH19YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gYFxcJHt7ICR7dmFsdWV9IH19YDtcbn1cblxuLyoqXG4gKiBUdXJuIGFueSBKYXZhU2NyaXB0IHZhbHVlIGludG8gYSBHaXRIdWIgZXhwcmVzc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HaXRIdWJFeHByKHg6IE5vbk51bGxhYmxlPGFueT4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKHR5cGVvZiB4KSB7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIGAnJHt4LnJlcGxhY2UoLycvZywgYCcnYCl9J2A7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAvLyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHZhbHVlIGlzIGFsc28gdGhlIEdIIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWVcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh4KTtcbiAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICBpZiAoeCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGZyb21KU09OKCR7dG9HaXRIdWJFeHByKEpTT04uc3RyaW5naWZ5KHgpKX0pYDtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0eXBlOiAke3R5cGVvZiB4fWApO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBvZiBhIHByb2plY3QgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeVxuICpcbiAqIFRoaXMgaXMgYSBiaXQgb2YgaGFjayBhdCB0aGUgbW9tZW50LCBiZWNhdXNlIHByb2plY3RzIGN1cnJlbnRseSBkb24ndCBoYXZlIHRoZSBjb25jZXB0IG9mIGEgcmVwb3NpdG9yeS5cbiAqIFRoZSBgLmdpdGh1YmAgZGlyZWN0b3J5IGlzIGFsd2F5cyBjcmVhdGVkIHdpdGhpbiB0aGUgb3V0ZGlyIG9mIHRoZSByb290IHByb2plY3QuXG4gKiBDb25zZXF1ZW50bHkgdGhpcyBtZWFucyBhIEdpdEh1YiByb290IHByb2plY3QgY2Fubm90IHJlYWxseSBoYXZlIGFuIG91dGRpciBhbmQgR0ggV29ya2Zsb3dzIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiBPciBpbiBvdGhlciB3b3JkcywgdGhlIG91dGRpciBvZiB0aGUgcm9vdCBwcm9qZWN0IGlzIHRvIGJlIGFzc3VtZWQgdGhlIHJlcG9zaXRvcnkgcm9vdC5cbiAqXG4gKiBUaGlzIGhlbHBlciBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgY29ycmVjdCBgd29ya2luZy1kaXJlY3RvcnlgIGZvciBhIGdpdmVuIHByb2plY3QuXG4gKlxuICogQHJldHVybnMgcGF0aCB0byBiZSB1c2VkIGFzIGB3b3JraW5nLWRpcmVjdG9yeWAgb2YgYSBHaXRIdWIgd29ya2Zsb3csIHRoaXMgaXMgbmV2ZXIgZW1wdHkgYW5kIHdpbGwgcmV0dXJuIGAuL2AgZm9yIHRoZSByb290IHByb2plY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2plY3RQYXRoUmVsYXRpdmVUb1JlcG9Sb290KHByb2plY3Q6IFByb2plY3QpOiBzdHJpbmcge1xuICByZXR1cm4gZW5zdXJlUmVsYXRpdmVQYXRoU3RhcnRzV2l0aERvdChcbiAgICBub3JtYWxpemVQZXJzaXN0ZWRQYXRoKHJlbGF0aXZlKHByb2plY3Qucm9vdC5vdXRkaXIsIHByb2plY3Qub3V0ZGlyKSksXG4gICk7XG59XG4iXX0=
@@ -2,7 +2,8 @@ import type { IConstruct } from "constructs";
2
2
  import { GithubWorkflow } from "./workflows";
3
3
  import { Component } from "../component";
4
4
  import { JsonFile } from "../json";
5
- export interface PullRequestBackportOptions {
5
+ import type { RunsOnOptions } from "../runner-options";
6
+ export interface PullRequestBackportOptions extends RunsOnOptions {
6
7
  /**
7
8
  * The name of the workflow.
8
9
  *
@@ -10,7 +10,7 @@ const component_1 = require("../component");
10
10
  const json_1 = require("../json");
11
11
  const release_1 = require("../release");
12
12
  class PullRequestBackport extends component_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.102.0" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.103.1" };
14
14
  file;
15
15
  workflow;
16
16
  constructor(scope, options = {}) {
@@ -67,7 +67,7 @@ class PullRequestBackport extends component_1.Component {
67
67
  const credentials = workflowEngine.projenCredentials;
68
68
  this.workflow.addJob("backport", {
69
69
  name: "Backport PR",
70
- runsOn: ["ubuntu-latest"],
70
+ ...workflowEngine.runsOnConfig(options),
71
71
  permissions: {},
72
72
  // Only ever run this job if the PR is merged and not a backport PR itself
73
73
  if: `github.event.pull_request.merged == true && !${isBackportPr}`,
@@ -104,4 +104,4 @@ class PullRequestBackport extends component_1.Component {
104
104
  }
105
105
  }
106
106
  exports.PullRequestBackport = PullRequestBackport;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC1yZXF1ZXN0LWJhY2twb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi9wdWxsLXJlcXVlc3QtYmFja3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1EQUFnRDtBQUNoRCxpREFBNkM7QUFDN0MscUNBQWtDO0FBQ2xDLDJDQUE2QztBQUM3Qyw0Q0FBeUM7QUFDekMsa0NBQW1DO0FBQ25DLHdDQUFxQztBQTBEckMsTUFBYSxtQkFBb0IsU0FBUSxxQkFBUzs7SUFDaEMsSUFBSSxDQUFXO0lBQ2YsUUFBUSxDQUFpQjtJQUV6QyxZQUNFLEtBQWlCLEVBQ2pCLFVBQXNDLEVBQUU7UUFFeEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FDRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQ2IsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFFBQVEsSUFBSSxpQkFBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBYyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN0RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0Qix3SkFBd0osQ0FDekosQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlDLE1BQU0saUJBQWlC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R0FBRyxFQUFFO3dCQUNILGlFQUFpRTt3QkFDakUseURBQXlELGtCQUFrQixpQkFBaUI7d0JBQzVGLFNBQVMsV0FBVyxZQUFZO3dCQUNoQyxTQUFTLFdBQVcsOEJBQThCO3FCQUNuRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2I7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLDZCQUFhLENBQUMsNEJBQTRCO29CQUNoRCwyRUFBMkU7b0JBQzNFLGdHQUFnRztvQkFDaEcsMkVBQTJFO29CQUMzRSxFQUFFLEVBQUUsa0JBQWtCLFNBQVMsWUFBWSxXQUFXLE9BQU87b0JBQzdELElBQUksRUFBRTt3QkFDSixZQUFZLEVBQUUsV0FBVyxDQUFDLFFBQVE7d0JBQ2xDLDBCQUEwQixFQUFFLFdBQVc7cUJBQ3hDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTFISCxrREEySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgR2l0SHViQWN0aW9ucyB9IGZyb20gXCIuL2FjdGlvbnMuY29uc3RcIjtcbmltcG9ydCB7IEF1dG9BcHByb3ZlIH0gZnJvbSBcIi4vYXV0by1hcHByb3ZlXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IEdpdGh1YldvcmtmbG93IH0gZnJvbSBcIi4vd29ya2Zsb3dzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gXCIuLi9qc29uXCI7XG5pbXBvcnQgeyBSZWxlYXNlIH0gZnJvbSBcIi4uL3JlbGVhc2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiYmFja3BvcnRcIlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhpcyBjcmVhdGVkIEJhY2twb3J0IFBScyB3aXRoIGNvbmZsaWN0cy5cbiAgICpcbiAgICogQ29uZmxpY3RzIHdpbGwgaGF2ZSB0byBiZSByZXNvbHZlZCBtYW51YWxseSwgYnV0IGEgUFIgaXMgYWx3YXlzIGNyZWF0ZWQuXG4gICAqIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIGJhY2twb3J0IFBSIGZyb20gYmVpbmcgY3JlYXRlZCBpZiB0aGVyZSBhcmUgY29uZmxpY3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVXaXRoQ29uZmxpY3RzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxhYmVscyBhZGRlZCB0byB0aGUgY3JlYXRlZCBiYWNrcG9ydCBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgW1wiYmFja3BvcnRcIl1cbiAgICovXG4gIHJlYWRvbmx5IGJhY2twb3J0UFJMYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHByZWZpeCB1c2VkIHRvIG5hbWUgYmFja3BvcnQgYnJhbmNoZXMuXG4gICAqXG4gICAqIE1ha2Ugc3VyZSB0byBpbmNsdWRlIGEgc2VwYXJhdG9yIGF0IHRoZSBlbmQgbGlrZSBgL2Agb3IgYF9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImJhY2twb3J0L1wiXG4gICAqL1xuICByZWFkb25seSBiYWNrcG9ydEJyYW5jaE5hbWVQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYXBwcm92ZSBiYWNrcG9ydCBQUnMgaWYgdGhlICdhdXRvIGFwcHJvdmUnIHdvcmtmbG93IGlzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0FwcHJvdmVCYWNrcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYnJhbmNoZXMgdGhhdCBjYW4gYmUgYSB0YXJnZXQgZm9yIGJhY2twb3J0c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbG93IGJhY2twb3J0cyB0byBhbGwgcmVsZWFzZSBicmFuY2hlc1xuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHByZWZpeCB1c2VkIHRvIGRldGVjdCBQUnMgdGhhdCBzaG91bGQgYmUgYmFja3BvcnRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJiYWNrcG9ydC10by1cIlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxQcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWxsUmVxdWVzdEJhY2twb3J0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3c6IEdpdGh1YldvcmtmbG93O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogSUNvbnN0cnVjdCxcbiAgICBvcHRpb25zOiBQdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihzY29wZSk7XG5cbiAgICBjb25zdCB3b3JrZmxvd0VuZ2luZSA9IEdpdEh1Yi5vZih0aGlzLnByb2plY3QpO1xuICAgIGlmICghd29ya2Zsb3dFbmdpbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBhZGQgJHtcbiAgICAgICAgICBuZXcudGFyZ2V0Lm5hbWVcbiAgICAgICAgfSB0byBwcm9qZWN0IHdpdGhvdXQgR2l0SHViIGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgR2l0SHViIGZvciB0aGlzIHByb2plY3QuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnJhbmNoZXMgPVxuICAgICAgb3B0aW9ucy5icmFuY2hlcyA/PyBSZWxlYXNlLm9mKHRoaXMucHJvamVjdCBhcyBhbnkpPy5icmFuY2hlcyA/PyBbXTtcbiAgICBpZiAoYnJhbmNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnByb2plY3QubG9nZ2VyLndhcm4oXG4gICAgICAgIFwiUHVsbFJlcXVlc3RCYWNrcG9ydCBjb3VsZCBub3QgZmluZCBhbnkgdGFyZ2V0IGJyYW5jaGVzLiBCYWNrcG9ydHMgd2lsbCBub3QgYmUgYXZhaWxhYmxlLiBQbGVhc2UgYWRkIHJlbGVhc2UgYnJhbmNoZXMgb3IgY29uZmlndXJlIGBicmFuY2hlc2AgbWFudWFsbHkuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFByTGFiZWxzUmF3ID0gb3B0aW9ucy5iYWNrcG9ydFBSTGFiZWxzID8/IFtcImJhY2twb3J0XCJdO1xuICAgIGNvbnN0IHRhcmdldFByTGFiZWxzID0gWy4uLnRhcmdldFByTGFiZWxzUmF3XTtcblxuICAgIGNvbnN0IHNob3VsZEF1dG9BcHByb3ZlID0gb3B0aW9ucy5hdXRvQXBwcm92ZUJhY2twb3J0ID8/IHRydWU7XG4gICAgaWYgKHNob3VsZEF1dG9BcHByb3ZlKSB7XG4gICAgICBjb25zdCBhdXRvQXBwcm92ZSA9IHRoaXMucHJvamVjdC5jb21wb25lbnRzLmZpbmQoXG4gICAgICAgIChjKTogYyBpcyBBdXRvQXBwcm92ZSA9PiBjIGluc3RhbmNlb2YgQXV0b0FwcHJvdmUsXG4gICAgICApO1xuICAgICAgaWYgKGF1dG9BcHByb3ZlPy5sYWJlbCkge1xuICAgICAgICB0YXJnZXRQckxhYmVscy5wdXNoKGF1dG9BcHByb3ZlLmxhYmVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBiYWNrcG9ydEJyYW5jaE5hbWVQcmVmaXggPVxuICAgICAgb3B0aW9ucy5iYWNrcG9ydEJyYW5jaE5hbWVQcmVmaXggPz8gXCJiYWNrcG9ydC9cIjtcbiAgICBjb25zdCBsYWJlbFByZWZpeCA9IG9wdGlvbnMubGFiZWxQcmVmaXggPz8gXCJiYWNrcG9ydC10by1cIjtcblxuICAgIC8vIENvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmZpbGUgPSBuZXcgSnNvbkZpbGUodGhpcywgXCIuYmFja3BvcnRyYy5qc29uXCIsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBjb21taXRDb25mbGljdHM6IG9wdGlvbnMuY3JlYXRlV2l0aENvbmZsaWN0cyA/PyB0cnVlLFxuICAgICAgICB0YXJnZXRQUkxhYmVsczogdGFyZ2V0UHJMYWJlbHMsXG4gICAgICAgIGJhY2twb3J0QnJhbmNoTmFtZTogYCR7YmFja3BvcnRCcmFuY2hOYW1lUHJlZml4fXt7dGFyZ2V0QnJhbmNofX0te3tyZWZWYWx1ZXN9fWAsXG4gICAgICAgIHByVGl0bGU6XG4gICAgICAgICAgXCJ7e3NvdXJjZVB1bGxSZXF1ZXN0LnRpdGxlfX0gKGJhY2twb3J0ICN7e3NvdXJjZVB1bGxSZXF1ZXN0Lm51bWJlcn19KVwiLFxuICAgICAgICB0YXJnZXRCcmFuY2hDaG9pY2VzOiBicmFuY2hlcyxcbiAgICAgIH0sXG4gICAgICAvLyBGaWxlIG5lZWRzIHRvIGJlIGF2YWlsYWJsZSB0byB0aGUgR2l0SHViIFdvcmtmbG93XG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUodGhpcy5maWxlLnBhdGgpO1xuXG4gICAgLy8gV29ya2Zsb3dcbiAgICB0aGlzLndvcmtmbG93ID0gbmV3IEdpdGh1YldvcmtmbG93KFxuICAgICAgd29ya2Zsb3dFbmdpbmUsXG4gICAgICBvcHRpb25zLndvcmtmbG93TmFtZSA/PyBcImJhY2twb3J0XCIsXG4gICAgKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIHR5cGVzOiBbXCJsYWJlbGVkXCIsIFwidW5sYWJlbGVkXCIsIFwiY2xvc2VkXCJdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIGNvbmRpdGlvbiB0byBkZXRlY3QgaWYgdGhlIFBSIGlzIGEgYmFja3BvcnQgUFJcbiAgICAvLyB3ZSBwcmVmZXIgdG8gbWF0Y2ggdGhlIFBSIHVzaW5nIGxhYmVscywgYnV0IHdpbGwgZmFsbGJhY2sgdG8gbWF0Y2hpbmcgdGhlIGJyYW5jaCBuYW1lIHByZWZpeFxuICAgIGNvbnN0IGJyYW5jaENvbmRpdGlvbiA9IGBzdGFydHNXaXRoKGdpdGh1Yi5oZWFkX3JlZiwgJyR7YmFja3BvcnRCcmFuY2hOYW1lUHJlZml4fScpYDtcbiAgICBjb25zdCBsYWJlbENvbmRpdGlvbnM6IHN0cmluZ1tdID0gdGFyZ2V0UHJMYWJlbHNSYXcubWFwKFxuICAgICAgKGxhYmVsKSA9PlxuICAgICAgICBgY29udGFpbnMoZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5sYWJlbHMuKi5uYW1lLCAnJHtsYWJlbH0nKWAsXG4gICAgKTtcbiAgICBjb25zdCBpc0JhY2twb3J0UHIgPSBsYWJlbENvbmRpdGlvbnMubGVuZ3RoXG4gICAgICA/IGAoJHtsYWJlbENvbmRpdGlvbnMuam9pbihcIiAmJiBcIil9KWBcbiAgICAgIDogYCR7YnJhbmNoQ29uZGl0aW9ufSlgO1xuXG4gICAgY29uc3QgY2hlY2tTdGVwID0gXCJjaGVja19sYWJlbHNcIjtcbiAgICBjb25zdCBjaGVja091dHB1dCA9IFwibWF0Y2hlZFwiO1xuICAgIGNvbnN0IGxhYmVsUHJlZml4RXNjYXBlZCA9IGxhYmVsUHJlZml4LnJlcGxhY2UoL1wiL2csICdcXFxcXCInKTtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHdvcmtmbG93RW5naW5lLnByb2plbkNyZWRlbnRpYWxzO1xuXG4gICAgdGhpcy53b3JrZmxvdy5hZGRKb2IoXCJiYWNrcG9ydFwiLCB7XG4gICAgICBuYW1lOiBcIkJhY2twb3J0IFBSXCIsXG4gICAgICBydW5zT246IFtcInVidW50dS1sYXRlc3RcIl0sXG4gICAgICBwZXJtaXNzaW9uczoge30sXG4gICAgICAvLyBPbmx5IGV2ZXIgcnVuIHRoaXMgam9iIGlmIHRoZSBQUiBpcyBtZXJnZWQgYW5kIG5vdCBhIGJhY2twb3J0IFBSIGl0c2VsZlxuICAgICAgaWY6IGBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm1lcmdlZCA9PSB0cnVlICYmICEke2lzQmFja3BvcnRQcn1gLFxuICAgICAgZW52aXJvbm1lbnQ6IGNyZWRlbnRpYWxzLmVudmlyb25tZW50LFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgLi4uY3JlZGVudGlhbHMuc2V0dXBTdGVwcyxcbiAgICAgICAgLy8gV2UgbmVlZCBhIGN1c3RvbSBzdGVwIHRvIGNoZWNrIGlmIHRoZSBQUiBoYXMgYW55IG9mIHRoZSBsYWJlbHMgdGhhdCBpbmRpY2F0ZSB0aGF0IHRoZSBQUiBzaG91bGQgYmUgYmFja3BvcnRlZC5cbiAgICAgICAgLy8gVGhpcyBpcyBub3QgY3VycmVudGx5IHBvc3NpYmxlIHdpdGggR0ggQWN0aW9ucyBleHByZXNzaW9uIGJ5IGl0c2VsZiwgc28gd2UgdXNlIGEgYmFzaCBzY3JpcHQuXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogY2hlY2tTdGVwLFxuICAgICAgICAgIG5hbWU6IFwiQ2hlY2sgZm9yIGJhY2twb3J0IGxhYmVsc1wiLFxuICAgICAgICAgIHNoZWxsOiBcImJhc2hcIixcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgIFwibGFiZWxzPScke3sgdG9KU09OKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSkgfX0nXCIsXG4gICAgICAgICAgICBgbWF0Y2hlZD0kKGVjaG8gJGxhYmVscyB8IGpxICcufG1hcChzZWxlY3Qoc3RhcnRzd2l0aChcIiR7bGFiZWxQcmVmaXhFc2NhcGVkfVwiKSkpIHwgbGVuZ3RoJylgLFxuICAgICAgICAgICAgYGVjaG8gXCIke2NoZWNrT3V0cHV0fT0kbWF0Y2hlZFwiYCxcbiAgICAgICAgICAgIGBlY2hvIFwiJHtjaGVja091dHB1dH09JG1hdGNoZWRcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJCYWNrcG9ydCBBY3Rpb25cIixcbiAgICAgICAgICB1c2VzOiBHaXRIdWJBY3Rpb25zLlNRUkVOX0JBQ0tQT1JUX0dJVEhVQl9BQ1RJT04sXG4gICAgICAgICAgLy8gb25seSBydW4gdGhpcyBzdGVwIGlmIHdlIGhhdmUgZm91bmQgbWF0Y2hpbmcgbGFiZWxzIGluIHRoZSBwcmV2aW91cyBzdGVwXG4gICAgICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IHdvcmtmbG93IGZhaWx1cmVzIGJlY2F1c2UgdGhlIGFjdGlvbiBmYWlscyB3aGVuIHByZS1jb25kaXRpb25zIGFyZSBub3QgbWV0XG4gICAgICAgICAgLy8gYW5kIGNhdXNlcyBhbnkgUFIgdG8gYmUgbWFya2VkIHdpdGggYSByZWQgWCwgbGVhZGluZyB0byBlcnJvciBibGluZG5lc3MuXG4gICAgICAgICAgaWY6IGBmcm9tSlNPTihzdGVwcy4ke2NoZWNrU3RlcH0ub3V0cHV0cy4ke2NoZWNrT3V0cHV0fSkgPiAwYCxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBnaXRodWJfdG9rZW46IGNyZWRlbnRpYWxzLnRva2VuUmVmLFxuICAgICAgICAgICAgYXV0b19iYWNrcG9ydF9sYWJlbF9wcmVmaXg6IGxhYmVsUHJlZml4LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC1yZXF1ZXN0LWJhY2twb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi9wdWxsLXJlcXVlc3QtYmFja3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG1EQUFnRDtBQUNoRCxpREFBNkM7QUFDN0MscUNBQWtDO0FBQ2xDLDJDQUE2QztBQUM3Qyw0Q0FBeUM7QUFDekMsa0NBQW1DO0FBQ25DLHdDQUFxQztBQTJEckMsTUFBYSxtQkFBb0IsU0FBUSxxQkFBUzs7SUFDaEMsSUFBSSxDQUFXO0lBQ2YsUUFBUSxDQUFpQjtJQUV6QyxZQUNFLEtBQWlCLEVBQ2pCLFVBQXNDLEVBQUU7UUFFeEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FDRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQ2IsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFFBQVEsSUFBSSxpQkFBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBYyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN0RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0Qix3SkFBd0osQ0FDekosQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlDLE1BQU0saUJBQWlC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QUFNO29CQUNiLEdBQUcsRUFBRTt3QkFDSCxpRUFBaUU7d0JBQ2pFLHlEQUF5RCxrQkFBa0IsaUJBQWlCO3dCQUM1RixTQUFTLFdBQVcsWUFBWTt3QkFDaEMsU0FBUyxXQUFXLDhCQUE4QjtxQkFDbkQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNiO2dCQUNEO29CQUNFLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLElBQUksRUFBRSw2QkFBYSxDQUFDLDRCQUE0QjtvQkFDaEQsMkVBQTJFO29CQUMzRSxnR0FBZ0c7b0JBQ2hHLDJFQUEyRTtvQkFDM0UsRUFBRSxFQUFFLGtCQUFrQixTQUFTLFlBQVksV0FBVyxPQUFPO29CQUM3RCxJQUFJLEVBQUU7d0JBQ0osWUFBWSxFQUFFLFdBQVcsQ0FBQyxRQUFRO3dCQUNsQywwQkFBMEIsRUFBRSxXQUFXO3FCQUN4QztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExSEgsa0RBMkhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEdpdEh1YkFjdGlvbnMgfSBmcm9tIFwiLi9hY3Rpb25zLmNvbnN0XCI7XG5pbXBvcnQgeyBBdXRvQXBwcm92ZSB9IGZyb20gXCIuL2F1dG8tYXBwcm92ZVwiO1xuaW1wb3J0IHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5pbXBvcnQgeyBHaXRodWJXb3JrZmxvdyB9IGZyb20gXCIuL3dvcmtmbG93c1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi4vanNvblwiO1xuaW1wb3J0IHsgUmVsZWFzZSB9IGZyb20gXCIuLi9yZWxlYXNlXCI7XG5pbXBvcnQgdHlwZSB7IFJ1bnNPbk9wdGlvbnMgfSBmcm9tIFwiLi4vcnVubmVyLW9wdGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdEJhY2twb3J0T3B0aW9ucyBleHRlbmRzIFJ1bnNPbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImJhY2twb3J0XCJcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdWxkIHRoaXMgY3JlYXRlZCBCYWNrcG9ydCBQUnMgd2l0aCBjb25mbGljdHMuXG4gICAqXG4gICAqIENvbmZsaWN0cyB3aWxsIGhhdmUgdG8gYmUgcmVzb2x2ZWQgbWFudWFsbHksIGJ1dCBhIFBSIGlzIGFsd2F5cyBjcmVhdGVkLlxuICAgKiBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBiYWNrcG9ydCBQUiBmcm9tIGJlaW5nIGNyZWF0ZWQgaWYgdGhlcmUgYXJlIGNvbmZsaWN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlV2l0aENvbmZsaWN0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbHMgYWRkZWQgdG8gdGhlIGNyZWF0ZWQgYmFja3BvcnQgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtcImJhY2twb3J0XCJdXG4gICAqL1xuICByZWFkb25seSBiYWNrcG9ydFBSTGFiZWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggdXNlZCB0byBuYW1lIGJhY2twb3J0IGJyYW5jaGVzLlxuICAgKlxuICAgKiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBhIHNlcGFyYXRvciBhdCB0aGUgZW5kIGxpa2UgYC9gIG9yIGBfYC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJiYWNrcG9ydC9cIlxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3BvcnRCcmFuY2hOYW1lUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFwcHJvdmUgYmFja3BvcnQgUFJzIGlmIHRoZSAnYXV0byBhcHByb3ZlJyB3b3JrZmxvdyBpcyBhdmFpbGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9BcHByb3ZlQmFja3BvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGJyYW5jaGVzIHRoYXQgY2FuIGJlIGEgdGFyZ2V0IGZvciBiYWNrcG9ydHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGxvdyBiYWNrcG9ydHMgdG8gYWxsIHJlbGVhc2UgYnJhbmNoZXNcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggdXNlZCB0byBkZXRlY3QgUFJzIHRoYXQgc2hvdWxkIGJlIGJhY2twb3J0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiYmFja3BvcnQtdG8tXCJcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsUHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUHVsbFJlcXVlc3RCYWNrcG9ydCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBKc29uRmlsZTtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93OiBHaXRodWJXb3JrZmxvdztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IElDb25zdHJ1Y3QsXG4gICAgb3B0aW9uczogUHVsbFJlcXVlc3RCYWNrcG9ydE9wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUpO1xuXG4gICAgY29uc3Qgd29ya2Zsb3dFbmdpbmUgPSBHaXRIdWIub2YodGhpcy5wcm9qZWN0KTtcbiAgICBpZiAoIXdvcmtmbG93RW5naW5lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgYWRkICR7XG4gICAgICAgICAgbmV3LnRhcmdldC5uYW1lXG4gICAgICAgIH0gdG8gcHJvamVjdCB3aXRob3V0IEdpdEh1YiBlbmFibGVkLiBQbGVhc2UgZW5hYmxlIEdpdEh1YiBmb3IgdGhpcyBwcm9qZWN0LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGJyYW5jaGVzID1cbiAgICAgIG9wdGlvbnMuYnJhbmNoZXMgPz8gUmVsZWFzZS5vZih0aGlzLnByb2plY3QgYXMgYW55KT8uYnJhbmNoZXMgPz8gW107XG4gICAgaWYgKGJyYW5jaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wcm9qZWN0LmxvZ2dlci53YXJuKFxuICAgICAgICBcIlB1bGxSZXF1ZXN0QmFja3BvcnQgY291bGQgbm90IGZpbmQgYW55IHRhcmdldCBicmFuY2hlcy4gQmFja3BvcnRzIHdpbGwgbm90IGJlIGF2YWlsYWJsZS4gUGxlYXNlIGFkZCByZWxlYXNlIGJyYW5jaGVzIG9yIGNvbmZpZ3VyZSBgYnJhbmNoZXNgIG1hbnVhbGx5LlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRQckxhYmVsc1JhdyA9IG9wdGlvbnMuYmFja3BvcnRQUkxhYmVscyA/PyBbXCJiYWNrcG9ydFwiXTtcbiAgICBjb25zdCB0YXJnZXRQckxhYmVscyA9IFsuLi50YXJnZXRQckxhYmVsc1Jhd107XG5cbiAgICBjb25zdCBzaG91bGRBdXRvQXBwcm92ZSA9IG9wdGlvbnMuYXV0b0FwcHJvdmVCYWNrcG9ydCA/PyB0cnVlO1xuICAgIGlmIChzaG91bGRBdXRvQXBwcm92ZSkge1xuICAgICAgY29uc3QgYXV0b0FwcHJvdmUgPSB0aGlzLnByb2plY3QuY29tcG9uZW50cy5maW5kKFxuICAgICAgICAoYyk6IGMgaXMgQXV0b0FwcHJvdmUgPT4gYyBpbnN0YW5jZW9mIEF1dG9BcHByb3ZlLFxuICAgICAgKTtcbiAgICAgIGlmIChhdXRvQXBwcm92ZT8ubGFiZWwpIHtcbiAgICAgICAgdGFyZ2V0UHJMYWJlbHMucHVzaChhdXRvQXBwcm92ZS5sYWJlbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYmFja3BvcnRCcmFuY2hOYW1lUHJlZml4ID1cbiAgICAgIG9wdGlvbnMuYmFja3BvcnRCcmFuY2hOYW1lUHJlZml4ID8/IFwiYmFja3BvcnQvXCI7XG4gICAgY29uc3QgbGFiZWxQcmVmaXggPSBvcHRpb25zLmxhYmVsUHJlZml4ID8/IFwiYmFja3BvcnQtdG8tXCI7XG5cbiAgICAvLyBDb25maWd1cmF0aW9uXG4gICAgdGhpcy5maWxlID0gbmV3IEpzb25GaWxlKHRoaXMsIFwiLmJhY2twb3J0cmMuanNvblwiLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgY29tbWl0Q29uZmxpY3RzOiBvcHRpb25zLmNyZWF0ZVdpdGhDb25mbGljdHMgPz8gdHJ1ZSxcbiAgICAgICAgdGFyZ2V0UFJMYWJlbHM6IHRhcmdldFByTGFiZWxzLFxuICAgICAgICBiYWNrcG9ydEJyYW5jaE5hbWU6IGAke2JhY2twb3J0QnJhbmNoTmFtZVByZWZpeH17e3RhcmdldEJyYW5jaH19LXt7cmVmVmFsdWVzfX1gLFxuICAgICAgICBwclRpdGxlOlxuICAgICAgICAgIFwie3tzb3VyY2VQdWxsUmVxdWVzdC50aXRsZX19IChiYWNrcG9ydCAje3tzb3VyY2VQdWxsUmVxdWVzdC5udW1iZXJ9fSlcIixcbiAgICAgICAgdGFyZ2V0QnJhbmNoQ2hvaWNlczogYnJhbmNoZXMsXG4gICAgICB9LFxuICAgICAgLy8gRmlsZSBuZWVkcyB0byBiZSBhdmFpbGFibGUgdG8gdGhlIEdpdEh1YiBXb3JrZmxvd1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRoaXMuZmlsZS5wYXRoKTtcblxuICAgIC8vIFdvcmtmbG93XG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBHaXRodWJXb3JrZmxvdyhcbiAgICAgIHdvcmtmbG93RW5naW5lLFxuICAgICAgb3B0aW9ucy53b3JrZmxvd05hbWUgPz8gXCJiYWNrcG9ydFwiLFxuICAgICk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7XG4gICAgICBwdWxsUmVxdWVzdFRhcmdldDoge1xuICAgICAgICB0eXBlczogW1wibGFiZWxlZFwiLCBcInVubGFiZWxlZFwiLCBcImNsb3NlZFwiXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBjb25kaXRpb24gdG8gZGV0ZWN0IGlmIHRoZSBQUiBpcyBhIGJhY2twb3J0IFBSXG4gICAgLy8gd2UgcHJlZmVyIHRvIG1hdGNoIHRoZSBQUiB1c2luZyBsYWJlbHMsIGJ1dCB3aWxsIGZhbGxiYWNrIHRvIG1hdGNoaW5nIHRoZSBicmFuY2ggbmFtZSBwcmVmaXhcbiAgICBjb25zdCBicmFuY2hDb25kaXRpb24gPSBgc3RhcnRzV2l0aChnaXRodWIuaGVhZF9yZWYsICcke2JhY2twb3J0QnJhbmNoTmFtZVByZWZpeH0nKWA7XG4gICAgY29uc3QgbGFiZWxDb25kaXRpb25zOiBzdHJpbmdbXSA9IHRhcmdldFByTGFiZWxzUmF3Lm1hcChcbiAgICAgIChsYWJlbCkgPT5cbiAgICAgICAgYGNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJyR7bGFiZWx9JylgLFxuICAgICk7XG4gICAgY29uc3QgaXNCYWNrcG9ydFByID0gbGFiZWxDb25kaXRpb25zLmxlbmd0aFxuICAgICAgPyBgKCR7bGFiZWxDb25kaXRpb25zLmpvaW4oXCIgJiYgXCIpfSlgXG4gICAgICA6IGAke2JyYW5jaENvbmRpdGlvbn0pYDtcblxuICAgIGNvbnN0IGNoZWNrU3RlcCA9IFwiY2hlY2tfbGFiZWxzXCI7XG4gICAgY29uc3QgY2hlY2tPdXRwdXQgPSBcIm1hdGNoZWRcIjtcbiAgICBjb25zdCBsYWJlbFByZWZpeEVzY2FwZWQgPSBsYWJlbFByZWZpeC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJyk7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB3b3JrZmxvd0VuZ2luZS5wcm9qZW5DcmVkZW50aWFscztcblxuICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKFwiYmFja3BvcnRcIiwge1xuICAgICAgbmFtZTogXCJCYWNrcG9ydCBQUlwiLFxuICAgICAgLi4ud29ya2Zsb3dFbmdpbmUucnVuc09uQ29uZmlnKG9wdGlvbnMpLFxuICAgICAgcGVybWlzc2lvbnM6IHt9LFxuICAgICAgLy8gT25seSBldmVyIHJ1biB0aGlzIGpvYiBpZiB0aGUgUFIgaXMgbWVyZ2VkIGFuZCBub3QgYSBiYWNrcG9ydCBQUiBpdHNlbGZcbiAgICAgIGlmOiBgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5tZXJnZWQgPT0gdHJ1ZSAmJiAhJHtpc0JhY2twb3J0UHJ9YCxcbiAgICAgIGVudmlyb25tZW50OiBjcmVkZW50aWFscy5lbnZpcm9ubWVudCxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLmNyZWRlbnRpYWxzLnNldHVwU3RlcHMsXG4gICAgICAgIC8vIFdlIG5lZWQgYSBjdXN0b20gc3RlcCB0byBjaGVjayBpZiB0aGUgUFIgaGFzIGFueSBvZiB0aGUgbGFiZWxzIHRoYXQgaW5kaWNhdGUgdGhhdCB0aGUgUFIgc2hvdWxkIGJlIGJhY2twb3J0ZWQuXG4gICAgICAgIC8vIFRoaXMgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSB3aXRoIEdIIEFjdGlvbnMgZXhwcmVzc2lvbiBieSBpdHNlbGYsIHNvIHdlIHVzZSBhIGJhc2ggc2NyaXB0LlxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IGNoZWNrU3RlcCxcbiAgICAgICAgICBuYW1lOiBcIkNoZWNrIGZvciBiYWNrcG9ydCBsYWJlbHNcIixcbiAgICAgICAgICBzaGVsbDogXCJiYXNoXCIsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICBcImxhYmVscz0nJHt7IHRvSlNPTihnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUpIH19J1wiLFxuICAgICAgICAgICAgYG1hdGNoZWQ9JChlY2hvICRsYWJlbHMgfCBqcSAnLnxtYXAoc2VsZWN0KHN0YXJ0c3dpdGgoXCIke2xhYmVsUHJlZml4RXNjYXBlZH1cIikpKSB8IGxlbmd0aCcpYCxcbiAgICAgICAgICAgIGBlY2hvIFwiJHtjaGVja091dHB1dH09JG1hdGNoZWRcImAsXG4gICAgICAgICAgICBgZWNobyBcIiR7Y2hlY2tPdXRwdXR9PSRtYXRjaGVkXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQmFja3BvcnQgQWN0aW9uXCIsXG4gICAgICAgICAgdXNlczogR2l0SHViQWN0aW9ucy5TUVJFTl9CQUNLUE9SVF9HSVRIVUJfQUNUSU9OLFxuICAgICAgICAgIC8vIG9ubHkgcnVuIHRoaXMgc3RlcCBpZiB3ZSBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhYmVscyBpbiB0aGUgcHJldmlvdXMgc3RlcFxuICAgICAgICAgIC8vIHRoaXMgaXMgdG8gcHJldmVudCB3b3JrZmxvdyBmYWlsdXJlcyBiZWNhdXNlIHRoZSBhY3Rpb24gZmFpbHMgd2hlbiBwcmUtY29uZGl0aW9ucyBhcmUgbm90IG1ldFxuICAgICAgICAgIC8vIGFuZCBjYXVzZXMgYW55IFBSIHRvIGJlIG1hcmtlZCB3aXRoIGEgcmVkIFgsIGxlYWRpbmcgdG8gZXJyb3IgYmxpbmRuZXNzLlxuICAgICAgICAgIGlmOiBgZnJvbUpTT04oc3RlcHMuJHtjaGVja1N0ZXB9Lm91dHB1dHMuJHtjaGVja091dHB1dH0pID4gMGAsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgZ2l0aHViX3Rva2VuOiBjcmVkZW50aWFscy50b2tlblJlZixcbiAgICAgICAgICAgIGF1dG9fYmFja3BvcnRfbGFiZWxfcHJlZml4OiBsYWJlbFByZWZpeCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19