@decohere/scaffold 0.0.1-dev.91 → 0.0.1-dev.93

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 (127) hide show
  1. package/commonjs/src/add-api.action.js +0 -2
  2. package/commonjs/src/add-api.command.js +0 -2
  3. package/commonjs/src/add.command.js +0 -2
  4. package/commonjs/src/add.module.js +0 -2
  5. package/commonjs/src/auth0-configure.action.js +0 -2
  6. package/commonjs/src/auth0-configure.command.js +0 -2
  7. package/commonjs/src/auth0-login.action.js +0 -2
  8. package/commonjs/src/auth0-login.command.js +0 -2
  9. package/commonjs/src/auth0.command.js +0 -2
  10. package/commonjs/src/auth0.module.js +0 -2
  11. package/commonjs/src/cli.js +0 -2
  12. package/commonjs/src/create.command.js +0 -2
  13. package/commonjs/src/create.module.js +0 -2
  14. package/commonjs/src/domain/prompt.js +0 -2
  15. package/commonjs/src/index.js +0 -2
  16. package/commonjs/src/models/compose.model.js +111 -3
  17. package/commonjs/src/models/config-yaml.model.js +0 -2
  18. package/commonjs/src/models/const.js +0 -2
  19. package/commonjs/src/models/dev-container.model.js +53 -8
  20. package/commonjs/src/models/docker-image.model.js +24 -6
  21. package/commonjs/src/models/env-file.model.js +0 -2
  22. package/commonjs/src/models/gitignore.model.js +6 -2
  23. package/commonjs/src/models/launch-json.model.js +0 -2
  24. package/commonjs/src/models/package-json.model.js +0 -2
  25. package/commonjs/src/models/project.model.js +0 -2
  26. package/commonjs/src/models/source-file.js +0 -2
  27. package/commonjs/src/models/tsconfig.model.js +0 -2
  28. package/commonjs/src/models/vitest-config.model.js +0 -2
  29. package/commonjs/src/models/vscode-settings.model.js +0 -2
  30. package/commonjs/src/program.js +0 -2
  31. package/commonjs/src/resolve-target-dir.js +0 -2
  32. package/commonjs/src/services/scaffold.service.js +0 -2
  33. package/commonjs/src/version.js +0 -2
  34. package/commonjs/src/webapi/api-name.js +0 -2
  35. package/commonjs/src/webapi/auth0-commands.js +0 -2
  36. package/commonjs/src/webapi/authorize-scopes.js +0 -2
  37. package/commonjs/src/webapi/cli-options.js +0 -2
  38. package/commonjs/src/webapi/const.js +0 -2
  39. package/commonjs/src/webapi/create-api.js +28 -10
  40. package/commonjs/src/webapi/devcontainer/codebase-rag-mcp.js +0 -2
  41. package/commonjs/src/webapi/devcontainer/host-scripts.js +0 -2
  42. package/commonjs/src/webapi/features/auth.feature.js +0 -2
  43. package/commonjs/src/webapi/features/auth0-cli.js +0 -2
  44. package/commonjs/src/webapi/features/biome-format.js +0 -2
  45. package/commonjs/src/webapi/features/database.feature.js +2 -3
  46. package/commonjs/src/webapi/features/finalize.feature.js +0 -2
  47. package/commonjs/src/webapi/features/postman.feature.js +0 -2
  48. package/commonjs/src/webapi/models/api-package-json.model.js +0 -2
  49. package/commonjs/src/webapi/models/auth-config.model.js +0 -2
  50. package/commonjs/src/webapi/models/controller-source-file.model.js +0 -2
  51. package/commonjs/src/webapi/models/github-ci.model.js +0 -2
  52. package/commonjs/src/webapi/models/main-source-file.model.js +0 -2
  53. package/commonjs/src/webapi/models/production-dockerfile.model.js +5 -5
  54. package/commonjs/src/webapi/models/sample-files.model.js +0 -2
  55. package/commonjs/src/webapi/models/webapi-image.model.js +0 -2
  56. package/commonjs/src/webapi/postman/hello-openapi.js +0 -2
  57. package/commonjs/src/webapi/postman/local-view.js +0 -2
  58. package/commonjs/src/webapi/postman/openapi-to-postman.js +0 -2
  59. package/commonjs/src/webapi/workspace-readme.js +0 -2
  60. package/commonjs/src/webapi.action.js +0 -2
  61. package/commonjs/src/webapi.command.js +0 -2
  62. package/es6/src/add-api.action.js +0 -2
  63. package/es6/src/add-api.command.js +0 -2
  64. package/es6/src/add.command.js +0 -2
  65. package/es6/src/add.module.js +0 -2
  66. package/es6/src/auth0-configure.action.js +0 -2
  67. package/es6/src/auth0-configure.command.js +0 -2
  68. package/es6/src/auth0-login.action.js +0 -2
  69. package/es6/src/auth0-login.command.js +0 -2
  70. package/es6/src/auth0.command.js +0 -2
  71. package/es6/src/auth0.module.js +0 -2
  72. package/es6/src/cli.js +0 -2
  73. package/es6/src/create.command.js +0 -2
  74. package/es6/src/create.module.js +0 -2
  75. package/es6/src/domain/prompt.js +0 -2
  76. package/es6/src/index.js +0 -2
  77. package/es6/src/models/compose.model.js +113 -3
  78. package/es6/src/models/config-yaml.model.js +0 -2
  79. package/es6/src/models/const.js +0 -2
  80. package/es6/src/models/dev-container.model.js +53 -8
  81. package/es6/src/models/docker-image.model.js +24 -6
  82. package/es6/src/models/env-file.model.js +0 -2
  83. package/es6/src/models/gitignore.model.js +6 -2
  84. package/es6/src/models/launch-json.model.js +0 -2
  85. package/es6/src/models/package-json.model.js +0 -2
  86. package/es6/src/models/project.model.js +0 -2
  87. package/es6/src/models/source-file.js +0 -2
  88. package/es6/src/models/tsconfig.model.js +0 -2
  89. package/es6/src/models/vitest-config.model.js +0 -2
  90. package/es6/src/models/vscode-settings.model.js +0 -2
  91. package/es6/src/program.js +0 -2
  92. package/es6/src/resolve-target-dir.js +0 -2
  93. package/es6/src/services/scaffold.service.js +0 -2
  94. package/es6/src/version.js +0 -2
  95. package/es6/src/webapi/api-name.js +0 -2
  96. package/es6/src/webapi/auth0-commands.js +0 -2
  97. package/es6/src/webapi/authorize-scopes.js +0 -2
  98. package/es6/src/webapi/cli-options.js +0 -2
  99. package/es6/src/webapi/const.js +0 -2
  100. package/es6/src/webapi/create-api.js +29 -11
  101. package/es6/src/webapi/devcontainer/codebase-rag-mcp.js +0 -2
  102. package/es6/src/webapi/devcontainer/host-scripts.js +0 -2
  103. package/es6/src/webapi/features/auth.feature.js +0 -2
  104. package/es6/src/webapi/features/auth0-cli.js +0 -2
  105. package/es6/src/webapi/features/biome-format.js +0 -2
  106. package/es6/src/webapi/features/database.feature.js +2 -3
  107. package/es6/src/webapi/features/finalize.feature.js +0 -2
  108. package/es6/src/webapi/features/postman.feature.js +0 -2
  109. package/es6/src/webapi/models/api-package-json.model.js +0 -2
  110. package/es6/src/webapi/models/auth-config.model.js +0 -2
  111. package/es6/src/webapi/models/controller-source-file.model.js +0 -2
  112. package/es6/src/webapi/models/github-ci.model.js +0 -2
  113. package/es6/src/webapi/models/main-source-file.model.js +0 -2
  114. package/es6/src/webapi/models/production-dockerfile.model.js +5 -5
  115. package/es6/src/webapi/models/sample-files.model.js +0 -2
  116. package/es6/src/webapi/models/webapi-image.model.js +0 -2
  117. package/es6/src/webapi/postman/hello-openapi.js +0 -2
  118. package/es6/src/webapi/postman/local-view.js +0 -2
  119. package/es6/src/webapi/postman/openapi-to-postman.js +0 -2
  120. package/es6/src/webapi/workspace-readme.js +0 -2
  121. package/es6/src/webapi.action.js +0 -2
  122. package/es6/src/webapi.command.js +0 -2
  123. package/package.json +5 -4
  124. package/types/src/models/compose.model.d.ts +9 -0
  125. package/types/src/models/dev-container.model.d.ts +8 -0
  126. package/types/src/models/docker-image.model.d.ts +6 -0
  127. package/types/src/models/gitignore.model.d.ts +2 -0
@@ -470,5 +470,3 @@ function createAdminDatabaseUser(input) {
470
470
  };
471
471
  }
472
472
  }
473
-
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvYXV0aDAtY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYywgc3Bhd25TeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuLyoqIE1hbmFnZW1lbnQgQVBJIHNjb3BlcyBuZWVkZWQgZm9yIEFQSSwgU1BBLCBjb25uZWN0aW9ucywgYW5kIGFkbWluIHVzZXJzLiAqL1xuY29uc3QgUkVRVUlSRURfU0NPUEVTID0gW1xuXHRcImNyZWF0ZTpjbGllbnRzXCIsXG5cdFwicmVhZDpjbGllbnRzXCIsXG5cdFwidXBkYXRlOmNsaWVudHNcIixcblx0XCJjcmVhdGU6cmVzb3VyY2Vfc2VydmVyc1wiLFxuXHRcInJlYWQ6cmVzb3VyY2Vfc2VydmVyc1wiLFxuXHRcInVwZGF0ZTpyZXNvdXJjZV9zZXJ2ZXJzXCIsXG5cdFwicmVhZDpjb25uZWN0aW9uc1wiLFxuXHRcInVwZGF0ZTpjb25uZWN0aW9uc1wiLFxuXHRcImNyZWF0ZTp1c2Vyc1wiLFxuXHRcInJlYWQ6dXNlcnNcIixcblx0XCJ1cGRhdGU6dXNlcnNcIixcbl0uam9pbihcIixcIik7XG5cbi8qKiBIYXJkIHRpbWVvdXQgZm9yIGFueSBNYW5hZ2VtZW50IEFQSSBjYWxsLiBQcmV2ZW50cyBpbmRlZmluaXRlIGhhbmdzIG9uIHRva2VuIHJlLWF1dGguICovXG5jb25zdCBBUElfVElNRU9VVF9NUyA9IDhfMDAwO1xuXG4vKiogRGVmYXVsdCBBUEkgc2NvcGVzIG1hdGNoaW5nIEhlbGxvIENBU0wgQXV0aG9yaXplIGRlY29yYXRvcnMuICovXG5leHBvcnQgY29uc3QgSEVMTE9fQVBJX1NDT1BFUyA9IFtcblx0XCJyZWFkOkhlbGxvXCIsXG5cdFwiY3JlYXRlOkhlbGxvXCIsXG5cdFwidXBkYXRlOkhlbGxvXCIsXG5cdFwiZGVsZXRlOkhlbGxvXCIsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgREJfQ09OTkVDVElPTl9OQU1FID0gXCJVc2VybmFtZS1QYXNzd29yZC1BdXRoZW50aWNhdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgQXV0aDBBdXRoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKTtcblx0XHR0aGlzLm5hbWUgPSBcIkF1dGgwQXV0aEVycm9yXCI7XG5cdH1cbn1cblxuLyoqIFJldHVybnMgdHJ1ZSBpZiBhbiBlcnJvciBvciBzdGRlcnIgb3V0cHV0IGxvb2tzIGxpa2UgYW4gZXhwaXJlZC9taXNzaW5nIHRva2VuLiAqL1xuZnVuY3Rpb24gaXNBdXRoRXJyb3IodGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiAoXG5cdFx0dGV4dC5pbmNsdWRlcyhcInJlbmV3IGFjY2VzcyB0b2tlblwiKSB8fFxuXHRcdHRleHQuaW5jbHVkZXMoXCJsb2cgaW5cIikgfHxcblx0XHR0ZXh0LmluY2x1ZGVzKFwiVW5hdXRob3JpemVkXCIpXG5cdCk7XG59XG5cbi8qKiBTdHJpcCBBdXRoMCBDTEkgYmFubmVyIGxpbmVzIGJlZm9yZSBKU09OLiAqL1xuZnVuY3Rpb24gcGFyc2VKc29uT3V0cHV0PFQ+KHN0ZG91dDogc3RyaW5nKTogVCB7XG5cdGNvbnN0IHN0YXJ0ID0gc3Rkb3V0LmluZGV4T2YoXCJ7XCIpO1xuXHRjb25zdCBhcnJheVN0YXJ0ID0gc3Rkb3V0LmluZGV4T2YoXCJbXCIpO1xuXHRsZXQgaWR4ID0gLTE7XG5cdGlmIChzdGFydCA9PT0gLTEpIGlkeCA9IGFycmF5U3RhcnQ7XG5cdGVsc2UgaWYgKGFycmF5U3RhcnQgPT09IC0xKSBpZHggPSBzdGFydDtcblx0ZWxzZSBpZHggPSBNYXRoLm1pbihzdGFydCwgYXJyYXlTdGFydCk7XG5cdGlmIChpZHggPCAwKSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIEpTT04gZnJvbSBhdXRoMCBDTEksIGdvdDogJHtzdGRvdXQuc2xpY2UoMCwgMjAwKX1gKTtcblx0cmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnNsaWNlKGlkeCkpIGFzIFQ7XG59XG5cbi8qKiBSdW4gYW4gYXV0aDAgQ0xJIGNvbW1hbmQgd2l0aCBhIGhhcmQgdGltZW91dC4gUmV0dXJucyBzdGRvdXQgb24gc3VjY2VzcywgdGhyb3dzIG9uIGZhaWx1cmUuICovXG5mdW5jdGlvbiBydW5BdXRoMChhcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdGNvbnN0IHJlc3VsdCA9IHNwYXduU3luYyhcImF1dGgwXCIsIGFyZ3MsIHtcblx0XHRlbmNvZGluZzogXCJ1dGY4XCIsXG5cdFx0dGltZW91dDogQVBJX1RJTUVPVVRfTVMsXG5cdFx0aW5wdXQ6IFwiXCIsXG5cdFx0c3RkaW86IFwicGlwZVwiLFxuXHR9KTtcblxuXHRpZiAocmVzdWx0LmVycm9yKSB7XG5cdFx0Y29uc3QgbXNnID0gcmVzdWx0LmVycm9yLm1lc3NhZ2U7XG5cdFx0aWYgKGlzQXV0aEVycm9yKG1zZykgfHwgKHJlc3VsdC5lcnJvciBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgPT09IFwiRVRJTUVET1VUXCIpIHtcblx0XHRcdHRocm93IG5ldyBBdXRoMEF1dGhFcnJvcihtc2cpO1xuXHRcdH1cblx0XHR0aHJvdyByZXN1bHQuZXJyb3I7XG5cdH1cblxuXHRpZiAocmVzdWx0LnN0YXR1cyAhPT0gMCkge1xuXHRcdGNvbnN0IHN0ZGVyciA9IHJlc3VsdC5zdGRlcnIgPz8gXCJcIjtcblx0XHRpZiAoaXNBdXRoRXJyb3Ioc3RkZXJyKSkgdGhyb3cgbmV3IEF1dGgwQXV0aEVycm9yKHN0ZGVycik7XG5cdFx0dGhyb3cgbmV3IEVycm9yKHN0ZGVyciB8fCBgYXV0aDAgZXhpdGVkIHdpdGggY29kZSAke3Jlc3VsdC5zdGF0dXN9YCk7XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0LnN0ZG91dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoMFRlbmFudCB7XG5cdG5hbWU6IHN0cmluZztcblx0YWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFsbGVkKCk6IGJvb2xlYW4ge1xuXHR0cnkge1xuXHRcdGV4ZWNGaWxlU3luYyhcImF1dGgwXCIsIFtcIi0tdmVyc2lvblwiXSwgeyBzdGRpbzogXCJwaXBlXCIgfSk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdFRlbmFudHMoKTogQXV0aDBUZW5hbnRbXSB7XG5cdHRyeSB7XG5cdFx0Y29uc3Qgb3V0ID0gZXhlY0ZpbGVTeW5jKFwiYXV0aDBcIiwgW1widGVuYW50c1wiLCBcImxpc3RcIiwgXCItLWpzb25cIl0sIHtcblx0XHRcdGVuY29kaW5nOiBcInV0ZjhcIixcblx0XHRcdHN0ZGlvOiBcInBpcGVcIixcblx0XHR9KTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShvdXQpIGFzIEF1dGgwVGVuYW50W107XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiBbXTtcblx0fVxufVxuXG4vKiogRGV2aWNlL1VSTCBsb2dpbiAoYC0tbm8taW5wdXRgKSBzbyBEb2NrZXIgY2FuIHByaW50IGEgaG9zdC1icm93c2VyIFVSTC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dpbigpOiBib29sZWFuIHtcblx0Y29uc3QgcmVzdWx0ID0gc3Bhd25TeW5jKFwiYXV0aDBcIiwgW1wibG9naW5cIiwgXCItLXNjb3Blc1wiLCBSRVFVSVJFRF9TQ09QRVMsIFwiLS1uby1pbnB1dFwiXSwge1xuXHRcdHN0ZGlvOiBcImluaGVyaXRcIixcblx0fSk7XG5cdHJldHVybiByZXN1bHQuc3RhdHVzID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdEFwaXMoKTogQXJyYXk8eyBpZGVudGlmaWVyOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9PiB7XG5cdHRyeSB7XG5cdFx0Y29uc3Qgb3V0ID0gcnVuQXV0aDAoW1wiYXBpc1wiLCBcImxpc3RcIiwgXCItLWpzb25cIiwgXCItLW5vLWlucHV0XCJdKTtcblx0XHRyZXR1cm4gcGFyc2VKc29uT3V0cHV0KG91dCk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBBdXRoMEF1dGhFcnJvcikgdGhyb3cgZXJyO1xuXHRcdHJldHVybiBbXTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBpKFxuXHRuYW1lOiBzdHJpbmcsXG5cdGlkZW50aWZpZXI6IHN0cmluZyxcblx0c2NvcGVzOiByZWFkb25seSBzdHJpbmdbXSA9IEhFTExPX0FQSV9TQ09QRVMsXG4pOiB7IGlkZW50aWZpZXI6IHN0cmluZyB9IHtcblx0Y29uc3Qgb3V0ID0gcnVuQXV0aDAoW1xuXHRcdFwiYXBpc1wiLFxuXHRcdFwiY3JlYXRlXCIsXG5cdFx0XCItLW5hbWVcIixcblx0XHRuYW1lLFxuXHRcdFwiLS1pZGVudGlmaWVyXCIsXG5cdFx0aWRlbnRpZmllcixcblx0XHRcIi0tc2NvcGVzXCIsXG5cdFx0c2NvcGVzLmpvaW4oXCIsXCIpLFxuXHRcdC8vIFJCQUM6IG9ubHkgcGVybWlzc2lvbnMgYXNzaWduZWQgdG8gdGhlIHVzZXIvcm9sZSBhcHBlYXIgb24gdGhlIHRva2VuLlxuXHRcdFwiLS1lbmZvcmNlLXBvbGljaWVzXCIsXG5cdFx0Ly8gSW5jbHVkZSBBdXRoMCBgcGVybWlzc2lvbnNbXWAgY2xhaW0gKGNvbnN1bWVkIGJ5IHNhbXBsZSBwcmluY2lwYWxNYXBwZXIpLlxuXHRcdFwiLS10b2tlbi1kaWFsZWN0XCIsXG5cdFx0XCJhY2Nlc3NfdG9rZW5fYXV0aHpcIixcblx0XHRcIi0tanNvblwiLFxuXHRcdFwiLS1uby1pbnB1dFwiLFxuXHRdKTtcblx0cmV0dXJuIHBhcnNlSnNvbk91dHB1dChvdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdEFwaVNjb3BlcyhpZGVudGlmaWVyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG5cdHRyeSB7XG5cdFx0Y29uc3Qgb3V0ID0gcnVuQXV0aDAoW1wiYXBpc1wiLCBcInNob3dcIiwgaWRlbnRpZmllciwgXCItLWpzb25cIiwgXCItLW5vLWlucHV0XCJdKTtcblx0XHRjb25zdCBhcGkgPSBwYXJzZUpzb25PdXRwdXQ8e1xuXHRcdFx0c2NvcGVzPzogQXJyYXk8c3RyaW5nIHwgeyB2YWx1ZT86IHN0cmluZzsgbmFtZT86IHN0cmluZyB9Pjtcblx0XHR9PihvdXQpO1xuXHRcdHJldHVybiAoYXBpLnNjb3BlcyA/PyBbXSlcblx0XHRcdC5tYXAoKHNjb3BlKSA9PiAodHlwZW9mIHNjb3BlID09PSBcInN0cmluZ1wiID8gc2NvcGUgOiAoc2NvcGUudmFsdWUgPz8gc2NvcGUubmFtZSA/PyBcIlwiKSkpXG5cdFx0XHQuZmlsdGVyKChzY29wZSkgPT4gc2NvcGUubGVuZ3RoID4gMCk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBBdXRoMEF1dGhFcnJvcikgdGhyb3cgZXJyO1xuXHRcdHJldHVybiBbXTtcblx0fVxufVxuXG4vKiogQXNzaWduIEFQSSBwZXJtaXNzaW9ucyB0byBhIHVzZXIgKEF1dGhvcml6YXRpb24gQ29yZSkuIElkZW1wb3RlbnQgd2hlbiBhbHJlYWR5IGdyYW50ZWQuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduVXNlclBlcm1pc3Npb25zKFxuXHR1c2VySWQ6IHN0cmluZyxcblx0YXVkaWVuY2U6IHN0cmluZyxcblx0cGVybWlzc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogdm9pZCB7XG5cdGlmIChwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblx0cnVuQXV0aDAoW1xuXHRcdFwiYXBpXCIsXG5cdFx0XCJwb3N0XCIsXG5cdFx0YHVzZXJzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCl9L3Blcm1pc3Npb25zYCxcblx0XHRcIi0tZGF0YVwiLFxuXHRcdEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucy5tYXAoKHBlcm1pc3Npb25fbmFtZSkgPT4gKHtcblx0XHRcdFx0cmVzb3VyY2Vfc2VydmVyX2lkZW50aWZpZXI6IGF1ZGllbmNlLFxuXHRcdFx0XHRwZXJtaXNzaW9uX25hbWUsXG5cdFx0XHR9KSksXG5cdFx0fSksXG5cdFx0XCItLW5vLWlucHV0XCIsXG5cdF0pO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgYW4gQVBJJ3Mgc2NvcGVzIGFuZCBlbmFibGUgUkJBQyBwb2xpY3kgZW5mb3JjZW1lbnQuXG4gKiBBdXRoMCBDTEkgYC0tc2NvcGVzYCByZXBsYWNlcyB0aGUgZnVsbCBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVBcGlTY29wZXMoXG5cdGlkZW50aWZpZXI6IHN0cmluZyxcblx0c2NvcGVzOiByZWFkb25seSBzdHJpbmdbXSA9IEhFTExPX0FQSV9TQ09QRVMsXG4pOiB2b2lkIHtcblx0cnVuQXV0aDAoW1xuXHRcdFwiYXBpc1wiLFxuXHRcdFwidXBkYXRlXCIsXG5cdFx0aWRlbnRpZmllcixcblx0XHRcIi0tc2NvcGVzXCIsXG5cdFx0c2NvcGVzLmpvaW4oXCIsXCIpLFxuXHRcdFwiLS1lbmZvcmNlLXBvbGljaWVzXCIsXG5cdFx0XCItLXRva2VuLWRpYWxlY3RcIixcblx0XHRcImFjY2Vzc190b2tlbl9hdXRoelwiLFxuXHRcdFwiLS1uby1pbnB1dFwiLFxuXHRdKTtcbn1cblxuLyoqIFRydWUgd2hlbiBBdXRoMCByZWZ1c2VzIGNyZWF0ZSBiZWNhdXNlIHRoZSB0ZW5hbnQgaGl0IGl0cyBBcHBsaWNhdGlvbnMgcXVvdGEuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoMEVudGl0eUxpbWl0RXJyb3IoZXJyOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdGNvbnN0IHRleHQgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7XG5cdHJldHVybiAvbGltaXQgb2YgZW50aXRpZXN8cmVhY2hlZCB0aGUgbGltaXR8dGVuYW50IGFwcGxpY2F0aW9uIGxpbWl0IHJlYWNoZWQvaS50ZXN0KHRleHQpO1xufVxuXG4vKipcbiAqIEFjdGlvbmFibGUgbWVzc2FnZSB3aGVuIEF1dGgwIHdpbGwgbm90IGNyZWF0ZSBhbm90aGVyIGFwcGxpY2F0aW9uLlxuICogRG9lcyBub3Qgc3VnZ2VzdCByZXVzaW5nIHVucmVsYXRlZCBhcHBzIOKAlCBmcmVlIHRlbmFudHMgbXVzdCBkZWxldGUgdW51c2VkIG9uZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTcGFFbnRpdHlMaW1pdEVycm9yKGFwcE5hbWU6IHN0cmluZywgYXBwczogQXV0aDBBcHBbXSk6IHN0cmluZyB7XG5cdGNvbnN0IGxpc3RlZCA9XG5cdFx0YXBwcy5sZW5ndGggPT09IDBcblx0XHRcdD8gXCJDb3VsZCBub3QgbGlzdCBleGlzdGluZyBhcHBsaWNhdGlvbnMuXCJcblx0XHRcdDogYFRoaXMgdGVuYW50IGFscmVhZHkgaGFzICR7YXBwcy5sZW5ndGh9IGFwcGxpY2F0aW9uKHMpOlxcbiR7YXBwc1xuXHRcdFx0XHRcdC5tYXAoKGEpID0+IGAgIC0gJHthLm5hbWV9ICgke2EuY2xpZW50X2lkfSlgKVxuXHRcdFx0XHRcdC5qb2luKFwiXFxuXCIpfWA7XG5cblx0cmV0dXJuIFtcblx0XHRgQXV0aDAgcmVmdXNlZCB0byBjcmVhdGUgU1BBIFwiJHthcHBOYW1lfVwiOiB0ZW5hbnQgYXBwbGljYXRpb24gbGltaXQgcmVhY2hlZC5gLFxuXHRcdGxpc3RlZCxcblx0XHRcIlwiLFxuXHRcdFwiRml4OiBBdXRoMCBEYXNoYm9hcmQg4oaSIEFwcGxpY2F0aW9ucyDihpIgQXBwbGljYXRpb25zIOKGkiBkZWxldGUgdW51c2VkIGFwcHMsXCIsXG5cdFx0YHRoZW4gcmUtcnVuIHRoZSBzY2FmZm9sZCAob3IgY2hvb3NlIFBvc3RtYW4gXCJub25lXCIgdG8gc2tpcCBTUEEgY3JlYXRpb24pLmAsXG5cdFx0XCJSZS1zY2FmZm9sZCBvZiB0aGUgc2FtZSBwcm9qZWN0IG5hbWUgcmV1c2VzIGFuIGV4YWN0LW5hbWUgbWF0Y2ggd2hlbiBpdCBzdGlsbCBleGlzdHMuXCIsXG5cdF0uam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNwYUFwcChcblx0bmFtZTogc3RyaW5nLFxuXHRjYWxsYmFja1VybHM6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogeyBjbGllbnRfaWQ6IHN0cmluZyB9IHtcblx0Y29uc3QgY2FsbGJhY2tzID0gdHlwZW9mIGNhbGxiYWNrVXJscyA9PT0gXCJzdHJpbmdcIiA/IGNhbGxiYWNrVXJscyA6IGNhbGxiYWNrVXJscy5qb2luKFwiLFwiKTtcblx0Y29uc3Qgb3V0ID0gcnVuQXV0aDAoW1xuXHRcdFwiYXBwc1wiLFxuXHRcdFwiY3JlYXRlXCIsXG5cdFx0XCItLW5hbWVcIixcblx0XHRuYW1lLFxuXHRcdFwiLS10eXBlXCIsXG5cdFx0XCJzcGFcIixcblx0XHRcIi0tY2FsbGJhY2tzXCIsXG5cdFx0Y2FsbGJhY2tzLFxuXHRcdFwiLS1qc29uXCIsXG5cdFx0XCItLW5vLWlucHV0XCIsXG5cdF0pO1xuXHRjb25zdCBhcHAgPSBwYXJzZUpzb25PdXRwdXQ8eyBjbGllbnRfaWQ/OiBzdHJpbmc7IGNsaWVudElkPzogc3RyaW5nIH0+KG91dCk7XG5cdGNvbnN0IGNsaWVudElkID0gYXBwLmNsaWVudF9pZCA/PyBhcHAuY2xpZW50SWQ7XG5cdGlmICghY2xpZW50SWQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRgQXV0aDAgY3JlYXRlIFNQQSByZXNwb25zZSBtaXNzaW5nIGNsaWVudF9pZC4gc3Rkb3V0OiAke291dC5zbGljZSgwLCAzMDApfWAsXG5cdFx0KTtcblx0fVxuXHRyZXR1cm4geyBjbGllbnRfaWQ6IGNsaWVudElkIH07XG59XG5cbmV4cG9ydCB0eXBlIEF1dGgwQXBwID0geyBjbGllbnRfaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0QXBwcygpOiBBdXRoMEFwcFtdIHtcblx0dHJ5IHtcblx0XHRjb25zdCBvdXQgPSBydW5BdXRoMChbXCJhcHBzXCIsIFwibGlzdFwiLCBcIi0tanNvblwiLCBcIi0tbm8taW5wdXRcIl0pO1xuXHRcdGNvbnN0IGFwcHMgPVxuXHRcdFx0cGFyc2VKc29uT3V0cHV0PEFycmF5PHsgY2xpZW50X2lkPzogc3RyaW5nOyBjbGllbnRJZD86IHN0cmluZzsgbmFtZT86IHN0cmluZyB9Pj4ob3V0KTtcblx0XHRyZXR1cm4gYXBwc1xuXHRcdFx0Lm1hcCgoYSkgPT4gKHtcblx0XHRcdFx0Y2xpZW50X2lkOiBhLmNsaWVudF9pZCA/PyBhLmNsaWVudElkID8/IFwiXCIsXG5cdFx0XHRcdG5hbWU6IGEubmFtZSA/PyBcIlwiLFxuXHRcdFx0fSkpXG5cdFx0XHQuZmlsdGVyKChhKSA9PiBhLmNsaWVudF9pZCAmJiBhLm5hbWUpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRpZiAoZXJyIGluc3RhbmNlb2YgQXV0aDBBdXRoRXJyb3IpIHRocm93IGVycjtcblx0XHRyZXR1cm4gW107XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVNwYUNhbGxiYWNrcyhcblx0Y2xpZW50SWQ6IHN0cmluZyxcblx0Y2FsbGJhY2tVcmxzOiBzdHJpbmcgfCByZWFkb25seSBzdHJpbmdbXSxcbik6IHZvaWQge1xuXHRjb25zdCBjYWxsYmFja3MgPSB0eXBlb2YgY2FsbGJhY2tVcmxzID09PSBcInN0cmluZ1wiID8gY2FsbGJhY2tVcmxzIDogY2FsbGJhY2tVcmxzLmpvaW4oXCIsXCIpO1xuXHRydW5BdXRoMChbXCJhcHBzXCIsIFwidXBkYXRlXCIsIGNsaWVudElkLCBcIi0tY2FsbGJhY2tzXCIsIGNhbGxiYWNrcywgXCItLW5vLWlucHV0XCJdKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBQb3N0bWFuIFNQQSwgb3IgcmV1c2UgYW4gZXhpc3RpbmcgYXBwIHdpdGggdGhlIHNhbWUgbmFtZSAocmUtc2NhZmZvbGQpLlxuICogQWx3YXlzIHJldHVybnMgYSBjbGllbnRfaWQgc3VpdGFibGUgZm9yIFBvc3RtYW4gYXV0aDBDbGllbnRJZC5cbiAqIE9uIEF1dGgwIGFwcGxpY2F0aW9uLXF1b3RhIGVycm9ycywgdGhyb3dzIGEgY2xlYXIgZGVsZXRlLWFwcHMgbWVzc2FnZSAobm8gY3Jvc3MtYXBwIHJldXNlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVNwYUFwcChcblx0bmFtZTogc3RyaW5nLFxuXHRjYWxsYmFja1VybHM6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogeyBjbGllbnRfaWQ6IHN0cmluZzsgcmV1c2VkOiBib29sZWFuIH0ge1xuXHRjb25zdCBhcHBzID0gbGlzdEFwcHMoKTtcblx0Y29uc3QgZXhpc3RpbmcgPSBhcHBzLmZpbmQoKGEpID0+IGEubmFtZSA9PT0gbmFtZSk7XG5cdGlmIChleGlzdGluZykge1xuXHRcdHRyeSB7XG5cdFx0XHR1cGRhdGVTcGFDYWxsYmFja3MoZXhpc3RpbmcuY2xpZW50X2lkLCBjYWxsYmFja1VybHMpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0Ly8gQ2FsbGJhY2tzIG1heSBhbHJlYWR5IG1hdGNoOyBzdGlsbCB1c2FibGUgZm9yIFBvc3RtYW4uXG5cdFx0fVxuXHRcdHJldHVybiB7IGNsaWVudF9pZDogZXhpc3RpbmcuY2xpZW50X2lkLCByZXVzZWQ6IHRydWUgfTtcblx0fVxuXHR0cnkge1xuXHRcdHJldHVybiB7IC4uLmNyZWF0ZVNwYUFwcChuYW1lLCBjYWxsYmFja1VybHMpLCByZXVzZWQ6IGZhbHNlIH07XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChpc0F1dGgwRW50aXR5TGltaXRFcnJvcihlcnIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZm9ybWF0U3BhRW50aXR5TGltaXRFcnJvcihuYW1lLCBhcHBzKSk7XG5cdFx0fVxuXHRcdHRocm93IGVycjtcblx0fVxufVxuXG50eXBlIEF1dGgwQ29ubmVjdGlvbiA9IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBzdHJhdGVneTogc3RyaW5nIH07XG5cbi8qKiBFbmFibGUgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZvciBhbiBhcHBsaWNhdGlvbiAocmVxdWlyZWQgZm9yIHVzZXJuYW1lL3Bhc3N3b3JkIGxvZ2luKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVDb25uZWN0aW9uRm9yQ2xpZW50KGNvbm5lY3Rpb25OYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpOiB2b2lkIHtcblx0Y29uc3QgbGlzdE91dCA9IHJ1bkF1dGgwKFtcImFwaVwiLCBcImdldFwiLCBcImNvbm5lY3Rpb25zXCIsIFwiLS1uby1pbnB1dFwiXSk7XG5cdGNvbnN0IGNvbm5lY3Rpb25zID0gcGFyc2VKc29uT3V0cHV0PEF1dGgwQ29ubmVjdGlvbltdPihsaXN0T3V0KTtcblx0Y29uc3QgY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25zLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gY29ubmVjdGlvbk5hbWUpO1xuXHRpZiAoIWNvbm5lY3Rpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEF1dGgwIGNvbm5lY3Rpb24gbm90IGZvdW5kOiAke2Nvbm5lY3Rpb25OYW1lfWApO1xuXHR9XG5cblx0Y29uc3QgY2xpZW50c091dCA9IHJ1bkF1dGgwKFtcblx0XHRcImFwaVwiLFxuXHRcdFwiZ2V0XCIsXG5cdFx0YGNvbm5lY3Rpb25zLyR7Y29ubmVjdGlvbi5pZH0vY2xpZW50c2AsXG5cdFx0XCItLW5vLWlucHV0XCIsXG5cdF0pO1xuXHRjb25zdCB7IGNsaWVudHMgfSA9IHBhcnNlSnNvbk91dHB1dDx7IGNsaWVudHM6IEFycmF5PHsgY2xpZW50X2lkOiBzdHJpbmcgfT4gfT4oY2xpZW50c091dCk7XG5cdGlmIChjbGllbnRzLnNvbWUoKGMpID0+IGMuY2xpZW50X2lkID09PSBjbGllbnRJZCkpIHJldHVybjtcblxuXHQvLyBEZWRpY2F0ZWQgZW5hYmxlZC1jbGllbnRzIGVuZHBvaW50IChlbmFibGVkX2NsaWVudHMgb24gY29ubmVjdGlvbiBQQVRDSCBpcyBkZXByZWNhdGVkKS5cblx0cnVuQXV0aDAoW1xuXHRcdFwiYXBpXCIsXG5cdFx0XCJwYXRjaFwiLFxuXHRcdGBjb25uZWN0aW9ucy8ke2Nvbm5lY3Rpb24uaWR9L2NsaWVudHNgLFxuXHRcdFwiLS1kYXRhXCIsXG5cdFx0SlNPTi5zdHJpbmdpZnkoW3sgY2xpZW50X2lkOiBjbGllbnRJZCwgc3RhdHVzOiB0cnVlIH1dKSxcblx0XHRcIi0tbm8taW5wdXRcIixcblx0XSk7XG59XG5cbmV4cG9ydCB0eXBlIEFkbWluRGF0YWJhc2VVc2VyID0ge1xuXHR1c2VyX2lkOiBzdHJpbmc7XG5cdGVtYWlsOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG5cdHVzZXJuYW1lOiBzdHJpbmc7XG59O1xuXG4vKiogU3Ryb25nIGRlZmF1bHQgcGFzc3dvcmQgd2hlbiB0aGUgc2NhZmZvbGRlciBjYWxsZXIgbGVhdmVzIHBhc3N3b3JkIGJsYW5rLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQWRtaW5QYXNzd29yZCgpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7cmFuZG9tQnl0ZXMoMTIpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpfWFBMSFgO1xufVxuXG5mdW5jdGlvbiBpc1VzZXJBbHJlYWR5RXhpc3RzRXJyb3IoZXJyOiB1bmtub3duKTogYm9vbGVhbiB7XG5cdGNvbnN0IHRleHQgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7XG5cdHJldHVybiAvYWxyZWFkeSBleGlzdHN8dXNlciBleGlzdHN8Q29uZmxpY3R8NDA5L2kudGVzdCh0ZXh0KTtcbn1cblxuLyoqIExvb2sgdXAgYSB1c2VyIGJ5IGVtYWlsIChNYW5hZ2VtZW50IEFQSSB1c2Vycy1ieS1lbWFpbCkuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFVzZXJCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiB7IHVzZXJfaWQ6IHN0cmluZzsgZW1haWw6IHN0cmluZyB9IHwgbnVsbCB7XG5cdGNvbnN0IG91dCA9IHJ1bkF1dGgwKFtcblx0XHRcImFwaVwiLFxuXHRcdFwiZ2V0XCIsXG5cdFx0YHVzZXJzLWJ5LWVtYWlsP2VtYWlsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGVtYWlsKX1gLFxuXHRcdFwiLS1uby1pbnB1dFwiLFxuXHRdKTtcblx0Y29uc3QgdXNlcnMgPSBwYXJzZUpzb25PdXRwdXQ8QXJyYXk8eyB1c2VyX2lkPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZyB9Pj4ob3V0KTtcblx0Y29uc3QgdXNlciA9IHVzZXJzLmZpbmQoKHUpID0+IHUudXNlcl9pZCAmJiB1LmVtYWlsKTtcblx0aWYgKCF1c2VyPy51c2VyX2lkIHx8ICF1c2VyLmVtYWlsKSByZXR1cm4gbnVsbDtcblx0cmV0dXJuIHsgdXNlcl9pZDogdXNlci51c2VyX2lkLCBlbWFpbDogdXNlci5lbWFpbCB9O1xufVxuXG4vKiogUmVzZXQgcGFzc3dvcmQgc28gYSByZS1zY2FmZm9sZCBjYW4gd3JpdGUgYSBrbm93biBwYXNzd29yZCB0byAuZW52LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVVzZXJQYXNzd29yZCh1c2VySWQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWQge1xuXHRydW5BdXRoMChbXG5cdFx0XCJhcGlcIixcblx0XHRcInBhdGNoXCIsXG5cdFx0YHVzZXJzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCl9YCxcblx0XHRcIi0tZGF0YVwiLFxuXHRcdEpTT04uc3RyaW5naWZ5KHsgcGFzc3dvcmQsIGNvbm5lY3Rpb246IERCX0NPTk5FQ1RJT05fTkFNRSB9KSxcblx0XHRcIi0tbm8taW5wdXRcIixcblx0XSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgREIgY29ubmVjdGlvbiByb290LWFkbWluIHVzZXIgZm9yIGxvY2FsIC8gUG9zdG1hbiBsb2dpbi5cbiAqIElmIHRoZSB1c2VyIGFscmVhZHkgZXhpc3RzLCBsb29rIHRoZW0gdXAsIHJlc2V0IHBhc3N3b3JkIHRvIGBpbnB1dC5wYXNzd29yZGAsXG4gKiBhbmQgcmV0dXJuIHRoYXQgaWRlbnRpdHkgc28gY2FsbGVycyBjYW4gc3RpbGwgd3JpdGUgLmVudiBjcmVkZW50aWFscy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkbWluRGF0YWJhc2VVc2VyKGlucHV0OiB7XG5cdGVtYWlsOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG5cdHVzZXJuYW1lOiBzdHJpbmc7XG59KTogQWRtaW5EYXRhYmFzZVVzZXIge1xuXHRjb25zdCBib2R5ID0ge1xuXHRcdGVtYWlsOiBpbnB1dC5lbWFpbCxcblx0XHRjb25uZWN0aW9uOiBEQl9DT05ORUNUSU9OX05BTUUsXG5cdFx0cGFzc3dvcmQ6IGlucHV0LnBhc3N3b3JkLFxuXHRcdG5hbWU6IGlucHV0LnVzZXJuYW1lLFxuXHRcdGVtYWlsX3ZlcmlmaWVkOiB0cnVlLFxuXHRcdHZlcmlmeV9lbWFpbDogZmFsc2UsXG5cdFx0YXBwX21ldGFkYXRhOiB7IHJvbGVzOiBbXCJhZG1pblwiXSB9LFxuXHR9O1xuXG5cdHRyeSB7XG5cdFx0Y29uc3Qgb3V0ID0gcnVuQXV0aDAoW1xuXHRcdFx0XCJhcGlcIixcblx0XHRcdFwicG9zdFwiLFxuXHRcdFx0XCJ1c2Vyc1wiLFxuXHRcdFx0XCItLWRhdGFcIixcblx0XHRcdEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuXHRcdFx0XCItLW5vLWlucHV0XCIsXG5cdFx0XSk7XG5cdFx0Y29uc3QgdXNlciA9IHBhcnNlSnNvbk91dHB1dDx7IHVzZXJfaWQ/OiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nIH0+KG91dCk7XG5cdFx0aWYgKCF1c2VyLnVzZXJfaWQgfHwgIXVzZXIuZW1haWwpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEF1dGgwIGNyZWF0ZSB1c2VyIHJlc3BvbnNlIG1pc3NpbmcgdXNlcl9pZC9lbWFpbC4gc3Rkb3V0OiAke291dC5zbGljZSgwLCAzMDApfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0dXNlcl9pZDogdXNlci51c2VyX2lkLFxuXHRcdFx0ZW1haWw6IHVzZXIuZW1haWwsXG5cdFx0XHRwYXNzd29yZDogaW5wdXQucGFzc3dvcmQsXG5cdFx0XHR1c2VybmFtZTogaW5wdXQudXNlcm5hbWUsXG5cdFx0fTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0aWYgKCFpc1VzZXJBbHJlYWR5RXhpc3RzRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuXG5cdFx0Y29uc3QgZXhpc3RpbmcgPSBmaW5kVXNlckJ5RW1haWwoaW5wdXQuZW1haWwpO1xuXHRcdGlmICghZXhpc3RpbmcpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEF1dGgwIHVzZXIgYWxyZWFkeSBleGlzdHMgZm9yICR7aW5wdXQuZW1haWx9LCBidXQgbG9va3VwIGJ5IGVtYWlsIHJldHVybmVkIG5vIHVzZXIuYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dXBkYXRlVXNlclBhc3N3b3JkKGV4aXN0aW5nLnVzZXJfaWQsIGlucHV0LnBhc3N3b3JkKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dXNlcl9pZDogZXhpc3RpbmcudXNlcl9pZCxcblx0XHRcdGVtYWlsOiBleGlzdGluZy5lbWFpbCxcblx0XHRcdHBhc3N3b3JkOiBpbnB1dC5wYXNzd29yZCxcblx0XHRcdHVzZXJuYW1lOiBpbnB1dC51c2VybmFtZSxcblx0XHR9O1xuXHR9XG59XG5cbmV4cG9ydCB7IFJFUVVJUkVEX1NDT1BFUyB9O1xuIl0sIm5hbWVzIjpbIkF1dGgwQXV0aEVycm9yIiwiREJfQ09OTkVDVElPTl9OQU1FIiwiSEVMTE9fQVBJX1NDT1BFUyIsIlJFUVVJUkVEX1NDT1BFUyIsImFzc2lnblVzZXJQZXJtaXNzaW9ucyIsImNyZWF0ZUFkbWluRGF0YWJhc2VVc2VyIiwiY3JlYXRlQXBpIiwiY3JlYXRlU3BhQXBwIiwiZW5hYmxlQ29ubmVjdGlvbkZvckNsaWVudCIsImVuc3VyZVNwYUFwcCIsImZpbmRVc2VyQnlFbWFpbCIsImZvcm1hdFNwYUVudGl0eUxpbWl0RXJyb3IiLCJnZW5lcmF0ZUFkbWluUGFzc3dvcmQiLCJpc0F1dGgwRW50aXR5TGltaXRFcnJvciIsImlzSW5zdGFsbGVkIiwibGlzdEFwaVNjb3BlcyIsImxpc3RBcGlzIiwibGlzdEFwcHMiLCJsaXN0VGVuYW50cyIsImxvZ2luIiwidXBkYXRlQXBpU2NvcGVzIiwidXBkYXRlU3BhQ2FsbGJhY2tzIiwidXBkYXRlVXNlclBhc3N3b3JkIiwiam9pbiIsIkFQSV9USU1FT1VUX01TIiwiRXJyb3IiLCJtZXNzYWdlIiwibmFtZSIsImlzQXV0aEVycm9yIiwidGV4dCIsImluY2x1ZGVzIiwicGFyc2VKc29uT3V0cHV0Iiwic3Rkb3V0Iiwic3RhcnQiLCJpbmRleE9mIiwiYXJyYXlTdGFydCIsImlkeCIsIk1hdGgiLCJtaW4iLCJzbGljZSIsIkpTT04iLCJwYXJzZSIsInJ1bkF1dGgwIiwiYXJncyIsInJlc3VsdCIsInNwYXduU3luYyIsImVuY29kaW5nIiwidGltZW91dCIsImlucHV0Iiwic3RkaW8iLCJlcnJvciIsIm1zZyIsImNvZGUiLCJzdGF0dXMiLCJzdGRlcnIiLCJleGVjRmlsZVN5bmMiLCJvdXQiLCJlcnIiLCJpZGVudGlmaWVyIiwic2NvcGVzIiwiYXBpIiwibWFwIiwic2NvcGUiLCJ2YWx1ZSIsImZpbHRlciIsImxlbmd0aCIsInVzZXJJZCIsImF1ZGllbmNlIiwicGVybWlzc2lvbnMiLCJlbmNvZGVVUklDb21wb25lbnQiLCJzdHJpbmdpZnkiLCJwZXJtaXNzaW9uX25hbWUiLCJyZXNvdXJjZV9zZXJ2ZXJfaWRlbnRpZmllciIsIlN0cmluZyIsInRlc3QiLCJhcHBOYW1lIiwiYXBwcyIsImxpc3RlZCIsImEiLCJjbGllbnRfaWQiLCJjYWxsYmFja1VybHMiLCJjYWxsYmFja3MiLCJhcHAiLCJjbGllbnRJZCIsImV4aXN0aW5nIiwiZmluZCIsInJldXNlZCIsImNvbm5lY3Rpb25OYW1lIiwibGlzdE91dCIsImNvbm5lY3Rpb25zIiwiY29ubmVjdGlvbiIsImMiLCJjbGllbnRzT3V0IiwiaWQiLCJjbGllbnRzIiwic29tZSIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJpc1VzZXJBbHJlYWR5RXhpc3RzRXJyb3IiLCJlbWFpbCIsInVzZXJzIiwidXNlciIsInUiLCJ1c2VyX2lkIiwicGFzc3dvcmQiLCJib2R5IiwidXNlcm5hbWUiLCJlbWFpbF92ZXJpZmllZCIsInZlcmlmeV9lbWFpbCIsImFwcF9tZXRhZGF0YSIsInJvbGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQStCYUE7ZUFBQUE7O1FBRkFDO2VBQUFBOztRQVBBQztlQUFBQTs7UUFvYkpDO2VBQUFBOztRQWhTT0M7ZUFBQUE7O1FBd09BQztlQUFBQTs7UUFqUkFDO2VBQUFBOztRQStHQUM7ZUFBQUE7O1FBc0ZBQztlQUFBQTs7UUEzQkFDO2VBQUFBOztRQXlFQUM7ZUFBQUE7O1FBdEpBQztlQUFBQTs7UUE0SUFDO2VBQUFBOztRQXJKQUM7ZUFBQUE7O1FBM0hBQztlQUFBQTs7UUFnRUFDO2VBQUFBOztRQW5DQUM7ZUFBQUE7O1FBc0pBQztlQUFBQTs7UUExS0FDO2VBQUFBOztRQWFBQztlQUFBQTs7UUFtRkFDO2VBQUFBOztRQTJGQUM7ZUFBQUE7O1FBb0dBQztlQUFBQTs7O21DQWxZd0I7NEJBQ1o7QUFFNUIsNkVBQTZFLEdBQzdFLE1BQU1uQixrQkFBa0I7SUFDdkI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNBLENBQUNvQixJQUFJLENBQUM7QUFFUCwwRkFBMEYsR0FDMUYsTUFBTUMsaUJBQWlCO0FBR2hCLE1BQU10QixtQkFBbUI7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7Q0FDQTtBQUVNLE1BQU1ELHFCQUFxQjtBQUUzQixNQUFNRCx1QkFBdUJ5QjtJQUNuQyxZQUFtQkMsT0FBZSxDQUFFO1FBQ25DLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLElBQUksR0FB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
@@ -45,5 +45,3 @@ function formatScaffoldedFiles(targetDir, paths = [
45
45
  console.error(` ✗ Biome: ${detail.slice(0, 400)}`);
46
46
  }
47
47
  }
48
-
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvYmlvbWUtZm9ybWF0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcblxuLyoqXG4gKiBGb3JtYXQvbGludC1maXggYWxsIGZpbGVzIGluIHRoZSBzY2FmZm9sZGVkIHdvcmtzcGFjZSB3aXRoIEJpb21lLlxuICogUHJlZmVyIGEgZ2xvYmFsIGBiaW9tZWAgYmluYXJ5IChidWlsZGVyIGltYWdlKTsgZmFsbCBiYWNrIHRvIGBucHhgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NhZmZvbGRlZEZpbGVzKHRhcmdldERpcjogc3RyaW5nLCBwYXRoczogc3RyaW5nW10gPSBbXCIuXCJdKTogdm9pZCB7XG5cdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuICBGb3JtYXR0aW5nIHNjYWZmb2xkZWQgZmlsZXMgd2l0aCBCaW9tZS4uLlwiKTtcblxuXHRsZXQgcmVzdWx0ID0gc3Bhd25TeW5jKFwiYmlvbWVcIiwgW1wiY2hlY2tcIiwgXCItLXdyaXRlXCIsIC4uLnBhdGhzXSwge1xuXHRcdGN3ZDogdGFyZ2V0RGlyLFxuXHRcdGVuY29kaW5nOiBcInV0ZjhcIixcblx0XHRzdGRpbzogXCJwaXBlXCIsXG5cdH0pO1xuXG5cdGlmIChyZXN1bHQuZXJyb3IgJiYgKHJlc3VsdC5lcnJvciBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcblx0XHRyZXN1bHQgPSBzcGF3blN5bmMoXCJucHhcIiwgW1wiLS15ZXNcIiwgXCJAYmlvbWVqcy9iaW9tZVwiLCBcImNoZWNrXCIsIFwiLS13cml0ZVwiLCAuLi5wYXRoc10sIHtcblx0XHRcdGN3ZDogdGFyZ2V0RGlyLFxuXHRcdFx0ZW5jb2Rpbmc6IFwidXRmOFwiLFxuXHRcdFx0c3RkaW86IFwicGlwZVwiLFxuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHJlc3VsdC5zdGF0dXMgPT09IDApIHtcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIiBkb25lLlxcblwiKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBkZXRhaWwgPSAocmVzdWx0LnN0ZGVyciB8fCByZXN1bHQuc3Rkb3V0IHx8IHJlc3VsdC5lcnJvcj8ubWVzc2FnZSB8fCBcIlwiKS50cmltKCk7XG5cdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIGZhaWxlZC5cXG5cIik7XG5cdGlmIChkZXRhaWwpIHtcblx0XHRjb25zb2xlLmVycm9yKGAgIOKclyBCaW9tZTogJHtkZXRhaWwuc2xpY2UoMCwgNDAwKX1gKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFNjYWZmb2xkZWRGaWxlcyIsInRhcmdldERpciIsInBhdGhzIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwicmVzdWx0Iiwic3Bhd25TeW5jIiwiY3dkIiwiZW5jb2RpbmciLCJzdGRpbyIsImVycm9yIiwiY29kZSIsInN0YXR1cyIsImRldGFpbCIsInN0ZGVyciIsIm1lc3NhZ2UiLCJ0cmltIiwiY29uc29sZSIsInNsaWNlIl0sIm1hcHBpbmdzIjoiOzs7OytCQU1nQkE7OztlQUFBQTs7O21DQU5VO0FBTW5CLFNBQVNBLHNCQUFzQkMsU0FBaUIsRUFBRUMsUUFBa0I7SUFBQztDQUFJO0lBQy9FQyxRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQztJQUVyQixJQUFJQyxTQUFTQyxJQUFBQSw0QkFBUyxFQUFDLFNBQVM7UUFBQztRQUFTO1dBQWNMO0tBQU0sRUFBRTtRQUMvRE0sS0FBS1A7UUFDTFEsVUFBVTtRQUNWQyxPQUFPO0lBQ1I7SUFFQSxJQUFJSixPQUFPSyxLQUFLLElBQUksQUFBQ0wsT0FBT0ssS0FBSyxDQUEyQkMsSUFBSSxLQUFLLFVBQVU7UUFDOUVOLFNBQVNDLElBQUFBLDRCQUFTLEVBQUMsT0FBTztZQUFDO1lBQVM7WUFBa0I7WUFBUztlQUFjTDtTQUFNLEVBQUU7WUFDcEZNLEtBQUtQO1lBQ0xRLFVBQVU7WUFDVkMsT0FBTztRQUNSO0lBQ0Q7SUFFQSxJQUFJSixPQUFPTyxNQUFNLEtBQUssR0FBRztRQUN4QlYsUUFBUUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7UUFDckI7SUFDRDtJQUVBLE1BQU1TLFNBQVMsQUFBQ1IsQ0FBQUEsT0FBT1MsTUFBTSxJQUFJVCxPQUFPRixNQUFNLElBQUlFLE9BQU9LLEtBQUssRUFBRUssV0FBVyxFQUFDLEVBQUdDLElBQUk7SUFDbkZkLFFBQVFDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO0lBQ3JCLElBQUlTLFFBQVE7UUFDWEksUUFBUVAsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFRyxPQUFPSyxLQUFLLENBQUMsR0FBRyxNQUFNO0lBQ25EO0FBQ0QifQ==
@@ -289,7 +289,8 @@ function scaffold(workspace, options) {
289
289
  const devContainer = workspace.getModel(_const.WELL_KNOWN_FILES.DEVCONTAINER_JSON);
290
290
  const compose = workspace.getModel(_const.WELL_KNOWN_FILES.DOCKER_COMPOSE);
291
291
  const networkKey = name;
292
- if (compose) {
292
+ // Skip when the workspace already runs Postgres (`decohere add api` on a database workspace).
293
+ if (compose && !compose.hasService("postgres")) {
293
294
  // One shared instance. Each API owns a database on it (created at bootstrap).
294
295
  // Point `{PREFIX}_DB_HOST` / `{PREFIX}_DB_PORT` at another server to split later.
295
296
  // Custom image: sync bootstrap role password on every start (initdb.d is once-only).
@@ -429,5 +430,3 @@ const DatabaseFeature = {
429
430
  getOptions,
430
431
  scaffold
431
432
  };
432
-
433
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvZGF0YWJhc2UuZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSBcIi4uLy4uL2RvbWFpbi9wcm9tcHQuanNcIjtcbmltcG9ydCB0eXBlIHsgRG9ja2VyQ29tcG9zZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25maWcteWFtbC5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgRGV2Q29udGFpbmVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9kZXYtY29udGFpbmVyLm1vZGVsLmpzXCI7XG5pbXBvcnQge1xuXHR0eXBlIERvY2tlcmZpbGVNb2RlbCxcblx0d2l0aFBvc3RncmVzcWxDbGllbnQsXG59IGZyb20gXCIuLi8uLi9tb2RlbHMvZG9ja2VyLWltYWdlLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVudkZpbGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2Vudi1maWxlLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEdpdGlnbm9yZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZ2l0aWdub3JlLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9wYWNrYWdlLWpzb24ubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdFNjYWZmb2xkLCBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IENSRUFURV9WRVJTSU9OIH0gZnJvbSBcIi4uLy4uL3ZlcnNpb24uanNcIjtcbmltcG9ydCB7IGFwaUVudlByZWZpeCwgYXBpTmFtZUZyb21Qcm9qZWN0RGlyIH0gZnJvbSBcIi4uL2FwaS1uYW1lLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaVBhY2thZ2VKc29uIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IE1haW5Tb3VyY2VGaWxlIH0gZnJvbSBcIi4uL21vZGVscy9tYWluLXNvdXJjZS1maWxlLm1vZGVsLmpzXCI7XG5cbi8qKiBCaW5kIHBhdGggcmVsYXRpdmUgdG8gYC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sYCAoZGllcyB3aXRoIHRoZSB3b3JraW5nIHRyZWUpLiAqL1xuY29uc3QgUE9TVEdSRVNfREFUQV9CSU5EID0gXCIuL3Bvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXCI7XG5jb25zdCBQT1NUR1JFU19EQVRBX0dJVElHTk9SRSA9IFwiLmRldmNvbnRhaW5lci9wb3N0Z3Jlcy1kYXRhXCI7XG5jb25zdCBEQl9SRVNFVF9TQ1JJUFQgPVxuXHRcInJtIC1yZiAuZGV2Y29udGFpbmVyL3Bvc3RncmVzLWRhdGEgJiYgZG9ja2VyIGNvbXBvc2UgLWYgLmRldmNvbnRhaW5lci9kb2NrZXItY29tcG9zZS55bWwgZG93biAmJiBkb2NrZXIgY29tcG9zZSAtZiAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCB1cCAtZCBwb3N0Z3Jlc1wiO1xuXG5leHBvcnQgdHlwZSBEYXRhYmFzZU9wdGlvbnMgPSB7XG5cdGRhdGFiYXNlUHJvdmlkZXI/OiBcIm5vbmVcIiB8IFwicG9zdGdyZXMvdHlwZW9ybVwiO1xuXHQvKiogV2hlbiB0cnVlLCBtZXJnZSBpbnRvIGFuIGV4aXN0aW5nIHdvcmtzcGFjZSAoXFxgd2ViYXBpIGFkZFxcYCkuICovXG5cdGFkZD86IGJvb2xlYW47XG59O1xuXG4vKiogUmVhZCBhIHNpbmdsZSBLRVk9IGZyb20gYW4gZXhpc3RpbmcgdGFyZ2V0IGAuZW52YCAoaWYgYW55KS4gKi9cbmZ1bmN0aW9uIHJlYWRFeGlzdGluZ0VudlZhbHVlKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0dHJ5IHtcblx0XHRjb25zdCByYXcgPSByZWFkRmlsZVN5bmMoam9pbih3b3Jrc3BhY2UudGFyZ2V0RGlyLCBcIi5lbnZcIiksIFwidXRmOFwiKTtcblx0XHRjb25zdCBsaW5lID0gcmF3LnNwbGl0KFwiXFxuXCIpLmZpbmQoKGwpID0+IGwuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcblx0XHRjb25zdCB2YWx1ZSA9IGxpbmU/LnNsaWNlKGtleS5sZW5ndGggKyAxKS50cmltKCk7XG5cdFx0cmV0dXJuIHZhbHVlIHx8IHVuZGVmaW5lZDtcblx0fSBjYXRjaCB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuXG5mdW5jdGlvbiByYW5kb21QYXNzd29yZCgpOiBzdHJpbmcge1xuXHRyZXR1cm4gcmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG4vKiogU2FmZSBQb3N0Z3JlcyBpZGVudGlmaWVyIGZyYWdtZW50IGZyb20gdGhlIHByb2plY3QgbmFtZS4gKi9cbmZ1bmN0aW9uIHRvU3FsSWRlbnRGcmFnbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBjbGVhbmVkID0gbmFtZS5yZXBsYWNlKC9bXkEtWmEtejAtOV9dL2csIFwiX1wiKS5yZXBsYWNlKC9eKFteQS1aYS16X10pLywgXCJwXyQxXCIpO1xuXHRyZXR1cm4gY2xlYW5lZC5sZW5ndGggPiAwID8gY2xlYW5lZC5zbGljZSgwLCA0MCkgOiBcImFwcFwiO1xufVxuXG5mdW5jdGlvbiBwYXNzd29yZE9yRXhpc3RpbmcoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsXG5cdGtleTogc3RyaW5nLFxuXHRmYWxsYmFja0V4aXN0aW5nS2V5czogc3RyaW5nW10gPSBbXSxcbik6IHN0cmluZyB7XG5cdGNvbnN0IGV4aXN0aW5nID0gcmVhZEV4aXN0aW5nRW52VmFsdWUod29ya3NwYWNlLCBrZXkpO1xuXHRpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcblx0Zm9yIChjb25zdCBhbHQgb2YgZmFsbGJhY2tFeGlzdGluZ0tleXMpIHtcblx0XHRjb25zdCB2ID0gcmVhZEV4aXN0aW5nRW52VmFsdWUod29ya3NwYWNlLCBhbHQpO1xuXHRcdGlmICh2KSByZXR1cm4gdjtcblx0fVxuXHRyZXR1cm4gcmFuZG9tUGFzc3dvcmQoKTtcbn1cblxuLy8gUHJvZHVjdGlvbjogcnVudGltZSBhcHAgcm9sZSBvbmx5IOKAlCBubyBib290c3RyYXAsIG5vIGFkbWluL21pZ3JhdGUgc2VjcmV0cyByZXF1aXJlZC5cbmZ1bmN0aW9uIHJlbmRlckJhc2VEYXRhU291cmNlKGFwaU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHAgPSBhcGlFbnZQcmVmaXgoYXBpTmFtZSk7XG5cdHJldHVybiBbXG5cdFx0YCAgICAtIG5hbWU6ICR7YXBpTmFtZX1gLFxuXHRcdGAgICAgICBwcm92aWRlcjogcG9zdGdyZXNgLFxuXHRcdGAgICAgICBob3N0OiBcXCR7JHtwfV9EQl9IT1NUfWAsXG5cdFx0YCAgICAgIHBvcnQ6IFxcJHske3B9X0RCX1BPUlR9YCxcblx0XHRgICAgICAgZGF0YWJhc2U6IFxcJHske3B9X0RCX05BTUV9YCxcblx0XHRgICAgICAgdXNlcm5hbWU6IFxcJHske3B9X0RCX1VTRVJ9YCxcblx0XHRgICAgICAgcGFzc3dvcmQ6IFxcJHske3B9X0RCX1BBU1NXT1JEfWAsXG5cdFx0YCAgICAgIHN5bmNocm9uaXplOiBmYWxzZWAsXG5cdFx0YCAgICAgIHNlZWQ6IGZhbHNlYCxcblx0XHRgICAgICAgYm9vdHN0cmFwOiBmYWxzZWAsXG5cdF0uam9pbihcIlxcblwiKTtcbn1cblxuLy8gRGV2IG92ZXJsYXkgKG1lcmdlZCBieSBsaXN0IGluZGV4IG9udG8gY29uZmlnLnlhbWwpLiBFbmFibGUgYm9vdHN0cmFwICsgbWlncmF0ZSByb2xlLlxuZnVuY3Rpb24gcmVuZGVyRGV2RGF0YVNvdXJjZShhcGlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBwID0gYXBpRW52UHJlZml4KGFwaU5hbWUpO1xuXHRyZXR1cm4gW1xuXHRcdGAgICAgLSBuYW1lOiAke2FwaU5hbWV9YCxcblx0XHRgICAgICAgc3luY2hyb25pemU6IHRydWVgLFxuXHRcdGAgICAgICBzZWVkOiB0cnVlYCxcblx0XHRgICAgICAgYm9vdHN0cmFwOiB0cnVlYCxcblx0XHRgICAgICAgYWRtaW5Vc2VyOiBcXCR7REJfQURNSU5fVVNFUn1gLFxuXHRcdGAgICAgICBhZG1pblBhc3N3b3JkOiBcXCR7REJfQURNSU5fUEFTU1dPUkR9YCxcblx0XHRgICAgICAgbWlncmF0ZVVzZXJuYW1lOiBcXCR7JHtwfV9EQl9NSUdSQVRFX1VTRVJ9YCxcblx0XHRgICAgICAgbWlncmF0ZVBhc3N3b3JkOiBcXCR7JHtwfV9EQl9NSUdSQVRFX1BBU1NXT1JEfWAsXG5cdF0uam9pbihcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRGF0YWJhc2VTZWN0aW9uKFxuXHRhcGlOYW1lczogcmVhZG9ubHkgc3RyaW5nW10sXG5cdGl0ZW1zOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuXHRyZXR1cm4gYGRhdGFiYXNlOlxcbiAgZGF0YVNvdXJjZXM6XFxuJHthcGlOYW1lcy5tYXAoaXRlbXMpLmpvaW4oXCJcXG5cIil9XFxuYDtcbn1cblxuLyoqIENyZWF0ZS1vci1zeW5jIGJvb3RzdHJhcCByb2xlOyBydW5zIG9uIGV2ZXJ5IFBvc3RncmVzIGNvbnRhaW5lciBzdGFydCAobm90IG9ubHkgZW1wdHkgdm9sdW1lKS4gKi9cbmNvbnN0IFBPU1RHUkVTX0VOU1VSRV9CT09UU1RSQVBfU0ggPSBgIyEvYmluL2Jhc2hcbnNldCAtZXVvIHBpcGVmYWlsXG4jIFN1cGVydXNlciBhbGlnbnMgZGVjb2hlcmVfYm9vdHN0cmFwIHdpdGggREJfQURNSU5fKiBmcm9tIGVudl9maWxlIG9uIGV2ZXJ5IHN0YXJ0LlxuIyBJbml0ZGIuZCBhbG9uZSBpcyBpbnN1ZmZpY2llbnQ6IHBhc3N3b3JkcyBpbiAuZW52IGNhbiBjaGFuZ2Ugd2hpbGUgdGhlIHZvbHVtZSBwZXJzaXN0cy5cbjogXCJcXCR7UE9TVEdSRVNfVVNFUjo/UE9TVEdSRVNfVVNFUiBpcyByZXF1aXJlZH1cIlxuOiBcIlxcJHtEQl9BRE1JTl9VU0VSOj9EQl9BRE1JTl9VU0VSIGlzIHJlcXVpcmVkfVwiXG46IFwiXFwke0RCX0FETUlOX1BBU1NXT1JEOj9EQl9BRE1JTl9QQVNTV09SRCBpcyByZXF1aXJlZH1cIlxuXG5wc3FsIC12IE9OX0VSUk9SX1NUT1A9MSAtLXVzZXJuYW1lIFwiJFBPU1RHUkVTX1VTRVJcIiAtLWRibmFtZSBwb3N0Z3JlcyBcXFxcXG5cXHQtLXNldD1ib290c3RyYXBfdXNlcj1cIiREQl9BRE1JTl9VU0VSXCIgXFxcXFxuXFx0LS1zZXQ9Ym9vdHN0cmFwX3Bhc3N3b3JkPVwiJERCX0FETUlOX1BBU1NXT1JEXCIgPDwnRU9TUUwnXG5TRUxFQ1QgZm9ybWF0KFxuXFx0J0NSRUFURSBST0xFICVJIExPR0lOIFBBU1NXT1JEICVMIENSRUFURURCIENSRUFURVJPTEUgTk9TVVBFUlVTRVIgTk9CWVBBU1NSTFMnLFxuXFx0Oidib290c3RyYXBfdXNlcicsXG5cXHQ6J2Jvb3RzdHJhcF9wYXNzd29yZCdcbilcbldIRVJFIE5PVCBFWElTVFMgKFxuXFx0U0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3JvbGVzIFdIRVJFIHJvbG5hbWUgPSA6J2Jvb3RzdHJhcF91c2VyJ1xuKVxcXFxnZXhlY1xuXG5TRUxFQ1QgZm9ybWF0KFxuXFx0J0FMVEVSIFJPTEUgJUkgV0lUSCBMT0dJTiBQQVNTV09SRCAlTCBDUkVBVEVEQiBDUkVBVEVST0xFIE5PU1VQRVJVU0VSIE5PQllQQVNTUkxTJyxcblxcdDonYm9vdHN0cmFwX3VzZXInLFxuXFx0Oidib290c3RyYXBfcGFzc3dvcmQnXG4pXFxcXGdleGVjXG5cbkdSQU5UIENPTk5FQ1QgT04gREFUQUJBU0UgcG9zdGdyZXMgVE8gOlwiYm9vdHN0cmFwX3VzZXJcIjtcbkVPU1FMXG5gO1xuXG5jb25zdCBQT1NUR1JFU19FTlRSWVBPSU5UX1NIID0gYCMhL2Jpbi9iYXNoXG5zZXQgLWV1byBwaXBlZmFpbFxuKFxuXFx0Zm9yIF8gaW4gJChzZXEgMSA2MCk7IGRvXG5cXHRcXHRpZiBwZ19pc3JlYWR5IC1VIFwiXFwke1BPU1RHUkVTX1VTRVI6LXBvc3RncmVzfVwiID4vZGV2L251bGwgMj4mMTsgdGhlblxuXFx0XFx0XFx0L3Vzci9sb2NhbC9iaW4vZGVjb2hlcmUtZW5zdXJlLWJvb3RzdHJhcC5zaFxuXFx0XFx0XFx0ZXhpdCAwXG5cXHRcXHRmaVxuXFx0XFx0c2xlZXAgMC41XG5cXHRkb25lXG5cXHRlY2hvIFwiZGVjb2hlcmU6IHRpbWVkIG91dCB3YWl0aW5nIGZvciBQb3N0Z3JlcyBiZWZvcmUgZW5zdXJpbmcgYm9vdHN0cmFwIHJvbGVcIiA+JjJcblxcdGV4aXQgMVxuKSAmXG5leGVjIGRvY2tlci1lbnRyeXBvaW50LnNoIFwiJEBcIlxuYDtcblxuY29uc3QgUE9TVEdSRVNfSU1BR0VfRE9DS0VSRklMRSA9IGBGUk9NIHBvc3RncmVzOjE2XG5DT1BZIGVuc3VyZS1ib290c3RyYXAtcm9sZS5zaCAvdXNyL2xvY2FsL2Jpbi9kZWNvaGVyZS1lbnN1cmUtYm9vdHN0cmFwLnNoXG5DT1BZIGVudHJ5cG9pbnQuc2ggL3Vzci9sb2NhbC9iaW4vZGVjb2hlcmUtcG9zdGdyZXMtZW50cnlwb2ludC5zaFxuUlVOIGNobW9kICt4IC91c3IvbG9jYWwvYmluL2RlY29oZXJlLWVuc3VyZS1ib290c3RyYXAuc2ggL3Vzci9sb2NhbC9iaW4vZGVjb2hlcmUtcG9zdGdyZXMtZW50cnlwb2ludC5zaFxuRU5UUllQT0lOVCBbXCIvdXNyL2xvY2FsL2Jpbi9kZWNvaGVyZS1wb3N0Z3Jlcy1lbnRyeXBvaW50LnNoXCJdXG5DTUQgW1wicG9zdGdyZXNcIl1cbmA7XG5cbmNvbnN0IFNBTVBMRV9FTlRJVFlfVFMgPSBgaW1wb3J0IHsgQ29sdW1uLCBFbnRpdHksIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tIFwidHlwZW9ybVwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHkgYXMgSUVudGl0eSB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXhcIjtcblxuQEVudGl0eSgpXG5leHBvcnQgY2xhc3MgU2FtcGxlRW50aXR5IGltcGxlbWVudHMgSUVudGl0eSB7XG5cXHRAUHJpbWFyeUdlbmVyYXRlZENvbHVtbigpXG5cXHRwdWJsaWMgaWQhOiBudW1iZXI7XG5cblxcdEBDb2x1bW4oKVxuXFx0cHVibGljIG5hbWUhOiBzdHJpbmc7XG59XG5gO1xuXG5jb25zdCBTQU1QTEVfUkVQT1NJVE9SWV9UUyA9IGBpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBpbmplY3RVbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleFwiO1xuaW1wb3J0IHsgVHlwZU9ybVJlcG9zaXRvcnksIFR5cGVPcm1Vbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCI7XG5pbXBvcnQgeyBTYW1wbGVFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXRpZXMvc2FtcGxlLmVudGl0eS5qc1wiO1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2FtcGxlRW50aXR5UmVwb3NpdG9yeSBleHRlbmRzIFR5cGVPcm1SZXBvc2l0b3J5PFNhbXBsZUVudGl0eT4ge1xuXFx0cHVibGljIGNvbnN0cnVjdG9yKEBpbmplY3RVbml0T2ZXb3JrKCkgdW5pdE9mV29yazogVHlwZU9ybVVuaXRPZldvcmspIHtcblxcdFxcdHN1cGVyKHVuaXRPZldvcmssIFNhbXBsZUVudGl0eSk7XG5cXHR9XG59XG5gO1xuXG4vKiogVHlwZU9STSBDTEkgRGF0YVNvdXJjZSDigJQgY29ubmVjdHMgYXMgdGhlIG1pZ3JhdGUgcm9sZTsgbmV2ZXIgZW5hYmxlcyBzeW5jaHJvbml6ZS4gKi9cbmZ1bmN0aW9uIHJlbmRlclR5cGVPcm1EYXRhU291cmNlKGFwaU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHAgPSBhcGlFbnZQcmVmaXgoYXBpTmFtZSk7XG5cdHJldHVybiBgaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwidHlwZW9ybVwiO1xuXG5jb25zdCByb290ID0gZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuY29uc3QgcmVxdWlyZWQgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXFx0Y29uc3QgdmFsdWUgPSBwcm9jZXNzLmVudltrZXldO1xuXFx0aWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09IFwiXCIpIHtcblxcdFxcdHRocm93IG5ldyBFcnJvcihcXGBNaXNzaW5nIGVudiBcXCR7a2V5fSAobG9hZCAuZW52IHZpYSAtLWVudi1maWxlIG9yIGV4cG9ydCBpdClcXGApO1xuXFx0fVxuXFx0cmV0dXJuIHZhbHVlO1xufTtcblxuLyoqXG4gKiBDTEktb25seSBEYXRhU291cmNlIGZvciBcXGBwbnBtIGRiOm1pZ3JhdGVcXGAgLyBcXGBwbnBtIGRiOm1pZ3JhdGU6Z2VuZXJhdGVcXGAuXG4gKiBVc2VzIHRoZSBtaWdyYXRlIHJvbGUgKERETCkuIFJ1bnRpbWUgQVBJIHBvZHMgdXNlIHRoZSBhcHAgcm9sZSB3aXRoIHN5bmNocm9uaXplOiBmYWxzZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgbmV3IERhdGFTb3VyY2Uoe1xuXFx0dHlwZTogXCJwb3N0Z3Jlc1wiLFxuXFx0aG9zdDogcmVxdWlyZWQoXCIke3B9X0RCX0hPU1RcIiksXG5cXHRwb3J0OiBOdW1iZXIocmVxdWlyZWQoXCIke3B9X0RCX1BPUlRcIikpLFxuXFx0ZGF0YWJhc2U6IHJlcXVpcmVkKFwiJHtwfV9EQl9OQU1FXCIpLFxuXFx0dXNlcm5hbWU6IHJlcXVpcmVkKFwiJHtwfV9EQl9NSUdSQVRFX1VTRVJcIiksXG5cXHRwYXNzd29yZDogcmVxdWlyZWQoXCIke3B9X0RCX01JR1JBVEVfUEFTU1dPUkRcIiksXG5cXHRzeW5jaHJvbml6ZTogZmFsc2UsXG5cXHRlbnRpdGllczogW2pvaW4ocm9vdCwgXCJlbnRpdGllc1wiLCBcIioue3RzLGpzfVwiKV0sXG5cXHRtaWdyYXRpb25zOiBbam9pbihyb290LCBcIm1pZ3JhdGlvbnNcIiwgXCIqLnt0cyxqc31cIildLFxufSk7XG5gO1xufVxuXG5jb25zdCBEQVRBQkFTRV9ET0NTX01EID0gYCMgRGF0YWJhc2UgKFBvc3RncmVzIC8gVHlwZU9STSlcblxuIyMgUm9sZXNcblxufCBSb2xlIHwgRW52IHwgUHVycG9zZSB8XG58LS0tfC0tLXwtLS18XG58IEFwcCB8IFxcYHtQUkVGSVh9X0RCX1VTRVJcXGAgfCBSdW50aW1lIEFQSSAoRE1MIG9ubHkgaW4gcHJvZHVjdGlvbikgfFxufCBNaWdyYXRlIHwgXFxge1BSRUZJWH1fREJfTUlHUkFURV9VU0VSXFxgIHwgU2NoZW1hIGNoYW5nZXMgLyBUeXBlT1JNIG1pZ3JhdGlvbnMgKENJL2RlcGxveSkgfFxufCBCb290c3RyYXAgfCBcXGBEQl9BRE1JTl9VU0VSXFxgIHwgQ3JlYXRlIERCICsgcm9sZXMgd2hlbiBcXGBib290c3RyYXA6IHRydWVcXGAgKGRldikgfFxuXG5cXGB7UFJFRklYfVxcYCBpcyB0aGUgQVBJIHNsdWcgaW4gU0NSRUFNSU5HX1NOQUtFIChcXGBhcGlcXGAg4oaSIFxcYEFQSVxcYCwgXFxgYmlsbGluZ1xcYCDihpIgXFxgQklMTElOR1xcYCkuXG5cbiMjIERldmVsb3BtZW50IChmYXN0IGl0ZXJhdGlvbilcblxuXFxgY29uZmlnL2NvbmZpZy5kZXYueWFtbFxcYCBzZXRzIFxcYHN5bmNocm9uaXplOiB0cnVlXFxgIGFuZCBcXGBzZWVkOiB0cnVlXFxgIHNvIHRoZSBBUEkgY2FuIGNyZWF0ZSB0YWJsZXMgb24gc3RhcnR1cC4gWW91IGNhbiBrZWVwIHVzaW5nIHN5bmMgd2hpbGUgcHJvdG90eXBpbmcuXG5cbkFsdGVybmF0aXZlbHksIHR1cm4gc3luYyBvZmYgaW4gdGhlIG92ZXJsYXkgYW5kIHVzZSBtaWdyYXRpb25zIHRoZSBzYW1lIHdheSBhcyBwcm9kdWN0aW9uOlxuXG5cXGBcXGBcXGBiYXNoXG5wbnBtIGRiOnVwXG5wbnBtIGRiOm1pZ3JhdGVcbnBucG0gZGI6bWlncmF0ZTpnZW5lcmF0ZSAtLSAuL3Byb2plY3RzL2FwaS9zcmMvbWlncmF0aW9ucy9BZGRTb21ldGhpbmdcblxcYFxcYFxcYFxuXG5EbyAqKm5vdCoqIG1peCBzeW5jIGFuZCBtaWdyYXRpb25zIGZvciB0aGUgc2FtZSBzY2hlbWEgY2hhbmdlIChwaWNrIG9uZSBwYXRoIHBlciBjaGFuZ2UpLlxuXG4jIyBQcm9kdWN0aW9uIChtaWdyYXRpb25zIG9ubHkpXG5cblxcYGNvbmZpZy9jb25maWcueWFtbFxcYCBrZWVwcyBcXGBzeW5jaHJvbml6ZTogZmFsc2VcXGAgLyBcXGBzZWVkOiBmYWxzZVxcYCAvIFxcYGJvb3RzdHJhcDogZmFsc2VcXGAuIERlcGxveSBzdGVwczpcblxuMS4gRW5zdXJlIHRoZSBhcHAgZGF0YWJhc2UgYW5kIHJvbGVzIGFscmVhZHkgZXhpc3QgKHByb3Zpc2lvbmVyIC8gb3BzIOKAlCBub3QgdGhlIEFQSSBwb2QpLlxuMi4gUnVuIG1pZ3JhdGlvbnMgd2l0aCB0aGUgbWlncmF0ZSByb2xlOiBcXGBwbnBtIGRiOm1pZ3JhdGVcXGAgKG9yIFxcYHBucG0gZGI6bWlncmF0ZTo8YXBpPlxcYCBmb3IgbXVsdGktQVBJKS5cbjMuIFN0YXJ0IHRoZSBBUEkgd2l0aCB0aGUgYXBwIHJvbGUgb25seSDigJQgbm8gbWlncmF0ZS9hZG1pbiBzZWNyZXRzIG9uIHRoZSBwb2QuXG5cbiMjIFNjcmlwdHNcblxufCBTY3JpcHQgfCBXaGF0IGl0IGRvZXMgfFxufC0tLXwtLS18XG58IFxcYGRiOnVwXFxgIC8gXFxgZGI6ZG93blxcYCAvIFxcYGRiOnJlc2V0XFxgIHwgTG9jYWwgQ29tcG9zZSBQb3N0Z3JlcyB8XG58IFxcYGRiOm1pZ3JhdGVcXGAgfCBSdW4gcGVuZGluZyBtaWdyYXRpb25zIChcXGBwcm9qZWN0cy9hcGlcXGAgYnkgZGVmYXVsdCkgfFxufCBcXGBkYjptaWdyYXRlOmdlbmVyYXRlXFxgIHwgR2VuZXJhdGUgYSBtaWdyYXRpb24gZnJvbSBlbnRpdHkgZHJpZnQgKHBhc3MgcGF0aCBhZnRlciBcXGAtLVxcYCkgfFxufCBcXGBkYjptaWdyYXRlOjxhcGk+XFxgIHwgU2FtZSBmb3IgYSBuYW1lZCBBUEkgdW5kZXIgXFxgcHJvamVjdHMvPGFwaT5cXGAgfFxuXG5DTEkgZW50cnk6IFxcYHByb2plY3RzLzxhcGk+L3NyYy90eXBlb3JtLmRhdGEtc291cmNlLnRzXFxgIChtaWdyYXRlIGNyZWRlbnRpYWxzLCBcXGBzeW5jaHJvbml6ZTogZmFsc2VcXGApLlxuXG4jIyBCcm93c2UgdGhlIGRhdGFiYXNlXG5cblByZWZlciB0aGUgRGV2IENvbnRhaW5lciAqKlNRTFRvb2xzKiogZXh0ZW5zaW9uIChQb3N0Z3JlcyBkcml2ZXIpIG9yIGFueSBkZXNrdG9wIGNsaWVudCBhZ2FpbnN0IFxcYDEyNy4wLjAuMTo1NDMzXFxgIChzZWUgXFxgLmVudlxcYCBmb3IgY3JlZGVudGlhbHMpLlxuXG5BZG1pbmVyIGlzICoqbm90Kiogc2NhZmZvbGRlZC4gSWYgeW91IHdhbnQgYSBicm93c2VyIFVJIGluIENvbXBvc2UsIGFkZCB0aGlzIHVuZGVyIFxcYHNlcnZpY2VzOlxcYCBpbiBcXGAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbFxcYCAocHJvZmlsZSBcXGB0b29sc1xcYCBzbyBpdCBzdGF5cyBvZmYgYnkgZGVmYXVsdCk6XG5cblxcYFxcYFxcYHlhbWxcbiAgYWRtaW5lcjpcbiAgICBpbWFnZTogYWRtaW5lclxuICAgIHByb2ZpbGVzOlxuICAgICAgLSB0b29sc1xuICAgIHBvcnRzOlxuICAgICAgLSBcIjEyNy4wLjAuMTo4MDgxOjgwODBcIlxuICAgIG5ldHdvcmtzOlxuICAgICAgLSA8Y29tcG9zZS1uZXR3b3JrLWtleT4gIyBzYW1lIGtleSBhcyBwb3N0Z3JlcyAvIGRldmNvbnRhaW5lclxuXFxgXFxgXFxgXG5cblRoZW46IFxcYGRvY2tlciBjb21wb3NlIC1mIC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIC0tcHJvZmlsZSB0b29scyB1cCAtZCBhZG1pbmVyXFxgXG5gO1xuXG5mdW5jdGlvbiB0eXBlb3JtQ2xpKGFyZ3M6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBgbm9kZSAtLWltcG9ydCB0c3ggLS1lbnYtZmlsZT0uZW52IC4vbm9kZV9tb2R1bGVzL3R5cGVvcm0vY2xpLmpzICR7YXJnc31gO1xufVxuXG5mdW5jdGlvbiBtaWdyYXRlUnVuU2NyaXB0KGFwaU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiB0eXBlb3JtQ2xpKGBtaWdyYXRpb246cnVuIC1kIC4vcHJvamVjdHMvJHthcGlOYW1lfS9zcmMvdHlwZW9ybS5kYXRhLXNvdXJjZS50c2ApO1xufVxuXG5mdW5jdGlvbiBtaWdyYXRlR2VuZXJhdGVTY3JpcHQoYXBpTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHR5cGVvcm1DbGkoXG5cdFx0YG1pZ3JhdGlvbjpnZW5lcmF0ZSAtLWVzbSAtZCAuL3Byb2plY3RzLyR7YXBpTmFtZX0vc3JjL3R5cGVvcm0uZGF0YS1zb3VyY2UudHNgLFxuXHQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcHRpb25zKFxuXHRfd29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogUGFydGlhbDxEYXRhYmFzZU9wdGlvbnM+LFxuKTogUHJvbWlzZTxQYXJ0aWFsPERhdGFiYXNlT3B0aW9ucz4+IHtcblx0aWYgKGNsaU9wdGlvbnMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSByZXR1cm4ge307XG5cblx0Y29uc3QgY2hvaWNlcyA9IFt7IGxhYmVsOiBcIm5vbmVcIiBhcyBjb25zdCB9LCB7IGxhYmVsOiBcInBvc3RncmVzL3R5cGVvcm1cIiBhcyBjb25zdCB9XTtcblx0Y29uc3Qgc2VsZWN0ZWQgPSBhd2FpdCBwaWNrKFwiXFxuICBEYXRhYmFzZTogXCIsIGNob2ljZXMsIChjKSA9PiBjLmxhYmVsKTtcblx0cmV0dXJuIHsgZGF0YWJhc2VQcm92aWRlcjogc2VsZWN0ZWQ/LmxhYmVsID8/IFwibm9uZVwiIH07XG59XG5cbmZ1bmN0aW9uIHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IERhdGFiYXNlT3B0aW9ucyk6IHZvaWQge1xuXHRpZiAob3B0aW9ucy5kYXRhYmFzZVByb3ZpZGVyICE9PSBcInBvc3RncmVzL3R5cGVvcm1cIikgcmV0dXJuO1xuXG5cdGNvbnN0IG5hbWUgPSB3b3Jrc3BhY2UubmFtZTtcblx0Y29uc3QgaWRlbnQgPSB0b1NxbElkZW50RnJhZ21lbnQobmFtZSk7XG5cdGNvbnN0IGFwaVByb2plY3RzID0gd29ya3NwYWNlLmdldFByb2plY3RzKCk7XG5cdGNvbnN0IGFwaU5hbWVzID0gYXBpUHJvamVjdHMubWFwKChwcm9qZWN0KSA9PiBhcGlOYW1lRnJvbVByb2plY3REaXIocHJvamVjdC5kaXIpKTtcblx0Ly8gQ29udGFpbmVyIGluaXQgc3VwZXJ1c2VyIOKAlCBuZXZlciByZXVzZWQgYXMgYW4gQVBJIHJ1bnRpbWUgcm9sZS5cblx0Y29uc3QgcG9zdGdyZXNTdXBlcnVzZXIgPSBcInBvc3RncmVzXCI7XG5cdGNvbnN0IHBvc3RncmVzUGFzc3dvcmQgPSBwYXNzd29yZE9yRXhpc3Rpbmcod29ya3NwYWNlLCBcIlBPU1RHUkVTX1BBU1NXT1JEXCIpO1xuXHRjb25zdCBib290c3RyYXBVc2VyID0gXCJkZWNvaGVyZV9ib290c3RyYXBcIjtcblx0Y29uc3QgYm9vdHN0cmFwUGFzc3dvcmQgPSBwYXNzd29yZE9yRXhpc3Rpbmcod29ya3NwYWNlLCBcIkRCX0FETUlOX1BBU1NXT1JEXCIsIFtcblx0XHRcIlBPU1RHUkVTX1BBU1NXT1JEXCIsXG5cdF0pO1xuXG5cdGNvbnN0IGRldkNvbnRhaW5lciA9IHdvcmtzcGFjZS5nZXRNb2RlbDxEZXZDb250YWluZXI+KFdFTExfS05PV05fRklMRVMuREVWQ09OVEFJTkVSX0pTT04pO1xuXHRjb25zdCBjb21wb3NlID0gd29ya3NwYWNlLmdldE1vZGVsPERvY2tlckNvbXBvc2U+KFdFTExfS05PV05fRklMRVMuRE9DS0VSX0NPTVBPU0UpO1xuXG5cdGNvbnN0IG5ldHdvcmtLZXkgPSBuYW1lO1xuXG5cdGlmIChjb21wb3NlKSB7XG5cdFx0Ly8gT25lIHNoYXJlZCBpbnN0YW5jZS4gRWFjaCBBUEkgb3ducyBhIGRhdGFiYXNlIG9uIGl0IChjcmVhdGVkIGF0IGJvb3RzdHJhcCkuXG5cdFx0Ly8gUG9pbnQgYHtQUkVGSVh9X0RCX0hPU1RgIC8gYHtQUkVGSVh9X0RCX1BPUlRgIGF0IGFub3RoZXIgc2VydmVyIHRvIHNwbGl0IGxhdGVyLlxuXHRcdC8vIEN1c3RvbSBpbWFnZTogc3luYyBib290c3RyYXAgcm9sZSBwYXNzd29yZCBvbiBldmVyeSBzdGFydCAoaW5pdGRiLmQgaXMgb25jZS1vbmx5KS5cblx0XHQvLyBEZWZhdWx0IGRhdGEgaXMgYSBiaW5kIG1vdW50IHVuZGVyIHRoZSBwcm9qZWN0IHNvIGBybSAtcmZgIHRoZSB0cmVlIHJlbW92ZXMgaXQuXG5cdFx0Y29tcG9zZVxuXHRcdFx0LmFkZEhlYWRlckNvbW1lbnQoXG5cdFx0XHRcdFwiUG9zdGdyZXMgZGF0YSBkZWZhdWx0cyB0byAuL3Bvc3RncmVzLWRhdGEgdW5kZXIgdGhpcyBmb2xkZXIgKGJpbmQgbW91bnQ7IGRpZXMgd2l0aCB0aGUgd29ya2luZyB0cmVlKS5cIixcblx0XHRcdFx0YEZvciBkYXRhIHRoYXQgb3V0bGl2ZXMgdGhlIGNoZWNrb3V0LCByZXBsYWNlIHRoZSBwb3N0Z3JlcyB2b2x1bWVzIGVudHJ5IHdpdGggYSBuYW1lZCB2b2x1bWVgLFxuXHRcdFx0XHRgZS5nLiBcIiR7bmFtZX0tcG9zdGdyZXMtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcIiBhbmQgZGVjbGFyZSBpdCB1bmRlciB0b3AtbGV2ZWwgdm9sdW1lczouYCxcblx0XHRcdClcblx0XHRcdC5hZGRTZXJ2aWNlKFwicG9zdGdyZXNcIiwge1xuXHRcdFx0XHRidWlsZDogXCIuL3Bvc3RncmVzXCIsXG5cdFx0XHRcdGNvbnRhaW5lcl9uYW1lOiBgc2FtcGxlcy0ke25hbWV9LXBvc3RncmVzYCxcblx0XHRcdFx0cmVzdGFydDogXCJ1bmxlc3Mtc3RvcHBlZFwiLFxuXHRcdFx0XHRwb3J0czogW1wiMTI3LjAuMC4xOjU0MzM6NTQzMlwiXSxcblx0XHRcdFx0dm9sdW1lczogW1BPU1RHUkVTX0RBVEFfQklORF0sXG5cdFx0XHRcdG5ldHdvcmtzOiBbeyBbbmV0d29ya0tleV06IHsgYWxpYXNlczogW1wicG9zdGdyZXNcIl0gfSB9XSxcblx0XHRcdFx0aGVhbHRoY2hlY2s6IHtcblx0XHRcdFx0XHQvLyBFbnN1cmUgcm9sZS9wYXNzd29yZCBtYXRjaCAuZW52IGJlZm9yZSByZXBvcnRpbmcgaGVhbHRoeS5cblx0XHRcdFx0XHR0ZXN0OiBbXG5cdFx0XHRcdFx0XHRcIkNNRC1TSEVMTFwiLFxuXHRcdFx0XHRcdFx0YHBnX2lzcmVhZHkgLVUgJHtwb3N0Z3Jlc1N1cGVydXNlcn0gJiYgL3Vzci9sb2NhbC9iaW4vZGVjb2hlcmUtZW5zdXJlLWJvb3RzdHJhcC5zaGAsXG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRpbnRlcnZhbDogXCIyc1wiLFxuXHRcdFx0XHRcdHRpbWVvdXQ6IFwiNXNcIixcblx0XHRcdFx0XHRyZXRyaWVzOiAxNSxcblx0XHRcdFx0fSxcblx0XHRcdH0pXG5cdFx0XHQuYWRkRW52RmlsZShcInBvc3RncmVzXCIsIFwiLi4vLmVudlwiKTtcblxuXHRcdHdvcmtzcGFjZS5nZXRNb2RlbDxHaXRpZ25vcmU+KFdFTExfS05PV05fRklMRVMuR0lUSUdOT1JFKT8uYWRkKFBPU1RHUkVTX0RBVEFfR0lUSUdOT1JFKTtcblxuXHRcdHdvcmtzcGFjZS5hZGRGaWxlKHtcblx0XHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRmaWxlUGF0aDogXCIuZGV2Y29udGFpbmVyL3Bvc3RncmVzL0RvY2tlcmZpbGVcIixcblx0XHRcdFx0XHRjb250ZW50OiBQT1NUR1JFU19JTUFHRV9ET0NLRVJGSUxFLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZmlsZVBhdGg6IFwiLmRldmNvbnRhaW5lci9wb3N0Z3Jlcy9lbnRyeXBvaW50LnNoXCIsXG5cdFx0XHRcdFx0Y29udGVudDogUE9TVEdSRVNfRU5UUllQT0lOVF9TSCxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvcG9zdGdyZXMvZW5zdXJlLWJvb3RzdHJhcC1yb2xlLnNoXCIsXG5cdFx0XHRcdFx0Y29udGVudDogUE9TVEdSRVNfRU5TVVJFX0JPT1RTVFJBUF9TSCxcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSk7XG5cblx0XHRjb21wb3NlLmFkZEVudkZpbGUoXCJkZXZjb250YWluZXJcIiwgXCIuLi8uZW52XCIpO1xuXHR9XG5cblx0ZGV2Q29udGFpbmVyPy5hZGRFeHRlbnNpb24oXCJtdHhyLnNxbHRvb2xzXCIsIFwibXR4ci5zcWx0b29scy1kcml2ZXItcGdcIik7XG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxEb2NrZXJmaWxlTW9kZWw+KFdFTExfS05PV05fRklMRVMuRE9DS0VSRklMRSlcblx0XHQ/LmFkZExheWVyKHdpdGhQb3N0Z3Jlc3FsQ2xpZW50KCkpO1xuXG5cdGNvbnN0IHBrZyA9IHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5QQUNLQUdFX0pTT04pXG5cdFx0Py5hZGREZXBlbmRlbmN5KFwiQGRlY29oZXJlL2NvZGV4XCIsIENSRUFURV9WRVJTSU9OKVxuXHRcdC5hZGREZXBlbmRlbmN5KFwidHlwZW9ybVwiLCBcIl4wLjMuMjhcIilcblx0XHQuYWRkRGVwZW5kZW5jeShcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCIsIENSRUFURV9WRVJTSU9OKVxuXHRcdC5hZGREZXBlbmRlbmN5KFwidHN4XCIsIFwiXjQuMjAuNVwiKVxuXHRcdC5hZGRTY3JpcHQoXCJkYjp1cFwiLCBcImRvY2tlciBjb21wb3NlIC1mIC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIHVwIC1kIHBvc3RncmVzXCIpXG5cdFx0LmFkZFNjcmlwdChcImRiOmRvd25cIiwgXCJkb2NrZXIgY29tcG9zZSAtZiAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCBkb3duXCIpXG5cdFx0LmFkZFNjcmlwdChcImRiOnJlc2V0XCIsIERCX1JFU0VUX1NDUklQVCk7XG5cblx0Y29uc3QgcHJpbWFyeUFwaSA9IGFwaU5hbWVzWzBdO1xuXHRpZiAocGtnICE9IG51bGwpIHtcblx0XHRmb3IgKGNvbnN0IGFwaU5hbWUgb2YgYXBpTmFtZXMpIHtcblx0XHRcdHBrZ1xuXHRcdFx0XHQuYWRkU2NyaXB0KGBkYjptaWdyYXRlOiR7YXBpTmFtZX1gLCBtaWdyYXRlUnVuU2NyaXB0KGFwaU5hbWUpKVxuXHRcdFx0XHQuYWRkU2NyaXB0KGBkYjptaWdyYXRlOmdlbmVyYXRlOiR7YXBpTmFtZX1gLCBtaWdyYXRlR2VuZXJhdGVTY3JpcHQoYXBpTmFtZSkpO1xuXHRcdH1cblx0XHQvLyBEZWZhdWx0IGFsaWFzZXMgdGFyZ2V0IHRoZSBmaXJzdCBBUEkgb2YgYSBuZXcgd29ya3NwYWNlIG9ubHkg4oCUIG5ldmVyIG92ZXJ3cml0ZSBvbiBgd2ViYXBpIGFkZGAuXG5cdFx0aWYgKCFvcHRpb25zLmFkZCAmJiBwcmltYXJ5QXBpICE9IG51bGwpIHtcblx0XHRcdHBrZ1xuXHRcdFx0XHQuYWRkU2NyaXB0KFwiZGI6bWlncmF0ZVwiLCBtaWdyYXRlUnVuU2NyaXB0KHByaW1hcnlBcGkpKVxuXHRcdFx0XHQuYWRkU2NyaXB0KFwiZGI6bWlncmF0ZTpnZW5lcmF0ZVwiLCBtaWdyYXRlR2VuZXJhdGVTY3JpcHQocHJpbWFyeUFwaSkpO1xuXHRcdH1cblx0fVxuXG5cdHdvcmtzcGFjZS5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJkb2NzL2RhdGFiYXNlLm1kXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IERBVEFCQVNFX0RPQ1NfTUQsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdHdyaXRlRGF0YWJhc2VDb25maWcod29ya3NwYWNlLCBhcGlOYW1lcyk7XG5cblx0Zm9yIChjb25zdCBwcm9qZWN0IG9mIGFwaVByb2plY3RzKSB7XG5cdFx0d2lyZUFwaURhdGFiYXNlKHByb2plY3QpO1xuXHR9XG5cblx0Y29uc3QgZW52ID0gd29ya3NwYWNlLmdldE1vZGVsPEVudkZpbGU+KFdFTExfS05PV05fRklMRVMuRU5WX0ZJTEUpO1xuXHRlbnZcblx0XHQ/LmFkZEVudHJ5KFwiUE9TVEdSRVNfREJcIiwgaWRlbnQpXG5cdFx0LmFkZEVudHJ5KFwiUE9TVEdSRVNfVVNFUlwiLCBwb3N0Z3Jlc1N1cGVydXNlcilcblx0XHQuYWRkRW50cnkoXCJQT1NUR1JFU19QQVNTV09SRFwiLCBwb3N0Z3Jlc1Bhc3N3b3JkKVxuXHRcdC5hZGRFbnRyeShcIkRCX0FETUlOX1VTRVJcIiwgYm9vdHN0cmFwVXNlcilcblx0XHQuYWRkRW50cnkoXCJEQl9BRE1JTl9QQVNTV09SRFwiLCBib290c3RyYXBQYXNzd29yZCk7XG5cblx0Zm9yIChjb25zdCBhcGlOYW1lIG9mIGFwaU5hbWVzKSB7XG5cdFx0d3JpdGVBcGlEYXRhYmFzZUVudih3b3Jrc3BhY2UsIGlkZW50LCBhcGlOYW1lKTtcblx0fVxufVxuXG5mdW5jdGlvbiB3cml0ZURhdGFiYXNlQ29uZmlnKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIGFwaU5hbWVzOiByZWFkb25seSBzdHJpbmdbXSk6IHZvaWQge1xuXHRjb25zdCBjb25maWcgPSB3b3Jrc3BhY2UuZ2V0TW9kZWw8Q29uZmlnWWFtbD4oV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTCk7XG5cdGNvbnN0IGRldkNvbmZpZyA9IHdvcmtzcGFjZS5nZXRNb2RlbDxDb25maWdZYW1sPihXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ERVZfWUFNTCk7XG5cdGNvbnN0IHBlbmRpbmcgPSBhcGlOYW1lcy5maWx0ZXIoKGFwaU5hbWUpID0+ICFjb25maWc/Lmhhc0RhdGFTb3VyY2UoYXBpTmFtZSkpO1xuXHRpZiAocGVuZGluZy5sZW5ndGggPT09IDApIHJldHVybjtcblxuXHRpZiAoY29uZmlnPy5oYXNEYXRhU291cmNlcygpKSB7XG5cdFx0Zm9yIChjb25zdCBhcGlOYW1lIG9mIHBlbmRpbmcpIHtcblx0XHRcdGNvbmZpZy5hcHBlbmREYXRhU291cmNlKHJlbmRlckJhc2VEYXRhU291cmNlKGFwaU5hbWUpKTtcblx0XHRcdGRldkNvbmZpZz8uYXBwZW5kRGF0YVNvdXJjZShyZW5kZXJEZXZEYXRhU291cmNlKGFwaU5hbWUpKTtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uZmlnPy5hZGRTZWN0aW9uKHJlbmRlckRhdGFiYXNlU2VjdGlvbihwZW5kaW5nLCByZW5kZXJCYXNlRGF0YVNvdXJjZSkpO1xuXHRkZXZDb25maWc/LmFkZFNlY3Rpb24ocmVuZGVyRGF0YWJhc2VTZWN0aW9uKHBlbmRpbmcsIHJlbmRlckRldkRhdGFTb3VyY2UpKTtcbn1cblxuZnVuY3Rpb24gd3JpdGVBcGlEYXRhYmFzZUVudihcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0aWRlbnQ6IHN0cmluZyxcblx0YXBpTmFtZTogc3RyaW5nLFxuKTogdm9pZCB7XG5cdGNvbnN0IHByZWZpeCA9IGFwaUVudlByZWZpeChhcGlOYW1lKTtcblx0Y29uc3Qgc3FsQXBpID0gdG9TcWxJZGVudEZyYWdtZW50KGFwaU5hbWUpO1xuXHR3b3Jrc3BhY2Vcblx0XHQuZ2V0TW9kZWw8RW52RmlsZT4oV0VMTF9LTk9XTl9GSUxFUy5FTlZfRklMRSlcblx0XHQ/LmFkZEVudHJ5KGAke3ByZWZpeH1fREJfSE9TVGAsIFwicG9zdGdyZXNcIilcblx0XHQuYWRkRW50cnkoYCR7cHJlZml4fV9EQl9QT1JUYCwgXCI1NDMyXCIpXG5cdFx0LmFkZEVudHJ5KGAke3ByZWZpeH1fREJfTkFNRWAsIGAke2lkZW50fV8ke3NxbEFwaX1fZGV2YClcblx0XHQuYWRkRW50cnkoYCR7cHJlZml4fV9EQl9VU0VSYCwgYCR7aWRlbnR9XyR7c3FsQXBpfV9hcHBgKVxuXHRcdC5hZGRFbnRyeShgJHtwcmVmaXh9X0RCX1BBU1NXT1JEYCwgcGFzc3dvcmRPckV4aXN0aW5nKHdvcmtzcGFjZSwgYCR7cHJlZml4fV9EQl9QQVNTV09SRGApKVxuXHRcdC5hZGRFbnRyeShgJHtwcmVmaXh9X0RCX01JR1JBVEVfVVNFUmAsIGAke2lkZW50fV8ke3NxbEFwaX1fbWlncmF0ZWApXG5cdFx0LmFkZEVudHJ5KFxuXHRcdFx0YCR7cHJlZml4fV9EQl9NSUdSQVRFX1BBU1NXT1JEYCxcblx0XHRcdHBhc3N3b3JkT3JFeGlzdGluZyh3b3Jrc3BhY2UsIGAke3ByZWZpeH1fREJfTUlHUkFURV9QQVNTV09SRGApLFxuXHRcdCk7XG59XG5cbmZ1bmN0aW9uIHdpcmVBcGlEYXRhYmFzZShwcm9qZWN0OiBQcm9qZWN0U2NhZmZvbGQpOiB2b2lkIHtcblx0Y29uc3QgYXBpTmFtZSA9IGFwaU5hbWVGcm9tUHJvamVjdERpcihwcm9qZWN0LmRpcik7XG5cdHByb2plY3Rcblx0XHQuZ2V0TW9kZWw8TWFpblNvdXJjZUZpbGU+KFdFTExfS05PV05fRklMRVMuTUFJTl9UUylcblx0XHQ/LnNldERhdGFTb3VyY2VOYW1lKGFwaU5hbWUpXG5cdFx0LmFkZFNpZGVFZmZlY3RJbXBvcnQoXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiKVxuXHRcdC5hZGRFbnRpdHkoeyBjbGFzc05hbWU6IFwiU2FtcGxlRW50aXR5XCIsIGltcG9ydFBhdGg6IFwiLi9lbnRpdGllcy9zYW1wbGUuZW50aXR5LmpzXCIgfSlcblx0XHQuYWRkUmVwb3NpdG9yeSh7XG5cdFx0XHRjbGFzc05hbWU6IFwiU2FtcGxlRW50aXR5UmVwb3NpdG9yeVwiLFxuXHRcdFx0aW1wb3J0UGF0aDogXCIuL3JlcG9zaXRvcmllcy9zYW1wbGUucmVwb3NpdG9yeS5qc1wiLFxuXHRcdH0pO1xuXHRwcm9qZWN0XG5cdFx0LmdldE1vZGVsPEFwaVBhY2thZ2VKc29uPihXRUxMX0tOT1dOX0ZJTEVTLkFQSV9QQUNLQUdFX0pTT04pXG5cdFx0Py5hZGREZXBlbmRlbmN5KFwiQGRlY29oZXJlL2NvZGV4XCIsIENSRUFURV9WRVJTSU9OKVxuXHRcdC5hZGREZXBlbmRlbmN5KFwiQGRlY29oZXJlL2NvZGV4LXR5cGVvcm1cIiwgQ1JFQVRFX1ZFUlNJT04pO1xuXHRwcm9qZWN0LmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9lbnRpdGllcy9zYW1wbGUuZW50aXR5LnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9FTlRJVFlfVFMsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJzcmMvcmVwb3NpdG9yaWVzL3NhbXBsZS5yZXBvc2l0b3J5LnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9SRVBPU0lUT1JZX1RTLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwic3JjL3R5cGVvcm0uZGF0YS1zb3VyY2UudHNcIixcblx0XHRcdFx0Y29udGVudDogcmVuZGVyVHlwZU9ybURhdGFTb3VyY2UoYXBpTmFtZSksXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJzcmMvbWlncmF0aW9ucy8uZ2l0a2VlcFwiLFxuXHRcdFx0XHRjb250ZW50OiBcIlwiLFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcbn1cblxuZXhwb3J0IGNvbnN0IERhdGFiYXNlRmVhdHVyZTogRmVhdHVyZTxEYXRhYmFzZU9wdGlvbnM+ID0geyBnZXRPcHRpb25zLCBzY2FmZm9sZCB9O1xuIl0sIm5hbWVzIjpbIkRhdGFiYXNlRmVhdHVyZSIsIlBPU1RHUkVTX0RBVEFfQklORCIsIlBPU1RHUkVTX0RBVEFfR0lUSUdOT1JFIiwiREJfUkVTRVRfU0NSSVBUIiwicmVhZEV4aXN0aW5nRW52VmFsdWUiLCJ3b3Jrc3BhY2UiLCJrZXkiLCJyYXciLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwidGFyZ2V0RGlyIiwibGluZSIsInNwbGl0IiwiZmluZCIsImwiLCJzdGFydHNXaXRoIiwidmFsdWUiLCJzbGljZSIsImxlbmd0aCIsInRyaW0iLCJ1bmRlZmluZWQiLCJyYW5kb21QYXNzd29yZCIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJ0b1NxbElkZW50RnJhZ21lbnQiLCJuYW1lIiwiY2xlYW5lZCIsInJlcGxhY2UiLCJwYXNzd29yZE9yRXhpc3RpbmciLCJmYWxsYmFja0V4aXN0aW5nS2V5cyIsImV4aXN0aW5nIiwiYWx0IiwidiIsInJlbmRlckJhc2VEYXRhU291cmNlIiwiYXBpTmFtZSIsInAiLCJhcGlFbnZQcmVmaXgiLCJyZW5kZXJEZXZEYXRhU291cmNlIiwicmVuZGVyRGF0YWJhc2VTZWN0aW9uIiwiYXBpTmFtZXMiLCJpdGVtcyIsIm1hcCIsIlBPU1RHUkVTX0VOU1VSRV9CT09UU1RSQVBfU0giLCJQT1NUR1JFU19FTlRSWVBPSU5UX1NIIiwiUE9TVEdSRVNfSU1BR0VfRE9DS0VSRklMRSIsIlNBTVBMRV9FTlRJVFlfVFMiLCJTQU1QTEVfUkVQT1NJVE9SWV9UUyIsInJlbmRlclR5cGVPcm1EYXRhU291cmNlIiwiREFUQUJBU0VfRE9DU19NRCIsInR5cGVvcm1DbGkiLCJhcmdzIiwibWlncmF0ZVJ1blNjcmlwdCIsIm1pZ3JhdGVHZW5lcmF0ZVNjcmlwdCIsImdldE9wdGlvbnMiLCJfd29ya3NwYWNlIiwiY2xpT3B0aW9ucyIsImRhdGFiYXNlUHJvdmlkZXIiLCJjaG9pY2VzIiwibGFiZWwiLCJzZWxlY3RlZCIsInBpY2siLCJjIiwic2NhZmZvbGQiLCJvcHRpb25zIiwiaWRlbnQiLCJhcGlQcm9qZWN0cyIsImdldFByb2plY3RzIiwicHJvamVjdCIsImFwaU5hbWVGcm9tUHJvamVjdERpciIsImRpciIsInBvc3RncmVzU3VwZXJ1c2VyIiwicG9zdGdyZXNQYXNzd29yZCIsImJvb3RzdHJhcFVzZXIiLCJib290c3RyYXBQYXNzd29yZCIsImRldkNvbnRhaW5lciIsImdldE1vZGVsIiwiV0VMTF9LTk9XTl9GSUxFUyIsIkRFVkNPTlRBSU5FUl9KU09OIiwiY29tcG9zZSIsIkRPQ0tFUl9DT01QT1NFIiwibmV0d29ya0tleSIsImFkZEhlYWRlckNvbW1lbnQiLCJhZGRTZXJ2aWNlIiwiYnVpbGQiLCJjb250YWluZXJfbmFtZSIsInJlc3RhcnQiLCJwb3J0cyIsInZvbHVtZXMiLCJuZXR3b3JrcyIsImFsaWFzZXMiLCJoZWFsdGhjaGVjayIsInRlc3QiLCJpbnRlcnZhbCIsInRpbWVvdXQiLCJyZXRyaWVzIiwiYWRkRW52RmlsZSIsIkdJVElHTk9SRSIsImFkZCIsImFkZEZpbGUiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCIsImFkZEV4dGVuc2lvbiIsIkRPQ0tFUkZJTEUiLCJhZGRMYXllciIsIndpdGhQb3N0Z3Jlc3FsQ2xpZW50IiwicGtnIiwiUEFDS0FHRV9KU09OIiwiYWRkRGVwZW5kZW5jeSIsIkNSRUFURV9WRVJTSU9OIiwiYWRkU2NyaXB0IiwicHJpbWFyeUFwaSIsIndyaXRlRGF0YWJhc2VDb25maWciLCJ3aXJlQXBpRGF0YWJhc2UiLCJlbnYiLCJFTlZfRklMRSIsImFkZEVudHJ5Iiwid3JpdGVBcGlEYXRhYmFzZUVudiIsImNvbmZpZyIsIkNPTkZJR19ZQU1MIiwiZGV2Q29uZmlnIiwiQ09ORklHX0RFVl9ZQU1MIiwicGVuZGluZyIsImZpbHRlciIsImhhc0RhdGFTb3VyY2UiLCJoYXNEYXRhU291cmNlcyIsImFwcGVuZERhdGFTb3VyY2UiLCJhZGRTZWN0aW9uIiwicHJlZml4Iiwic3FsQXBpIiwiTUFJTl9UUyIsInNldERhdGFTb3VyY2VOYW1lIiwiYWRkU2lkZUVmZmVjdEltcG9ydCIsImFkZEVudGl0eSIsImNsYXNzTmFtZSIsImltcG9ydFBhdGgiLCJhZGRSZXBvc2l0b3J5IiwiQVBJX1BBQ0tBR0VfSlNPTiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF5Z0JhQTs7O2VBQUFBOzs7NEJBemdCZTt3QkFDQzswQkFDUjt3QkFDQTt1QkFHWTtrQ0FLMUI7eUJBTXdCO3lCQUNxQjtBQUlwRCwyRkFBMkYsR0FDM0YsTUFBTUMscUJBQXFCO0FBQzNCLE1BQU1DLDBCQUEwQjtBQUNoQyxNQUFNQyxrQkFDTDtBQVFELGdFQUFnRSxHQUNoRSxTQUFTQyxxQkFBcUJDLFNBQTRCLEVBQUVDLEdBQVc7SUFDdEUsSUFBSTtRQUNILE1BQU1DLE1BQU1DLElBQUFBLG9CQUFZLEVBQUNDLElBQUFBLGNBQUksRUFBQ0osVUFBVUssU0FBUyxFQUFFLFNBQVM7UUFDNUQsTUFBTUMsT0FBT0osSUFBSUssS0FBSyxDQUFDLE1BQU1DLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxVQUFVLENBQUMsR0FBR1QsSUFBSSxDQUFDLENBQUM7UUFDL0QsTUFBTVUsUUFBUUwsTUFBTU0sTUFBTVgsSUFBSVksTUFBTSxHQUFHLEdBQUdDO1FBQzFDLE9BQU9ILFNBQVNJO0lBQ2pCLEVBQUUsT0FBTTtRQUNQLE9BQU9B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
@@ -91,5 +91,3 @@ const FinalizeFeature = {
91
91
  scaffold,
92
92
  finalize
93
93
  };
94
-
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvZmluYWxpemUuZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2ludGVyb3BcIjtcbmltcG9ydCB7IGRldGVjdFBhY2thZ2VNYW5hZ2VyLCBwcm9tcHRGb3JQYWNrYWdlTWFuYWdlciB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW50ZXJvcFwiO1xuaW1wb3J0IHsgYXNrLCBjbG9zZVByb21wdCB9IGZyb20gXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnZGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IHdyaXRlV29ya3NwYWNlUmVhZG1lIH0gZnJvbSBcIi4uL3dvcmtzcGFjZS1yZWFkbWUuanNcIjtcbmltcG9ydCB7IGZvcm1hdFNjYWZmb2xkZWRGaWxlcyB9IGZyb20gXCIuL2Jpb21lLWZvcm1hdC5qc1wiO1xuXG5mdW5jdGlvbiByZWFkRXhpc3RpbmdFbnZWYWx1ZSh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLCBrZXk6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgcmF3ID0gcmVhZEZpbGVTeW5jKGpvaW4od29ya3NwYWNlLnRhcmdldERpciwgXCIuZW52XCIpLCBcInV0ZjhcIik7XG5cdFx0Y29uc3QgbGluZSA9IHJhdy5zcGxpdChcIlxcblwiKS5maW5kKChsKSA9PiBsLnN0YXJ0c1dpdGgoYCR7a2V5fT1gKSk7XG5cdFx0Y29uc3QgdmFsdWUgPSBsaW5lPy5zbGljZShrZXkubGVuZ3RoICsgMSkudHJpbSgpO1xuXHRcdHJldHVybiB2YWx1ZSB8fCB1bmRlZmluZWQ7XG5cdH0gY2F0Y2gge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cblxuLy8gU3RhdGUgcmVzb2x2ZWQgZHVyaW5nIHNjYWZmb2xkKCksIGNvbnN1bWVkIGJ5IGZpbmFsaXplKCkuXG5sZXQgX3BtOiBQYWNrYWdlTWFuYWdlciB8IG51bGwgPSBudWxsO1xubGV0IF9zaG91bGRJbnN0YWxsID0gdHJ1ZTtcblxudHlwZSBGaW5hbGl6ZU9wdGlvbnMgPSB7XG5cdGluc3RhbGxEZXBlbmRlbmNpZXM/OiBcInllc1wiIHwgXCJub1wiO1xuXHRhZGQ/OiBib29sZWFuO1xuXHRkYXRhYmFzZVByb3ZpZGVyPzogXCJub25lXCIgfCBcInBvc3RncmVzL3R5cGVvcm1cIjtcblx0YXV0aFByb3ZpZGVyPzogXCJhdXRoMFwiIHwgXCJub25lXCI7XG5cdHBvc3RtYW5Qcm92aWRlcj86IFwiYXBpXCIgfCBcImxvY2FsXCIgfCBcIm5vbmVcIjtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE9wdGlvbnMoXG5cdF93b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRjbGlPcHRpb25zOiBQYXJ0aWFsPEZpbmFsaXplT3B0aW9ucz4sXG4pOiBQcm9taXNlPG9iamVjdD4ge1xuXHRpZiAoY2xpT3B0aW9ucy5pbnN0YWxsRGVwZW5kZW5jaWVzICE9IG51bGwpIHtcblx0XHRfc2hvdWxkSW5zdGFsbCA9IGNsaU9wdGlvbnMuaW5zdGFsbERlcGVuZGVuY2llcyA9PT0gXCJ5ZXNcIjtcblx0fVxuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRvcHRpb25zOiBGaW5hbGl6ZU9wdGlvbnMsXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Ly8gTG9jYWwgc2NhZmZvbGQgZGVmYXVsdCDigJQgcHJvZHVjdGlvbiBkZXBsb3lzIG11c3Qgc2V0IE5PREVfRU5WIGV4cGxpY2l0bHkuXG5cdGNvbnN0IG5vZGVFbnYgPSByZWFkRXhpc3RpbmdFbnZWYWx1ZSh3b3Jrc3BhY2UsIFwiTk9ERV9FTlZcIikgPz8gXCJkZXZcIjtcblx0d29ya3NwYWNlLmdldE1vZGVsPEVudkZpbGU+KFdFTExfS05PV05fRklMRVMuRU5WX0ZJTEUpPy5hZGRFbnRyeShcIk5PREVfRU5WXCIsIG5vZGVFbnYpO1xuXG5cdC8vIER1cmFibGUgZGF5LTIgQ0xJIGV4YW1wbGVzIChhbHNvIHJlZnJlc2hlZCBvbiBgd2ViYXBpIGFkZGApLlxuXHR3cml0ZVdvcmtzcGFjZVJlYWRtZSh3b3Jrc3BhY2UsIG9wdGlvbnMpO1xuXG5cdGlmIChwcm9jZXNzLmVudi5ERUNPSEVSRV9CVUlMREVSID09PSBcIjFcIikge1xuXHRcdF9zaG91bGRJbnN0YWxsID0gZmFsc2U7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdF9wbSA9IGRldGVjdFBhY2thZ2VNYW5hZ2VyKHdvcmtzcGFjZS50YXJnZXREaXIpID8/IChhd2FpdCBwcm9tcHRGb3JQYWNrYWdlTWFuYWdlcigpKTtcblx0aWYgKG9wdGlvbnMuaW5zdGFsbERlcGVuZGVuY2llcyAhPSBudWxsKSB7XG5cdFx0X3Nob3VsZEluc3RhbGwgPSBvcHRpb25zLmluc3RhbGxEZXBlbmRlbmNpZXMgPT09IFwieWVzXCI7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYW5zd2VyID0gYXdhaXQgYXNrKFwiXFxuSW5zdGFsbCBkZXBlbmRlbmNpZXMgbm93PyBbeWVzL25vXSAoeWVzKTogXCIsIFwieWVzXCIpO1xuXHRfc2hvdWxkSW5zdGFsbCA9IGFuc3dlci50b0xvd2VyQ2FzZSgpICE9PSBcIm5vXCI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmFsaXplKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRvcHRpb25zOiBGaW5hbGl6ZU9wdGlvbnMsXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgZm9ybWF0UGF0aHMgPSBvcHRpb25zLmFkZFxuXHRcdD8gd29ya3NwYWNlLmdldFByb2plY3RzKCkubWFwKChwcm9qZWN0KSA9PiBwcm9qZWN0LmRpcilcblx0XHQ6IFtcIi5cIl07XG5cdGZvcm1hdFNjYWZmb2xkZWRGaWxlcyh3b3Jrc3BhY2UudGFyZ2V0RGlyLCBmb3JtYXRQYXRocy5sZW5ndGggPiAwID8gZm9ybWF0UGF0aHMgOiBbXCIuXCJdKTtcblxuXHRpZiAoX3Nob3VsZEluc3RhbGwpIHtcblx0XHRjb25zdCBwbSA9IF9wbSE7XG5cdFx0Y29uc29sZS5sb2coYFxcblNjYWZmb2xkZWQgJHt3b3Jrc3BhY2UubmFtZX0uIEluc3RhbGxpbmcgZGVwZW5kZW5jaWVzLi4uXFxuYCk7XG5cdFx0YXdhaXQgcG0uaW5zdGFsbCh7IGN3ZDogd29ya3NwYWNlLnRhcmdldERpciB9KTtcblx0fVxuXG5cdGNvbnN0IGFwaU5hbWVzID0gd29ya3NwYWNlXG5cdFx0LmdldFByb2plY3RzKClcblx0XHQubWFwKChwcm9qZWN0KSA9PiBwcm9qZWN0LmRpci5yZXBsYWNlKC9ecHJvamVjdHNcXC8vLCBcIlwiKSk7XG5cdGNvbnNvbGUubG9nKGBcXG5Eb25lISAke19zaG91bGRJbnN0YWxsID8gXCJOZXh0XCIgOiBcIlRvIGdldCBzdGFydGVkOlwifSBzdGVwczpcXG5gKTtcblx0aWYgKCFvcHRpb25zLmFkZCkge1xuXHRcdGNvbnNvbGUubG9nKGAgIGNkICR7d29ya3NwYWNlLm5hbWV9YCk7XG5cdH1cblx0aWYgKCFfc2hvdWxkSW5zdGFsbCAmJiBvcHRpb25zLmFkZCkge1xuXHRcdGNvbnN0IHBtTmFtZSA9IF9wbT8ubmFtZSA/PyBcInBucG1cIjtcblx0XHRjb25zb2xlLmxvZyhgICAke3BtTmFtZX0gaW5zdGFsbGApO1xuXHR9XG5cdGlmIChvcHRpb25zLmFkZCAmJiBhcGlOYW1lc1swXSAhPSBudWxsKSB7XG5cdFx0Y29uc29sZS5sb2coYCAgcG5wbSBydW4gc3RhcnQ6JHthcGlOYW1lc1swXX1gKTtcblx0XHRjb25zb2xlLmxvZyhgICBkb2NrZXIgYnVpbGQgLWYgRG9ja2VyZmlsZS4ke2FwaU5hbWVzWzBdfSAuYCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc29sZS5sb2coXCIgIGNvZGUgLiAgICAgICAgICMgb3BlbiBpbiBWUyBDb2RlXCIpO1xuXHRcdGNvbnNvbGUubG9nKFxuXHRcdFx0XCIgICAgICAgICAgICAgICAgICMgdGhlbjogUmVvcGVuIGluIENvbnRhaW5lciAoZmlyc3QgY3JlYXRlIHJ1bnMgcG5wbSBpbnN0YWxsKVxcblwiLFxuXHRcdCk7XG5cdH1cblx0Y29uc29sZS5sb2coXCIgIFNlZSBSRUFETUUubWQgZm9yIENMSSBleGFtcGxlcy5cXG5cIik7XG5cblx0Ly8gRHJvcCByZWFkbGluZSdzIHN0ZGluIGhvbGQgc28gdGhlIENMSSAvIGNvbnRhaW5lciBjYW4gZXhpdC5cblx0Y2xvc2VQcm9tcHQoKTtcbn1cblxuZXhwb3J0IGNvbnN0IEZpbmFsaXplRmVhdHVyZTogRmVhdHVyZSA9IHsgZ2V0T3B0aW9ucywgc2NhZmZvbGQsIGZpbmFsaXplIH07XG4iXSwibmFtZXMiOlsiRmluYWxpemVGZWF0dXJlIiwicmVhZEV4aXN0aW5nRW52VmFsdWUiLCJ3b3Jrc3BhY2UiLCJrZXkiLCJyYXciLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwidGFyZ2V0RGlyIiwibGluZSIsInNwbGl0IiwiZmluZCIsImwiLCJzdGFydHNXaXRoIiwidmFsdWUiLCJzbGljZSIsImxlbmd0aCIsInRyaW0iLCJ1bmRlZmluZWQiLCJfcG0iLCJfc2hvdWxkSW5zdGFsbCIsImdldE9wdGlvbnMiLCJfd29ya3NwYWNlIiwiY2xpT3B0aW9ucyIsImluc3RhbGxEZXBlbmRlbmNpZXMiLCJzY2FmZm9sZCIsIm9wdGlvbnMiLCJub2RlRW52IiwiZ2V0TW9kZWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiRU5WX0ZJTEUiLCJhZGRFbnRyeSIsIndyaXRlV29ya3NwYWNlUmVhZG1lIiwicHJvY2VzcyIsImVudiIsIkRFQ09IRVJFX0JVSUxERVIiLCJkZXRlY3RQYWNrYWdlTWFuYWdlciIsInByb21wdEZvclBhY2thZ2VNYW5hZ2VyIiwiYW5zd2VyIiwiYXNrIiwidG9Mb3dlckNhc2UiLCJmaW5hbGl6ZSIsImZvcm1hdFBhdGhzIiwiYWRkIiwiZ2V0UHJvamVjdHMiLCJtYXAiLCJwcm9qZWN0IiwiZGlyIiwiZm9ybWF0U2NhZmZvbGRlZEZpbGVzIiwicG0iLCJjb25zb2xlIiwibG9nIiwibmFtZSIsImluc3RhbGwiLCJjd2QiLCJhcGlOYW1lcyIsInJlcGxhY2UiLCJwbU5hbWUiLCJjbG9zZVByb21wdCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkErR2FBOzs7ZUFBQUE7Ozt3QkEvR2dCOzBCQUNSO3lCQUV5Qzt3QkFDN0I7dUJBQ0E7aUNBSUk7NkJBQ0M7QUFFdEMsU0FBU0MscUJBQXFCQyxTQUE0QixFQUFFQyxHQUFXO0lBQ3RFLElBQUk7UUFDSCxNQUFNQyxNQUFNQyxJQUFBQSxvQkFBWSxFQUFDQyxJQUFBQSxjQUFJLEVBQUNKLFVBQVVLLFNBQVMsRUFBRSxTQUFTO1FBQzVELE1BQU1DLE9BQU9KLElBQUlLLEtBQUssQ0FBQyxNQUFNQyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsVUFBVSxDQUFDLEdBQUdULElBQUksQ0FBQyxDQUFDO1FBQy9ELE1BQU1VLFFBQVFMLE1BQU1NLE1BQU1YLElBQUlZLE1BQU0sR0FBRyxHQUFHQztRQUMxQyxPQUFPSCxTQUFTSTtJQUNqQixFQUFFLE9BQU07UUFDUCxPQUFPQTtJQUNSO0FBQ0Q7QUFFQSw0REFB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
@@ -320,5 +320,3 @@ const PostmanFeature = {
320
320
  getOptions,
321
321
  scaffold
322
322
  };
323
-
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvZmVhdHVyZXMvcG9zdG1hbi5mZWF0dXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGljayB9IGZyb20gXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgQXV0aENvbmZpZ01vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLWNvbmZpZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgYnVpbGRIZWxsb09wZW5BcGlEb2N1bWVudCB9IGZyb20gXCIuLi9wb3N0bWFuL2hlbGxvLW9wZW5hcGkuanNcIjtcbmltcG9ydCB7XG5cdGJ1aWxkRW52aXJvbm1lbnRZYW1sLFxuXHRidWlsZExvY2FsVmlld0ZpbGVzRnJvbUNvbGxlY3Rpb24sXG59IGZyb20gXCIuLi9wb3N0bWFuL2xvY2FsLXZpZXcuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQXV0aDBFbnYsXG5cdGFwcGx5UG9zdG1hbkF1dGhPdmVybGF5LFxuXHRvcGVuQXBpVG9Qb3N0bWFuQ29sbGVjdGlvbixcbn0gZnJvbSBcIi4uL3Bvc3RtYW4vb3BlbmFwaS10by1wb3N0bWFuLmpzXCI7XG5pbXBvcnQgKiBhcyBhdXRoMENsaSBmcm9tIFwiLi9hdXRoMC1jbGkuanNcIjtcblxuLyoqIFBvc3RtYW4gT0F1dGggY2FsbGJhY2sgVVJMcyAocG9wdXAgKyBcIkF1dGhvcml6ZSB1c2luZyBicm93c2VyXCIpLiAqL1xuY29uc3QgUE9TVE1BTl9DQUxMQkFDS1MgPSBbXG5cdFwiaHR0cHM6Ly9vYXV0aC5wc3Rtbi5pby92MS9jYWxsYmFja1wiLFxuXHRcImh0dHBzOi8vb2F1dGgucHN0bW4uaW8vdjEvYnJvd3Nlci1jYWxsYmFja1wiLFxuXSBhcyBjb25zdDtcblxuLyoqIFNjb3BlcyByZXF1ZXN0ZWQgZm9yIEF1dGgwIGFjY2VzcyB0b2tlbnMgKE9JREMgKyBIZWxsbyBDQVNMIHBlcm1pc3Npb25zKS4gKi9cbmNvbnN0IFBPU1RNQU5fU0NPUEVTID0gW1xuXHRcIm9wZW5pZFwiLFxuXHRcInByb2ZpbGVcIixcblx0XCJlbWFpbFwiLFxuXHRcInJlYWQ6SGVsbG9cIixcblx0XCJjcmVhdGU6SGVsbG9cIixcblx0XCJ1cGRhdGU6SGVsbG9cIixcblx0XCJkZWxldGU6SGVsbG9cIixcbl0uam9pbihcIiBcIik7XG5cbmNvbnN0IENPTExFQ1RJT05fREVTQ1JJUFRJT04gPVxuXHRcIk9wZW4gdGhlIHByb2plY3Qgcm9vdCBpbiBQb3N0bWFuIExvY2FsIFZpZXcgKG5vdCB0aGUgcG9zdG1hbi8gZm9sZGVyKS4gXCIgK1xuXHRcIlNlbGVjdCB0aGUgTG9jYWwgZW52aXJvbm1lbnQsIHRoZW4gQXV0aG9yaXphdGlvbiDihpIgR2V0IE5ldyBBY2Nlc3MgVG9rZW4gKFBLQ0UpLiBcIiArXG5cdFwiUm91dGVzIGFyZSBnZW5lcmF0ZWQgZnJvbSBPcGVuQVBJOyBBdXRoMCBvdmVybGF5IGlzIGhhbmQtYXV0aG9yZWQuXCI7XG5cbmV4cG9ydCB0eXBlIFBvc3RtYW5PcHRpb25zID0ge1xuXHRwb3N0bWFuUHJvdmlkZXI/OiBcImFwaVwiIHwgXCJsb2NhbFwiIHwgXCJub25lXCI7XG5cdGFwaUtleT86IHN0cmluZztcblx0d29ya3NwYWNlSWQ/OiBzdHJpbmc7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRPcHRpb25zKFxuXHRfd29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogUGFydGlhbDxQb3N0bWFuT3B0aW9ucz4sXG4pOiBQcm9taXNlPFBhcnRpYWw8UG9zdG1hbk9wdGlvbnM+PiB7XG5cdGlmIChjbGlPcHRpb25zLnBvc3RtYW5Qcm92aWRlciAhPSBudWxsKSByZXR1cm4ge307XG5cblx0Y29uc3QgY2hvaWNlcyA9IFtcblx0XHR7IGxhYmVsOiBcIm5vbmVcIiBhcyBjb25zdCwgZGVzY3JpcHRpb246IFwic2tpcFwiIH0sXG5cdFx0e1xuXHRcdFx0bGFiZWw6IFwibG9jYWxcIiBhcyBjb25zdCxcblx0XHRcdGRlc2NyaXB0aW9uOiBcIkxvY2FsIFZpZXcgLyBOYXRpdmUgR2l0IGZpbGVzIChubyBBUEkga2V5KVwiLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bGFiZWw6IFwiYXBpXCIgYXMgY29uc3QsXG5cdFx0XHRkZXNjcmlwdGlvbjogXCJhbHNvIHVwbG9hZCB0byBQb3N0bWFuLmNvbSAobmVlZHMgQVBJIGtleSlcIixcblx0XHR9LFxuXHRdO1xuXHRjb25zdCBzZWxlY3RlZCA9IGF3YWl0IHBpY2soXG5cdFx0XCJcXG4gIFBvc3RtYW46IFwiLFxuXHRcdGNob2ljZXMsXG5cdFx0KGMpID0+IGAke2MubGFiZWx9IOKAlCAke2MuZGVzY3JpcHRpb259YCxcblx0KTtcblx0Y29uc3QgcHJvdmlkZXIgPSBzZWxlY3RlZD8ubGFiZWwgPz8gXCJub25lXCI7XG5cblx0aWYgKHByb3ZpZGVyID09PSBcIm5vbmVcIikgcmV0dXJuIHsgcG9zdG1hblByb3ZpZGVyOiBcIm5vbmVcIiB9O1xuXHRpZiAocHJvdmlkZXIgPT09IFwibG9jYWxcIikgcmV0dXJuIHsgcG9zdG1hblByb3ZpZGVyOiBcImxvY2FsXCIgfTtcblxuXHRjb25zdCBhcGlLZXkgPVxuXHRcdHByb2Nlc3MuZW52LlBPU1RNQU5fQVBJX0tFWSA/P1xuXHRcdChhd2FpdCBpbXBvcnQoXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCIpLnRoZW4oKG0pID0+XG5cdFx0XHRtLmFzayhcIlxcbiAgUG9zdG1hbiBBUEkga2V5IChhcHAuZ2V0cG9zdG1hbi5jb20vc2V0dGluZ3MvbWUvYXBpLWtleXMpOiBcIiksXG5cdFx0KSk7XG5cblx0Y29uc3QgaGVhZGVycyA9IHsgXCJYLUFwaS1LZXlcIjogYXBpS2V5LCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXHRjb25zdCB3c1JlcyA9IGF3YWl0IGZldGNoKFwiaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vd29ya3NwYWNlc1wiLCB7IGhlYWRlcnMgfSk7XG5cblx0aWYgKCF3c1Jlcy5vaykge1xuXHRcdGNvbnNvbGUuZXJyb3IoXCJcXG4gIFBvc3RtYW4gQVBJIGtleSBpbnZhbGlkIOKAlCBmYWxsaW5nIGJhY2sgdG8gbG9jYWwgZmlsZXMuXCIpO1xuXHRcdHJldHVybiB7IHBvc3RtYW5Qcm92aWRlcjogXCJsb2NhbFwiIH07XG5cdH1cblxuXHRjb25zdCB7IHdvcmtzcGFjZXMgfSA9IChhd2FpdCB3c1Jlcy5qc29uKCkpIGFzIHtcblx0XHR3b3Jrc3BhY2VzOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nIH0+O1xuXHR9O1xuXG5cdHR5cGUgV3NDaG9pY2UgPSB7IGxhYmVsOiBzdHJpbmc7IGlkOiBzdHJpbmcgfCBudWxsIH07XG5cdGNvbnN0IHdzQ2hvaWNlczogV3NDaG9pY2VbXSA9IFtcblx0XHR7IGxhYmVsOiBcIjxuZXcgd29ya3NwYWNlPlwiLCBpZDogbnVsbCB9LFxuXHRcdC4uLndvcmtzcGFjZXMubWFwKCh3KSA9PiAoeyBsYWJlbDogYCR7dy5uYW1lfSAoJHt3LnR5cGV9KWAsIGlkOiB3LmlkIH0pKSxcblx0XTtcblxuXHRjb25zdCB3c1BpY2tlZCA9IGF3YWl0IHBpY2soXCJcXG4gIFBvc3RtYW4gd29ya3NwYWNlOiBcIiwgd3NDaG9pY2VzLCAoYykgPT4gYy5sYWJlbCk7XG5cblx0bGV0IHdvcmtzcGFjZUlkOiBzdHJpbmc7XG5cdGlmICghd3NQaWNrZWQgfHwgd3NQaWNrZWQuaWQgPT09IG51bGwpIHtcblx0XHRjb25zdCB7IGFzayB9ID0gYXdhaXQgaW1wb3J0KFwiLi4vLi4vZG9tYWluL3Byb21wdC5qc1wiKTtcblx0XHRjb25zdCB3c05hbWUgPSBhd2FpdCBhc2soYCAgV29ya3NwYWNlIG5hbWU6IGApO1xuXHRcdGNvbnN0IGNyZWF0ZVJlcyA9IGF3YWl0IGZldGNoKFwiaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vd29ya3NwYWNlc1wiLCB7XG5cdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0aGVhZGVycyxcblx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgd29ya3NwYWNlOiB7IG5hbWU6IHdzTmFtZSwgdHlwZTogXCJwZXJzb25hbFwiIH0gfSksXG5cdFx0fSk7XG5cdFx0Y29uc3QgeyB3b3Jrc3BhY2U6IHdzIH0gPSAoYXdhaXQgY3JlYXRlUmVzLmpzb24oKSkgYXMgeyB3b3Jrc3BhY2U6IHsgaWQ6IHN0cmluZyB9IH07XG5cdFx0d29ya3NwYWNlSWQgPSB3cy5pZDtcblx0XHRjb25zb2xlLmxvZyhgICDinJMgV29ya3NwYWNlIGNyZWF0ZWQ6ICR7d3NOYW1lfWApO1xuXHR9IGVsc2Uge1xuXHRcdHdvcmtzcGFjZUlkID0gd3NQaWNrZWQuaWQ7XG5cdH1cblxuXHRyZXR1cm4geyBwb3N0bWFuUHJvdmlkZXI6IFwiYXBpXCIsIGFwaUtleSwgd29ya3NwYWNlSWQgfTtcbn1cblxuLyoqIEJ1aWxkIFBvc3RtYW4gY29sbGVjdGlvbjogT3BlbkFQSSByb3V0ZXMgKyBBdXRoMCBhdXRoIG92ZXJsYXkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRIeWJyaWRQb3N0bWFuQ29sbGVjdGlvbihwcm9qZWN0TmFtZTogc3RyaW5nLCBhdXRoPzogQXV0aDBFbnYpIHtcblx0Y29uc3Qgb3BlbmFwaSA9IGJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQocHJvamVjdE5hbWUpO1xuXHRjb25zdCBiYXNlID0gYXdhaXQgb3BlbkFwaVRvUG9zdG1hbkNvbGxlY3Rpb24ob3BlbmFwaSk7XG5cdGlmIChiYXNlLmluZm8uX3Bvc3RtYW5faWQgPT0gbnVsbCkge1xuXHRcdGJhc2UuaW5mby5fcG9zdG1hbl9pZCA9IHJhbmRvbVVVSUQoKTtcblx0fVxuXHRyZXR1cm4gYXBwbHlQb3N0bWFuQXV0aE92ZXJsYXkoYmFzZSwgcHJvamVjdE5hbWUsIGF1dGgsIHtcblx0XHRjYWxsYmFja3M6IFBPU1RNQU5fQ0FMTEJBQ0tTLFxuXHRcdHNjb3BlczogUE9TVE1BTl9TQ09QRVMsXG5cdFx0ZGVzY3JpcHRpb246IENPTExFQ1RJT05fREVTQ1JJUFRJT04sXG5cdH0pO1xufVxuXG4vKiogUmVhZCBhIHByZXZpb3VzbHkgc2NhZmZvbGRlZCBhdXRoMENsaWVudElkIHNvIHJlLXNjYWZmb2xkIG5ldmVyIGJsYW5rcyBpdC4gKi9cbmZ1bmN0aW9uIHJlYWRFeGlzdGluZ1NwYUNsaWVudElkKHRhcmdldERpcjogc3RyaW5nLCBwcm9qZWN0TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgZW52UGF0aCA9IGpvaW4oXG5cdFx0dGFyZ2V0RGlyLFxuXHRcdFwicG9zdG1hbi9lbnZpcm9ubWVudHNcIixcblx0XHRgJHtwcm9qZWN0TmFtZX0tTG9jYWwuZW52aXJvbm1lbnQueWFtbGAsXG5cdCk7XG5cdGlmICghZXhpc3RzU3luYyhlbnZQYXRoKSkgcmV0dXJuIHVuZGVmaW5lZDtcblx0Y29uc3QgdGV4dCA9IHJlYWRGaWxlU3luYyhlbnZQYXRoLCBcInV0ZjhcIik7XG5cdGNvbnN0IG1hdGNoID0gdGV4dC5tYXRjaCgva2V5OlxccyphdXRoMENsaWVudElkXFxzKlxcblxccyp2YWx1ZTpcXHMqW1wiJ10/KFteXCInXFxuXSspLyk7XG5cdGNvbnN0IHZhbHVlID0gbWF0Y2g/LlsxXT8udHJpbSgpO1xuXHRyZXR1cm4gdmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIFBvc3RtYW4gU1BBIGNsaWVudCBpZC4gTmV2ZXIgcmV0dXJucyBlbXB0eSDigJQgcHJlc2VydmVzIGFuIGV4aXN0aW5nXG4gKiBlbnYgdmFsdWUgb24gQXV0aDAgZmFpbHVyZSwgb3RoZXJ3aXNlIHRocm93cyBzbyB3ZSBkbyBub3Qgd3JpdGUgYSBibGFuayBlbnYuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTcGFDbGllbnRJZCh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkKTogc3RyaW5nIHtcblx0Y29uc3QgYXBwTmFtZSA9IGAke3dvcmtzcGFjZS5uYW1lfSBQb3N0bWFuYDtcblx0dHJ5IHtcblx0XHRjb25zdCBhcHAgPSBhdXRoMENsaS5lbnN1cmVTcGFBcHAoYXBwTmFtZSwgWy4uLlBPU1RNQU5fQ0FMTEJBQ0tTXSk7XG5cdFx0Y29uc29sZS5sb2coXG5cdFx0XHRhcHAucmV1c2VkXG5cdFx0XHRcdD8gYCAg4pyTIFJldXNpbmcgQXV0aDAgU1BBIGFwcCBmb3IgUG9zdG1hbiBQS0NFICgke2FwcC5jbGllbnRfaWR9KWBcblx0XHRcdFx0OiBgICDinJMgQXV0aDAgU1BBIGFwcCBjcmVhdGVkIGZvciBQb3N0bWFuIFBLQ0UgKCR7YXBwLmNsaWVudF9pZH0pYCxcblx0XHQpO1xuXHRcdHRyeSB7XG5cdFx0XHRhdXRoMENsaS5lbmFibGVDb25uZWN0aW9uRm9yQ2xpZW50KGF1dGgwQ2xpLkRCX0NPTk5FQ1RJT05fTkFNRSwgYXBwLmNsaWVudF9pZCk7XG5cdFx0XHRjb25zb2xlLmxvZyhgICDinJMgRW5hYmxlZCAke2F1dGgwQ2xpLkRCX0NPTk5FQ1RJT05fTkFNRX0gb24gUG9zdG1hbiBTUEFgKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGAgIOKclyBGYWlsZWQgdG8gZW5hYmxlIERCIGNvbm5lY3Rpb24gb24gU1BBOiAke2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBhcHAuY2xpZW50X2lkO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRjb25zdCBleGlzdGluZyA9IHJlYWRFeGlzdGluZ1NwYUNsaWVudElkKHdvcmtzcGFjZS50YXJnZXREaXIsIHdvcmtzcGFjZS5uYW1lKTtcblx0XHRpZiAoZXhpc3RpbmcpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGAgIOKclyBGYWlsZWQgdG8gZW5zdXJlIEF1dGgwIFNQQSBhcHAgKCR7ZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IGVycn0pYCxcblx0XHRcdCk7XG5cdFx0XHRjb25zb2xlLmxvZyhgICDinJMgS2VlcGluZyBleGlzdGluZyBhdXRoMENsaWVudElkIGZyb20gUG9zdG1hbiBlbnZpcm9ubWVudCAoJHtleGlzdGluZ30pYCk7XG5cdFx0XHRyZXR1cm4gZXhpc3Rpbmc7XG5cdFx0fVxuXHRcdGNvbnN0IGRldGFpbCA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcblx0XHQvLyBFbnRpdHktbGltaXQgbWVzc2FnZXMgYXJlIGFscmVhZHkgYWN0aW9uYWJsZTsgYXZvaWQgYnVyeWluZyB0aGVtLlxuXHRcdGlmIChhdXRoMENsaS5pc0F1dGgwRW50aXR5TGltaXRFcnJvcihlcnIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZGV0YWlsKTtcblx0XHR9XG5cdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0YEZhaWxlZCB0byBlbnN1cmUgQXV0aDAgU1BBIGFwcCBmb3IgUG9zdG1hbiDigJQgYXV0aDBDbGllbnRJZCB3b3VsZCBiZSBlbXB0eTogJHtkZXRhaWx9YCxcblx0XHQpO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IFBvc3RtYW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChvcHRpb25zLnBvc3RtYW5Qcm92aWRlciA9PT0gXCJub25lXCIgfHwgb3B0aW9ucy5wb3N0bWFuUHJvdmlkZXIgPT0gbnVsbCkgcmV0dXJuO1xuXG5cdGNvbnN0IGF1dGhDb25maWdNb2RlbCA9IHdvcmtzcGFjZS5nZXRNb2RlbDxBdXRoQ29uZmlnTW9kZWw+KFdFTExfS05PV05fRklMRVMuQVVUSF9DT05GSUcpO1xuXHRjb25zdCBhdXRoQ2ZnID0gYXV0aENvbmZpZ01vZGVsPy5jb25maWc7XG5cblx0Y29uc3Qgc3BhQ2xpZW50SWQgPSBhdXRoQ2ZnPy5pc3N1ZXJCYXNlVXJsID8gcmVzb2x2ZVNwYUNsaWVudElkKHdvcmtzcGFjZSkgOiB1bmRlZmluZWQ7XG5cblx0Y29uc3QgYXV0aDBFbnY6IEF1dGgwRW52IHwgdW5kZWZpbmVkID0gYXV0aENmZz8uaXNzdWVyQmFzZVVybFxuXHRcdD8ge1xuXHRcdFx0XHRhdXRoMERvbWFpbjogYXV0aENmZy5pc3N1ZXJCYXNlVXJsLnJlcGxhY2UoL15odHRwcz86XFwvXFwvLywgXCJcIiksXG5cdFx0XHRcdGF1dGgwQXVkaWVuY2U6IGF1dGhDZmcuYXVkaWVuY2UsXG5cdFx0XHRcdGF1dGgwQ2xpZW50SWQ6IHNwYUNsaWVudElkLFxuXHRcdFx0fVxuXHRcdDogdW5kZWZpbmVkO1xuXG5cdGNvbnN0IHByb2plY3ROYW1lID0gd29ya3NwYWNlLm5hbWU7XG5cdGNvbnN0IGVudk5hbWUgPSBgJHtwcm9qZWN0TmFtZX0gTG9jYWxgO1xuXHRjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgYnVpbGRIeWJyaWRQb3N0bWFuQ29sbGVjdGlvbihwcm9qZWN0TmFtZSwgYXV0aDBFbnYpO1xuXHRjb25zdCBsb2NhbEZpbGVzID0gYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uKGNvbGxlY3Rpb24sIHByb2plY3ROYW1lLCBhdXRoMEVudiwge1xuXHRcdGNhbGxiYWNrczogUE9TVE1BTl9DQUxMQkFDS1MsXG5cdFx0c2NvcGVzOiBQT1NUTUFOX1NDT1BFUyxcblx0fSk7XG5cdGNvbnN0IGVudllhbWwgPSBidWlsZEVudmlyb25tZW50WWFtbChlbnZOYW1lLCBhdXRoMEVudiwge1xuXHRcdGNhbGxiYWNrczogUE9TVE1BTl9DQUxMQkFDS1MsXG5cdFx0c2NvcGVzOiBQT1NUTUFOX1NDT1BFUyxcblx0fSk7XG5cblx0d29ya3NwYWNlLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5wb3N0bWFuL3Jlc291cmNlcy55YW1sXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFtcblx0XHRcdFx0XHRcIiMgT3BlbiB0aGlzIHByb2plY3Qgcm9vdCBpbiBQb3N0bWFuIChGaWxlcyDihpIgT3BlbiBmb2xkZXIpLCBub3QgdGhlIHBvc3RtYW4vIHN1YmZvbGRlci5cIixcblx0XHRcdFx0XHRcIiMgUG9zdG1hbiBmaWxscyB3b3Jrc3BhY2UuaWQgd2hlbiB5b3UgY29ubmVjdCBMb2NhbCBWaWV3LlwiLFxuXHRcdFx0XHRcdFwiI1wiLFxuXHRcdFx0XHRcdFwiIyBBbGwgcmVzb3VyY2VzIHVuZGVyIHBvc3RtYW4vIGFyZSByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkuXCIsXG5cdFx0XHRcdFx0XCIjIFJvdXRlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQgZnJvbSBPcGVuQVBJOyBBdXRoMCBvdmVybGF5IGlzIGhhbmQtYXV0aG9yZWQuXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XS5qb2luKFwiXFxuXCIpLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IGBwb3N0bWFuL2Vudmlyb25tZW50cy8ke3Byb2plY3ROYW1lfS1Mb2NhbC5lbnZpcm9ubWVudC55YW1sYCxcblx0XHRcdFx0Y29udGVudDogZW52WWFtbCxcblx0XHRcdH0sXG5cdFx0XHQuLi5sb2NhbEZpbGVzLFxuXHRcdF0sXG5cdH0pO1xuXG5cdGlmIChvcHRpb25zLnBvc3RtYW5Qcm92aWRlciA9PT0gXCJhcGlcIiAmJiBvcHRpb25zLmFwaUtleSkge1xuXHRcdGNvbnN0IGhlYWRlcnMgPSB7IFwiWC1BcGktS2V5XCI6IG9wdGlvbnMuYXBpS2V5LCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9O1xuXG5cdFx0Y29uc3QgY29sUmVzID0gYXdhaXQgZmV0Y2goXG5cdFx0XHRgaHR0cHM6Ly9hcGkuZ2V0cG9zdG1hbi5jb20vY29sbGVjdGlvbnM/d29ya3NwYWNlPSR7b3B0aW9ucy53b3Jrc3BhY2VJZH1gLFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0XHRoZWFkZXJzLFxuXHRcdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7IGNvbGxlY3Rpb24gfSksXG5cdFx0XHR9LFxuXHRcdCk7XG5cdFx0aWYgKGNvbFJlcy5vaykge1xuXHRcdFx0Y29uc29sZS5sb2coXCIgIOKckyBQb3N0bWFuIGNvbGxlY3Rpb24gdXBsb2FkZWRcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXCIgIOKclyBGYWlsZWQgdG8gdXBsb2FkIFBvc3RtYW4gY29sbGVjdGlvblwiKTtcblx0XHR9XG5cblx0XHRjb25zdCBlbnZWYWx1ZXMgPSBbXG5cdFx0XHR7IGtleTogXCJiYXNlVXJsXCIsIHZhbHVlOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLCBlbmFibGVkOiB0cnVlIH0sXG5cdFx0XHQuLi4oYXV0aDBFbnY/LmF1dGgwRG9tYWluXG5cdFx0XHRcdD8gW1xuXHRcdFx0XHRcdFx0eyBrZXk6IFwiYXV0aDBEb21haW5cIiwgdmFsdWU6IGF1dGgwRW52LmF1dGgwRG9tYWluLCBlbmFibGVkOiB0cnVlIH0sXG5cdFx0XHRcdFx0XHR7IGtleTogXCJhdXRoMEF1ZGllbmNlXCIsIHZhbHVlOiBhdXRoMEVudi5hdXRoMEF1ZGllbmNlID8/IFwiXCIsIGVuYWJsZWQ6IHRydWUgfSxcblx0XHRcdFx0XHRcdHsga2V5OiBcImF1dGgwQ2xpZW50SWRcIiwgdmFsdWU6IGF1dGgwRW52LmF1dGgwQ2xpZW50SWQgPz8gXCJcIiwgZW5hYmxlZDogdHJ1ZSB9LFxuXHRcdFx0XHRcdF1cblx0XHRcdFx0OiBbXSksXG5cdFx0XTtcblx0XHRjb25zdCBlbnZSZXMgPSBhd2FpdCBmZXRjaChcblx0XHRcdGBodHRwczovL2FwaS5nZXRwb3N0bWFuLmNvbS9lbnZpcm9ubWVudHM/d29ya3NwYWNlPSR7b3B0aW9ucy53b3Jrc3BhY2VJZH1gLFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxuXHRcdFx0XHRoZWFkZXJzLFxuXHRcdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeSh7XG5cdFx0XHRcdFx0ZW52aXJvbm1lbnQ6IHsgbmFtZTogZW52TmFtZSwgdmFsdWVzOiBlbnZWYWx1ZXMgfSxcblx0XHRcdFx0fSksXG5cdFx0XHR9LFxuXHRcdCk7XG5cdFx0aWYgKGVudlJlcy5vaykge1xuXHRcdFx0Y29uc29sZS5sb2coXCIgIOKckyBQb3N0bWFuIGVudmlyb25tZW50IHVwbG9hZGVkXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFwiICDinJcgRmFpbGVkIHRvIHVwbG9hZCBQb3N0bWFuIGVudmlyb25tZW50XCIpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY29uc3QgUG9zdG1hbkZlYXR1cmU6IEZlYXR1cmU8UG9zdG1hbk9wdGlvbnM+ID0geyBnZXRPcHRpb25zLCBzY2FmZm9sZCB9O1xuZXhwb3J0IHsgYnVpbGRIZWxsb09wZW5BcGlEb2N1bWVudCB9IGZyb20gXCIuLi9wb3N0bWFuL2hlbGxvLW9wZW5hcGkuanNcIjtcbmV4cG9ydCB7IFBPU1RNQU5fQ0FMTEJBQ0tTLCBQT1NUTUFOX1NDT1BFUyB9O1xuIl0sIm5hbWVzIjpbIlBPU1RNQU5fQ0FMTEJBQ0tTIiwiUE9TVE1BTl9TQ09QRVMiLCJQb3N0bWFuRmVhdHVyZSIsImJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQiLCJidWlsZEh5YnJpZFBvc3RtYW5Db2xsZWN0aW9uIiwiam9pbiIsIkNPTExFQ1RJT05fREVTQ1JJUFRJT04iLCJnZXRPcHRpb25zIiwiX3dvcmtzcGFjZSIsImNsaU9wdGlvbnMiLCJwb3N0bWFuUHJvdmlkZXIiLCJjaG9pY2VzIiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsInNlbGVjdGVkIiwicGljayIsImMiLCJwcm92aWRlciIsImFwaUtleSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUTUFOX0FQSV9LRVkiLCJ0aGVuIiwibSIsImFzayIsImhlYWRlcnMiLCJ3c1JlcyIsImZldGNoIiwib2siLCJjb25zb2xlIiwiZXJyb3IiLCJ3b3Jrc3BhY2VzIiwianNvbiIsIndzQ2hvaWNlcyIsImlkIiwibWFwIiwidyIsIm5hbWUiLCJ0eXBlIiwid3NQaWNrZWQiLCJ3b3Jrc3BhY2VJZCIsIndzTmFtZSIsImNyZWF0ZVJlcyIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwid29ya3NwYWNlIiwid3MiLCJsb2ciLCJwcm9qZWN0TmFtZSIsImF1dGgiLCJvcGVuYXBpIiwiYmFzZSIsIm9wZW5BcGlUb1Bvc3RtYW5Db2xsZWN0aW9uIiwiaW5mbyIsIl9wb3N0bWFuX2lkIiwicmFuZG9tVVVJRCIsImFwcGx5UG9zdG1hbkF1dGhPdmVybGF5IiwiY2FsbGJhY2tzIiwic2NvcGVzIiwicmVhZEV4aXN0aW5nU3BhQ2xpZW50SWQiLCJ0YXJnZXREaXIiLCJlbnZQYXRoIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsInRleHQiLCJyZWFkRmlsZVN5bmMiLCJtYXRjaCIsInZhbHVlIiwidHJpbSIsImxlbmd0aCIsInJlc29sdmVTcGFDbGllbnRJZCIsImFwcE5hbWUiLCJhcHAiLCJhdXRoMENsaSIsImVuc3VyZVNwYUFwcCIsInJldXNlZCIsImNsaWVudF9pZCIsImVuYWJsZUNvbm5lY3Rpb25Gb3JDbGllbnQiLCJEQl9DT05ORUNUSU9OX05BTUUiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiLCJleGlzdGluZyIsImRldGFpbCIsIlN0cmluZyIsImlzQXV0aDBFbnRpdHlMaW1pdEVycm9yIiwic2NhZmZvbGQiLCJvcHRpb25zIiwiYXV0aENvbmZpZ01vZGVsIiwiZ2V0TW9kZWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQVVUSF9DT05GSUciLCJhdXRoQ2ZnIiwiY29uZmlnIiwic3BhQ2xpZW50SWQiLCJpc3N1ZXJCYXNlVXJsIiwiYXV0aDBFbnYiLCJhdXRoMERvbWFpbiIsInJlcGxhY2UiLCJhdXRoMEF1ZGllbmNlIiwiYXVkaWVuY2UiLCJhdXRoMENsaWVudElkIiwiZW52TmFtZSIsImNvbGxlY3Rpb24iLCJsb2NhbEZpbGVzIiwiYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uIiwiZW52WWFtbCIsImJ1aWxkRW52aXJvbm1lbnRZYW1sIiwiYWRkRmlsZSIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiY29sUmVzIiwiZW52VmFsdWVzIiwia2V5IiwiZW5hYmxlZCIsImVudlJlcyIsImVudmlyb25tZW50IiwidmFsdWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQThSU0E7ZUFBQUE7O1FBQW1CQztlQUFBQTs7UUFGZkM7ZUFBQUE7O1FBQ0pDO2VBQUFBLHVDQUF5Qjs7UUFwS1pDO2VBQUFBOzs7NEJBekhLO3dCQUNjOzBCQUNwQjt3QkFDQTt1QkFDWTs4QkFJUzsyQkFJbkM7a0NBS0E7a0VBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIscUVBQXFFLEdBQ3JFLE1BQU1KLG9CQUFvQjtJQUN6QjtJQUNBO0NBQ0E7QUFFRCw4RUFBOEUsR0FDOUUsTUFBTUMsaUJBQWlCO0lBQ3RCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0EsQ0FBQ0ksSUFBSSxDQUFDO0FBRVAsTUFBTUMseUJBQ0wsNEVBQ0EscUZBQ0E7QUFRRCxlQUFlQyxXQUNkQyxVQUE2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
@@ -56,5 +56,3 @@ class ApiPackageJson {
56
56
  ];
57
57
  }
58
58
  }
59
-
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2FwaS1wYWNrYWdlLWpzb24ubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB7IHNvcnRTdHJpbmdNYXAgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb3VyY2UtZmlsZS5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vdmVyc2lvbi5qc1wiO1xuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIGBwcm9qZWN0cy88YXBpPi9wYWNrYWdlLmpzb25gLlxuICpcbiAqIFN0YXJ0cyB3aXRoIHRoZSBjb3JlIGNvcnRleCArIGNydWNpYmxlIGRlcHMuIEZlYXR1cmVzIGNhbiBjYWxsXG4gKiBgYWRkRGVwZW5kZW5jeWAgLyBgYWRkRGV2RGVwZW5kZW5jeWAgdG8gZXh0ZW5kLlxuICovXG5leHBvcnQgY2xhc3MgQXBpUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuQVBJX1BBQ0tBR0VfSlNPTjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHByaXZhdGUgcmVhZG9ubHkgX2RldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZU5hbWU6IHN0cmluZyxcblx0XHRwcml2YXRlIHJlYWRvbmx5IGFwaU5hbWUgPSBcImFwaVwiLFxuXHQpIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFkZERlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZERldkRlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgcGtnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcblx0XHRcdG5hbWU6IGBAJHt0aGlzLndvcmtzcGFjZU5hbWV9LyR7dGhpcy5hcGlOYW1lfWAsXG5cdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHRwcml2YXRlOiB0cnVlLFxuXHRcdFx0dHlwZTogXCJtb2R1bGVcIixcblx0XHRcdG1haW46IFwic3JjL21haW4udHNcIixcblx0XHRcdHNjcmlwdHM6IHtcblx0XHRcdFx0bGludDogXCJiaW9tZSBjaGVjayAtLXdyaXRlIC5cIixcblx0XHRcdH0sXG5cdFx0XHRkZXBlbmRlbmNpZXM6IHNvcnRTdHJpbmdNYXAodGhpcy5fZGVwZW5kZW5jaWVzKSxcblx0XHR9O1xuXHRcdGlmIChPYmplY3Qua2V5cyh0aGlzLl9kZXZEZXBlbmRlbmNpZXMpLmxlbmd0aCA+IDApIHtcblx0XHRcdHBrZy5kZXZEZXBlbmRlbmNpZXMgPSBzb3J0U3RyaW5nTWFwKHRoaXMuX2RldkRlcGVuZGVuY2llcyk7XG5cdFx0fVxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInBhY2thZ2UuanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShwa2csIG51bGwsIDIpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQXBpUGFja2FnZUpzb24iLCJrZXkiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQVBJX1BBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwid29ya3NwYWNlTmFtZSIsImFwaU5hbWUiLCJDUkVBVEVfVkVSU0lPTiIsImFkZERlcGVuZGVuY3kiLCJuYW1lIiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJmaWxlcyIsInBrZyIsInByaXZhdGUiLCJ0eXBlIiwibWFpbiIsInNjcmlwdHMiLCJsaW50IiwiZGVwZW5kZW5jaWVzIiwic29ydFN0cmluZ01hcCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJkZXZEZXBlbmRlbmNpZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOzs7OytCQVdhQTs7O2VBQUFBOzs7dUJBWG9CO2tDQUNIO3lCQUVDO0FBUXhCLE1BQU1BOzs7SUFDSUMsTUFBTUMsdUJBQWdCLENBQUNDLGdCQUFnQixDQUFDO0lBRXZDQyxjQUFzQztJQUN0Q0MsbUJBQTJDLENBQUMsRUFBRTtJQUUvRCxZQUNDLEFBQWlCQyxhQUFxQixFQUN0QyxBQUFpQkMsVUFBVSxLQUFLLENBQy9CO2FBRmdCRCxnQkFBQUE7YUFDQUMsVUFBQUE7UUFFakIsSUFBSSxDQUFDSCxhQUFhLEdBQUc7WUFDcEIsb0JBQW9CSSx1QkFBYztZQUNsQyxzQkFBc0JBLHVCQUFjO1FBQ3JDO0lBQ0Q7SUFFT0MsY0FBY0MsSUFBWSxFQUFFQyxPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDUCxhQUFhLENBQUNNLEtBQUssR0FBR0M7UUFDM0IsT0FBTyxJQUFJO0lBQ1o7SUFFT0MsaUJBQWlCRixJQUFZLEVBQUVDLE9BQWUsRUFBUTtRQUM1RCxJQUFJLENBQUNOLGdCQUFnQixDQUFDSyxLQUFLLEdBQUdDO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFFBQXNCO1FBQzVCLE1BQU1DLE1BQStCO1lBQ3BDSixNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0osYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNDLE9BQU8sRUFBRTtZQUM5Q0ksU0FBUztZQUNUSSxTQUFTO1lBQ1RDLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxTQUFTO2dCQUNSQyxNQUFNO1lBQ1A7WUFDQUMsY0FBY0MsSUFBQUEsK0JBQWEsRUFBQyxJQUFJLENBQUNqQixhQUFhO1FBQy9DO1FBQ0EsSUFBSWtCLE9BQU9DLElBQUksQ0FBQyxJQUFJLENBQUNsQixnQkFBZ0IsRUFBRW1CLE1BQU0sR0FBRyxHQUFHO1lBQ2xEVixJQUFJVyxlQUFlLEdBQUdKLElBQUFBLCtCQUFhLEVBQUMsSUFBSSxDQUFDaEIsZ0JBQWdCO1FBQzFEO1FBQ0EsT0FBTztZQUNOO2dCQUNDcUIsVUFBVTtnQkFDVkMsU0FBU0MsS0FBS0MsU0FBUyxDQUFDZixLQUFLLE1BQU07WUFDcEM7U0FDQTtJQUNGO0FBQ0QifQ==
@@ -22,5 +22,3 @@ class AuthConfigModel {
22
22
  return [];
23
23
  }
24
24
  }
25
-
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2F1dGgtY29uZmlnLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvdXJjZS1maWxlLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEFkbWluVXNlckNvbmZpZyA9IHtcblx0c3ViOiBzdHJpbmc7XG5cdGVtYWlsOiBzdHJpbmc7XG5cdHBhc3N3b3JkOiBzdHJpbmc7XG5cdHVzZXJuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBdXRoQ29uZmlnID0ge1xuXHRpc3N1ZXJCYXNlVXJsOiBzdHJpbmc7XG5cdGF1ZGllbmNlOiBzdHJpbmc7XG5cdGFkbWluVXNlcj86IEFkbWluVXNlckNvbmZpZztcbn07XG5cbi8qKlxuICogRGF0YS1jYXJyaWVyIG1vZGVsIGZvciBhdXRoIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogUmVnaXN0ZXJlZCBieSBBdXRoRmVhdHVyZSB3aGVuIGF1dGgwIGlzIGNvbmZpZ3VyZWQuIE90aGVyIGZlYXR1cmVzIChlLmcuXG4gKiBQb3N0bWFuRmVhdHVyZSkgcmV0cmlldmUgaXQgdmlhIHdvcmtzcGFjZS5nZXRNb2RlbChXRUxMX0tOT1dOX0ZJTEVTLkFVVEhfQ09ORklHKS5cbiAqIFByb2R1Y2VzIG5vIGZpbGVzIOKAlCBleGlzdHMgc29sZWx5IHNvIGZlYXR1cmVzIGNhbiBjb21tdW5pY2F0ZSBhdXRoIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRoQ29uZmlnTW9kZWwgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuQVVUSF9DT05GSUc7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25maWc6IEF1dGhDb25maWcpIHt9XG5cblx0cHVibGljIHNldEFkbWluVXNlcihhZG1pblVzZXI6IEFkbWluVXNlckNvbmZpZyk6IHZvaWQge1xuXHRcdHRoaXMuY29uZmlnLmFkbWluVXNlciA9IGFkbWluVXNlcjtcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkF1dGhDb25maWdNb2RlbCIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJBVVRIX0NPTkZJRyIsImNvbmZpZyIsInNldEFkbWluVXNlciIsImFkbWluVXNlciIsImZpbGVzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXVCYUE7OztlQUFBQTs7O3VCQXZCb0I7QUF1QjFCLE1BQU1BOztJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsV0FBVyxDQUFDO0lBRW5ELFlBQW1CLEFBQWdCQyxNQUFrQixDQUFFO2FBQXBCQSxTQUFBQTtJQUFxQjtJQUVqREMsYUFBYUMsU0FBMEIsRUFBUTtRQUNyRCxJQUFJLENBQUNGLE1BQU0sQ0FBQ0UsU0FBUyxHQUFHQTtJQUN6QjtJQUVPQyxRQUFzQjtRQUM1QixPQUFPLEVBQUU7SUFDVjtBQUNEIn0=
@@ -189,5 +189,3 @@ class ControllerSourceFile {
189
189
  ];
190
190
  }
191
191
  }
192
-
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2NvbnRyb2xsZXItc291cmNlLWZpbGUubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc291cmNlLWZpbGUuanNcIjtcblxuLyoqIFRyYWNrcyBuYW1lZCBpbXBvcnRzIGZyb20gYSBzaW5nbGUgbW9kdWxlIHBhdGgsIHNwbGl0IGludG8gdmFsdWVzIGFuZCB0eXBlcy4gKi9cbmNsYXNzIEltcG9ydEdyb3VwIHtcblx0cHJpdmF0ZSByZWFkb25seSBfdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF90eXBlczogc3RyaW5nW10gPSBbXTtcblxuXHRwdWJsaWMgYWRkKG5hbWU6IHN0cmluZywgdHlwZU9ubHkgPSBmYWxzZSk6IHRoaXMge1xuXHRcdGlmICh0eXBlT25seSkge1xuXHRcdFx0Ly8gVmFsdWUgaW1wb3J0IGFscmVhZHkgcHJlc2VudCDigJQgdmFsdWUgd2lucywgc2tpcFxuXHRcdFx0aWYgKCF0aGlzLl92YWx1ZXMuaW5jbHVkZXMobmFtZSkgJiYgIXRoaXMuX3R5cGVzLmluY2x1ZGVzKG5hbWUpKSB7XG5cdFx0XHRcdHRoaXMuX3R5cGVzLnB1c2gobmFtZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFByb21vdGU6IHJlbW92ZSBmcm9tIHR5cGVzIGlmIGl0IHdhcyBwcmV2aW91c2x5IHR5cGUtb25seVxuXHRcdFx0Y29uc3QgdHlwZUlkeCA9IHRoaXMuX3R5cGVzLmluZGV4T2YobmFtZSk7XG5cdFx0XHRpZiAodHlwZUlkeCAhPT0gLTEpIHRoaXMuX3R5cGVzLnNwbGljZSh0eXBlSWR4LCAxKTtcblx0XHRcdGlmICghdGhpcy5fdmFsdWVzLmluY2x1ZGVzKG5hbWUpKSB0aGlzLl92YWx1ZXMucHVzaChuYW1lKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgcmVuZGVyKGZyb206IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgdmFsdWVzID0gWy4uLnRoaXMuX3ZhbHVlc10uc29ydCgpO1xuXHRcdGNvbnN0IHR5cGVzID0gWy4uLnRoaXMuX3R5cGVzXS5zb3J0KCkubWFwKChuKSA9PiBgdHlwZSAke259YCk7XG5cdFx0cmV0dXJuIGBpbXBvcnQgeyAke1suLi52YWx1ZXMsIC4uLnR5cGVzXS5qb2luKFwiLCBcIil9IH0gZnJvbSBcIiR7ZnJvbX1cIjtgO1xuXHR9XG59XG5cbi8qKlxuICogQSBjb250cm9sbGVyIG1ldGhvZC4gRmVhdHVyZXMgY2FsbCBgYWRkRGVjb3JhdG9yKClgIHRvIHByZXBlbmQgZGVjb3JhdG9yc1xuICogYmVmb3JlIHRoZSBIVFRQIHZlcmIgZGVjb3JhdG9yIChlLmcuIGBAQWxsb3dBbm9ueW1vdXNgIGJlZm9yZSBgQEdldCgpYCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250cm9sbGVyTWV0aG9kIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZXh0cmFEZWNvcmF0b3JzOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIF9ib2R5OiBzdHJpbmdbXTtcblx0cHJpdmF0ZSBfaXNBc3luYzogYm9vbGVhbjtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoXG5cdFx0cHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcblx0XHRwcml2YXRlIHJlYWRvbmx5IF9odHRwRGVjb3JhdG9yOiBzdHJpbmcsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBfcGFyYW1zOiBzdHJpbmcsXG5cdFx0aXNBc3luYzogYm9vbGVhbixcblx0XHRib2R5OiBzdHJpbmdbXSxcblx0KSB7XG5cdFx0dGhpcy5faXNBc3luYyA9IGlzQXN5bmM7XG5cdFx0dGhpcy5fYm9keSA9IGJvZHk7XG5cdH1cblxuXHRwdWJsaWMgYWRkRGVjb3JhdG9yKGRlY29yYXRvcjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZXh0cmFEZWNvcmF0b3JzLnB1c2goZGVjb3JhdG9yKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBSZXBsYWNlIHRoZSBtZXRob2QgYm9keSBsaW5lcyAodXNlZCBieSBmZWF0dXJlcyB0aGF0IGV4dGVuZCBnZW5lcmF0ZWQgYmVoYXZpb3VyKS4gKi9cblx0cHVibGljIHNldEJvZHkoYm9keTogc3RyaW5nW10pOiB0aGlzIHtcblx0XHR0aGlzLl9ib2R5ID0gYm9keTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBzZXRBc3luYyhpc0FzeW5jID0gdHJ1ZSk6IHRoaXMge1xuXHRcdHRoaXMuX2lzQXN5bmMgPSBpc0FzeW5jO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHJlbmRlcigpOiBzdHJpbmdbXSB7XG5cdFx0Y29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChjb25zdCBkIG9mIHRoaXMuX2V4dHJhRGVjb3JhdG9ycykge1xuXHRcdFx0bGluZXMucHVzaChgXFx0JHtkfWApO1xuXHRcdH1cblx0XHRsaW5lcy5wdXNoKGBcXHQke3RoaXMuX2h0dHBEZWNvcmF0b3J9YCk7XG5cdFx0Y29uc3QgYXN5bmNLdyA9IHRoaXMuX2lzQXN5bmMgPyBcImFzeW5jIFwiIDogXCJcIjtcblx0XHRsaW5lcy5wdXNoKGBcXHRwdWJsaWMgJHthc3luY0t3fSR7dGhpcy5uYW1lfSgke3RoaXMuX3BhcmFtc30pIHtgKTtcblx0XHRmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy5fYm9keSkge1xuXHRcdFx0bGluZXMucHVzaChgXFx0XFx0JHtsaW5lfWApO1xuXHRcdH1cblx0XHRsaW5lcy5wdXNoKFwiXFx0fVwiKTtcblx0XHRyZXR1cm4gbGluZXM7XG5cdH1cbn1cblxuLyoqXG4gKiBNb2RlbCBmb3IgYHByb2plY3RzL2FwaS9zcmMvY29udHJvbGxlcnMvaGVsbG8uY29udHJvbGxlci50c2AuXG4gKlxuICogUHJlLWluaXRpYWxpc2VkIHdpdGggYWxsIHJvdXRlcyBhbmQgdGhlaXIgSFRUUCBkZWNvcmF0b3JzLiBGZWF0dXJlcyBtdXRhdGVcbiAqIHRoZSBtb2RlbCB2aWEgYGdldE1ldGhvZChuYW1lKS5hZGREZWNvcmF0b3IoLi4uKWAsIGBhZGREZWNvcmF0b3IoLi4uKWAgKGNsYXNzXG4gKiBsZXZlbCksIGBhZGRDb3J0ZXhJbXBvcnQoLi4uKWAsIGBhZGRJbXBvcnQoLi4uKWAsIGFuZCBgYWRkQ29uc3RydWN0b3JQYXJhbSguLi4pYC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRyb2xsZXJTb3VyY2VGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLkNPTlRST0xMRVJfVFM7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfY29ydGV4SW1wb3J0cyA9IG5ldyBJbXBvcnRHcm91cCgpXG5cdFx0LmFkZChcIkNvbnRyb2xsZXJcIilcblx0XHQuYWRkKFwiRGVsZXRlXCIpXG5cdFx0LmFkZChcIkZpZWxkXCIpXG5cdFx0LmFkZChcIkdldFwiKVxuXHRcdC5hZGQoXCJQYXJhbVwiKVxuXHRcdC5hZGQoXCJQb3N0XCIpXG5cdFx0LmFkZChcIlB1dFwiKVxuXHRcdC5hZGQoXCJRdWVyeVwiKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9leHRyYUltcG9ydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbXBvcnRHcm91cD4oW1xuXHRcdFtcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCIsIG5ldyBJbXBvcnRHcm91cCgpLmFkZChcImluamVjdFwiKV0sXG5cdF0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jbGFzc0RlY29yYXRvcnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBFeHBsaWNpdCBAaW5qZWN0IOKAlCBkZXNpZ246cGFyYW10eXBlcyBjYW4gY29sbGFwc2UgdG8gT2JqZWN0IHVuZGVyIFNXQyB3aGVuIHRoZSBjbGFzcyBpcyBzdGlsbCB1bmRlZmluZWQgYXQgZGVjb3JhdGUgdGltZS4gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfY3RvclBhcmFtczogc3RyaW5nW10gPSBbXG5cdFx0J0BpbmplY3QoXCJTYW1wbGVTZXJ2aWNlXCIpIHByaXZhdGUgcmVhZG9ubHkgc2FtcGxlOiBTYW1wbGVTZXJ2aWNlJyxcblx0XTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9tZXRob2RzID0gbmV3IE1hcDxzdHJpbmcsIENvbnRyb2xsZXJNZXRob2Q+KFtcblx0XHRbXG5cdFx0XHRcImdldEFsbFwiLFxuXHRcdFx0bmV3IENvbnRyb2xsZXJNZXRob2QoXCJnZXRBbGxcIiwgXCJAR2V0KClcIiwgJ0BRdWVyeShcImZpbHRlclwiKSBmaWx0ZXI6IHN0cmluZycsIHRydWUsIFtcblx0XHRcdFx0XCJjb25zdCBncmVldGluZyA9IGF3YWl0IHRoaXMuc2FtcGxlLmdldEdyZWV0aW5nKCk7XCIsXG5cdFx0XHRcdFwicmV0dXJuIHsgZmlsdGVyLCBtZXNzYWdlOiBncmVldGluZyB9O1wiLFxuXHRcdFx0XSksXG5cdFx0XSxcblx0XHRbXG5cdFx0XHRcImdldE9uZVwiLFxuXHRcdFx0bmV3IENvbnRyb2xsZXJNZXRob2QoXG5cdFx0XHRcdFwiZ2V0T25lXCIsXG5cdFx0XHRcdCdAR2V0KFwiLzppZFwiKScsXG5cdFx0XHRcdCdAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nJyxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IHRlbXBsYXRlIGxpdGVyYWwgaW4gZ2VuZXJhdGVkIGNvZGVcblx0XHRcdFx0W1wicmV0dXJuIHsgaWQsIG1lc3NhZ2U6IGBIZWxsbyAke2lkfSFgIH07XCJdLFxuXHRcdFx0KSxcblx0XHRdLFxuXHRcdFtcblx0XHRcdFwiY3JlYXRlXCIsXG5cdFx0XHRuZXcgQ29udHJvbGxlck1ldGhvZChcImNyZWF0ZVwiLCBcIkBQb3N0KClcIiwgXCJib2R5OiBIZWxsb0JvZHlcIiwgZmFsc2UsIFtcblx0XHRcdFx0XCJyZXR1cm4geyBtZXNzYWdlOiBib2R5Lm1lc3NhZ2UgfTtcIixcblx0XHRcdF0pLFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0XCJ1cGRhdGVcIixcblx0XHRcdG5ldyBDb250cm9sbGVyTWV0aG9kKFxuXHRcdFx0XHRcInVwZGF0ZVwiLFxuXHRcdFx0XHQnQFB1dChcIi86aWRcIiknLFxuXHRcdFx0XHQnQFBhcmFtKFwiaWRcIikgaWQ6IHN0cmluZywgYm9keTogSGVsbG9Cb2R5Jyxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFtcInJldHVybiB7IGlkLCBtZXNzYWdlOiBib2R5Lm1lc3NhZ2UgfTtcIl0sXG5cdFx0XHQpLFxuXHRcdF0sXG5cdFx0W1xuXHRcdFx0XCJyZW1vdmVcIixcblx0XHRcdG5ldyBDb250cm9sbGVyTWV0aG9kKFwicmVtb3ZlXCIsICdARGVsZXRlKFwiLzppZFwiKScsICdAUGFyYW0oXCJpZFwiKSBpZDogc3RyaW5nJywgZmFsc2UsIFtcblx0XHRcdFx0XCJyZXR1cm4geyBpZCwgZGVsZXRlZDogdHJ1ZSB9O1wiLFxuXHRcdFx0XSksXG5cdFx0XSxcblx0XSk7XG5cblx0LyoqIFJldHJpZXZlIGEgbWV0aG9kIGJ5IG5hbWUgdG8gbXV0YXRlIGl0cyBkZWNvcmF0b3JzLiAqL1xuXHRwdWJsaWMgZ2V0TWV0aG9kKG5hbWU6IHN0cmluZyk6IENvbnRyb2xsZXJNZXRob2Qge1xuXHRcdGNvbnN0IG0gPSB0aGlzLl9tZXRob2RzLmdldChuYW1lKTtcblx0XHRpZiAobSA9PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoYE5vIG1ldGhvZCAnJHtuYW1lfScgb24gQ29udHJvbGxlclNvdXJjZUZpbGVgKTtcblx0XHRyZXR1cm4gbTtcblx0fVxuXG5cdC8qKiBBZGQgYSBjbGFzcy1sZXZlbCBkZWNvcmF0b3IgKGUuZy4gYEBBdXRob3JpemVgKS4gKi9cblx0cHVibGljIGFkZERlY29yYXRvcihkZWNvcmF0b3I6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2NsYXNzRGVjb3JhdG9ycy5wdXNoKGRlY29yYXRvcik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogQWRkIGEgbmFtZWQgaW1wb3J0IGZyb20gYEBkZWNvaGVyZS9jb3J0ZXhgLiAqL1xuXHRwdWJsaWMgYWRkQ29ydGV4SW1wb3J0KG5hbWU6IHN0cmluZywgdHlwZU9ubHkgPSBmYWxzZSk6IHRoaXMge1xuXHRcdHRoaXMuX2NvcnRleEltcG9ydHMuYWRkKG5hbWUsIHR5cGVPbmx5KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBBZGQgYSBuYW1lZCBpbXBvcnQgZnJvbSBhbnkgb3RoZXIgbW9kdWxlLiAqL1xuXHRwdWJsaWMgYWRkSW1wb3J0KG5hbWU6IHN0cmluZywgZnJvbTogc3RyaW5nLCB0eXBlT25seSA9IGZhbHNlKTogdGhpcyB7XG5cdFx0Y29uc3QgZ3JvdXAgPSB0aGlzLl9leHRyYUltcG9ydEdyb3Vwcy5nZXQoZnJvbSkgPz8gbmV3IEltcG9ydEdyb3VwKCk7XG5cdFx0Z3JvdXAuYWRkKG5hbWUsIHR5cGVPbmx5KTtcblx0XHR0aGlzLl9leHRyYUltcG9ydEdyb3Vwcy5zZXQoZnJvbSwgZ3JvdXApO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZCBhIGNvbnN0cnVjdG9yIHBhcmFtZXRlciAoZS5nLiBhbiBpbmplY3RlZCBkZXBlbmRlbmN5KS4gKi9cblx0cHVibGljIGFkZENvbnN0cnVjdG9yUGFyYW0ocGFyYW06IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2N0b3JQYXJhbXMucHVzaChwYXJhbSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgZmlsZXMoKTogU291cmNlRmlsZVtdIHtcblx0XHRjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG5cdFx0XHR0aGlzLl9jb3J0ZXhJbXBvcnRzLnJlbmRlcihcIkBkZWNvaGVyZS9jb3J0ZXhcIiksXG5cdFx0XHQnaW1wb3J0IHsgU2FtcGxlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zYW1wbGUuc2VydmljZS5qc1wiOycsXG5cdFx0XTtcblxuXHRcdGZvciAoY29uc3QgW2Zyb20sIGdyb3VwXSBvZiB0aGlzLl9leHRyYUltcG9ydEdyb3Vwcykge1xuXHRcdFx0bGluZXMucHVzaChncm91cC5yZW5kZXIoZnJvbSkpO1xuXHRcdH1cblxuXHRcdGxpbmVzLnB1c2goXG5cdFx0XHRcIlwiLFxuXHRcdFx0XCJjbGFzcyBIZWxsb0JvZHkge1wiLFxuXHRcdFx0J1xcdEBGaWVsZChcImJvZHlcIiwgXCJtZXNzYWdlXCIpJyxcblx0XHRcdFwiXFx0cHVibGljIG1lc3NhZ2UhOiBzdHJpbmc7XCIsXG5cdFx0XHRcIn1cIixcblx0XHRcdFwiXCIsXG5cdFx0KTtcblxuXHRcdGZvciAoY29uc3QgZCBvZiB0aGlzLl9jbGFzc0RlY29yYXRvcnMpIHtcblx0XHRcdGxpbmVzLnB1c2goZCk7XG5cdFx0fVxuXHRcdGxpbmVzLnB1c2goJ0BDb250cm9sbGVyKHsgcHJlZml4OiBcIi9oZWxsb1wiIH0pJywgXCJleHBvcnQgY2xhc3MgSGVsbG9Db250cm9sbGVyIHtcIiwgXCJcIik7XG5cblx0XHRsaW5lcy5wdXNoKFwiXFx0cHVibGljIGNvbnN0cnVjdG9yKFwiKTtcblx0XHRmb3IgKGNvbnN0IHAgb2YgdGhpcy5fY3RvclBhcmFtcykge1xuXHRcdFx0bGluZXMucHVzaChgXFx0XFx0JHtwfSxgKTtcblx0XHR9XG5cdFx0bGluZXMucHVzaChcIlxcdCkge31cIik7XG5cdFx0bGluZXMucHVzaChcIlwiKTtcblxuXHRcdGZvciAoY29uc3QgbWV0aG9kIG9mIHRoaXMuX21ldGhvZHMudmFsdWVzKCkpIHtcblx0XHRcdGxpbmVzLnB1c2goLi4ubWV0aG9kLnJlbmRlcigpLCBcIlwiKTtcblx0XHR9XG5cblx0XHRsaW5lcy5wdXNoKFwifVwiLCBcIlwiKTtcblxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9jb250cm9sbGVycy9oZWxsby5jb250cm9sbGVyLnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IGxpbmVzLmpvaW4oXCJcXG5cIiksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDb250cm9sbGVyTWV0aG9kIiwiQ29udHJvbGxlclNvdXJjZUZpbGUiLCJJbXBvcnRHcm91cCIsIl92YWx1ZXMiLCJfdHlwZXMiLCJhZGQiLCJuYW1lIiwidHlwZU9ubHkiLCJpbmNsdWRlcyIsInB1c2giLCJ0eXBlSWR4IiwiaW5kZXhPZiIsInNwbGljZSIsInJlbmRlciIsImZyb20iLCJ2YWx1ZXMiLCJzb3J0IiwidHlwZXMiLCJtYXAiLCJuIiwiam9pbiIsIl9leHRyYURlY29yYXRvcnMiLCJfYm9keSIsIl9pc0FzeW5jIiwiX2h0dHBEZWNvcmF0b3IiLCJfcGFyYW1zIiwiaXNBc3luYyIsImJvZHkiLCJhZGREZWNvcmF0b3IiLCJkZWNvcmF0b3IiLCJzZXRCb2R5Iiwic2V0QXN5bmMiLCJsaW5lcyIsImQiLCJhc3luY0t3IiwibGluZSIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJDT05UUk9MTEVSX1RTIiwiX2NvcnRleEltcG9ydHMiLCJfZXh0cmFJbXBvcnRHcm91cHMiLCJNYXAiLCJfY2xhc3NEZWNvcmF0b3JzIiwiX2N0b3JQYXJhbXMiLCJfbWV0aG9kcyIsImdldE1ldGhvZCIsIm0iLCJnZXQiLCJFcnJvciIsImFkZENvcnRleEltcG9ydCIsImFkZEltcG9ydCIsImdyb3VwIiwic2V0IiwiYWRkQ29uc3RydWN0b3JQYXJhbSIsInBhcmFtIiwiZmlsZXMiLCJwIiwibWV0aG9kIiwiZmlsZVBhdGgiLCJjb250ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQWtDYUE7ZUFBQUE7O1FBdURBQztlQUFBQTs7O3VCQXpGb0I7QUFHakMsaUZBQWlGLEdBQ2pG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
@@ -189,5 +189,3 @@ jobs:
189
189
  ];
190
190
  }
191
191
  }
192
-
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL2dpdGh1Yi1jaS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb3VyY2UtZmlsZS5qc1wiO1xuXG4vKipcbiAqIE1pbmltYWwgR2l0SHViIEFjdGlvbnMgZm9yIHNjYWZmb2xkZWQgYXBwczogbGludCDiiKUgdGVzdCwgYnVpbGQgZ2F0ZSBvbiBkZWZhdWx0IGJyYW5jaCxcbiAqIG5wbSBwdWJsaXNoIGFmdGVyIENJIChza2lwcyBwcml2YXRlIHBhY2thZ2VzKS4gTm8gZGVmYXVsdCBmb3JnZSBkb2NrZXIgLS1wdXNoLlxuICovXG5leHBvcnQgY2xhc3MgR2l0aHViQ2lXb3JrZmxvd3MgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuR0lUSFVCX0NJO1xuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5naXRodWIvYWN0aW9ucy9zZXR1cC1ub2RlLXBucG0vYWN0aW9uLnltbFwiLFxuXHRcdFx0XHRjb250ZW50OiBgbmFtZTogU2V0dXAgTm9kZSArIHBucG1cbmRlc2NyaXB0aW9uOiBJbnN0YWxsIHBucG0gYW5kIE5vZGUsIGNvbmZpZ3VyZSBucG0gcmVnaXN0cnkgYXV0aCwgaW5zdGFsbCBkZXBzXG5pbnB1dHM6XG4gIG5vZGUtdmVyc2lvbjpcbiAgICBkZXNjcmlwdGlvbjogTm9kZS5qcyB2ZXJzaW9uXG4gICAgcmVxdWlyZWQ6IGZhbHNlXG4gICAgZGVmYXVsdDogXCIyNFwiXG4gIHBucG0tdmVyc2lvbjpcbiAgICBkZXNjcmlwdGlvbjogcG5wbSB2ZXJzaW9uXG4gICAgcmVxdWlyZWQ6IGZhbHNlXG4gICAgZGVmYXVsdDogXCIxMFwiXG4gIGluc3RhbGw6XG4gICAgZGVzY3JpcHRpb246IFJ1biBwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGVcbiAgICByZXF1aXJlZDogZmFsc2VcbiAgICBkZWZhdWx0OiBcInRydWVcIlxuXG5ydW5zOlxuICB1c2luZzogY29tcG9zaXRlXG4gIHN0ZXBzOlxuICAgIC0gdXNlczogcG5wbS9hY3Rpb24tc2V0dXBAdjRcbiAgICAgIHdpdGg6XG4gICAgICAgIHZlcnNpb246IFxcJHt7IGlucHV0cy5wbnBtLXZlcnNpb24gfX1cblxuICAgIC0gdXNlczogYWN0aW9ucy9zZXR1cC1ub2RlQHY0XG4gICAgICB3aXRoOlxuICAgICAgICBub2RlLXZlcnNpb246IFxcJHt7IGlucHV0cy5ub2RlLXZlcnNpb24gfX1cbiAgICAgICAgY2FjaGU6IHBucG1cbiAgICAgICAgY2FjaGUtZGVwZW5kZW5jeS1wYXRoOiBwbnBtLWxvY2sueWFtbFxuXG4gICAgLSBuYW1lOiBDb25maWd1cmUgbnBtIGF1dGhcbiAgICAgIHNoZWxsOiBiYXNoXG4gICAgICBydW46IHxcbiAgICAgICAgaWYgW1sgLW4gXCJcXCR7Tk9ERV9BVVRIX1RPS0VOOi19XCIgXV07IHRoZW5cbiAgICAgICAgICBlY2hvIFwiLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW49XFwke05PREVfQVVUSF9UT0tFTn1cIiA+PiAubnBtcmNcbiAgICAgICAgZmlcblxuICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXNcbiAgICAgIGlmOiBpbnB1dHMuaW5zdGFsbCA9PSAndHJ1ZSdcbiAgICAgIHNoZWxsOiBiYXNoXG4gICAgICBydW46IHxcbiAgICAgICAgaWYgW1sgLWYgcG5wbS1sb2NrLnlhbWwgXV07IHRoZW5cbiAgICAgICAgICBwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGVcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHBucG0gaW5zdGFsbFxuICAgICAgICBmaVxuYCxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5naXRodWIvd29ya2Zsb3dzL2NpLnltbFwiLFxuXHRcdFx0XHRjb250ZW50OiBgbmFtZTogQ0lcbm9uOlxuICBwdXNoOlxuICAgIGJyYW5jaGVzOlxuICAgICAgLSBcIipcIlxuICBwdWxsX3JlcXVlc3Q6XG4gIHdvcmtmbG93X2Rpc3BhdGNoOlxuY29uY3VycmVuY3k6XG4gIGdyb3VwOiBjaS1cXCR7eyBnaXRodWIucmVmIH19XG4gIGNhbmNlbC1pbi1wcm9ncmVzczogdHJ1ZVxuZW52OlxuICBOT0RFX0FVVEhfVE9LRU46IFxcJHt7IHNlY3JldHMuTk9ERV9BVVRIX1RPS0VOIH19XG4gIFNDUklCRV9MT0dfTEVWRUw6IGluZm9cblxuam9iczpcbiAgbGludDpcbiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0XG4gICAgdGltZW91dC1taW51dGVzOiAxNVxuICAgIHBlcm1pc3Npb25zOlxuICAgICAgY29udGVudHM6IHJlYWRcbiAgICBzdGVwczpcbiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2NFxuICAgICAgICB3aXRoOlxuICAgICAgICAgIGZldGNoLWRlcHRoOiAxXG5cbiAgICAgIC0gdXNlczogLi8uZ2l0aHViL2FjdGlvbnMvc2V0dXAtbm9kZS1wbnBtXG5cbiAgICAgIC0gbmFtZTogTGludCBhbmQgdHlwZWNoZWNrXG4gICAgICAgIHJ1bjogfFxuICAgICAgICAgIHNldCArZVxuICAgICAgICAgIHBucG0gcnVuIGxpbnQ6Y2hlY2sgJlxuICAgICAgICAgIGxpbnRfcGlkPSQhXG4gICAgICAgICAgcG5wbSBydW4gdHlwZWNoZWNrICZcbiAgICAgICAgICB0c2NfcGlkPSQhXG4gICAgICAgICAgd2FpdCBcIiRsaW50X3BpZFwiXG4gICAgICAgICAgbGludF9jb2RlPSQ/XG4gICAgICAgICAgd2FpdCBcIiR0c2NfcGlkXCJcbiAgICAgICAgICB0c2NfY29kZT0kP1xuICAgICAgICAgIHNldCAtZVxuICAgICAgICAgIGlmIFtbIFwiJGxpbnRfY29kZVwiIC1uZSAwIHx8IFwiJHRzY19jb2RlXCIgLW5lIDAgXV07IHRoZW5cbiAgICAgICAgICAgIGV4aXQgMVxuICAgICAgICAgIGZpXG5cbiAgdGVzdDpcbiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0XG4gICAgdGltZW91dC1taW51dGVzOiAyMFxuICAgIHBlcm1pc3Npb25zOlxuICAgICAgY29udGVudHM6IHJlYWRcbiAgICBzdGVwczpcbiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2NFxuICAgICAgICB3aXRoOlxuICAgICAgICAgIGZldGNoLWRlcHRoOiAxXG5cbiAgICAgIC0gdXNlczogLi8uZ2l0aHViL2FjdGlvbnMvc2V0dXAtbm9kZS1wbnBtXG5cbiAgICAgIC0gbmFtZTogVGVzdFxuICAgICAgICBydW46IHBucG0gdGVzdFxuXG4gICAgICAtIG5hbWU6IEJ1aWxkIChkZWZhdWx0IGJyYW5jaClcbiAgICAgICAgaWY6IGdpdGh1Yi5yZWYgPT0gZm9ybWF0KCdyZWZzL2hlYWRzL3swfScsIGdpdGh1Yi5ldmVudC5yZXBvc2l0b3J5LmRlZmF1bHRfYnJhbmNoKVxuICAgICAgICBydW46IHBucG0gcnVuIGJ1aWxkXG5cbiAgY2k6XG4gICAgbmVlZHM6IFtsaW50LCB0ZXN0XVxuICAgIGlmOiBhbHdheXMoKVxuICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3RcbiAgICB0aW1lb3V0LW1pbnV0ZXM6IDVcbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogQWdncmVnYXRlXG4gICAgICAgIHJ1bjogfFxuICAgICAgICAgIGlmIFtbIFwiXFwke3sgbmVlZHMubGludC5yZXN1bHQgfX1cIiAhPSBcInN1Y2Nlc3NcIiB8fCBcIlxcJHt7IG5lZWRzLnRlc3QucmVzdWx0IH19XCIgIT0gXCJzdWNjZXNzXCIgXV07IHRoZW5cbiAgICAgICAgICAgIGVjaG8gXCJDSSBmYWlsZWQgKGxpbnQ9XFwke3sgbmVlZHMubGludC5yZXN1bHQgfX0gdGVzdD1cXCR7eyBuZWVkcy50ZXN0LnJlc3VsdCB9fSlcIlxuICAgICAgICAgICAgZXhpdCAxXG4gICAgICAgICAgZmlcbiAgICAgICAgICBlY2hvIFwiQ0kgcGFzc2VkXCJcbmAsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZ2l0aHViL3dvcmtmbG93cy9wdWJsaXNoLnltbFwiLFxuXHRcdFx0XHRjb250ZW50OiBgbmFtZTogUHVibGlzaFxuXG5vbjpcbiAgd29ya2Zsb3dfcnVuOlxuICAgIHdvcmtmbG93czogW1wiQ0lcIl1cbiAgICB0eXBlczogW2NvbXBsZXRlZF1cblxuY29uY3VycmVuY3k6XG4gIGdyb3VwOiBwdWJsaXNoLVxcJHt7IGdpdGh1Yi5ldmVudC53b3JrZmxvd19ydW4uaGVhZF9icmFuY2ggfX1cbiAgY2FuY2VsLWluLXByb2dyZXNzOiBmYWxzZVxuXG5lbnY6XG4gIE5PREVfQVVUSF9UT0tFTjogXFwke3sgc2VjcmV0cy5OT0RFX0FVVEhfVE9LRU4gfX1cbiAgU0NSSUJFX0xPR19MRVZFTDogaW5mb1xuXG5qb2JzOlxuICBwdWJsaXNoOlxuICAgIGlmOiA+XG4gICAgICBnaXRodWIuZXZlbnQud29ya2Zsb3dfcnVuLmNvbmNsdXNpb24gPT0gJ3N1Y2Nlc3MnICYmXG4gICAgICBnaXRodWIuZXZlbnQud29ya2Zsb3dfcnVuLmhlYWRfYnJhbmNoID09IGdpdGh1Yi5ldmVudC5yZXBvc2l0b3J5LmRlZmF1bHRfYnJhbmNoXG4gICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdFxuICAgIHRpbWVvdXQtbWludXRlczogMzBcbiAgICBwZXJtaXNzaW9uczpcbiAgICAgIGNvbnRlbnRzOiByZWFkXG4gICAgICBpZC10b2tlbjogd3JpdGVcbiAgICBzdGVwczpcbiAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2NFxuICAgICAgICB3aXRoOlxuICAgICAgICAgIHJlZjogXFwke3sgZ2l0aHViLmV2ZW50LndvcmtmbG93X3J1bi5oZWFkX3NoYSB9fVxuICAgICAgICAgIGZldGNoLWRlcHRoOiAxXG5cbiAgICAgIC0gdXNlczogLi8uZ2l0aHViL2FjdGlvbnMvc2V0dXAtbm9kZS1wbnBtXG5cbiAgICAgIC0gbmFtZTogQnVpbGQgcmVsZWFzZVxuICAgICAgICBydW46IHBucG0gcnVuIGJ1aWxkXG5cbiAgICAgIC0gbmFtZTogUHVibGlzaCBwYWNrYWdlc1xuICAgICAgICBydW46IHBucG0gZXhlYyBmb3JnZSBwdWJsaXNoIC0tY29uZmlndXJhdGlvbiByZWxlYXNlXG4gICAgICAgICMgU2tpcHMgcGFja2FnZXMgd2l0aCBcInByaXZhdGVcIjogdHJ1ZSAoZS5nLiB0aGUgd2ViYXBpIGFwcCkuXG4gICAgICAgICMgT3B0aW9uYWwgcmVnaXN0cnkgaW1hZ2VzOiBhZGQgXFxgcG5wbSBleGVjIGZvcmdlIGRvY2tlciAtLWNvbmZpZ3VyYXRpb24gcmVsZWFzZSAtLXB1c2hcXGBcbiAgICAgICAgIyBhZnRlciBjb25maWd1cmluZyBHSENSL09JREMg4oCUIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQgKFBhYVMgYnVpbGRzIHRoZSBEb2NrZXJmaWxlKS5cbmAsXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJHaXRodWJDaVdvcmtmbG93cyIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJHSVRIVUJfQ0kiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFPYUE7OztlQUFBQTs7O3VCQVBvQjtBQU8xQixNQUFNQTtJQUNJQyxNQUFNQyx1QkFBZ0IsQ0FBQ0MsU0FBUyxDQUFDO0lBRTFDQyxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkNkLENBQUM7WUFDRTtZQUNBO2dCQUNDRCxVQUFVO2dCQUNWQyxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJFZCxDQUFDO1lBQ0U7WUFDQTtnQkFDQ0QsVUFBVTtnQkFDVkMsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlDZCxDQUFDO1lBQ0U7U0FDQTtJQUNGO0FBQ0QifQ==
@@ -163,5 +163,3 @@ class MainSourceFile {
163
163
  ];
164
164
  }
165
165
  }
166
-
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL21haW4tc291cmNlLWZpbGUubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc291cmNlLWZpbGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHlwZU9ybUltcG9ydCA9IHsgY2xhc3NOYW1lOiBzdHJpbmc7IGltcG9ydFBhdGg6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgU2VydmljZUltcG9ydCA9IFR5cGVPcm1JbXBvcnQgJiB7IHNjb3BlPzogXCJzaW5nbGV0b25cIiB8IFwicmVxdWVzdFwiIH07XG5cbi8qKiBUcmFja3MgbmFtZWQgaW1wb3J0cyBmcm9tIGEgc2luZ2xlIG1vZHVsZSBwYXRoLCBzcGxpdCBpbnRvIHZhbHVlcyBhbmQgdHlwZXMuICovXG5jbGFzcyBJbXBvcnRHcm91cCB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3ZhbHVlczogc3RyaW5nW10gPSBbXTtcblx0cHJpdmF0ZSByZWFkb25seSBfdHlwZXM6IHN0cmluZ1tdID0gW107XG5cblx0cHVibGljIGFkZChuYW1lOiBzdHJpbmcsIHR5cGVPbmx5ID0gZmFsc2UpOiB0aGlzIHtcblx0XHRpZiAodHlwZU9ubHkpIHtcblx0XHRcdC8vIFZhbHVlIGltcG9ydCBhbHJlYWR5IHByZXNlbnQg4oCUIHZhbHVlIHdpbnMsIHNraXBcblx0XHRcdGlmICghdGhpcy5fdmFsdWVzLmluY2x1ZGVzKG5hbWUpICYmICF0aGlzLl90eXBlcy5pbmNsdWRlcyhuYW1lKSkge1xuXHRcdFx0XHR0aGlzLl90eXBlcy5wdXNoKG5hbWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBQcm9tb3RlOiByZW1vdmUgZnJvbSB0eXBlcyBpZiBpdCB3YXMgcHJldmlvdXNseSB0eXBlLW9ubHlcblx0XHRcdGNvbnN0IHR5cGVJZHggPSB0aGlzLl90eXBlcy5pbmRleE9mKG5hbWUpO1xuXHRcdFx0aWYgKHR5cGVJZHggIT09IC0xKSB0aGlzLl90eXBlcy5zcGxpY2UodHlwZUlkeCwgMSk7XG5cdFx0XHRpZiAoIXRoaXMuX3ZhbHVlcy5pbmNsdWRlcyhuYW1lKSkgdGhpcy5fdmFsdWVzLnB1c2gobmFtZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIHJlbmRlcihmcm9tOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IHZhbHVlcyA9IFsuLi50aGlzLl92YWx1ZXNdLnNvcnQoKTtcblx0XHRjb25zdCB0eXBlcyA9IFsuLi50aGlzLl90eXBlc10uc29ydCgpLm1hcCgobikgPT4gYHR5cGUgJHtufWApO1xuXHRcdHJldHVybiBgaW1wb3J0IHsgJHtbLi4udmFsdWVzLCAuLi50eXBlc10uam9pbihcIiwgXCIpfSB9IGZyb20gXCIke2Zyb219XCI7YDtcblx0fVxufVxuXG4vKipcbiAqIE1vZGVsIGZvciBgcHJvamVjdHMvYXBpL3NyYy9tYWluLnRzYC5cbiAqXG4gKiBTdGFydHMgd2l0aCB0aGUgbWluaW1hbCBIVFRQICsgWUFNTCBjb25maWcgc2V0dXAuIEZlYXR1cmVzIG11dGF0ZSB0aGUgbW9kZWxcbiAqIGJ5IGNhbGxpbmcgYWRkU2lkZUVmZmVjdEltcG9ydCAvIGFkZEltcG9ydCAvIGFkZEJ1aWxkZXJDYWxsIC8gYWRkRW50aXR5IC9cbiAqIGFkZFJlcG9zaXRvcnkuIGZpbGVzKCkgcmVuZGVycyB3aGF0ZXZlciBoYXMgYmVlbiBhY2N1bXVsYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1haW5Tb3VyY2VGaWxlIGltcGxlbWVudHMgS2V5ZWRNb2RlbCB7XG5cdHB1YmxpYyByZWFkb25seSBrZXkgPSBXRUxMX0tOT1dOX0ZJTEVTLk1BSU5fVFM7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfc2lkZUVmZmVjdEltcG9ydHM6IHN0cmluZ1tdID0gW107XG5cdHByaXZhdGUgcmVhZG9ubHkgX2V4dHJhSW1wb3J0cyA9IG5ldyBNYXA8c3RyaW5nLCBJbXBvcnRHcm91cD4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYnVpbGRlckNhbGxzOiBzdHJpbmdbXSA9IFtdO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbnRpdGllczogVHlwZU9ybUltcG9ydFtdID0gW107XG5cdHByaXZhdGUgcmVhZG9ubHkgX3JlcG9zaXRvcmllczogVHlwZU9ybUltcG9ydFtdID0gW107XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2VzOiBTZXJ2aWNlSW1wb3J0W10gPSBbXTtcblx0cHJpdmF0ZSBfZGF0YVNvdXJjZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBfdHlwZU9ybVNlZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcHBOYW1lOiBzdHJpbmcpIHt9XG5cblx0LyoqIEFkZHMgYSBiYXJlIHNpZGUtZWZmZWN0IGltcG9ydCwgZS5nLiBgQGRlY29oZXJlL2NvcnRleC9hdXRoYC4gKi9cblx0cHVibGljIGFkZFNpZGVFZmZlY3RJbXBvcnQocGF0aDogc3RyaW5nKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLl9zaWRlRWZmZWN0SW1wb3J0cy5pbmNsdWRlcyhwYXRoKSkgdGhpcy5fc2lkZUVmZmVjdEltcG9ydHMucHVzaChwYXRoKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBBZGRzIGEgbmFtZWQgaW1wb3J0LCBlLmcuIGBpbXBvcnQgeyBGb28gfSBmcm9tIFwiYmFyXCJgLiAqL1xuXHRwdWJsaWMgYWRkSW1wb3J0KG5hbWU6IHN0cmluZywgZnJvbTogc3RyaW5nLCB0eXBlT25seSA9IGZhbHNlKTogdGhpcyB7XG5cdFx0Y29uc3QgZ3JvdXAgPSB0aGlzLl9leHRyYUltcG9ydHMuZ2V0KGZyb20pID8/IG5ldyBJbXBvcnRHcm91cCgpO1xuXHRcdGdyb3VwLmFkZChuYW1lLCB0eXBlT25seSk7XG5cdFx0dGhpcy5fZXh0cmFJbXBvcnRzLnNldChmcm9tLCBncm91cCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIGJ1aWxkZXIgY2FsbCBpbnNlcnRlZCBhZnRlciBgLndpdGhDb25maWd1cmF0aW9uKClgIGFuZCBiZWZvcmVcblx0ICogYC53aXRoU2VydmljZXMoKWAuIFBhc3MgdGhlIGNhbGwgd2l0aG91dCBsZWFkaW5nIGRvdCwgZS5nLiBgLndpdGhBdXRoKClgLlxuXHQgKi9cblx0cHVibGljIGFkZEJ1aWxkZXJDYWxsKGNhbGw6IHN0cmluZyk6IHRoaXMge1xuXHRcdHRoaXMuX2J1aWxkZXJDYWxscy5wdXNoKGNhbGwpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZHMgYSBUeXBlT1JNIGVudGl0eSDigJQgaW1wb3J0IGFuZCBlbnRyeSBpbiBgd2l0aFR5cGVPcm0oeyBlbnRpdGllcyB9KWAuICovXG5cdHB1YmxpYyBhZGRFbnRpdHkoZW50aXR5OiBUeXBlT3JtSW1wb3J0KTogdGhpcyB7XG5cdFx0dGhpcy5fZW50aXRpZXMucHVzaChlbnRpdHkpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZHMgYSBUeXBlT1JNIHJlcG9zaXRvcnkg4oCUIGltcG9ydCBhbmQgZW50cnkgaW4gYHdpdGhUeXBlT3JtKHsgcmVwb3NpdG9yaWVzIH0pYC4gKi9cblx0cHVibGljIGFkZFJlcG9zaXRvcnkocmVwbzogVHlwZU9ybUltcG9ydCk6IHRoaXMge1xuXHRcdHRoaXMuX3JlcG9zaXRvcmllcy5wdXNoKHJlcG8pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEFkZHMgYSBzZXJ2aWNlIHJlZ2lzdGVyZWQgaW4gYC53aXRoU2VydmljZXMoKWAuICovXG5cdHB1YmxpYyBhZGRTZXJ2aWNlKHNlcnZpY2U6IFNlcnZpY2VJbXBvcnQpOiB0aGlzIHtcblx0XHR0aGlzLl9zZXJ2aWNlcy5wdXNoKHNlcnZpY2UpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIERhdGFzb3VyY2UgbmFtZSBwYXNzZWQgdG8gYHdpdGhUeXBlT3JtKHsgbmFtZSB9KWAuIE11c3QgbWF0Y2hcblx0ICogYGRhdGFiYXNlLmRhdGFTb3VyY2VzW10ubmFtZWAgaW4gY29uZmlnLnlhbWwuXG5cdCAqL1xuXHRwdWJsaWMgc2V0RGF0YVNvdXJjZU5hbWUobmFtZTogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZGF0YVNvdXJjZU5hbWUgPSBuYW1lO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElubGluZSBzZWVkIGNhbGxiYWNrIGJvZHkgZm9yIGB3aXRoVHlwZU9ybSh7IHNlZWQgfSlgLlxuXHQgKiBSZWNlaXZlcyBgZGF0YVNvdXJjZWAgaW4gc2NvcGUuIEV4YW1wbGU6IGBhd2FpdCBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoVXNlcikuc2F2ZSguLi4pYC5cblx0ICovXG5cdHB1YmxpYyBzZXRUeXBlT3JtU2VlZChzZWVkQm9keTogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fdHlwZU9ybVNlZWQgPSBzZWVkQm9keTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdGNvbnN0IGltcG9ydHM6IHN0cmluZ1tdID0gW1xuXHRcdFx0J2ltcG9ydCBcIkBkZWNvaGVyZS9zY3JpYmUtcGlub1wiOycsXG5cdFx0XHQnaW1wb3J0IFwiQGRlY29oZXJlL2NvcnRleC9odHRwXCI7Jyxcblx0XHRdO1xuXG5cdFx0Zm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX3NpZGVFZmZlY3RJbXBvcnRzKSB7XG5cdFx0XHRpbXBvcnRzLnB1c2goYGltcG9ydCBcIiR7cGF0aH1cIjtgKTtcblx0XHR9XG5cblx0XHRpbXBvcnRzLnB1c2goXG5cdFx0XHQnaW1wb3J0IFwiQGRlY29oZXJlL3Byb3RvY29sXCI7Jyxcblx0XHRcdCdpbXBvcnQgeyBZYW1sRGF0YVNvdXJjZSB9IGZyb20gXCJAZGVjb2hlcmUvcHJvdG9jb2xcIjsnLFxuXHRcdFx0J2ltcG9ydCB7IEJ1aWxkZXIgfSBmcm9tIFwiQGRlY29oZXJlL2NvcnRleFwiOycsXG5cdFx0XHQnaW1wb3J0IHsgRmFzdGlmeVByb3ZpZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9jb3J0ZXgvcHJvdmlkZXJzXCI7Jyxcblx0XHRcdCdpbXBvcnQgeyBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiOycsXG5cdFx0XHQnaW1wb3J0IHsgU2FtcGxlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3NhbXBsZS5zZXJ2aWNlLmpzXCI7Jyxcblx0XHQpO1xuXG5cdFx0Zm9yIChjb25zdCBlIG9mIHRoaXMuX2VudGl0aWVzKSB7XG5cdFx0XHRpbXBvcnRzLnB1c2goYGltcG9ydCB7ICR7ZS5jbGFzc05hbWV9IH0gZnJvbSBcIiR7ZS5pbXBvcnRQYXRofVwiO2ApO1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgciBvZiB0aGlzLl9yZXBvc2l0b3JpZXMpIHtcblx0XHRcdGltcG9ydHMucHVzaChgaW1wb3J0IHsgJHtyLmNsYXNzTmFtZX0gfSBmcm9tIFwiJHtyLmltcG9ydFBhdGh9XCI7YCk7XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCBzIG9mIHRoaXMuX3NlcnZpY2VzKSB7XG5cdFx0XHRpbXBvcnRzLnB1c2goYGltcG9ydCB7ICR7cy5jbGFzc05hbWV9IH0gZnJvbSBcIiR7cy5pbXBvcnRQYXRofVwiO2ApO1xuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgW2Zyb20sIGdyb3VwXSBvZiB0aGlzLl9leHRyYUltcG9ydHMpIHtcblx0XHRcdGltcG9ydHMucHVzaChncm91cC5yZW5kZXIoZnJvbSkpO1xuXHRcdH1cblxuXHRcdGltcG9ydHMucHVzaCgnaW1wb3J0IHsgSGVsbG9Db250cm9sbGVyIH0gZnJvbSBcIi4vY29udHJvbGxlcnMvaGVsbG8uY29udHJvbGxlci5qc1wiOycpO1xuXG5cdFx0Y29uc3Qgc2VydmljZVJlZ3MgPSBbXG5cdFx0XHRcImNiLnJlZ2lzdGVyU2luZ2xldG9uKFNhbXBsZVNlcnZpY2UpO1wiLFxuXHRcdFx0Li4udGhpcy5fc2VydmljZXMubWFwKChzKSA9PlxuXHRcdFx0XHRzLnNjb3BlID09PSBcInJlcXVlc3RcIlxuXHRcdFx0XHRcdD8gYGNiLnJlZ2lzdGVyUmVxdWVzdFNjb3BlZCgke3MuY2xhc3NOYW1lfSk7YFxuXHRcdFx0XHRcdDogYGNiLnJlZ2lzdGVyU2luZ2xldG9uKCR7cy5jbGFzc05hbWV9KTtgLFxuXHRcdFx0KSxcblx0XHRdLmpvaW4oXCIgXCIpO1xuXG5cdFx0Y29uc3QgYnVpbGRlckNhbGxzOiBzdHJpbmdbXSA9IFtcblx0XHRcdGBcXHQud2l0aEh0dHAoRmFzdGlmeVByb3ZpZGVyKWAsXG5cdFx0XHRgXFx0LndpdGhDb25maWd1cmF0aW9uKFlhbWxEYXRhU291cmNlKWAsXG5cdFx0XHRgXFx0LndpdGhIZWFsdGgoKWAsXG5cdFx0XHRgXFx0LndpdGhPcGVuQXBpKHsgaW5mbzogeyB0aXRsZTogXCIke3RoaXMuYXBwTmFtZX1cIiwgdmVyc2lvbjogXCIxLjAuMFwiIH0gfSlgLFxuXHRcdFx0Li4udGhpcy5fYnVpbGRlckNhbGxzLm1hcCgoYykgPT4gYFxcdCR7Y31gKSxcblx0XHRcdGBcXHQud2l0aFNlcnZpY2VzKChjYikgPT4geyAke3NlcnZpY2VSZWdzfSB9KWAsXG5cdFx0XTtcblxuXHRcdGlmICh0aGlzLl9lbnRpdGllcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBlbnRpdGllcyA9IHRoaXMuX2VudGl0aWVzLm1hcCgoZSkgPT4gZS5jbGFzc05hbWUpLmpvaW4oXCIsIFwiKTtcblx0XHRcdGNvbnN0IHJlcG9zID0gdGhpcy5fcmVwb3NpdG9yaWVzLm1hcCgocikgPT4gci5jbGFzc05hbWUpLmpvaW4oXCIsIFwiKTtcblx0XHRcdGNvbnN0IG5hbWVkID0gdGhpcy5fZGF0YVNvdXJjZU5hbWUgIT0gbnVsbCA/IGBuYW1lOiBcIiR7dGhpcy5fZGF0YVNvdXJjZU5hbWV9XCIsIGAgOiBcIlwiO1xuXHRcdFx0aWYgKHRoaXMuX3R5cGVPcm1TZWVkKSB7XG5cdFx0XHRcdGJ1aWxkZXJDYWxscy5wdXNoKFxuXHRcdFx0XHRcdGBcXHQud2l0aFR5cGVPcm0oeyAke25hbWVkfWVudGl0aWVzOiBbJHtlbnRpdGllc31dLCByZXBvc2l0b3JpZXM6IFske3JlcG9zfV0sIHNlZWQ6IGFzeW5jIChkYXRhU291cmNlKSA9PiB7ICR7dGhpcy5fdHlwZU9ybVNlZWR9IH0gfSlgLFxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVpbGRlckNhbGxzLnB1c2goXG5cdFx0XHRcdFx0YFxcdC53aXRoVHlwZU9ybSh7ICR7bmFtZWR9ZW50aXRpZXM6IFske2VudGl0aWVzfV0sIHJlcG9zaXRvcmllczogWyR7cmVwb3N9XSB9KWAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YnVpbGRlckNhbGxzLnB1c2goYFxcdC53aXRoQ29udHJvbGxlcnMoSGVsbG9Db250cm9sbGVyKWApO1xuXG5cdFx0Y29uc3QgY29udGVudCA9IFtcblx0XHRcdC4uLmltcG9ydHMsXG5cdFx0XHRcIlwiLFxuXHRcdFx0YHNjcmliZS53aXRoUGlub1ByZXR0eSgpLmFuZC53aXRoUGlub1JvbGwoeyBmaWxlOiBcImxvZ3MvJHt0aGlzLmFwcE5hbWV9LmxvZ1wiIH0pO2AsXG5cdFx0XHRcIlwiLFxuXHRcdFx0YGNvbnN0IGFwcCA9IGF3YWl0IEJ1aWxkZXIuY3JlYXRlKHsgYXBwbGljYXRpb25OYW1lOiBcIiR7dGhpcy5hcHBOYW1lfVwiIH0pYCxcblx0XHRcdC4uLmJ1aWxkZXJDYWxscyxcblx0XHRcdGBcXHQuYnVpbGQoKTtgLFxuXHRcdFx0XCJcIixcblx0XHRcdFwiYXdhaXQgYXBwLnN0YXJ0KHsgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQgPz8gMzAwMCkgfSk7XCIsXG5cdFx0XHRcIlwiLFxuXHRcdFx0XCJleHBvcnQgZGVmYXVsdCBhcHA7XCIsXG5cdFx0XHRcIlwiLFxuXHRcdF0uam9pbihcIlxcblwiKTtcblxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9tYWluLnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQsXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJNYWluU291cmNlRmlsZSIsIkltcG9ydEdyb3VwIiwiX3ZhbHVlcyIsIl90eXBlcyIsImFkZCIsIm5hbWUiLCJ0eXBlT25seSIsImluY2x1ZGVzIiwicHVzaCIsInR5cGVJZHgiLCJpbmRleE9mIiwic3BsaWNlIiwicmVuZGVyIiwiZnJvbSIsInZhbHVlcyIsInNvcnQiLCJ0eXBlcyIsIm1hcCIsIm4iLCJqb2luIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIk1BSU5fVFMiLCJfc2lkZUVmZmVjdEltcG9ydHMiLCJfZXh0cmFJbXBvcnRzIiwiTWFwIiwiX2J1aWxkZXJDYWxscyIsIl9lbnRpdGllcyIsIl9yZXBvc2l0b3JpZXMiLCJfc2VydmljZXMiLCJfZGF0YVNvdXJjZU5hbWUiLCJfdHlwZU9ybVNlZWQiLCJhcHBOYW1lIiwiYWRkU2lkZUVmZmVjdEltcG9ydCIsInBhdGgiLCJhZGRJbXBvcnQiLCJncm91cCIsImdldCIsInNldCIsImFkZEJ1aWxkZXJDYWxsIiwiY2FsbCIsImFkZEVudGl0eSIsImVudGl0eSIsImFkZFJlcG9zaXRvcnkiLCJyZXBvIiwiYWRkU2VydmljZSIsInNlcnZpY2UiLCJzZXREYXRhU291cmNlTmFtZSIsInNldFR5cGVPcm1TZWVkIiwic2VlZEJvZHkiLCJmaWxlcyIsImltcG9ydHMiLCJlIiwiY2xhc3NOYW1lIiwiaW1wb3J0UGF0aCIsInIiLCJzIiwic2VydmljZVJlZ3MiLCJzY29wZSIsImJ1aWxkZXJDYWxscyIsImMiLCJsZW5ndGgiLCJlbnRpdGllcyIs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
@@ -81,7 +81,9 @@ COPY package.json ./
81
81
  COPY pnpm-lock.yaml* ./
82
82
  COPY tsconfig.json biome.json ./
83
83
  COPY config ./config
84
- COPY ${projectDir} ./${projectDir}
84
+ # Every package under projects/ — the API imports workspace libraries (e.g. *.domain).
85
+ # Forge builds them all into dist/; only dist/ (not source) reaches the run image.
86
+ COPY projects ./projects
85
87
 
86
88
  ${renderPnpmInstall("all")}
87
89
 
@@ -136,8 +138,8 @@ RUN --mount=type=secret,id=npm_token,required=false \\
136
138
  }
137
139
  function dockerignoreContent() {
138
140
  return [
139
- "node_modules",
140
- "dist",
141
+ "**/node_modules",
142
+ "**/dist",
141
143
  ".git",
142
144
  ".devcontainer",
143
145
  ".vscode",
@@ -153,5 +155,3 @@ function dockerignoreContent() {
153
155
  ""
154
156
  ].join("\n");
155
157
  }
156
-
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL3Byb2R1Y3Rpb24tZG9ja2VyZmlsZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXllZE1vZGVsLCBTb3VyY2VGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb3VyY2UtZmlsZS5qc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9XRUJBUElfTkFNRSwgd2ViYXBpUHJvamVjdERpciwgd2ViYXBpUmVsZWFzZUVudHJ5IH0gZnJvbSBcIi4uL2NvbnN0LmpzXCI7XG5cbmV4cG9ydCB0eXBlIFByb2R1Y3Rpb25Eb2NrZXJmaWxlT3B0aW9ucyA9IHtcblx0LyoqIFdoZW4gdHJ1ZSwgb25seSB3cml0ZSBgRG9ja2VyZmlsZS48bmFtZT5gIChleGlzdGluZyB3b3Jrc3BhY2Ug4oCUIGRvIG5vdCByZXBsYWNlIHJvb3QgRG9ja2VyZmlsZSkuICovXG5cdG5hbWVkT25seT86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFByb2R1Y3Rpb24gRG9ja2VyZmlsZXMgZm9yIFBhYVMgKFJhaWx3YXkvRmx5KSBhbmQgbG9jYWwgYGRvY2tlciBidWlsZGAuXG4gKlxuICogQ29udGV4dCBpcyBhbHdheXMgdGhlICoqcmVwbyByb290KiogKGBkb2NrZXIgYnVpbGQgLWYgRG9ja2VyZmlsZS5iaWxsaW5nIC5gKS5cbiAqIFJvb3QgYERvY2tlcmZpbGVgIGlzIHRoZSBmaXJzdCBBUEkgKGBwbnBtIHN0YXJ0YCkuIEV4dHJhIG9yIGN1c3RvbS1uYW1lZCBBUElzXG4gKiBhbHNvIGdldCBgRG9ja2VyZmlsZS48bmFtZT5gIHNvIGVhY2ggc2VydmljZSBjYW4gYmUgZGVwbG95ZWQgb24gaXRzIG93bi5cbiAqXG4gKiBSdW50aW1lIGBub2RlX21vZHVsZXNgIGNvbWUgZnJvbSBhICoqcHJvZC1kZXBzKiogc3RhZ2UgKGBwbnBtIGluc3RhbGwgLS1wcm9kYCksXG4gKiBub3QgdGhlIGZ1bGwgYnVpbGQgaW5zdGFsbCAoRm9yZ2UsIFR5cGVTY3JpcHQsIEJpb21lLCBWaXRlc3QpLlxuICovXG5leHBvcnQgY2xhc3MgV2ViYXBpUHJvZHVjdGlvbkRvY2tlcmZpbGUgaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUFJPRFVDVElPTl9ET0NLRVJGSUxFO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGFwaU5hbWVzOiByZWFkb25seSBzdHJpbmdbXSA9IFtERUZBVUxUX1dFQkFQSV9OQU1FXSxcblx0XHRwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFByb2R1Y3Rpb25Eb2NrZXJmaWxlT3B0aW9ucyA9IHt9LFxuXHQpIHt9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgbmFtZXMgPSB0aGlzLmFwaU5hbWVzLmxlbmd0aCA+IDAgPyB0aGlzLmFwaU5hbWVzIDogW0RFRkFVTFRfV0VCQVBJX05BTUVdO1xuXHRcdGNvbnN0IGZpcnN0ID0gbmFtZXNbMF0gPz8gREVGQVVMVF9XRUJBUElfTkFNRTtcblx0XHRjb25zdCBmaWxlczogU291cmNlRmlsZVtdID0gW107XG5cblx0XHRpZiAoIXRoaXMub3B0aW9ucy5uYW1lZE9ubHkpIHtcblx0XHRcdGZpbGVzLnB1c2goe1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZG9ja2VyaWdub3JlXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IGRvY2tlcmlnbm9yZUNvbnRlbnQoKSxcblx0XHRcdH0pO1xuXHRcdFx0ZmlsZXMucHVzaCh7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIkRvY2tlcmZpbGVcIixcblx0XHRcdFx0Y29udGVudDogcmVuZGVyUHJvZHVjdGlvbkRvY2tlcmZpbGUoZmlyc3QsIFwic3RhcnRcIiksXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRjb25zdCBlbWl0TmFtZWQgPVxuXHRcdFx0dGhpcy5vcHRpb25zLm5hbWVkT25seSB8fCBuYW1lcy5sZW5ndGggPiAxIHx8IGZpcnN0ICE9PSBERUZBVUxUX1dFQkFQSV9OQU1FO1xuXHRcdGlmIChlbWl0TmFtZWQpIHtcblx0XHRcdGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuXHRcdFx0XHRmaWxlcy5wdXNoKHtcblx0XHRcdFx0XHRmaWxlUGF0aDogYERvY2tlcmZpbGUuJHtuYW1lfWAsXG5cdFx0XHRcdFx0Y29udGVudDogcmVuZGVyUHJvZHVjdGlvbkRvY2tlcmZpbGUobmFtZSwgYHN0YXJ0OiR7bmFtZX1gKSxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZpbGVzO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJQcm9kdWN0aW9uRG9ja2VyZmlsZShhcGlOYW1lOiBzdHJpbmcsIHN0YXJ0U2NyaXB0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBwcm9qZWN0RGlyID0gd2ViYXBpUHJvamVjdERpcihhcGlOYW1lKTtcblx0Y29uc3Qgc3RhcnRDbWQgPVxuXHRcdHN0YXJ0U2NyaXB0ID09PSBcInN0YXJ0XCJcblx0XHRcdD8gJ0NNRCBbXCJwbnBtXCIsIFwic3RhcnRcIl0nXG5cdFx0XHQ6IGBDTUQgW1wicG5wbVwiLCBcInJ1blwiLCBcIiR7c3RhcnRTY3JpcHR9XCJdYDtcblx0Y29uc3Qgc3RhcnRFbnRyeSA9IHdlYmFwaVJlbGVhc2VFbnRyeShhcGlOYW1lKTtcblx0Y29uc3QgZG9ja2VyZmlsZUZsYWcgPSBzdGFydFNjcmlwdCA9PT0gXCJzdGFydFwiID8gXCJcIiA6IGAuJHthcGlOYW1lfWA7XG5cblx0cmV0dXJuIGAjIHN5bnRheD1kb2NrZXIvZG9ja2VyZmlsZToxXG4jIFNlbGYtY29udGFpbmVkIHByb2R1Y3Rpb24gaW1hZ2U6IGluc3RhbGwgKyBmb3JnZSBidWlsZCBoYXBwZW4gaW5zaWRlIGRvY2tlciBidWlsZC5cbiMgSG9zdHMgKFJhaWx3YXkvRmx5L2V0Yy4pIGNsb25lIGdpdCBhbmQgcnVuIFxcYGRvY2tlciBidWlsZFxcYCDigJQgdGhleSBkbyBub3QgcmVjZWl2ZSBDSSBkaXN0Ly5cbiMgQnVpbGQgZnJvbSB0aGUgcmVwbyByb290OiBkb2NrZXIgYnVpbGQgLWYgRG9ja2VyZmlsZSR7ZG9ja2VyZmlsZUZsYWd9IC5cbiNcbiMgUnVudGltZSBub2RlX21vZHVsZXMgYXJlIGEgcHJvZHVjdGlvbi1vbmx5IGluc3RhbGwgKHByb2QtZGVwcykuIFRoZSBidWlsZCBzdGFnZSdzXG4jIGZ1bGwgaW5zdGFsbCAoRm9yZ2UsIFR5cGVTY3JpcHQsIEJpb21lLCBWaXRlc3QpIGlzIG5vdCBjb3BpZWQgaW50byB0aGUgcnVuIGltYWdlLlxuI1xuIyBQcml2YXRlIEBkZWNvaGVyZS8qIHBhY2thZ2VzOiBwYXNzIGEgQnVpbGRLaXQgc2VjcmV0IG5hbWVkIG5wbV90b2tlbiAobnBtIGF1dGggdG9rZW4pLCBlLmcuXG4jICAgZG9ja2VyIGJ1aWxkIC0tc2VjcmV0IGlkPW5wbV90b2tlbixlbnY9Tk9ERV9BVVRIX1RPS0VOIC5cbiMgT3Igc2V0IE5PREVfQVVUSF9UT0tFTiBhcyBhIGJ1aWxkLWFyZyBvbiBob3N0cyB0aGF0IG9ubHkgc3VwcG9ydCBidWlsZC1hcmdzLlxuXG5GUk9NIG5vZGU6MjQtYm9va3dvcm0gQVMgYnVpbGRcbldPUktESVIgL2FwcFxuUlVOIGNvcmVwYWNrIGVuYWJsZSAmJiBjb3JlcGFjayBwcmVwYXJlIHBucG1AMTAgLS1hY3RpdmF0ZVxuXG5DT1BZIHBhY2thZ2UuanNvbiAuL1xuQ09QWSBwbnBtLWxvY2sueWFtbCogLi9cbkNPUFkgdHNjb25maWcuanNvbiBiaW9tZS5qc29uIC4vXG5DT1BZIGNvbmZpZyAuL2NvbmZpZ1xuQ09QWSAke3Byb2plY3REaXJ9IC4vJHtwcm9qZWN0RGlyfVxuXG4ke3JlbmRlclBucG1JbnN0YWxsKFwiYWxsXCIpfVxuXG5SVU4gcG5wbSBydW4gYnVpbGRcblxuRlJPTSBub2RlOjI0LWJvb2t3b3JtIEFTIHByb2QtZGVwc1xuV09SS0RJUiAvYXBwXG5FTlYgTk9ERV9FTlY9cHJvZHVjdGlvblxuUlVOIGNvcmVwYWNrIGVuYWJsZSAmJiBjb3JlcGFjayBwcmVwYXJlIHBucG1AMTAgLS1hY3RpdmF0ZVxuXG5DT1BZIHBhY2thZ2UuanNvbiAuL1xuQ09QWSBwbnBtLWxvY2sueWFtbCogLi9cbkNPUFkgJHtwcm9qZWN0RGlyfS9wYWNrYWdlLmpzb24gLi8ke3Byb2plY3REaXJ9L3BhY2thZ2UuanNvblxuXG4ke3JlbmRlclBucG1JbnN0YWxsKFwicHJvZFwiKX1cblxuRlJPTSBub2RlOjI0LWJvb2t3b3JtLXNsaW0gQVMgcnVuXG5XT1JLRElSIC9hcHBcbkVOViBOT0RFX0VOVj1wcm9kdWN0aW9uXG5SVU4gY29yZXBhY2sgZW5hYmxlICYmIGNvcmVwYWNrIHByZXBhcmUgcG5wbUAxMCAtLWFjdGl2YXRlXG5cbkNPUFkgLS1mcm9tPXByb2QtZGVwcyAvYXBwL3BhY2thZ2UuanNvbiAuL1xuQ09QWSAtLWZyb209cHJvZC1kZXBzIC9hcHAvcG5wbS1sb2NrLnlhbWwqIC4vXG5DT1BZIC0tZnJvbT1idWlsZCAvYXBwL2NvbmZpZyAuL2NvbmZpZ1xuQ09QWSAtLWZyb209YnVpbGQgL2FwcC9kaXN0IC4vZGlzdFxuQ09QWSAtLWZyb209cHJvZC1kZXBzIC9hcHAvbm9kZV9tb2R1bGVzIC4vbm9kZV9tb2R1bGVzXG5DT1BZIC0tZnJvbT1wcm9kLWRlcHMgL2FwcC8ke3Byb2plY3REaXJ9L3BhY2thZ2UuanNvbiAuLyR7cHJvamVjdERpcn0vcGFja2FnZS5qc29uXG5cbkVYUE9TRSAzMDAwXG4ke3N0YXJ0Q21kfVxuIyBFbnRyeSByZXNvbHZlZCBieSBwYWNrYWdlLmpzb24gXCIke3N0YXJ0U2NyaXB0fVwiIOKGkiBub2RlICR7c3RhcnRFbnRyeX1cbmA7XG59XG5cbi8qKiBucG0gYXV0aCArIHBucG0gaW5zdGFsbC4gVG9rZW4gaXMgcmVxdWlyZWQgYWdhaW4gaW4gcHJvZC1kZXBzIChzZXBhcmF0ZSBzdGFnZSwgbm8gc3RvcmUpLiAqL1xuZnVuY3Rpb24gcmVuZGVyUG5wbUluc3RhbGwobW9kZTogXCJhbGxcIiB8IFwicHJvZFwiKTogc3RyaW5nIHtcblx0Y29uc3QgZmxhZ3MgPSBtb2RlID09PSBcInByb2RcIiA/IFwiIC0tcHJvZFwiIDogXCJcIjtcblx0cmV0dXJuIGBBUkcgTk9ERV9BVVRIX1RPS0VOPVxuUlVOIC0tbW91bnQ9dHlwZT1zZWNyZXQsaWQ9bnBtX3Rva2VuLHJlcXVpcmVkPWZhbHNlIFxcXFxcblx0aWYgWyAtZiAvcnVuL3NlY3JldHMvbnBtX3Rva2VuIF07IHRoZW4gXFxcXFxuXHRcdFRPS0VOPVwiJChjYXQgL3J1bi9zZWNyZXRzL25wbV90b2tlbilcIjsgXFxcXFxuXHRlbHNlIFxcXFxcblx0XHRUT0tFTj1cIlxcJHtOT0RFX0FVVEhfVE9LRU59XCI7IFxcXFxcblx0Zmk7IFxcXFxcblx0aWYgWyAtbiBcIiRUT0tFTlwiIF07IHRoZW4gXFxcXFxuXHRcdGVjaG8gXCIvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbj1cXCR7VE9LRU59XCIgPiAubnBtcmM7IFxcXFxcblx0Zmk7IFxcXFxcblx0aWYgWyAtZiBwbnBtLWxvY2sueWFtbCBdOyB0aGVuIFxcXFxcblx0XHRwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUke2ZsYWdzfTsgXFxcXFxuXHRlbHNlIFxcXFxcblx0XHRwbnBtIGluc3RhbGwke2ZsYWdzfTsgXFxcXFxuXHRmaTsgXFxcXFxuXHRybSAtZiAubnBtcmNgO1xufVxuXG5mdW5jdGlvbiBkb2NrZXJpZ25vcmVDb250ZW50KCk6IHN0cmluZyB7XG5cdHJldHVybiBbXG5cdFx0XCJub2RlX21vZHVsZXNcIixcblx0XHRcImRpc3RcIixcblx0XHRcIi5naXRcIixcblx0XHRcIi5kZXZjb250YWluZXJcIixcblx0XHRcIi52c2NvZGVcIixcblx0XHRcIi5naXRodWJcIixcblx0XHRcInBvc3RtYW5cIixcblx0XHRcIi5wb3N0bWFuXCIsXG5cdFx0XCIuZW52XCIsXG5cdFx0XCIuZW52LipcIixcblx0XHRcIiEuZW52LmV4YW1wbGVcIixcblx0XHRcImNvdmVyYWdlXCIsXG5cdFx0XCIqKi8qLnNwZWMudHNcIixcblx0XHRcIioqLyoudGVzdC50c1wiLFxuXHRcdFwiXCIsXG5cdF0uam9pbihcIlxcblwiKTtcbn1cbiJdLCJuYW1lcyI6WyJXZWJhcGlQcm9kdWN0aW9uRG9ja2VyZmlsZSIsInJlbmRlclByb2R1Y3Rpb25Eb2NrZXJmaWxlIiwia2V5IiwiV0VMTF9LTk9XTl9GSUxFUyIsIlBST0RVQ1RJT05fRE9DS0VSRklMRSIsImFwaU5hbWVzIiwiREVGQVVMVF9XRUJBUElfTkFNRSIsIm9wdGlvbnMiLCJmaWxlcyIsIm5hbWVzIiwibGVuZ3RoIiwiZmlyc3QiLCJuYW1lZE9ubHkiLCJwdXNoIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiZG9ja2VyaWdub3JlQ29udGVudCIsImVtaXROYW1lZCIsIm5hbWUiLCJhcGlOYW1lIiwic3RhcnRTY3JpcHQiLCJwcm9qZWN0RGlyIiwid2ViYXBpUHJvamVjdERpciIsInN0YXJ0Q21kIiwic3RhcnRFbnRyeSIsIndlYmFwaVJlbGVhc2VFbnRyeSIsImRvY2tlcmZpbGVGbGFnIiwicmVuZGVyUG5wbUluc3RhbGwiLCJtb2RlIiwiZmxhZ3MiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQW1CYUE7ZUFBQUE7O1FBdUNHQztlQUFBQTs7O3VCQTFEaUI7d0JBRXlDO0FBaUJuRSxNQUFNRDs7O0lBQ0lFLE1BQU1DLHVCQUFnQixDQUFDQyxxQkFBcUIsQ0FBQztJQUU3RCxZQUNDLEFBQWlCQyxXQUE4QjtRQUFDQywyQkFBbUI7S0FBQyxFQUNwRSxBQUFpQkMsVUFBdUMsQ0FBQyxDQUFDLENBQ3pEO2FBRmdCRixXQUFBQTthQUNBRSxVQUFBQTtJQUNmO0lBRUlDLFFBQXNCO1FBQzVCLE1BQU1DLFFBQVEsSUFBSSxDQUFDSixRQUFRLENBQUNLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQ0wsUUFBUSxHQUFHO1lBQUNDLDJCQUFtQjtTQUFDO1FBQzlFLE1BQU1LLFFBQVFGLEtBQUssQ0FBQyxFQUFFLElBQUlILDJCQUFtQjtRQUM3QyxNQUFNRSxRQUFzQixFQUFFO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUNELE9BQU8sQ0FBQ0ssU0FBUyxFQUFFO1lBQzVCSixNQUFNSyxJQUFJLENBQUM7Z0JBQ1ZDLFVBQVU7Z0JBQ1ZDLFNBQVNDO1lBQ1Y7WUFDQVIsTUFBTUssSUFBSSxDQUFDO2dCQUNWQyxVQUFVO2dCQUNWQyxTQUFTZCwyQkFBMkJVLE9BQU87WUFDNUM7UUFDRDtRQUVBLE1BQU1NLFlBQ0wsSUFBSSxDQUFDVixPQUFPLENBQUNLLFNBQVMsSUFBSUgsTUFBTUMsTUFBTSxHQUFHLEtBQUtDLFVBQVVMLDJCQUFtQjtRQUM1RSxJQUFJVyxXQUFXO1lBQ2QsS0FBSyxNQUFNQyxRQUFRVCxNQUFPO2dCQUN6QkQsTUFBTUssSUFBSSxDQUFDO29CQUNWQyxVQUFVLENBQUMsV0FBVyxFQUFFSSxNQUFNO29CQUM5QkgsU0FBU2QsMkJBQTJCaUIsTUFBTSxDQUFDLE1BQU0sRUFBRUEsTUFBTTtnQkFDMUQ7WUFDRDtRQUNEO1FBRUEsT0FBT1Y7SUFDUjtBQUNEO0FBRU8sU0FBU1AsMkJBQTJCa0IsT0FBZSxFQUFFQyxXQUFtQjtJQUM5RSxNQUFNQyxhQUFhQyxJQUFBQSx3QkFBZ0IsRUFBQ0g7SUFDcEMsTUFBTUksV0FDTEgsZ0JBQWdCLFVBQ2IsMEJBQ0EsQ0FBQyxxQkFBcUIsRUFBRUEsWUFBWSxFQUFFLENBQUM7SUFDM0MsTUFBTUksYUFBYUMsSUFBQUEsMEJBQWtCLEVBQUNOO0lBQ3RDLE1BQU1PLGlCQUFpQk4sZ0JBQWdCLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRUQsU0FBUztJQUVuRSxPQUFPLENBQUM7OztzREFHNkMsRUFBRU8sZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQmxFLEVBQUVMLFdBQVcsR0FBRyxFQUFFQSxXQUFXOztBQUVsQyxFQUFFTSxrQkFBa0IsT0FBTzs7Ozs7Ozs7Ozs7S0FXdEIsRUFBRU4sV0FBVyxnQkFBZ0IsRUFBRUEsV0FBVzs7QUFFL0MsRUFBRU0sa0JBQWtCLFFBQVE7Ozs7Ozs7Ozs7OzsyQkFZRCxFQUFFTixXQUFXLGdCQUFnQixFQUFFQSxXQUFXOzs7QUFHckUsRUFBRUUsU0FBUztrQ0FDdUIsRUFBRUgsWUFBWSxTQUFTLEVBQUVJLFdBQVc7QUFDdEUsQ0FBQztBQUNEO0FBRUEsOEZBQThGLEdBQzlGLFNBQVNHLGtCQUFrQkMsSUFBb0I7SUFDOUMsTUFBTUMsUUFBUUQsU0FBUyxTQUFTLFlBQVk7SUFDNUMsT0FBTyxDQUFDOzs7Ozs7Ozs7OztnQ0FXdUIsRUFBRUMsTUFBTTs7Y0FFMUIsRUFBRUEsTUFBTTs7YUFFVCxDQUFDO0FBQ2Q7QUFFQSxTQUFTYjtJQUNSLE9BQU87UUFDTjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDQSxDQUFDYyxJQUFJLENBQUM7QUFDUiJ9
@@ -56,5 +56,3 @@ class SampleServiceModel {
56
56
  ];
57
57
  }
58
58
  }
59
-
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL3NhbXBsZS1maWxlcy5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNvdXJjZUZpbGUsIFNvdXJjZUZpbGVQcm92aWRlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc291cmNlLWZpbGUuanNcIjtcblxuY29uc3QgU0FNUExFX0NPTkZJR19DT05URU5UID0gYGV4cG9ydCBjbGFzcyBTYW1wbGVDb25maWcge1xcblxcdHB1YmxpYyBncmVldGluZzogc3RyaW5nID0gXCJcIjtcXG59XFxuYDtcblxuY29uc3QgU0FNUExFX1NFUlZJQ0VfQ09OVEVOVCA9IFtcblx0YGltcG9ydCB7IGluamVjdCwgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO2AsXG5cdGBpbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZVRva2VuIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb25maWd1cmF0aW9uXCI7YCxcblx0YGltcG9ydCB0eXBlIHsgSUNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb25maWd1cmF0aW9uXCI7YCxcblx0YGltcG9ydCB7IFNhbXBsZUNvbmZpZyB9IGZyb20gXCIuLi9zYW1wbGUuY29uZmlnLmpzXCI7YCxcblx0YGAsXG5cdGBAaW5qZWN0YWJsZSgpYCxcblx0YGV4cG9ydCBjbGFzcyBTYW1wbGVTZXJ2aWNlIHtgLFxuXHRgXFx0cHVibGljIGNvbnN0cnVjdG9yKGAsXG5cdGBcXHRcXHRAaW5qZWN0KENvbmZpZ3VyYXRpb25TZXJ2aWNlVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBJQ29uZmlndXJhdGlvblNlcnZpY2UsYCxcblx0YFxcdCkge31gLFxuXHRgYCxcblx0YFxcdHB1YmxpYyBhc3luYyBnZXRHcmVldGluZygpOiBQcm9taXNlPHN0cmluZz4ge2AsXG5cdGBcXHRcXHRjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmNvbmZpZy5nZXQoU2FtcGxlQ29uZmlnKTtgLFxuXHRgXFx0XFx0cmV0dXJuIGNvbmZpZy5ncmVldGluZztgLFxuXHRgXFx0fWAsXG5cdGB9YCxcblx0YGAsXG5dLmpvaW4oXCJcXG5cIik7XG5cbmV4cG9ydCBjbGFzcyBTYW1wbGVDb25maWdNb2RlbCBpbXBsZW1lbnRzIFNvdXJjZUZpbGVQcm92aWRlciB7XG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9zYW1wbGUuY29uZmlnLnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9DT05GSUdfQ09OVEVOVCxcblx0XHRcdH0sXG5cdFx0XTtcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgU2FtcGxlU2VydmljZU1vZGVsIGltcGxlbWVudHMgU291cmNlRmlsZVByb3ZpZGVyIHtcblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwic3JjL3NlcnZpY2VzL3NhbXBsZS5zZXJ2aWNlLnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9TRVJWSUNFX0NPTlRFTlQsXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTYW1wbGVDb25maWdNb2RlbCIsIlNhbXBsZVNlcnZpY2VNb2RlbCIsIlNBTVBMRV9DT05GSUdfQ09OVEVOVCIsIlNBTVBMRV9TRVJWSUNFX0NPTlRFTlQiLCJqb2luIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBd0JhQTtlQUFBQTs7UUFXQUM7ZUFBQUE7OztBQWpDYixNQUFNQyx3QkFBd0IsQ0FBQyxpRUFBaUUsQ0FBQztBQUVqRyxNQUFNQyx5QkFBeUI7SUFDOUIsQ0FBQyxtRUFBbUUsQ0FBQztJQUNyRSxDQUFDLDBFQUEwRSxDQUFDO0lBQzVFLENBQUMsMkVBQTJFLENBQUM7SUFDN0UsQ0FBQyxtREFBbUQsQ0FBQztJQUNyRCxFQUFFO0lBQ0YsQ0FBQyxhQUFhLENBQUM7SUFDZixDQUFDLDRCQUE0QixDQUFDO0lBQzlCLENBQUMscUJBQXFCLENBQUM7SUFDdkIsQ0FBQyxzRkFBc0YsQ0FBQztJQUN4RixDQUFDLE1BQU0sQ0FBQztJQUNSLEVBQUU7SUFDRixDQUFDLCtDQUErQyxDQUFDO0lBQ2pELENBQUMsdURBQXVELENBQUM7SUFDekQsQ0FBQywyQkFBMkIsQ0FBQztJQUM3QixDQUFDLEdBQUcsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRTtDQUNGLENBQUNDLElBQUksQ0FBQztBQUVBLE1BQU1KO0lBQ0xLLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0w7WUFDVjtTQUNBO0lBQ0Y7QUFDRDtBQUVPLE1BQU1EO0lBQ0xJLFFBQXNCO1FBQzVCLE9BQU87WUFDTjtnQkFDQ0MsVUFBVTtnQkFDVkMsU0FBU0o7WUFDVjtTQUNBO0lBQ0Y7QUFDRCJ9
@@ -23,5 +23,3 @@ class WebapiDevContainer extends _dockerimagemodel.DockerfileModel {
23
23
  ];
24
24
  }
25
25
  }
26
-
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvbW9kZWxzL3dlYmFwaS1pbWFnZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2NrZXJmaWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2RvY2tlci1pbWFnZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04sIERFVkNPTlRBSU5FUl9JTUFHRV9SRVBPU0lUT1JZIH0gZnJvbSBcIi4uLy4uL3ZlcnNpb24uanNcIjtcblxuLyoqXG4gKiBTY2FmZm9sZGVkIGFwcCBgLmRldmNvbnRhaW5lci9Eb2NrZXJmaWxlYCDigJQgdGhpbiBgRlJPTWAgdGhlIHB1Ymxpc2hlZCBiYXNlIGltYWdlLlxuICogT3B0aW9uYWwgZmVhdHVyZSBsYXllcnMgKGUuZy4gcG9zdGdyZXNxbC1jbGllbnQpIGFwcGVuZCB2aWEgYGFkZExheWVyYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYmFwaURldkNvbnRhaW5lciBleHRlbmRzIERvY2tlcmZpbGVNb2RlbCB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihiYXNlSW1hZ2UgPSBgJHtERVZDT05UQUlORVJfSU1BR0VfUkVQT1NJVE9SWX06JHtDUkVBVEVfVkVSU0lPTn1gKSB7XG5cdFx0c3VwZXIoYmFzZUltYWdlKTtcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCIuZGV2Y29udGFpbmVyL0RvY2tlcmZpbGVcIixcblx0XHRcdFx0Y29udGVudDogdGhpcy5idWlsZCgpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiV2ViYXBpRGV2Q29udGFpbmVyIiwiRG9ja2VyZmlsZU1vZGVsIiwiYmFzZUltYWdlIiwiREVWQ09OVEFJTkVSX0lNQUdFX1JFUE9TSVRPUlkiLCJDUkVBVEVfVkVSU0lPTiIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiYnVpbGQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBT2FBOzs7ZUFBQUE7OztrQ0FQbUI7eUJBQzhCO0FBTXZELE1BQU1BLDJCQUEyQkMsaUNBQWU7SUFDdEQsWUFBbUJDLFlBQVksR0FBR0Msc0NBQTZCLENBQUMsQ0FBQyxFQUFFQyx1QkFBYyxFQUFFLENBQUU7UUFDcEYsS0FBSyxDQUFDRjtJQUNQO0lBRU9HLFFBQVE7UUFDZCxPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVMsSUFBSSxDQUFDQyxLQUFLO1lBQ3BCO1NBQ0E7SUFDRjtBQUNEIn0=
@@ -171,5 +171,3 @@ function buildHelloOpenApiDocument(projectName) {
171
171
  }
172
172
  };
173
173
  }
174
-
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvcG9zdG1hbi9oZWxsby1vcGVuYXBpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBNaW5pbWFsIE9wZW5BUEkgMyBkb2N1bWVudCBzaGFwZSB1c2VkIGZvciBQb3N0bWFuIGNvbnZlcnNpb24uICovXG5leHBvcnQgdHlwZSBTY2FmZm9sZE9wZW5BcGlEb2N1bWVudCA9IHtcblx0b3BlbmFwaTogXCIzLjAuM1wiO1xuXHRpbmZvOiB7IHRpdGxlOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfTtcblx0c2VydmVycz86IEFycmF5PHsgdXJsOiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0+O1xuXHRwYXRoczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xufTtcblxuLyoqXG4gKiBDYW5vbmljYWwgSGVsbG8gV2ViQVBJIE9wZW5BUEkgZG9jdW1lbnQgdXNlZCB0byBnZW5lcmF0ZSBQb3N0bWFuIHJlcXVlc3RzLlxuICogS2VlcCBwYXRocyBhbGlnbmVkIHdpdGggc2NhZmZvbGRlZCBIZWxsb0NvbnRyb2xsZXIgKGAvaGVsbG9gLCBgL2hlbGxvL3tpZH1gKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQocHJvamVjdE5hbWU6IHN0cmluZyk6IFNjYWZmb2xkT3BlbkFwaURvY3VtZW50IHtcblx0cmV0dXJuIHtcblx0XHRvcGVuYXBpOiBcIjMuMC4zXCIsXG5cdFx0aW5mbzoge1xuXHRcdFx0dGl0bGU6IGAke3Byb2plY3ROYW1lfSBXZWJBUElgLFxuXHRcdFx0dmVyc2lvbjogXCIxLjAuMFwiLFxuXHRcdFx0ZGVzY3JpcHRpb246XG5cdFx0XHRcdFwiR2VuZXJhdGVkIGZyb20gT3BlbkFQSSBmb3IgUG9zdG1hbi4gQXV0aC9lbnYgb3ZlcmxheXMgYXJlIGFwcGxpZWQgc2VwYXJhdGVseS5cIixcblx0XHR9LFxuXHRcdHNlcnZlcnM6IFt7IHVybDogXCJ7e2Jhc2VVcmx9fVwiIH1dLFxuXHRcdHBhdGhzOiB7XG5cdFx0XHRcIi9oZWxsb1wiOiB7XG5cdFx0XHRcdGdldDoge1xuXHRcdFx0XHRcdG9wZXJhdGlvbklkOiBcIkhlbGxvQ29udHJvbGxlci5nZXRBbGxcIixcblx0XHRcdFx0XHRzdW1tYXJ5OiBcIkxpc3QgKGFub255bW91cylcIixcblx0XHRcdFx0XHR0YWdzOiBbXCJIZWxsb1wiXSxcblx0XHRcdFx0XHRwYXJhbWV0ZXJzOiBbXG5cdFx0XHRcdFx0XHR7IG5hbWU6IFwiZmlsdGVyXCIsIGluOiBcInF1ZXJ5XCIsIHJlcXVpcmVkOiBmYWxzZSwgc2NoZW1hOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9LFxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0cmVzcG9uc2VzOiB7IFwiMjAwXCI6IHsgZGVzY3JpcHRpb246IFwiU3VjY2Vzc2Z1bCByZXNwb25zZVwiIH0gfSxcblx0XHRcdFx0fSxcblx0XHRcdFx0cG9zdDoge1xuXHRcdFx0XHRcdG9wZXJhdGlvbklkOiBcIkhlbGxvQ29udHJvbGxlci5jcmVhdGVcIixcblx0XHRcdFx0XHRzdW1tYXJ5OiBcIkNyZWF0ZVwiLFxuXHRcdFx0XHRcdHRhZ3M6IFtcIkhlbGxvXCJdLFxuXHRcdFx0XHRcdHJlcXVlc3RCb2R5OiB7XG5cdFx0XHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0XHRcdFx0XCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRzY2hlbWE6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwib2JqZWN0XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0aWVzOiB7IG1lc3NhZ2U6IHsgdHlwZTogXCJzdHJpbmdcIiB9IH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZDogW1wibWVzc2FnZVwiXSxcblx0XHRcdFx0XHRcdFx0XHRcdGV4YW1wbGU6IHsgbWVzc2FnZTogXCJoZWxsb1wiIH0sXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRyZXNwb25zZXM6IHsgXCIyMDBcIjogeyBkZXNjcmlwdGlvbjogXCJTdWNjZXNzZnVsIHJlc3BvbnNlXCIgfSB9LFxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHRcdFwiL2hlbGxvL3tpZH1cIjoge1xuXHRcdFx0XHRnZXQ6IHtcblx0XHRcdFx0XHRvcGVyYXRpb25JZDogXCJIZWxsb0NvbnRyb2xsZXIuZ2V0T25lXCIsXG5cdFx0XHRcdFx0c3VtbWFyeTogXCJHZXQgYnkgaWRcIixcblx0XHRcdFx0XHR0YWdzOiBbXCJIZWxsb1wiXSxcblx0XHRcdFx0XHRwYXJhbWV0ZXJzOiBbeyBuYW1lOiBcImlkXCIsIGluOiBcInBhdGhcIiwgcmVxdWlyZWQ6IHRydWUsIHNjaGVtYTogeyB0eXBlOiBcInN0cmluZ1wiIH0gfV0sXG5cdFx0XHRcdFx0cmVzcG9uc2VzOiB7IFwiMjAwXCI6IHsgZGVzY3JpcHRpb246IFwiU3VjY2Vzc2Z1bCByZXNwb25zZVwiIH0gfSxcblx0XHRcdFx0fSxcblx0XHRcdFx0cHV0OiB7XG5cdFx0XHRcdFx0b3BlcmF0aW9uSWQ6IFwiSGVsbG9Db250cm9sbGVyLnVwZGF0ZVwiLFxuXHRcdFx0XHRcdHN1bW1hcnk6IFwiVXBkYXRlXCIsXG5cdFx0XHRcdFx0dGFnczogW1wiSGVsbG9cIl0sXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogW3sgbmFtZTogXCJpZFwiLCBpbjogXCJwYXRoXCIsIHJlcXVpcmVkOiB0cnVlLCBzY2hlbWE6IHsgdHlwZTogXCJzdHJpbmdcIiB9IH1dLFxuXHRcdFx0XHRcdHJlcXVlc3RCb2R5OiB7XG5cdFx0XHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0XHRcdFx0XCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRzY2hlbWE6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwib2JqZWN0XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0aWVzOiB7IG1lc3NhZ2U6IHsgdHlwZTogXCJzdHJpbmdcIiB9IH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZDogW1wibWVzc2FnZVwiXSxcblx0XHRcdFx0XHRcdFx0XHRcdGV4YW1wbGU6IHsgbWVzc2FnZTogXCJ1cGRhdGVkXCIgfSxcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHJlc3BvbnNlczogeyBcIjIwMFwiOiB7IGRlc2NyaXB0aW9uOiBcIlN1Y2Nlc3NmdWwgcmVzcG9uc2VcIiB9IH0sXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRlbGV0ZToge1xuXHRcdFx0XHRcdG9wZXJhdGlvbklkOiBcIkhlbGxvQ29udHJvbGxlci5yZW1vdmVcIixcblx0XHRcdFx0XHRzdW1tYXJ5OiBcIkRlbGV0ZVwiLFxuXHRcdFx0XHRcdHRhZ3M6IFtcIkhlbGxvXCJdLFxuXHRcdFx0XHRcdHBhcmFtZXRlcnM6IFt7IG5hbWU6IFwiaWRcIiwgaW46IFwicGF0aFwiLCByZXF1aXJlZDogdHJ1ZSwgc2NoZW1hOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9XSxcblx0XHRcdFx0XHRyZXNwb25zZXM6IHsgXCIyMDBcIjogeyBkZXNjcmlwdGlvbjogXCJTdWNjZXNzZnVsIHJlc3BvbnNlXCIgfSB9LFxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9O1xufVxuIl0sIm5hbWVzIjpbImJ1aWxkSGVsbG9PcGVuQXBpRG9jdW1lbnQiLCJwcm9qZWN0TmFtZSIsIm9wZW5hcGkiLCJpbmZvIiwidGl0bGUiLCJ2ZXJzaW9uIiwiZGVzY3JpcHRpb24iLCJzZXJ2ZXJzIiwidXJsIiwicGF0aHMiLCJnZXQiLCJvcGVyYXRpb25JZCIsInN1bW1hcnkiLCJ0YWdzIiwicGFyYW1ldGVycyIsIm5hbWUiLCJpbiIsInJlcXVpcmVkIiwic2NoZW1hIiwidHlwZSIsInJlc3BvbnNlcyIsInBvc3QiLCJyZXF1ZXN0Qm9keSIsImNvbnRlbnQiLCJwcm9wZXJ0aWVzIiwibWVzc2FnZSIsImV4YW1wbGUiLCJwdXQiLCJkZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLGtFQUFrRTs7OzsrQkFZbERBOzs7ZUFBQUE7OztBQUFULFNBQVNBLDBCQUEwQkMsV0FBbUI7SUFDNUQsT0FBTztRQUNOQyxTQUFTO1FBQ1RDLE1BQU07WUFDTEMsT0FBTyxHQUFHSCxZQUFZLE9BQU8sQ0FBQztZQUM5QkksU0FBUztZQUNUQyxhQUNDO1FBQ0Y7UUFDQUMsU0FBUztZQUFDO2dCQUFFQyxLQUFLO1lBQWM7U0FBRTtRQUNqQ0MsT0FBTztZQUNOLFVBQVU7Z0JBQ1RDLEtBQUs7b0JBQ0pDLGFBQWE7b0JBQ2JDLFNBQVM7b0JBQ1RDLE1BQU07d0JBQUM7cUJBQVE7b0JBQ2ZDLFlBQVk7d0JBQ1g7NEJBQUVDLE1BQU07NEJBQVVDLElBQUk7NEJBQVNDLFVBQVU7NEJBQU9DLFFBQVE7Z0NBQUVDLE1BQU07NEJBQVM7d0JBQUU7cUJBQzNFO29CQUNEQyxXQUFXO3dCQUFFLE9BQU87NEJBQUVkLGFBQWE7d0JBQXNCO29CQUFFO2dCQUM1RDtnQkFDQWUsTUFBTTtvQkFDTFYsYUFBYTtvQkFDYkMsU0FBUztvQkFDVEMsTUFBTTt3QkFBQztxQkFBUTtvQkFDZlMsYUFBYTt3QkFDWkwsVUFBVTt3QkFDVk0sU0FBUzs0QkFDUixvQkFBb0I7Z0NBQ25CTCxRQUFRO29DQUNQQyxNQUFNO29DQUNOSyxZQUFZO3dDQUFFQyxTQUFTOzRDQUFFTixNQUFNO3dDQUFTO29DQUFFO29DQUMxQ0YsVUFBVTt3Q0FBQztxQ0FBVTtvQ0FDckJTLFNBQVM7d0NBQUVELFNBQVM7b0NBQVE7Z0NBQzdCOzRCQUNEO3dCQUNEO29CQUNEO29CQUNBTCxXQUFXO3dCQUFFLE9BQU87NEJBQUVkLGFBQWE7d0JBQXNCO29CQUFFO2dCQUM1RDtZQUNEO1lBQ0EsZUFBZTtnQkFDZEksS0FBSztvQkFDSkMsYUFBYTtvQkFDYkMsU0FBUztvQkFDVEMsTUFBTTt3QkFBQztxQkFBUTtvQkFDZkMsWUFBWTt3QkFBQzs0QkFBRUMsTUFBTTs0QkFBTUMsSUFBSTs0QkFBUUMsVUFBVTs0QkFBTUMsUUFBUTtnQ0FBRUMsTUFBTTs0QkFBUzt3QkFBRTtxQkFBRTtvQkFDcEZDLFdBQVc7d0JBQUUsT0FBTzs0QkFBRWQsYUFBYTt3QkFBc0I7b0JBQUU7Z0JBQzVEO2dCQUNBcUIsS0FBSztvQkFDSmhCLGFBQWE7b0JBQ2JDLFNBQVM7b0JBQ1RDLE1BQU07d0JBQUM7cUJBQVE7b0JBQ2ZDLFlBQVk7d0JBQUM7NEJBQUVDLE1BQU07NEJBQU1DLElBQUk7NEJBQVFDLFVBQVU7NEJBQU1DLFFBQVE7Z0NBQUVDLE1BQU07NEJBQVM7d0JBQUU7cUJBQUU7b0JBQ3BGRyxhQUFhO3dCQUNaTCxVQUFVO3dCQUNWTSxTQUFTOzRCQUNSLG9CQUFvQjtnQ0FDbkJMLFFBQVE7b0NBQ1BDLE1BQU07b0NBQ05LLFlBQVk7d0NBQUVDLFNBQVM7NENBQUVOLE1BQU07d0NBQVM7b0NBQUU7b0NBQzFDRixVQUFVO3dDQUFDO3FDQUFVO29DQUNyQlMsU0FBUzt3Q0FBRUQsU0FBUztvQ0FBVTtnQ0FDL0I7NEJBQ0Q7d0JBQ0Q7b0JBQ0Q7b0JBQ0FMLFdBQVc7d0JBQUUsT0FBTzs0QkFBRWQsYUFBYTt3QkFBc0I7b0JBQUU7Z0JBQzVEO2dCQUNBc0IsUUFBUTtvQkFDUGpCLGFBQWE7b0JBQ2JDLFNBQVM7b0JBQ1RDLE1BQU07d0JBQUM7cUJBQVE7b0JBQ2ZDLFlBQVk7d0JBQUM7NEJBQUVDLE1BQU07NEJBQU1DLElBQUk7NEJBQVFDLFVBQVU7NEJBQU1DLFFBQVE7Z0NBQUVDLE1BQU07NEJBQVM7d0JBQUU7cUJBQUU7b0JBQ3BGQyxXQUFXO3dCQUFFLE9BQU87NEJBQUVkLGFBQWE7d0JBQXNCO29CQUFFO2dCQUM1RDtZQUNEO1FBQ0Q7SUFDRDtBQUNEIn0=
@@ -180,5 +180,3 @@ function requestUrlForLocalView(request) {
180
180
  function sanitizeFileName(name) {
181
181
  return name.replace(/[^\w\s()-]+/g, "").trim() || "Request";
182
182
  }
183
-
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjYWZmb2xkL3NyYy93ZWJhcGkvcG9zdG1hbi9sb2NhbC12aWV3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7XG5cdHR5cGUgQXV0aDBFbnYsXG5cdG9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbixcblx0dHlwZSBQb3N0bWFuQ29sbGVjdGlvbixcblx0dHlwZSBQb3N0bWFuSXRlbSxcblx0dHlwZSBQb3N0bWFuUmVxdWVzdCxcbn0gZnJvbSBcIi4vb3BlbmFwaS10by1wb3N0bWFuLmpzXCI7XG5cbmZ1bmN0aW9uIHlhbWxRdW90ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0aWYgKC9bOiN7fVtcXF0sJio/fDw+PSElQGBdLy50ZXN0KHZhbHVlKSB8fCB2YWx1ZS5pbmNsdWRlcyhcIlxcblwiKSB8fCB2YWx1ZSA9PT0gXCJcIikge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5cdH1cblx0cmV0dXJuIHZhbHVlO1xufVxuXG4vKiogTG9jYWwgVmlldyAvIE5hdGl2ZSBHaXQgZW52aXJvbm1lbnQgKFlBTUwpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRW52aXJvbm1lbnRZYW1sKFxuXHRuYW1lOiBzdHJpbmcsXG5cdGF1dGg6IEF1dGgwRW52IHwgdW5kZWZpbmVkLFxuXHRvcHRpb25zOiB7IGNhbGxiYWNrczogcmVhZG9ubHkgc3RyaW5nW107IHNjb3Blczogc3RyaW5nIH0sXG4pOiBzdHJpbmcge1xuXHRjb25zdCB2YWx1ZXM6IEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gPSBbXG5cdFx0eyBrZXk6IFwiYmFzZVVybFwiLCB2YWx1ZTogXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIiB9LFxuXHRdO1xuXHRpZiAoYXV0aD8uYXV0aDBEb21haW4pIHtcblx0XHR2YWx1ZXMucHVzaChcblx0XHRcdHsga2V5OiBcImF1dGgwRG9tYWluXCIsIHZhbHVlOiBhdXRoLmF1dGgwRG9tYWluIH0sXG5cdFx0XHR7IGtleTogXCJhdXRoMEF1ZGllbmNlXCIsIHZhbHVlOiBhdXRoLmF1dGgwQXVkaWVuY2UgPz8gXCJcIiB9LFxuXHRcdFx0eyBrZXk6IFwiYXV0aDBDbGllbnRJZFwiLCB2YWx1ZTogYXV0aC5hdXRoMENsaWVudElkID8/IFwiXCIgfSxcblx0XHRcdHtcblx0XHRcdFx0a2V5OiBcImF1dGhVcmxcIixcblx0XHRcdFx0dmFsdWU6IGBodHRwczovLyR7YXV0aC5hdXRoMERvbWFpbn0vYXV0aG9yaXplP2F1ZGllbmNlPSR7YXV0aC5hdXRoMEF1ZGllbmNlID8/IFwiXCJ9YCxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogXCJhY2Nlc3NUb2tlblVybFwiLFxuXHRcdFx0XHR2YWx1ZTogYGh0dHBzOi8vJHthdXRoLmF1dGgwRG9tYWlufS9vYXV0aC90b2tlbmAsXG5cdFx0XHR9LFxuXHRcdFx0eyBrZXk6IFwiY2FsbGJhY2tVcmxcIiwgdmFsdWU6IG9wdGlvbnMuY2FsbGJhY2tzWzBdIH0sXG5cdFx0XHR7IGtleTogXCJzY29wZVwiLCB2YWx1ZTogb3B0aW9ucy5zY29wZXMgfSxcblx0XHQpO1xuXHR9XG5cblx0Y29uc3QgbGluZXMgPSBbYG5hbWU6ICR7eWFtbFF1b3RlKG5hbWUpfWAsIFwidmFsdWVzOlwiXTtcblx0Zm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xuXHRcdGxpbmVzLnB1c2goYCAgLSBrZXk6ICR7di5rZXl9YCk7XG5cdFx0bGluZXMucHVzaChgICAgIHZhbHVlOiAke3lhbWxRdW90ZSh2LnZhbHVlKX1gKTtcblx0XHRsaW5lcy5wdXNoKFwiICAgIGVuYWJsZWQ6IHRydWVcIik7XG5cdH1cblx0cmV0dXJuIGAke2xpbmVzLmpvaW4oXCJcXG5cIil9XFxuYDtcbn1cblxuLyoqXG4gKiBCdWlsZCBQb3N0bWFuIExvY2FsIFZpZXcgbXVsdGktZmlsZSBZQU1MIGZyb20gYSB2Mi4xIGNvbGxlY3Rpb24gKHJvdXRlcylcbiAqIHBsdXMgaGFuZC1hdXRob3JlZCBBdXRoMCBvdmVybGF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uKFxuXHRjb2xsZWN0aW9uOiBQb3N0bWFuQ29sbGVjdGlvbixcblx0cHJvamVjdE5hbWU6IHN0cmluZyxcblx0YXV0aDogQXV0aDBFbnYgfCB1bmRlZmluZWQsXG5cdG9wdGlvbnM6IHsgY2FsbGJhY2tzOiByZWFkb25seSBzdHJpbmdbXTsgc2NvcGVzOiBzdHJpbmcgfSxcbik6IEFycmF5PHsgZmlsZVBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+IHtcblx0Y29uc3QgY29sbGVjdGlvbkRpciA9IGBwb3N0bWFuL2NvbGxlY3Rpb25zLyR7cHJvamVjdE5hbWV9IFdlYkFQSWA7XG5cdGNvbnN0IGZpbGVzOiBBcnJheTx7IGZpbGVQYXRoOiBzdHJpbmc7IGNvbnRlbnQ6IHN0cmluZyB9PiA9IFtdO1xuXG5cdGNvbnN0IGF1dGhCbG9jayA9IGF1dGg/LmF1dGgwRG9tYWluXG5cdFx0PyBbXG5cdFx0XHRcdFwiYXV0aDpcIixcblx0XHRcdFx0YCAgLSBpZDogJHtyYW5kb21VVUlEKCl9YCxcblx0XHRcdFx0XCIgICAgdHlwZTogb2F1dGgyXCIsXG5cdFx0XHRcdFwiICAgIG5hbWU6IE9BdXRoIDIuMFwiLFxuXHRcdFx0XHRcIiAgICBjcmVkZW50aWFsczpcIixcblx0XHRcdFx0XCIgICAgICBhZGRUb2tlblRvOiBoZWFkZXJcIixcblx0XHRcdFx0XCIgICAgICBncmFudF90eXBlOiBhdXRob3JpemF0aW9uX2NvZGVfd2l0aF9wa2NlXCIsXG5cdFx0XHRcdGAgICAgICBhdXRoVXJsOiBodHRwczovLyR7YXV0aC5hdXRoMERvbWFpbn0vYXV0aG9yaXplP2F1ZGllbmNlPSR7YXV0aC5hdXRoMEF1ZGllbmNlID8/IFwiXCJ9YCxcblx0XHRcdFx0YCAgICAgIGFjY2Vzc1Rva2VuVXJsOiBodHRwczovLyR7YXV0aC5hdXRoMERvbWFpbn0vb2F1dGgvdG9rZW5gLFxuXHRcdFx0XHRgICAgICAgY2xpZW50SWQ6ICR7eWFtbFF1b3RlKGF1dGguYXV0aDBDbGllbnRJZCA/PyBcIlwiKX1gLFxuXHRcdFx0XHRgICAgICAgc2NvcGU6ICR7eWFtbFF1b3RlKG9wdGlvbnMuc2NvcGVzKX1gLFxuXHRcdFx0XHRgICAgICAgcmVkaXJlY3RfdXJpOiAke29wdGlvbnMuY2FsbGJhY2tzWzBdfWAsXG5cdFx0XHRcdFwiICAgICAgdXNlQnJvd3NlcjogdHJ1ZVwiLFxuXHRcdFx0XHRcIiAgICAgIGNoYWxsZW5nZUFsZ29yaXRobTogUzI1NlwiLFxuXHRcdFx0XHRcIiAgICAgIGNsaWVudF9hdXRoZW50aWNhdGlvbjogYm9keVwiLFxuXHRcdFx0XHQnICAgICAgY2xpZW50U2VjcmV0OiBcIlwiJyxcblx0XHRcdFx0YCAgICAgIHRva2VuTmFtZTogJHt5YW1sUXVvdGUoYCR7cHJvamVjdE5hbWV9IEFjY2VzcyBUb2tlbmApfWAsXG5cdFx0XHRcdFwiXCIsXG5cdFx0XHRdLmpvaW4oXCJcXG5cIilcblx0XHQ6IFwiXCI7XG5cblx0ZmlsZXMucHVzaCh7XG5cdFx0ZmlsZVBhdGg6IGAke2NvbGxlY3Rpb25EaXJ9Ly5yZXNvdXJjZXMvZGVmaW5pdGlvbi55YW1sYCxcblx0XHRjb250ZW50OiBbXG5cdFx0XHRcIiRraW5kOiBjb2xsZWN0aW9uXCIsXG5cdFx0XHRgbmFtZTogJHt5YW1sUXVvdGUoYCR7cHJvamVjdE5hbWV9IFdlYkFQSWApfWAsXG5cdFx0XHRcInNjaGVtYVZlcnNpb246ICczLjAnXCIsXG5cdFx0XHRcImRlc2NyaXB0aW9uOiA+LVwiLFxuXHRcdFx0XCIgIE9wZW4gdGhpcyBwcm9qZWN0IHJvb3QgaW4gUG9zdG1hbiBMb2NhbCBWaWV3IChGaWxlcyDihpIgT3BlbiBmb2xkZXIpLlwiLFxuXHRcdFx0XCIgIFNlbGVjdCB0aGUgTG9jYWwgZW52aXJvbm1lbnQsIHRoZW4gQXV0aG9yaXphdGlvbiDihpIgR2V0IE5ldyBBY2Nlc3MgVG9rZW4gKFBLQ0UpLlwiLFxuXHRcdFx0XCIgIFJvdXRlIHJlcXVlc3RzIGFyZSBnZW5lcmF0ZWQgZnJvbSBPcGVuQVBJOyBBdXRoMCBvdmVybGF5IGlzIGhhbmQtYXV0aG9yZWQuXCIsXG5cdFx0XHRhdXRoQmxvY2ssXG5cdFx0XVxuXHRcdFx0LmZpbHRlcigobCkgPT4gbCAhPT0gdW5kZWZpbmVkKVxuXHRcdFx0LmpvaW4oXCJcXG5cIilcblx0XHRcdC5yZXBsYWNlKC9cXG4rJC8sIFwiXFxuXCIpLFxuXHR9KTtcblxuXHRsZXQgZm9sZGVyT3JkZXIgPSAxMDAwO1xuXHRmb3IgKGNvbnN0IGZvbGRlciBvZiBjb2xsZWN0aW9uLml0ZW0gPz8gW10pIHtcblx0XHRpZiAoZm9sZGVyLml0ZW0gPT0gbnVsbCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGNvbnN0IGZvbGRlck5hbWUgPSBmb2xkZXIubmFtZSA/PyBcIlJlcXVlc3RzXCI7XG5cdFx0ZmlsZXMucHVzaCh7XG5cdFx0XHRmaWxlUGF0aDogYCR7Y29sbGVjdGlvbkRpcn0vJHtmb2xkZXJOYW1lfS8ucmVzb3VyY2VzL2RlZmluaXRpb24ueWFtbGAsXG5cdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFwiJGtpbmQ6IGZvbGRlclwiLFxuXHRcdFx0XHRgbmFtZTogJHt5YW1sUXVvdGUoZm9sZGVyTmFtZSl9YCxcblx0XHRcdFx0YG9yZGVyOiAke2ZvbGRlck9yZGVyfWAsXG5cdFx0XHRcdFwiXCIsXG5cdFx0XHRdLmpvaW4oXCJcXG5cIiksXG5cdFx0fSk7XG5cdFx0Zm9sZGVyT3JkZXIgKz0gMTAwMDtcblxuXHRcdGxldCByZXF1ZXN0T3JkZXIgPSAxMDAwO1xuXHRcdGZvciAoY29uc3QgY2hpbGQgb2YgZm9sZGVyLml0ZW0pIHtcblx0XHRcdGNvbnN0IHlhbWwgPSByZXF1ZXN0VG9Mb2NhbFZpZXdZYW1sKGNoaWxkLCByZXF1ZXN0T3JkZXIpO1xuXHRcdFx0aWYgKHlhbWwgPT0gbnVsbCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGZpbGVOYW1lID0gYCR7c2FuaXRpemVGaWxlTmFtZShjaGlsZC5uYW1lID8/IFwiUmVxdWVzdFwiKX0ucmVxdWVzdC55YW1sYDtcblx0XHRcdGZpbGVzLnB1c2goe1xuXHRcdFx0XHRmaWxlUGF0aDogYCR7Y29sbGVjdGlvbkRpcn0vJHtmb2xkZXJOYW1lfS8ke2ZpbGVOYW1lfWAsXG5cdFx0XHRcdGNvbnRlbnQ6IHlhbWwsXG5cdFx0XHR9KTtcblx0XHRcdHJlcXVlc3RPcmRlciArPSAxMDAwO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmaWxlcztcbn1cblxuZnVuY3Rpb24gcmVxdWVzdFRvTG9jYWxWaWV3WWFtbChpdGVtOiBQb3N0bWFuSXRlbSwgb3JkZXI6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuXHRjb25zdCByZXF1ZXN0ID0gaXRlbS5yZXF1ZXN0O1xuXHRpZiAocmVxdWVzdCA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0Y29uc3QgbWV0aG9kID0gKHJlcXVlc3QubWV0aG9kID8/IFwiR0VUXCIpLnRvVXBwZXJDYXNlKCk7XG5cdGNvbnN0IHVybCA9IHJlcXVlc3RVcmxGb3JMb2NhbFZpZXcocmVxdWVzdCk7XG5cdGNvbnN0IGxpbmVzID0gW1xuXHRcdFwiJGtpbmQ6IGh0dHAtcmVxdWVzdFwiLFxuXHRcdGBuYW1lOiAke3lhbWxRdW90ZShpdGVtLm5hbWUgPz8gbWV0aG9kKX1gLFxuXHRcdGBtZXRob2Q6ICR7bWV0aG9kfWAsXG5cdFx0YHVybDogJHt5YW1sUXVvdGUodXJsKX1gLFxuXHRdO1xuXG5cdGlmIChyZXF1ZXN0LmF1dGg/LnR5cGUgPT09IFwibm9hdXRoXCIpIHtcblx0XHRsaW5lcy5wdXNoKFwiYXV0aDpcIiwgXCIgIHR5cGU6IG5vYXV0aFwiKTtcblx0fVxuXG5cdGNvbnN0IGNvbnRlbnRUeXBlID0gcmVxdWVzdC5oZWFkZXI/LmZpbmQoXG5cdFx0KGgpID0+IGgua2V5LnRvTG93ZXJDYXNlKCkgPT09IFwiY29udGVudC10eXBlXCIsXG5cdCk/LnZhbHVlO1xuXHRjb25zdCByYXdCb2R5ID0gcmVxdWVzdC5ib2R5Py5yYXc/LnRyaW0oKTtcblx0aWYgKHJhd0JvZHkpIHtcblx0XHRsaW5lcy5wdXNoKFwiaGVhZGVyczpcIik7XG5cdFx0bGluZXMucHVzaChgICBDb250ZW50LVR5cGU6ICR7Y29udGVudFR5cGUgPz8gXCJhcHBsaWNhdGlvbi9qc29uXCJ9YCk7XG5cdFx0bGluZXMucHVzaChcImJvZHk6XCIpO1xuXHRcdGxpbmVzLnB1c2goXCIgIHR5cGU6IGpzb25cIik7XG5cdFx0bGluZXMucHVzaChcIiAgY29udGVudDogfC1cIik7XG5cdFx0Zm9yIChjb25zdCBib2R5TGluZSBvZiByYXdCb2R5LnNwbGl0KFwiXFxuXCIpKSB7XG5cdFx0XHRsaW5lcy5wdXNoKGAgICAgJHtib2R5TGluZX1gKTtcblx0XHR9XG5cdH1cblxuXHRsaW5lcy5wdXNoKGBvcmRlcjogJHtvcmRlcn1gLCBcIlwiKTtcblx0cmV0dXJuIGxpbmVzLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RVcmxGb3JMb2NhbFZpZXcocmVxdWVzdDogUG9zdG1hblJlcXVlc3QpOiBzdHJpbmcge1xuXHRjb25zdCB1cmwgPSByZXF1ZXN0LnVybDtcblx0aWYgKHR5cGVvZiB1cmwgPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4gb3BlbkFwaVBhdGhQYXJhbXNUb0NvbG9uKHVybCk7XG5cdH1cblx0aWYgKHVybD8ucmF3KSB7XG5cdFx0cmV0dXJuIG9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbih1cmwucmF3KTtcblx0fVxuXHRjb25zdCBob3N0ID0gdXJsPy5ob3N0Py5bMF0gPz8gXCJ7e2Jhc2VVcmx9fVwiO1xuXHRjb25zdCBwYXRoID0gKHVybD8ucGF0aCA/PyBbXSlcblx0XHQubWFwKChzZWdtZW50KSA9PiBvcGVuQXBpUGF0aFBhcmFtc1RvQ29sb24oU3RyaW5nKHNlZ21lbnQpKSlcblx0XHQuam9pbihcIi9cIik7XG5cdHJldHVybiBwYXRoID8gYCR7aG9zdH0vJHtwYXRofWAgOiBob3N0O1xufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZUZpbGVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdHJldHVybiBuYW1lLnJlcGxhY2UoL1teXFx3XFxzKCktXSsvZywgXCJcIikudHJpbSgpIHx8IFwiUmVxdWVzdFwiO1xufVxuIl0sIm5hbWVzIjpbImJ1aWxkRW52aXJvbm1lbnRZYW1sIiwiYnVpbGRMb2NhbFZpZXdGaWxlc0Zyb21Db2xsZWN0aW9uIiwieWFtbFF1b3RlIiwidmFsdWUiLCJ0ZXN0IiwiaW5jbHVkZXMiLCJKU09OIiwic3RyaW5naWZ5IiwibmFtZSIsImF1dGgiLCJvcHRpb25zIiwidmFsdWVzIiwia2V5IiwiYXV0aDBEb21haW4iLCJwdXNoIiwiYXV0aDBBdWRpZW5jZSIsImF1dGgwQ2xpZW50SWQiLCJjYWxsYmFja3MiLCJzY29wZXMiLCJsaW5lcyIsInYiLCJqb2luIiwiY29sbGVjdGlvbiIsInByb2plY3ROYW1lIiwiY29sbGVjdGlvbkRpciIsImZpbGVzIiwiYXV0aEJsb2NrIiwicmFuZG9tVVVJRCIsImZpbGVQYXRoIiwiY29udGVudCIsImZpbHRlciIsImwiLCJ1bmRlZmluZWQiLCJyZXBsYWNlIiwiZm9sZGVyT3JkZXIiLCJmb2xkZXIiLCJpdGVtIiwiZm9sZGVyTmFtZSIsInJlcXVlc3RPcmRlciIsImNoaWxkIiwieWFtbCIsInJlcXVlc3RUb0xvY2FsVmlld1lhbWwiLCJmaWxlTmFtZSIsInNhbml0aXplRmlsZU5hbWUiLCJvcmRlciIsInJlcXVlc3QiLCJtZXRob2QiLCJ0b1VwcGVyQ2FzZSIsInVybCIsInJlcXVlc3RVcmxGb3JMb2NhbFZpZXciLCJ0eXBlIiwiY29udGVudFR5cGUiLCJoZWFkZXIiLCJmaW5kIiwiaCIsInRvTG93ZXJDYXNlIiwicmF3Qm9keSIsImJvZHkiLCJyYXciLCJ0cmltIiwiYm9keUxpbmUiLCJzcGxpdCIsIm9wZW5BcGlQYXRoUGFyYW1zVG9Db2xvbiIsImhvc3QiLCJwYXRoIiwibWFwIiwic2VnbWVudCIsIlN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFpQmdCQTtlQUFBQTs7UUF1Q0FDO2VBQUFBOzs7NEJBeERXO2tDQU9wQjtBQUVQLFNBQVNDLFVBQVVDLEtBQWE7SUFDL0IsSUFBSSx3QkFBd0JDLElBQUksQ0FBQ0QsVUFBVUEsTUFBTUUsUUFBUSxDQUFDLFNBQVNGLFVBQVUsSUFBSTtRQUNoRixPQUFPRyxLQUFLQyxTQUFTLENBQUNKO0lBQ3ZCO0lBQ0EsT0FBT0E7QUFDUjtBQUdPLFNBQVNILHFCQUNmUSxJQUFZLEVBQ1pDLElBQTBCLEVBQzFCQyxPQUF5RDtJQUV6RCxNQUFNQyxTQUFnRDtRQUNyRDtZQUFFQyxLQUFLO1lBQVdULE9BQU87UUFBd0I7S0FDakQ7SUFDRCxJQUFJTSxNQUFNSSxhQUFhO1FBQ3RCRixPQUFPRyxJQUFJLENBQ1Y7WUFBRUYsS0FBSztZQUFlVCxPQUFPTSxLQUFLSSxXQUFXO1FBQUMsR0FDOUM7WUFBRUQsS0FBSztZQUFpQlQsT0FBT00sS0FBS00sYUFBYSxJQUFJO1FBQUcsR0FDeEQ7WUFBRUgsS0FBSztZQUFpQlQsT0FBT00sS0FBS08sYUFBYSxJQUFJO1FBQUcsR0FDeEQ7WUFDQ0osS0FBSztZQUNMVCxPQUFPLENBQUMsUUFBUSxFQUFFTSxLQUFLSSxXQUFXLENBQUMsb0JBQW9CLEVBQUVKLEtBQUtNLGFBQWEsSUFBSSxJQUFJO1FBQ3BGLEdBQ0E7WUFDQ0gsS0FBSztZQUNMVCxPQUFPLENBQUMsUUFBUSxFQUFFTSxLQUFLSSxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQ2pELEdBQ0E7WUFBRUQsS0FBSztZQUFlVCxPQUFPTyxRQUFRTyxTQUFTLENBQUMsRUFBRTtRQUFDLEdBQ2xEO1lBQUVMLEtBQUs7WUFBU1QsT0FBT08sUUFBUVEsTUFBTTtRQUFDO0lBRXhDO0lBRUEsTUFBTUMsUUFBUTtRQUFDLENBQUMsTUFBTSxFQUFFakIs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