oxygen-cli 1.25.0 → 1.27.0

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 (269) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/build/core/OxygenCore.js +266 -37
  3. package/build/core/OxygenEvents.js +11 -1
  4. package/build/core/OxygenModule.js +14 -1
  5. package/build/core/OxygenService.js +12 -1
  6. package/build/core/OxygenSubModule.js +10 -1
  7. package/build/core/WebDriverModule.js +30 -1
  8. package/build/core/utils.js +17 -1
  9. package/build/errors/HookError.js +7 -1
  10. package/build/errors/ModuleError.js +7 -1
  11. package/build/errors/ModuleUnavailableError.js +3 -1
  12. package/build/errors/OxygenError.js +33 -1
  13. package/build/errors/ScriptNotFound.js +7 -1
  14. package/build/errors/helper.js +77 -45
  15. package/build/index.js +18 -6
  16. package/build/lib/cli-util.js +90 -28
  17. package/build/lib/cli.js +23 -1
  18. package/build/lib/debugger.js +144 -1
  19. package/build/lib/img-merge.js +15 -1
  20. package/build/lib/launcher.js +28 -1
  21. package/build/lib/moduleRequire.js +4 -1
  22. package/build/lib/param-manager.js +28 -1
  23. package/build/lib/param-reader-csv.js +15 -1
  24. package/build/lib/param-reader-excel.js +14 -1
  25. package/build/lib/param-reader-json.js +10 -1
  26. package/build/lib/text-to-image.js +183 -0
  27. package/build/lib/util.js +58 -3
  28. package/build/model/case-result.js +4 -2
  29. package/build/model/failure.js +2 -1
  30. package/build/model/status.js +2 -1
  31. package/build/model/step-result.js +2 -1
  32. package/build/model/suite-result.js +2 -1
  33. package/build/model/test-result.js +2 -1
  34. package/build/model/testcase.js +2 -1
  35. package/build/model/testsuite.js +2 -1
  36. package/build/ox_modules/index.js +33 -13
  37. package/build/ox_modules/module-assert.js +24 -8
  38. package/build/ox_modules/module-date.js +8 -3
  39. package/build/ox_modules/module-db.js +28 -7
  40. package/build/ox_modules/module-email.js +36 -10
  41. package/build/ox_modules/module-eyes.js +46 -5
  42. package/build/ox_modules/module-http.js +102 -41
  43. package/build/ox_modules/module-log.js +22 -5
  44. package/build/ox_modules/module-mailinator.js +32 -10
  45. package/build/ox_modules/module-mob/commands/alertAccept.js +2 -1
  46. package/build/ox_modules/module-mob/commands/alertDismiss.js +2 -1
  47. package/build/ox_modules/module-mob/commands/assertAlert.js +6 -1
  48. package/build/ox_modules/module-mob/commands/assertText.js +3 -1
  49. package/build/ox_modules/module-mob/commands/assertTitle.js +4 -1
  50. package/build/ox_modules/module-mob/commands/assertValue.js +15 -9
  51. package/build/ox_modules/module-mob/commands/back.js +2 -1
  52. package/build/ox_modules/module-mob/commands/clear.js +4 -1
  53. package/build/ox_modules/module-mob/commands/click.js +4 -3
  54. package/build/ox_modules/module-mob/commands/clickHidden.js +9 -3
  55. package/build/ox_modules/module-mob/commands/clickLong.js +2 -1
  56. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +4 -1
  57. package/build/ox_modules/module-mob/commands/closeApp.js +2 -1
  58. package/build/ox_modules/module-mob/commands/debug.js +2 -2
  59. package/build/ox_modules/module-mob/commands/dragAndDrop.js +2 -1
  60. package/build/ox_modules/module-mob/commands/enableNetwork.js +12 -4
  61. package/build/ox_modules/module-mob/commands/execute.js +2 -1
  62. package/build/ox_modules/module-mob/commands/findElement.js +3 -1
  63. package/build/ox_modules/module-mob/commands/findElements.js +4 -1
  64. package/build/ox_modules/module-mob/commands/getAlertText.js +2 -1
  65. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +2 -1
  66. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +10 -1
  67. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +2 -1
  68. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +2 -1
  69. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +9 -1
  70. package/build/ox_modules/module-mob/commands/getDeviceTime.js +2 -1
  71. package/build/ox_modules/module-mob/commands/getLocation.js +2 -1
  72. package/build/ox_modules/module-mob/commands/getSource.js +2 -1
  73. package/build/ox_modules/module-mob/commands/getText.js +4 -1
  74. package/build/ox_modules/module-mob/commands/getTitle.js +2 -1
  75. package/build/ox_modules/module-mob/commands/getUrl.js +2 -1
  76. package/build/ox_modules/module-mob/commands/getValue.js +9 -5
  77. package/build/ox_modules/module-mob/commands/getWindowHandles.js +2 -1
  78. package/build/ox_modules/module-mob/commands/hideKeyboard.js +2 -1
  79. package/build/ox_modules/module-mob/commands/index.js +94 -19
  80. package/build/ox_modules/module-mob/commands/installApp.js +2 -1
  81. package/build/ox_modules/module-mob/commands/isAppInstalled.js +2 -1
  82. package/build/ox_modules/module-mob/commands/isCheckable.js +2 -1
  83. package/build/ox_modules/module-mob/commands/isChecked.js +2 -1
  84. package/build/ox_modules/module-mob/commands/isClickable.js +2 -1
  85. package/build/ox_modules/module-mob/commands/isExist.js +3 -1
  86. package/build/ox_modules/module-mob/commands/isSelected.js +2 -1
  87. package/build/ox_modules/module-mob/commands/isVisible.js +3 -1
  88. package/build/ox_modules/module-mob/commands/isWebViewContext.js +2 -1
  89. package/build/ox_modules/module-mob/commands/launchApp.js +2 -1
  90. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +2 -1
  91. package/build/ox_modules/module-mob/commands/open.js +3 -1
  92. package/build/ox_modules/module-mob/commands/pause.js +2 -1
  93. package/build/ox_modules/module-mob/commands/removeApp.js +2 -1
  94. package/build/ox_modules/module-mob/commands/resetApp.js +2 -1
  95. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +6 -1
  96. package/build/ox_modules/module-mob/commands/scrollIntoView.js +2 -1
  97. package/build/ox_modules/module-mob/commands/select.js +4 -1
  98. package/build/ox_modules/module-mob/commands/selectFrame.js +4 -1
  99. package/build/ox_modules/module-mob/commands/selectWindow.js +26 -5
  100. package/build/ox_modules/module-mob/commands/sendKeys.js +9 -6
  101. package/build/ox_modules/module-mob/commands/setContext.js +2 -1
  102. package/build/ox_modules/module-mob/commands/setNativeContext.js +2 -1
  103. package/build/ox_modules/module-mob/commands/setTimeout.js +2 -1
  104. package/build/ox_modules/module-mob/commands/setWebViewContext.js +6 -3
  105. package/build/ox_modules/module-mob/commands/shake.js +2 -1
  106. package/build/ox_modules/module-mob/commands/smsClickLink.js +2 -1
  107. package/build/ox_modules/module-mob/commands/smsGetText.js +6 -3
  108. package/build/ox_modules/module-mob/commands/swipe.js +2 -1
  109. package/build/ox_modules/module-mob/commands/swipeElement.js +2 -1
  110. package/build/ox_modules/module-mob/commands/swipeScreen.js +2 -1
  111. package/build/ox_modules/module-mob/commands/takeScreenshot.js +2 -1
  112. package/build/ox_modules/module-mob/commands/tap.js +2 -1
  113. package/build/ox_modules/module-mob/commands/type.js +7 -3
  114. package/build/ox_modules/module-mob/commands/unlockPattern.js +10 -9
  115. package/build/ox_modules/module-mob/commands/waitForExist.js +2 -1
  116. package/build/ox_modules/module-mob/commands/waitForInteractable.js +3 -1
  117. package/build/ox_modules/module-mob/commands/waitForVisible.js +2 -1
  118. package/build/ox_modules/module-mob.js +141 -72
  119. package/build/ox_modules/module-pdf.js +62 -23
  120. package/build/ox_modules/module-proxy.js +68 -8
  121. package/build/ox_modules/module-serial.js +32 -7
  122. package/build/ox_modules/module-shell.js +27 -8
  123. package/build/ox_modules/module-soap.js +47 -14
  124. package/build/ox_modules/module-twilio.js +53 -10
  125. package/build/ox_modules/module-utils.js +51 -16
  126. package/build/ox_modules/module-web/commands/alertAccept.js +2 -1
  127. package/build/ox_modules/module-web/commands/alertDismiss.js +2 -1
  128. package/build/ox_modules/module-web/commands/assertAlert.js +6 -1
  129. package/build/ox_modules/module-web/commands/assertExist.js +2 -1
  130. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +4 -1
  131. package/build/ox_modules/module-web/commands/assertSelectedValue.js +3 -1
  132. package/build/ox_modules/module-web/commands/assertText.js +3 -1
  133. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +6 -1
  134. package/build/ox_modules/module-web/commands/assertTextPresent.js +6 -1
  135. package/build/ox_modules/module-web/commands/assertTitle.js +3 -1
  136. package/build/ox_modules/module-web/commands/assertValue.js +3 -1
  137. package/build/ox_modules/module-web/commands/back.js +2 -1
  138. package/build/ox_modules/module-web/commands/clear.js +5 -1
  139. package/build/ox_modules/module-web/commands/click.js +13 -4
  140. package/build/ox_modules/module-web/commands/clickHidden.js +7 -2
  141. package/build/ox_modules/module-web/commands/closeWindow.js +2 -1
  142. package/build/ox_modules/module-web/commands/debug.js +2 -2
  143. package/build/ox_modules/module-web/commands/deleteCookies.js +2 -1
  144. package/build/ox_modules/module-web/commands/deselect.js +2 -1
  145. package/build/ox_modules/module-web/commands/doubleClick.js +9 -3
  146. package/build/ox_modules/module-web/commands/dragAndDrop.js +2 -1
  147. package/build/ox_modules/module-web/commands/execute.js +2 -1
  148. package/build/ox_modules/module-web/commands/fileBrowse.js +10 -4
  149. package/build/ox_modules/module-web/commands/findElement.js +3 -1
  150. package/build/ox_modules/module-web/commands/findElements.js +4 -1
  151. package/build/ox_modules/module-web/commands/fullscreenWindow.js +2 -1
  152. package/build/ox_modules/module-web/commands/getAlertText.js +2 -1
  153. package/build/ox_modules/module-web/commands/getAttribute.js +4 -1
  154. package/build/ox_modules/module-web/commands/getBrowserLogs.js +3 -1
  155. package/build/ox_modules/module-web/commands/getCookies.js +2 -1
  156. package/build/ox_modules/module-web/commands/getCssValue.js +4 -1
  157. package/build/ox_modules/module-web/commands/getElementCount.js +2 -1
  158. package/build/ox_modules/module-web/commands/getHTML.js +2 -1
  159. package/build/ox_modules/module-web/commands/getSource.js +2 -1
  160. package/build/ox_modules/module-web/commands/getText.js +4 -1
  161. package/build/ox_modules/module-web/commands/getTitle.js +2 -1
  162. package/build/ox_modules/module-web/commands/getUrl.js +2 -1
  163. package/build/ox_modules/module-web/commands/getValue.js +5 -1
  164. package/build/ox_modules/module-web/commands/getWindowHandles.js +2 -1
  165. package/build/ox_modules/module-web/commands/getWindowSize.js +2 -1
  166. package/build/ox_modules/module-web/commands/getXMLPageSource.js +5 -1
  167. package/build/ox_modules/module-web/commands/index.js +100 -19
  168. package/build/ox_modules/module-web/commands/isAlertPresent.js +2 -1
  169. package/build/ox_modules/module-web/commands/isChecked.js +2 -1
  170. package/build/ox_modules/module-web/commands/isExist.js +3 -1
  171. package/build/ox_modules/module-web/commands/isInteractable.js +2 -1
  172. package/build/ox_modules/module-web/commands/isSelected.js +2 -1
  173. package/build/ox_modules/module-web/commands/isVisible.js +3 -1
  174. package/build/ox_modules/module-web/commands/makeVisible.js +10 -2
  175. package/build/ox_modules/module-web/commands/maximizeWindow.js +2 -1
  176. package/build/ox_modules/module-web/commands/minimizeWindow.js +2 -1
  177. package/build/ox_modules/module-web/commands/newWindow.js +2 -1
  178. package/build/ox_modules/module-web/commands/open.js +4 -1
  179. package/build/ox_modules/module-web/commands/pause.js +2 -1
  180. package/build/ox_modules/module-web/commands/point.js +2 -1
  181. package/build/ox_modules/module-web/commands/pointJS.js +8 -2
  182. package/build/ox_modules/module-web/commands/refresh.js +2 -1
  183. package/build/ox_modules/module-web/commands/rightClick.js +8 -3
  184. package/build/ox_modules/module-web/commands/rightClickActions.js +2 -1
  185. package/build/ox_modules/module-web/commands/scrollToElement.js +2 -1
  186. package/build/ox_modules/module-web/commands/select.js +5 -1
  187. package/build/ox_modules/module-web/commands/selectFrame.js +3 -1
  188. package/build/ox_modules/module-web/commands/selectWindow.js +26 -5
  189. package/build/ox_modules/module-web/commands/sendKeys.js +6 -3
  190. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +2 -2
  191. package/build/ox_modules/module-web/commands/setTimeout.js +2 -1
  192. package/build/ox_modules/module-web/commands/setWindowSize.js +2 -1
  193. package/build/ox_modules/module-web/commands/takeScreenshot.js +5 -3
  194. package/build/ox_modules/module-web/commands/type.js +5 -1
  195. package/build/ox_modules/module-web/commands/waitForAngular.js +11 -6
  196. package/build/ox_modules/module-web/commands/waitForExist.js +2 -1
  197. package/build/ox_modules/module-web/commands/waitForInteractable.js +2 -1
  198. package/build/ox_modules/module-web/commands/waitForNotExist.js +8 -1
  199. package/build/ox_modules/module-web/commands/waitForNotText.js +3 -1
  200. package/build/ox_modules/module-web/commands/waitForNotValue.js +3 -1
  201. package/build/ox_modules/module-web/commands/waitForText.js +3 -1
  202. package/build/ox_modules/module-web/commands/waitForValue.js +3 -1
  203. package/build/ox_modules/module-web/commands/waitForVisible.js +2 -1
  204. package/build/ox_modules/module-web/commands/waitForWindow.js +21 -4
  205. package/build/ox_modules/module-web.js +181 -82
  206. package/build/ox_modules/module-win/commands/assertText.js +3 -1
  207. package/build/ox_modules/module-win/commands/assertTitle.js +4 -1
  208. package/build/ox_modules/module-win/commands/assertValue.js +15 -9
  209. package/build/ox_modules/module-win/commands/back.js +2 -1
  210. package/build/ox_modules/module-win/commands/clear.js +4 -1
  211. package/build/ox_modules/module-win/commands/click.js +2 -1
  212. package/build/ox_modules/module-win/commands/clickLong.js +2 -1
  213. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +4 -1
  214. package/build/ox_modules/module-win/commands/findElement.js +3 -1
  215. package/build/ox_modules/module-win/commands/findElements.js +4 -1
  216. package/build/ox_modules/module-win/commands/getAppiumLogs.js +2 -1
  217. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +2 -1
  218. package/build/ox_modules/module-win/commands/getLocation.js +2 -1
  219. package/build/ox_modules/module-win/commands/getSource.js +2 -1
  220. package/build/ox_modules/module-win/commands/getText.js +4 -1
  221. package/build/ox_modules/module-win/commands/getValue.js +9 -5
  222. package/build/ox_modules/module-win/commands/getWindowHandles.js +2 -1
  223. package/build/ox_modules/module-win/commands/index.js +43 -5
  224. package/build/ox_modules/module-win/commands/isCheckable.js +2 -1
  225. package/build/ox_modules/module-win/commands/isChecked.js +2 -1
  226. package/build/ox_modules/module-win/commands/isClickable.js +2 -1
  227. package/build/ox_modules/module-win/commands/isExist.js +3 -1
  228. package/build/ox_modules/module-win/commands/isSelected.js +2 -1
  229. package/build/ox_modules/module-win/commands/isVisible.js +3 -1
  230. package/build/ox_modules/module-win/commands/open.js +2 -1
  231. package/build/ox_modules/module-win/commands/pause.js +2 -1
  232. package/build/ox_modules/module-win/commands/rightClick.js +2 -1
  233. package/build/ox_modules/module-win/commands/selectWindow.js +15 -1
  234. package/build/ox_modules/module-win/commands/sendKeys.js +4 -1
  235. package/build/ox_modules/module-win/commands/setTimeout.js +2 -1
  236. package/build/ox_modules/module-win/commands/takeScreenshot.js +2 -1
  237. package/build/ox_modules/module-win/commands/tap.js +2 -1
  238. package/build/ox_modules/module-win/commands/type.js +4 -1
  239. package/build/ox_modules/module-win/commands/waitForExist.js +2 -1
  240. package/build/ox_modules/module-win/commands/waitForInteractable.js +4 -1
  241. package/build/ox_modules/module-win/commands/waitForVisible.js +2 -1
  242. package/build/ox_modules/module-win.js +87 -48
  243. package/build/ox_modules/utils.js +76 -22
  244. package/build/ox_reporters/reporter-excel.js +58 -1
  245. package/build/ox_reporters/reporter-html.js +28 -1
  246. package/build/ox_reporters/reporter-json.js +14 -1
  247. package/build/ox_reporters/reporter-junit.js +24 -1
  248. package/build/ox_reporters/reporter-pdf.js +19 -1
  249. package/build/ox_reporters/reporter-xml.js +17 -1
  250. package/build/ox_services/service-devtools/submodule-network.js +91 -4
  251. package/build/ox_services/service-devtools.js +23 -1
  252. package/build/reporter/FileReporterBase.js +44 -5
  253. package/build/reporter/ReportAggregator.js +65 -1
  254. package/build/reporter/ReporterBase.js +6 -1
  255. package/build/runners/WorkerProcess.js +99 -1
  256. package/build/runners/cucumber/CucumberEventListener.js +29 -4
  257. package/build/runners/cucumber/CucumberReporter.js +56 -1
  258. package/build/runners/cucumber/CucumberWorker.js +66 -1
  259. package/build/runners/cucumber/index.js +30 -1
  260. package/build/runners/cucumber/worker.js +18 -1
  261. package/build/runners/index.js +6 -1
  262. package/build/runners/oxygen/OxygenWorker.js +60 -3
  263. package/build/runners/oxygen/index.js +178 -17
  264. package/build/runners/oxygen/worker.js +25 -2
  265. package/package.json +8 -8
  266. package/.babelrc +0 -28
  267. package/.eslintrc.json +0 -25
  268. package/.husky/pre-commit +0 -4
  269. package/CONTRIBUTE.md +0 -1
@@ -4,59 +4,80 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  require("source-map-support/register");
9
+
8
10
  var _stackTrace = _interopRequireDefault(require("stack-trace"));
11
+
9
12
  var stackTraceParser = _interopRequireWildcard(require("stacktrace-parser"));
13
+
10
14
  var _fs = _interopRequireDefault(require("fs"));
15
+
11
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
12
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
13
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
14
22
  const STACKTRACE_FILTERS = ['\\node_modules\\', '/node_modules/', '/oxygen-node/', '\\oxygen-node\\', '(module.js', '(internal/module.js', 'at <anonymous>', 'internal/', 'internal\\'];
23
+
15
24
  class OxygenError extends Error {
16
25
  constructor(type, message, data, isFatal, orgErr = null) {
17
26
  super(message || undefined);
18
27
  this.type = type || this.type || null;
19
28
  this.orgErr = orgErr;
29
+
20
30
  if (orgErr && typeof orgErr === 'string' && type !== orgErr) {
21
31
  this.subtype = orgErr;
22
32
  } else if (orgErr && typeof orgErr === 'object' && orgErr.type) {
23
33
  this.subtype = orgErr.type;
24
34
  }
35
+
25
36
  this.message = message || null;
26
37
  this.data = data || null;
27
38
  this.screenshot = null;
28
39
  this.isFatal = typeof isFatal === 'undefined' ? true : isFatal;
40
+
29
41
  if (orgErr && orgErr.stack) {
30
42
  this.stack = orgErr.stack;
31
43
  }
44
+
32
45
  if (type || message) {
33
46
  this.captureStackTrace();
34
47
  this.filterStackTrace();
35
48
  this.generateLocation();
36
49
  }
37
50
  }
51
+
38
52
  filterStackTrace() {
39
53
  if (!this.stack) {
40
54
  this.captureStackTrace();
41
55
  }
56
+
42
57
  this.stack = this.stack.split('\n').filter(this._stackTraceFilterFn).join('\n');
43
58
  }
59
+
44
60
  _stackTraceFilterFn(value) {
45
61
  return !STACKTRACE_FILTERS.some(filter => value.includes(filter));
46
62
  }
63
+
47
64
  generateLocation() {
48
65
  let anotherFile;
49
66
  let anotherLineNumber;
50
67
  let anotherColumn;
68
+
51
69
  if (this.orgErr && this.orgErr.stack) {
52
70
  const anotherStack = stackTraceParser.parse(this.orgErr.stack);
71
+
53
72
  if (anotherStack && Array.isArray(anotherStack) && anotherStack.length > 0) {
54
73
  for (let i = 0; i < anotherStack.length; i++) {
55
74
  if (_fs.default.existsSync(anotherStack[i]['file']) && anotherStack[i]['lineNumber'] && !anotherFile && !anotherLineNumber) {
56
75
  let file = anotherStack[i];
76
+
57
77
  if (anotherStack[i] && anotherStack[1 + i] && anotherStack[i]['file'] === anotherStack[1 + i]['file']) {
58
78
  file = anotherStack[1 + i];
59
79
  }
80
+
60
81
  anotherFile = file['file'];
61
82
  anotherLineNumber = file['lineNumber'];
62
83
  anotherColumn = file['column'] || 1;
@@ -64,16 +85,21 @@ class OxygenError extends Error {
64
85
  }
65
86
  }
66
87
  }
88
+
67
89
  let stackTrace = _stackTrace.default.parse(this) || [];
68
90
  stackTrace = stackTrace.filter(item => {
69
91
  const exist = _fs.default.existsSync(item.fileName);
92
+
70
93
  return exist;
71
94
  });
95
+
72
96
  if (stackTrace.length > 0) {
73
97
  const call = stackTrace[0];
98
+
74
99
  if (call && call.fileName === 'vm.js' && this.orgErr && this.orgErr.stack) {
75
100
  let location = this.orgErr.stack.split('\n')[0];
76
101
  const locationSplit = location.split(':');
102
+
77
103
  if (locationSplit && locationSplit[0]) {
78
104
  if (parseInt(locationSplit[locationSplit.length - 1]) && parseInt(locationSplit[locationSplit.length - 2])) {} else if (parseInt(locationSplit[locationSplit.length - 1])) {
79
105
  location += ':0';
@@ -81,6 +107,7 @@ class OxygenError extends Error {
81
107
  location += ':0:0';
82
108
  }
83
109
  }
110
+
84
111
  this.location = location;
85
112
  this.stacktrace = [location, ...stackTrace.map(call => `${this.patchFilePathOnWindows(call.getFileName())}:${call.getLineNumber()}:${call.getColumnNumber()}`)];
86
113
  } else if (anotherFile && anotherLineNumber && anotherColumn) {
@@ -97,12 +124,15 @@ class OxygenError extends Error {
97
124
  this.location = null;
98
125
  }
99
126
  }
127
+
100
128
  patchFilePathOnWindows(filePath) {
101
129
  if (filePath && process.platform === 'win32' && typeof filePath === 'string' && filePath.length > 0) {
102
130
  return filePath.replace(/\//g, '\\');
103
131
  }
132
+
104
133
  return filePath;
105
134
  }
135
+
106
136
  captureStackTrace() {
107
137
  if (this.stack) {
108
138
  return;
@@ -116,6 +146,8 @@ class OxygenError extends Error {
116
146
  }
117
147
  }
118
148
  }
149
+
119
150
  }
151
+
120
152
  exports.default = OxygenError;
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFDS1RSQUNFX0ZJTFRFUlMiLCJPeHlnZW5FcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwibWVzc2FnZSIsImRhdGEiLCJpc0ZhdGFsIiwib3JnRXJyIiwidW5kZWZpbmVkIiwic3VidHlwZSIsInNjcmVlbnNob3QiLCJzdGFjayIsImNhcHR1cmVTdGFja1RyYWNlIiwiZmlsdGVyU3RhY2tUcmFjZSIsImdlbmVyYXRlTG9jYXRpb24iLCJzcGxpdCIsImZpbHRlciIsIl9zdGFja1RyYWNlRmlsdGVyRm4iLCJqb2luIiwidmFsdWUiLCJzb21lIiwiaW5jbHVkZXMiLCJhbm90aGVyRmlsZSIsImFub3RoZXJMaW5lTnVtYmVyIiwiYW5vdGhlckNvbHVtbiIsImFub3RoZXJTdGFjayIsInN0YWNrVHJhY2VQYXJzZXIiLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImkiLCJmcyIsImV4aXN0c1N5bmMiLCJmaWxlIiwic3RhY2tUcmFjZSIsIlN0YWNrVHJhY2UiLCJpdGVtIiwiZXhpc3QiLCJmaWxlTmFtZSIsImNhbGwiLCJsb2NhdGlvbiIsImxvY2F0aW9uU3BsaXQiLCJwYXJzZUludCIsInN0YWNrdHJhY2UiLCJtYXAiLCJwYXRjaEZpbGVQYXRoT25XaW5kb3dzIiwiZ2V0RmlsZU5hbWUiLCJnZXRMaW5lTnVtYmVyIiwiZ2V0Q29sdW1uTnVtYmVyIiwiZmlsZVBhdGgiLCJwcm9jZXNzIiwicGxhdGZvcm0iLCJyZXBsYWNlIiwiZXJyIiwiZSIsImNvbnNvbGUiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvT3h5Z2VuRXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKlxyXG4gKiBPeHlnZW4gRXJyb3IgY2xhc3NcclxuICovXHJcbmltcG9ydCBTdGFja1RyYWNlIGZyb20gJ3N0YWNrLXRyYWNlJztcclxuaW1wb3J0ICogYXMgc3RhY2tUcmFjZVBhcnNlciBmcm9tICdzdGFja3RyYWNlLXBhcnNlcic7XHJcbmltcG9ydCBmcyBmcm9tICdmcyc7XHJcblxyXG5jb25zdCBTVEFDS1RSQUNFX0ZJTFRFUlMgPSBbJ1xcXFxub2RlX21vZHVsZXNcXFxcJywgJy9ub2RlX21vZHVsZXMvJywgJy9veHlnZW4tbm9kZS8nLCAnXFxcXG94eWdlbi1ub2RlXFxcXCcsICcobW9kdWxlLmpzJywgJyhpbnRlcm5hbC9tb2R1bGUuanMnLCAnYXQgPGFub255bW91cz4nLCAnaW50ZXJuYWwvJywgJ2ludGVybmFsXFxcXCddO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3h5Z2VuRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBtZXNzYWdlLCBkYXRhLCBpc0ZhdGFsLCBvcmdFcnIgPSBudWxsKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSB8fCB1bmRlZmluZWQpO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGUgfHwgdGhpcy50eXBlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5vcmdFcnIgPSBvcmdFcnI7XHJcbiAgICAgICAgLy8gc3VidHlwZSBhbGxvd3MgdG8gc3BlY2lmeSBtb3JlIHBhcnRpY3VsYXIgZXJyb3IgZm9yIGEgZ2VuZXJhbCBPeHlnZW4gZXJyb3IgdHlwZVxyXG4gICAgICAgIC8vIGZvciBleGFtcGxlLCBzcGVjaWZ5IFR5cGVFcnJvciBhcyBzdWJ0eXBlIGZvciBhIGdlbmVyYWwgU0NSSVBUX0VSUk9SIE94eWdlbiB0eXBlXHJcbiAgICAgICAgaWYgKG9yZ0VyciAmJiB0eXBlb2Ygb3JnRXJyID09PSAnc3RyaW5nJyAmJiB0eXBlICE9PSBvcmdFcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJ0eXBlID0gb3JnRXJyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChvcmdFcnIgJiYgdHlwZW9mIG9yZ0VyciA9PT0gJ29iamVjdCcgJiYgb3JnRXJyLnR5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJ0eXBlID0gb3JnRXJyLnR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5zY3JlZW5zaG90ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmlzRmF0YWwgPSAodHlwZW9mIGlzRmF0YWwgPT09ICd1bmRlZmluZWQnKSA/IHRydWUgOiBpc0ZhdGFsO1xyXG4gICAgICAgIGlmIChvcmdFcnIgJiYgb3JnRXJyLnN0YWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhY2sgPSBvcmdFcnIuc3RhY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkb24ndCBnZW5lcmF0ZSBzdGFja3RyYWNlIGlmIE94eWdlbkVycm9yIGlzIHVzZWQgaW5kaXJlY3RseSB0aHJvdWdoIGluaGVyaXRhbmNlXHJcbiAgICAgICAgaWYgKHR5cGUgfHwgbWVzc2FnZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNhcHR1cmVTdGFja1RyYWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU3RhY2tUcmFjZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlTG9jYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlsdGVyU3RhY2tUcmFjZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhY2spIHtcclxuICAgICAgICAgICAgdGhpcy5jYXB0dXJlU3RhY2tUcmFjZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YWNrID0gdGhpcy5zdGFjay5zcGxpdCgnXFxuJykuZmlsdGVyKHRoaXMuX3N0YWNrVHJhY2VGaWx0ZXJGbikuam9pbignXFxuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgX3N0YWNrVHJhY2VGaWx0ZXJGbih2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiAhU1RBQ0tUUkFDRV9GSUxURVJTLnNvbWUoZmlsdGVyID0+IHZhbHVlLmluY2x1ZGVzKGZpbHRlcikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlTG9jYXRpb24oKSB7XHJcbiAgICAgICAgbGV0IGFub3RoZXJGaWxlO1xyXG4gICAgICAgIGxldCBhbm90aGVyTGluZU51bWJlcjtcclxuICAgICAgICBsZXQgYW5vdGhlckNvbHVtbjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMub3JnRXJyICYmIHRoaXMub3JnRXJyLnN0YWNrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFub3RoZXJTdGFjayA9IHN0YWNrVHJhY2VQYXJzZXIucGFyc2UodGhpcy5vcmdFcnIuc3RhY2spO1xyXG5cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgYW5vdGhlclN0YWNrICYmXHJcbiAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KGFub3RoZXJTdGFjaykgJiZcclxuICAgICAgICAgICAgICAgIGFub3RoZXJTdGFjay5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbm90aGVyU3RhY2subGVuZ3RoOyBpKyspIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmcy5leGlzdHNTeW5jKGFub3RoZXJTdGFja1tpXVsnZmlsZSddKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyU3RhY2tbaV1bJ2xpbmVOdW1iZXInXSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhYW5vdGhlckZpbGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgIWFub3RoZXJMaW5lTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZSA9IGFub3RoZXJTdGFja1tpXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlOiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAnKi5qcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kTmFtZTogJzx1bmtub3duPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiAnKi5qcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kTmFtZTogJ09iamVjdC48YW5vbnltb3VzPicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiAxMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IDEwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXJTdGFja1tpXSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlclN0YWNrWzEraV0gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXJTdGFja1tpXVsnZmlsZSddID09PSBhbm90aGVyU3RhY2tbMStpXVsnZmlsZSddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSA9IGFub3RoZXJTdGFja1sxK2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyRmlsZSA9IGZpbGVbJ2ZpbGUnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlckxpbmVOdW1iZXIgPSBmaWxlWydsaW5lTnVtYmVyJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXJDb2x1bW4gPSBmaWxlWydjb2x1bW4nXSB8fCAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHN0YWNrVHJhY2UgPSBTdGFja1RyYWNlLnBhcnNlKHRoaXMpIHx8IFtdO1xyXG4gICAgICAgIHN0YWNrVHJhY2UgPSBzdGFja1RyYWNlLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBleGlzdCA9IGZzLmV4aXN0c1N5bmMoaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBleGlzdDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoc3RhY2tUcmFjZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbGwgPSBzdGFja1RyYWNlWzBdO1xyXG4gICAgICAgICAgICBpZiAoY2FsbCAmJiBjYWxsLmZpbGVOYW1lID09PSAndm0uanMnICYmIHRoaXMub3JnRXJyICYmIHRoaXMub3JnRXJyLnN0YWNrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSB0aGlzLm9yZ0Vyci5zdGFjay5zcGxpdCgnXFxuJylbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25TcGxpdCA9IGxvY2F0aW9uLnNwbGl0KCc6Jyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uU3BsaXQgJiYgbG9jYXRpb25TcGxpdFswXSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQobG9jYXRpb25TcGxpdFtsb2NhdGlvblNwbGl0Lmxlbmd0aC0xXSkgJiYgcGFyc2VJbnQobG9jYXRpb25TcGxpdFtsb2NhdGlvblNwbGl0Lmxlbmd0aC0yXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGluZSBhbmQgY29sdW1uIHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnNlSW50KGxvY2F0aW9uU3BsaXRbbG9jYXRpb25TcGxpdC5sZW5ndGgtMV0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbmUgcHJlc2VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiArPSAnOjAnO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgbmFtZSBwcmVzZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uICs9ICc6MDowJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja3RyYWNlID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLnN0YWNrVHJhY2UubWFwKGNhbGwgPT4gYCR7dGhpcy5wYXRjaEZpbGVQYXRoT25XaW5kb3dzKGNhbGwuZ2V0RmlsZU5hbWUoKSl9OiR7Y2FsbC5nZXRMaW5lTnVtYmVyKCl9OiR7Y2FsbC5nZXRDb2x1bW5OdW1iZXIoKX1gKVxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChhbm90aGVyRmlsZSAmJiBhbm90aGVyTGluZU51bWJlciAmJiBhbm90aGVyQ29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uID0gYCR7dGhpcy5wYXRjaEZpbGVQYXRoT25XaW5kb3dzKGFub3RoZXJGaWxlKX06JHthbm90aGVyTGluZU51bWJlcn06JHthbm90aGVyQ29sdW1ufWA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrdHJhY2UgPSBbdGhpcy5sb2NhdGlvbl07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBhZGQgZXh0cmEgbGluZSBpZiB3ZSBhcmUgcnVubmluZyBpbiBkZWJ1Z2dlciBtb2RlIChWOCBkZWJ1Z2dlciBhZGRzIGFuIGV4dHJhIGxpbmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSlcclxuICAgICAgICAgICAgICAgIC8vY29uc3QgZXh0cmFMaW5lID0gb3h1dGlsLmlzSW5EZWJ1Z01vZGUoKSA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGAke3RoaXMucGF0Y2hGaWxlUGF0aE9uV2luZG93cyhjYWxsLmdldEZpbGVOYW1lKCkpfToke2NhbGwuZ2V0TGluZU51bWJlcigpfToke2NhbGwuZ2V0Q29sdW1uTnVtYmVyKCl9YDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2t0cmFjZSA9IHN0YWNrVHJhY2UubWFwKGNhbGwgPT4gYCR7dGhpcy5wYXRjaEZpbGVQYXRoT25XaW5kb3dzKGNhbGwuZ2V0RmlsZU5hbWUoKSl9OiR7Y2FsbC5nZXRMaW5lTnVtYmVyKCl9OiR7Y2FsbC5nZXRDb2x1bW5OdW1iZXIoKX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoYW5vdGhlckZpbGUgJiYgYW5vdGhlckxpbmVOdW1iZXIgJiYgYW5vdGhlckNvbHVtbikge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uID0gYCR7dGhpcy5wYXRjaEZpbGVQYXRoT25XaW5kb3dzKGFub3RoZXJGaWxlKX06JHthbm90aGVyTGluZU51bWJlcn06JHthbm90aGVyQ29sdW1ufWA7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhY2t0cmFjZSA9IFt0aGlzLmxvY2F0aW9uXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hGaWxlUGF0aE9uV2luZG93cyhmaWxlUGF0aCkge1xyXG4gICAgICAgIGlmIChmaWxlUGF0aCAmJiBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInICYmIHR5cGVvZihmaWxlUGF0aCkgPT09ICdzdHJpbmcnICYmIGZpbGVQYXRoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoLnJlcGxhY2UoL1xcLy9nLCAnXFxcXCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmlsZVBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgY2FwdHVyZVN0YWNrVHJhY2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhY2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIC8vdmFyIG9yaWcgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtcclxuICAgICAgICAgICAgICAgIC8vRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBmdW5jdGlvbiAoXywgc3RhY2spIHsgcmV0dXJuIHN0YWNrOyB9O1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyLCBPeHlnZW5FcnJvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrID0gZXJyLnN0YWNrO1xyXG4gICAgICAgICAgICAgICAgLy9FcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IG9yaWc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFZQTtBQUNBO0FBQ0E7QUFBb0I7QUFBQTtBQUFBO0FBRXBCLE1BQU1BLGtCQUFrQixHQUFHLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO0FBRXhLLE1BQU1DLFdBQVcsU0FBU0MsS0FBSyxDQUFDO0VBQzNDQyxXQUFXLENBQUNDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxHQUFHLElBQUksRUFBRTtJQUNyRCxLQUFLLENBQUNILE9BQU8sSUFBSUksU0FBUyxDQUFDO0lBQzNCLElBQUksQ0FBQ0wsSUFBSSxHQUFHQSxJQUFJLElBQUksSUFBSSxDQUFDQSxJQUFJLElBQUksSUFBSTtJQUNyQyxJQUFJLENBQUNJLE1BQU0sR0FBR0EsTUFBTTtJQUdwQixJQUFJQSxNQUFNLElBQUksT0FBT0EsTUFBTSxLQUFLLFFBQVEsSUFBSUosSUFBSSxLQUFLSSxNQUFNLEVBQUU7TUFDekQsSUFBSSxDQUFDRSxPQUFPLEdBQUdGLE1BQU07SUFDekIsQ0FBQyxNQUNJLElBQUlBLE1BQU0sSUFBSSxPQUFPQSxNQUFNLEtBQUssUUFBUSxJQUFJQSxNQUFNLENBQUNKLElBQUksRUFBRTtNQUMxRCxJQUFJLENBQUNNLE9BQU8sR0FBR0YsTUFBTSxDQUFDSixJQUFJO0lBQzlCO0lBQ0EsSUFBSSxDQUFDQyxPQUFPLEdBQUdBLE9BQU8sSUFBSSxJQUFJO0lBQzlCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQSxJQUFJLElBQUksSUFBSTtJQUN4QixJQUFJLENBQUNLLFVBQVUsR0FBRyxJQUFJO0lBQ3RCLElBQUksQ0FBQ0osT0FBTyxHQUFJLE9BQU9BLE9BQU8sS0FBSyxXQUFXLEdBQUksSUFBSSxHQUFHQSxPQUFPO0lBQ2hFLElBQUlDLE1BQU0sSUFBSUEsTUFBTSxDQUFDSSxLQUFLLEVBQUU7TUFDeEIsSUFBSSxDQUFDQSxLQUFLLEdBQUdKLE1BQU0sQ0FBQ0ksS0FBSztJQUM3QjtJQUdBLElBQUlSLElBQUksSUFBSUMsT0FBTyxFQUFFO01BQ2pCLElBQUksQ0FBQ1EsaUJBQWlCLEVBQUU7TUFDeEIsSUFBSSxDQUFDQyxnQkFBZ0IsRUFBRTtNQUN2QixJQUFJLENBQUNDLGdCQUFnQixFQUFFO0lBQzNCO0VBQ0o7RUFFQUQsZ0JBQWdCLEdBQUc7SUFDZixJQUFJLENBQUMsSUFBSSxDQUFDRixLQUFLLEVBQUU7TUFDYixJQUFJLENBQUNDLGlCQUFpQixFQUFFO0lBQzVCO0lBQ0EsSUFBSSxDQUFDRCxLQUFLLEdBQUcsSUFBSSxDQUFDQSxLQUFLLENBQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQztFQUNuRjtFQUVBRCxtQkFBbUIsQ0FBQ0UsS0FBSyxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQ3BCLGtCQUFrQixDQUFDcUIsSUFBSSxDQUFDSixNQUFNLElBQUlHLEtBQUssQ0FBQ0UsUUFBUSxDQUFDTCxNQUFNLENBQUMsQ0FBQztFQUNyRTtFQUVBRixnQkFBZ0IsR0FBRztJQUNmLElBQUlRLFdBQVc7SUFDZixJQUFJQyxpQkFBaUI7SUFDckIsSUFBSUMsYUFBYTtJQUVqQixJQUFJLElBQUksQ0FBQ2pCLE1BQU0sSUFBSSxJQUFJLENBQUNBLE1BQU0sQ0FBQ0ksS0FBSyxFQUFFO01BQ2xDLE1BQU1jLFlBQVksR0FBR0MsZ0JBQWdCLENBQUNDLEtBQUssQ0FBQyxJQUFJLENBQUNwQixNQUFNLENBQUNJLEtBQUssQ0FBQztNQUU5RCxJQUNJYyxZQUFZLElBQ1pHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixZQUFZLENBQUMsSUFDM0JBLFlBQVksQ0FBQ0ssTUFBTSxHQUFHLENBQUMsRUFDekI7UUFDRSxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR04sWUFBWSxDQUFDSyxNQUFNLEVBQUVDLENBQUMsRUFBRSxFQUFFO1VBRTFDLElBQ0lDLFdBQUUsQ0FBQ0MsVUFBVSxDQUFDUixZQUFZLENBQUNNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQ3RDTixZQUFZLENBQUNNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUM3QixDQUFDVCxXQUFXLElBQ1osQ0FBQ0MsaUJBQWlCLEVBQ3BCO1lBRUUsSUFBSVcsSUFBSSxHQUFHVCxZQUFZLENBQUNNLENBQUMsQ0FBQztZQW1CMUIsSUFDSU4sWUFBWSxDQUFDTSxDQUFDLENBQUMsSUFDZk4sWUFBWSxDQUFDLENBQUMsR0FBQ00sQ0FBQyxDQUFDLElBQ2pCTixZQUFZLENBQUNNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLTixZQUFZLENBQUMsQ0FBQyxHQUFDTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDdkQ7Y0FDRUcsSUFBSSxHQUFHVCxZQUFZLENBQUMsQ0FBQyxHQUFDTSxDQUFDLENBQUM7WUFDNUI7WUFFQVQsV0FBVyxHQUFHWSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFCWCxpQkFBaUIsR0FBR1csSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN0Q1YsYUFBYSxHQUFHVSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztVQUN2QztRQUNKO01BQ0o7SUFDSjtJQUVBLElBQUlDLFVBQVUsR0FBR0MsbUJBQVUsQ0FBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDN0NRLFVBQVUsR0FBR0EsVUFBVSxDQUFDbkIsTUFBTSxDQUFFcUIsSUFBSSxJQUFLO01BQ3JDLE1BQU1DLEtBQUssR0FBR04sV0FBRSxDQUFDQyxVQUFVLENBQUNJLElBQUksQ0FBQ0UsUUFBUSxDQUFDO01BQzFDLE9BQU9ELEtBQUs7SUFDaEIsQ0FBQyxDQUFDO0lBQ0YsSUFBSUgsVUFBVSxDQUFDTCxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3ZCLE1BQU1VLElBQUksR0FBR0wsVUFBVSxDQUFDLENBQUMsQ0FBQztNQUMxQixJQUFJSyxJQUFJLElBQUlBLElBQUksQ0FBQ0QsUUFBUSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUNoQyxNQUFNLElBQUksSUFBSSxDQUFDQSxNQUFNLENBQUNJLEtBQUssRUFBRTtRQUN2RSxJQUFJOEIsUUFBUSxHQUFHLElBQUksQ0FBQ2xDLE1BQU0sQ0FBQ0ksS0FBSyxDQUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9DLE1BQU0yQixhQUFhLEdBQUdELFFBQVEsQ0FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFekMsSUFBSTJCLGFBQWEsSUFBSUEsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1VBRW5DLElBQUlDLFFBQVEsQ0FBQ0QsYUFBYSxDQUFDQSxhQUFhLENBQUNaLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJYSxRQUFRLENBQUNELGFBQWEsQ0FBQ0EsYUFBYSxDQUFDWixNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUV4RyxDQUFDLE1BQU0sSUFBSWEsUUFBUSxDQUFDRCxhQUFhLENBQUNBLGFBQWEsQ0FBQ1osTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFFeERXLFFBQVEsSUFBSSxJQUFJO1VBQ3BCLENBQUMsTUFBTTtZQUVIQSxRQUFRLElBQUksTUFBTTtVQUN0QjtRQUNKO1FBRUEsSUFBSSxDQUFDQSxRQUFRLEdBQUdBLFFBQVE7UUFDeEIsSUFBSSxDQUFDRyxVQUFVLEdBQUcsQ0FDZEgsUUFBUSxFQUNSLEdBQUdOLFVBQVUsQ0FBQ1UsR0FBRyxDQUFDTCxJQUFJLElBQUssR0FBRSxJQUFJLENBQUNNLHNCQUFzQixDQUFDTixJQUFJLENBQUNPLFdBQVcsRUFBRSxDQUFFLElBQUdQLElBQUksQ0FBQ1EsYUFBYSxFQUFHLElBQUdSLElBQUksQ0FBQ1MsZUFBZSxFQUFHLEVBQUMsQ0FBQyxDQUNwSTtNQUNMLENBQUMsTUFBTSxJQUFJM0IsV0FBVyxJQUFJQyxpQkFBaUIsSUFBSUMsYUFBYSxFQUFFO1FBQzFELElBQUksQ0FBQ2lCLFFBQVEsR0FBSSxHQUFFLElBQUksQ0FBQ0ssc0JBQXNCLENBQUN4QixXQUFXLENBQUUsSUFBR0MsaUJBQWtCLElBQUdDLGFBQWMsRUFBQztRQUNuRyxJQUFJLENBQUNvQixVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUNILFFBQVEsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFHSCxJQUFJLENBQUNBLFFBQVEsR0FBSSxHQUFFLElBQUksQ0FBQ0ssc0JBQXNCLENBQUNOLElBQUksQ0FBQ08sV0FBVyxFQUFFLENBQUUsSUFBR1AsSUFBSSxDQUFDUSxhQUFhLEVBQUcsSUFBR1IsSUFBSSxDQUFDUyxlQUFlLEVBQUcsRUFBQztRQUN0SCxJQUFJLENBQUNMLFVBQVUsR0FBR1QsVUFBVSxDQUFDVSxHQUFHLENBQUNMLElBQUksSUFBSyxHQUFFLElBQUksQ0FBQ00sc0JBQXNCLENBQUNOLElBQUksQ0FBQ08sV0FBVyxFQUFFLENBQUUsSUFBR1AsSUFBSSxDQUFDUSxhQUFhLEVBQUcsSUFBR1IsSUFBSSxDQUFDUyxlQUFlLEVBQUcsRUFBQyxDQUFDO01BQ3BKO0lBQ0osQ0FBQyxNQUFNLElBQUkzQixXQUFXLElBQUlDLGlCQUFpQixJQUFJQyxhQUFhLEVBQUU7TUFDMUQsSUFBSSxDQUFDaUIsUUFBUSxHQUFJLEdBQUUsSUFBSSxDQUFDSyxzQkFBc0IsQ0FBQ3hCLFdBQVcsQ0FBRSxJQUFHQyxpQkFBa0IsSUFBR0MsYUFBYyxFQUFDO01BQ25HLElBQUksQ0FBQ29CLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQ0gsUUFBUSxDQUFDO0lBQ3JDLENBQUMsTUFBTTtNQUNILElBQUksQ0FBQ0EsUUFBUSxHQUFHLElBQUk7SUFDeEI7RUFDSjtFQUVBSyxzQkFBc0IsQ0FBQ0ksUUFBUSxFQUFFO0lBQzdCLElBQUlBLFFBQVEsSUFBSUMsT0FBTyxDQUFDQyxRQUFRLEtBQUssT0FBTyxJQUFJLE9BQU9GLFFBQVMsS0FBSyxRQUFRLElBQUlBLFFBQVEsQ0FBQ3BCLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDbEcsT0FBT29CLFFBQVEsQ0FBQ0csT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDeEM7SUFDQSxPQUFPSCxRQUFRO0VBQ25CO0VBRUF0QyxpQkFBaUIsR0FBRztJQUNoQixJQUFJLElBQUksQ0FBQ0QsS0FBSyxFQUFFO01BQ1o7SUFDSixDQUFDLE1BQ0k7TUFDRCxJQUFJO1FBR0EsSUFBSTJDLEdBQUcsR0FBRyxJQUFJckQsS0FBSyxFQUFFO1FBQ3JCQSxLQUFLLENBQUNXLGlCQUFpQixDQUFDMEMsR0FBRyxFQUFFdEQsV0FBVyxDQUFDO1FBQ3pDLElBQUksQ0FBQ1csS0FBSyxHQUFHMkMsR0FBRyxDQUFDM0MsS0FBSztNQUUxQixDQUFDLENBQ0QsT0FBTzRDLENBQUMsRUFBRTtRQUNOQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDbkQsT0FBTyxDQUFDO01BQzVCO0lBQ0o7RUFDSjtBQUNKO0FBQUMifQ==
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvT3h5Z2VuRXJyb3IuanMiXSwibmFtZXMiOlsiU1RBQ0tUUkFDRV9GSUxURVJTIiwiT3h5Z2VuRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwidHlwZSIsIm1lc3NhZ2UiLCJkYXRhIiwiaXNGYXRhbCIsIm9yZ0VyciIsInVuZGVmaW5lZCIsInN1YnR5cGUiLCJzY3JlZW5zaG90Iiwic3RhY2siLCJjYXB0dXJlU3RhY2tUcmFjZSIsImZpbHRlclN0YWNrVHJhY2UiLCJnZW5lcmF0ZUxvY2F0aW9uIiwic3BsaXQiLCJmaWx0ZXIiLCJfc3RhY2tUcmFjZUZpbHRlckZuIiwiam9pbiIsInZhbHVlIiwic29tZSIsImluY2x1ZGVzIiwiYW5vdGhlckZpbGUiLCJhbm90aGVyTGluZU51bWJlciIsImFub3RoZXJDb2x1bW4iLCJhbm90aGVyU3RhY2siLCJzdGFja1RyYWNlUGFyc2VyIiwicGFyc2UiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJpIiwiZnMiLCJleGlzdHNTeW5jIiwiZmlsZSIsInN0YWNrVHJhY2UiLCJTdGFja1RyYWNlIiwiaXRlbSIsImV4aXN0IiwiZmlsZU5hbWUiLCJjYWxsIiwibG9jYXRpb24iLCJsb2NhdGlvblNwbGl0IiwicGFyc2VJbnQiLCJzdGFja3RyYWNlIiwibWFwIiwicGF0Y2hGaWxlUGF0aE9uV2luZG93cyIsImdldEZpbGVOYW1lIiwiZ2V0TGluZU51bWJlciIsImdldENvbHVtbk51bWJlciIsImZpbGVQYXRoIiwicHJvY2VzcyIsInBsYXRmb3JtIiwicmVwbGFjZSIsImVyciIsImUiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVlBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLE1BQU1BLGtCQUFrQixHQUFHLENBQUMsa0JBQUQsRUFBcUIsZ0JBQXJCLEVBQXVDLGVBQXZDLEVBQXdELGlCQUF4RCxFQUEyRSxZQUEzRSxFQUF5RixxQkFBekYsRUFBZ0gsZ0JB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QyxHQUF4QixFQUE2QnRELFdBQTdCO0FBQ0EsYUFBS1csS0FBTCxHQUFhMkMsR0FBRyxDQUFDM0MsS0FBakI7QUFFSCxPQVBELENBUUEsT0FBTzRDLENBQVAsRUFBVTtBQUNOQyxRQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBY0YsQ0FBQyxDQUFDbkQsT0FBaEI7QUFDSDtBQUNKO0FBQ0o7O0FBeEswQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogT3h5Z2VuIEVycm9yIGNsYXNzXHJcbiAqL1xyXG5pbXBvcnQgU3RhY2tUcmFjZSBmcm9tICdzdGFjay10cmFjZSc7XHJcbmltcG9ydCAqIGFzIHN0YWNrVHJhY2VQYXJzZXIgZnJvbSAnc3RhY2t0cmFjZS1wYXJzZXInO1xyXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xyXG5cclxuY29uc3QgU1RBQ0tUUkFDRV9GSUxURVJTID0gWydcXFxcbm9kZV9tb2R1bGVzXFxcXCcsICcvbm9kZV9tb2R1bGVzLycsICcvb3h5Z2VuLW5vZGUvJywgJ1xcXFxveHlnZW4tbm9kZVxcXFwnLCAnKG1vZHVsZS5qcycsICcoaW50ZXJuYWwvbW9kdWxlLmpzJywgJ2F0IDxhbm9ueW1vdXM+JywgJ2ludGVybmFsLycsICdpbnRlcm5hbFxcXFwnXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE94eWdlbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IodHlwZSwgbWVzc2FnZSwgZGF0YSwgaXNGYXRhbCwgb3JnRXJyID0gbnVsbCkge1xyXG4gICAgICAgIHN1cGVyKG1lc3NhZ2UgfHwgdW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlIHx8IHRoaXMudHlwZSB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMub3JnRXJyID0gb3JnRXJyO1xyXG4gICAgICAgIC8vIHN1YnR5cGUgYWxsb3dzIHRvIHNwZWNpZnkgbW9yZSBwYXJ0aWN1bGFyIGVycm9yIGZvciBhIGdlbmVyYWwgT3h5Z2VuIGVycm9yIHR5cGVcclxuICAgICAgICAvLyBmb3IgZXhhbXBsZSwgc3BlY2lmeSBUeXBlRXJyb3IgYXMgc3VidHlwZSBmb3IgYSBnZW5lcmFsIFNDUklQVF9FUlJPUiBPeHlnZW4gdHlwZVxyXG4gICAgICAgIGlmIChvcmdFcnIgJiYgdHlwZW9mIG9yZ0VyciA9PT0gJ3N0cmluZycgJiYgdHlwZSAhPT0gb3JnRXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VidHlwZSA9IG9yZ0VycjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAob3JnRXJyICYmIHR5cGVvZiBvcmdFcnIgPT09ICdvYmplY3QnICYmIG9yZ0Vyci50eXBlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VidHlwZSA9IG9yZ0Vyci50eXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YSB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMuc2NyZWVuc2hvdCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pc0ZhdGFsID0gKHR5cGVvZiBpc0ZhdGFsID09PSAndW5kZWZpbmVkJykgPyB0cnVlIDogaXNGYXRhbDtcclxuICAgICAgICBpZiAob3JnRXJyICYmIG9yZ0Vyci5zdGFjaykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrID0gb3JnRXJyLnN0YWNrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZG9uJ3QgZ2VuZXJhdGUgc3RhY2t0cmFjZSBpZiBPeHlnZW5FcnJvciBpcyB1c2VkIGluZGlyZWN0bHkgdGhyb3VnaCBpbmhlcml0YW5jZVxyXG4gICAgICAgIGlmICh0eXBlIHx8IG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jYXB0dXJlU3RhY2tUcmFjZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclN0YWNrVHJhY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUxvY2F0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlclN0YWNrVHJhY2UoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FwdHVyZVN0YWNrVHJhY2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGFjayA9IHRoaXMuc3RhY2suc3BsaXQoJ1xcbicpLmZpbHRlcih0aGlzLl9zdGFja1RyYWNlRmlsdGVyRm4pLmpvaW4oJ1xcbicpO1xyXG4gICAgfVxyXG5cclxuICAgIF9zdGFja1RyYWNlRmlsdGVyRm4odmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gIVNUQUNLVFJBQ0VfRklMVEVSUy5zb21lKGZpbHRlciA9PiB2YWx1ZS5pbmNsdWRlcyhmaWx0ZXIpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZW5lcmF0ZUxvY2F0aW9uKCkge1xyXG4gICAgICAgIGxldCBhbm90aGVyRmlsZTtcclxuICAgICAgICBsZXQgYW5vdGhlckxpbmVOdW1iZXI7XHJcbiAgICAgICAgbGV0IGFub3RoZXJDb2x1bW47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9yZ0VyciAmJiB0aGlzLm9yZ0Vyci5zdGFjaykge1xyXG4gICAgICAgICAgICBjb25zdCBhbm90aGVyU3RhY2sgPSBzdGFja1RyYWNlUGFyc2VyLnBhcnNlKHRoaXMub3JnRXJyLnN0YWNrKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGFub3RoZXJTdGFjayAmJlxyXG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShhbm90aGVyU3RhY2spICYmXHJcbiAgICAgICAgICAgICAgICBhbm90aGVyU3RhY2subGVuZ3RoID4gMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYW5vdGhlclN0YWNrLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnMuZXhpc3RzU3luYyhhbm90aGVyU3RhY2tbaV1bJ2ZpbGUnXSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlclN0YWNrW2ldWydsaW5lTnVtYmVyJ10gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgIWFub3RoZXJGaWxlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFhbm90aGVyTGluZU51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGUgPSBhbm90aGVyU3RhY2tbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZTogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogJyouanMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZE5hbWU6ICc8dW5rbm93bj4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IG51bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogJyouanMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZE5hbWU6ICdPYmplY3QuPGFub255bW91cz4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50czogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogMTEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiAxMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyU3RhY2tbaV0gJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXJTdGFja1sxK2ldICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyU3RhY2tbaV1bJ2ZpbGUnXSA9PT0gYW5vdGhlclN0YWNrWzEraV1bJ2ZpbGUnXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSBhbm90aGVyU3RhY2tbMStpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlckZpbGUgPSBmaWxlWydmaWxlJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXJMaW5lTnVtYmVyID0gZmlsZVsnbGluZU51bWJlciddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyQ29sdW1uID0gZmlsZVsnY29sdW1uJ10gfHwgMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzdGFja1RyYWNlID0gU3RhY2tUcmFjZS5wYXJzZSh0aGlzKSB8fCBbXTtcclxuICAgICAgICBzdGFja1RyYWNlID0gc3RhY2tUcmFjZS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZXhpc3QgPSBmcy5leGlzdHNTeW5jKGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gZXhpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHN0YWNrVHJhY2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjYWxsID0gc3RhY2tUcmFjZVswXTtcclxuICAgICAgICAgICAgaWYgKGNhbGwgJiYgY2FsbC5maWxlTmFtZSA9PT0gJ3ZtLmpzJyAmJiB0aGlzLm9yZ0VyciAmJiB0aGlzLm9yZ0Vyci5zdGFjaykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gdGhpcy5vcmdFcnIuc3RhY2suc3BsaXQoJ1xcbicpWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uU3BsaXQgPSBsb2NhdGlvbi5zcGxpdCgnOicpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvblNwbGl0ICYmIGxvY2F0aW9uU3BsaXRbMF0pIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxvY2F0aW9uU3BsaXRbbG9jYXRpb25TcGxpdC5sZW5ndGgtMV0pICYmIHBhcnNlSW50KGxvY2F0aW9uU3BsaXRbbG9jYXRpb25TcGxpdC5sZW5ndGgtMl0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbmUgYW5kIGNvbHVtbiBwcmVzZW50XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJzZUludChsb2NhdGlvblNwbGl0W2xvY2F0aW9uU3BsaXQubGVuZ3RoLTFdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5lIHByZXNlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gKz0gJzowJztcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG5hbWUgcHJlc2VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiArPSAnOjA6MCc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2t0cmFjZSA9IFtcclxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAuLi5zdGFja1RyYWNlLm1hcChjYWxsID0+IGAke3RoaXMucGF0Y2hGaWxlUGF0aE9uV2luZG93cyhjYWxsLmdldEZpbGVOYW1lKCkpfToke2NhbGwuZ2V0TGluZU51bWJlcigpfToke2NhbGwuZ2V0Q29sdW1uTnVtYmVyKCl9YClcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYW5vdGhlckZpbGUgJiYgYW5vdGhlckxpbmVOdW1iZXIgJiYgYW5vdGhlckNvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGAke3RoaXMucGF0Y2hGaWxlUGF0aE9uV2luZG93cyhhbm90aGVyRmlsZSl9OiR7YW5vdGhlckxpbmVOdW1iZXJ9OiR7YW5vdGhlckNvbHVtbn1gO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja3RyYWNlID0gW3RoaXMubG9jYXRpb25dO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gYWRkIGV4dHJhIGxpbmUgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gZGVidWdnZXIgbW9kZSAoVjggZGVidWdnZXIgYWRkcyBhbiBleHRyYSBsaW5lIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUpXHJcbiAgICAgICAgICAgICAgICAvL2NvbnN0IGV4dHJhTGluZSA9IG94dXRpbC5pc0luRGVidWdNb2RlKCkgPyAxIDogMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24gPSBgJHt0aGlzLnBhdGNoRmlsZVBhdGhPbldpbmRvd3MoY2FsbC5nZXRGaWxlTmFtZSgpKX06JHtjYWxsLmdldExpbmVOdW1iZXIoKX06JHtjYWxsLmdldENvbHVtbk51bWJlcigpfWA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrdHJhY2UgPSBzdGFja1RyYWNlLm1hcChjYWxsID0+IGAke3RoaXMucGF0Y2hGaWxlUGF0aE9uV2luZG93cyhjYWxsLmdldEZpbGVOYW1lKCkpfToke2NhbGwuZ2V0TGluZU51bWJlcigpfToke2NhbGwuZ2V0Q29sdW1uTnVtYmVyKCl9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGFub3RoZXJGaWxlICYmIGFub3RoZXJMaW5lTnVtYmVyICYmIGFub3RoZXJDb2x1bW4pIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGAke3RoaXMucGF0Y2hGaWxlUGF0aE9uV2luZG93cyhhbm90aGVyRmlsZSl9OiR7YW5vdGhlckxpbmVOdW1iZXJ9OiR7YW5vdGhlckNvbHVtbn1gO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrdHJhY2UgPSBbdGhpcy5sb2NhdGlvbl07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoRmlsZVBhdGhPbldpbmRvd3MoZmlsZVBhdGgpIHtcclxuICAgICAgICBpZiAoZmlsZVBhdGggJiYgcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyAmJiB0eXBlb2YoZmlsZVBhdGgpID09PSAnc3RyaW5nJyAmJiBmaWxlUGF0aC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aC5yZXBsYWNlKC9cXC8vZywgJ1xcXFwnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNhcHR1cmVTdGFja1RyYWNlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YWNrKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAvL3ZhciBvcmlnID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XHJcbiAgICAgICAgICAgICAgICAvL0Vycm9yLnByZXBhcmVTdGFja1RyYWNlID0gZnVuY3Rpb24gKF8sIHN0YWNrKSB7IHJldHVybiBzdGFjazsgfTtcclxuICAgICAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVyciwgT3h5Z2VuRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFjayA9IGVyci5zdGFjaztcclxuICAgICAgICAgICAgICAgIC8vRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBvcmlnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -4,13 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  require("source-map-support/register");
9
+
8
10
  var _OxygenError = _interopRequireDefault(require("./OxygenError"));
11
+
9
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  class ScriptNotFoundError extends _OxygenError.default {
11
15
  constructor(scriptPath) {
12
16
  super('SCRIPT_NOT_FOUND_ERROR', `Script not found: ${scriptPath}`, null, true);
13
17
  }
18
+
14
19
  }
20
+
15
21
  exports.default = ScriptNotFoundError;
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTY3JpcHROb3RGb3VuZEVycm9yIiwiT3h5Z2VuRXJyb3IiLCJjb25zdHJ1Y3RvciIsInNjcmlwdFBhdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL1NjcmlwdE5vdEZvdW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogT3h5Z2VuIHNjcmlwdCBpcyBub3QgZm91bmQuXHJcbiAqL1xyXG5pbXBvcnQgT3h5Z2VuRXJyb3IgZnJvbSAnLi9PeHlnZW5FcnJvcic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY3JpcHROb3RGb3VuZEVycm9yIGV4dGVuZHMgT3h5Z2VuRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3Ioc2NyaXB0UGF0aCkge1xyXG4gICAgICAgIHN1cGVyKCdTQ1JJUFRfTk9UX0ZPVU5EX0VSUk9SJywgYFNjcmlwdCBub3QgZm91bmQ6ICR7c2NyaXB0UGF0aH1gLCBudWxsLCB0cnVlKTtcclxuICAgIH1cclxufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVlBO0FBQXdDO0FBRXpCLE1BQU1BLG1CQUFtQixTQUFTQyxvQkFBVyxDQUFDO0VBQ3pEQyxXQUFXLENBQUNDLFVBQVUsRUFBRTtJQUNwQixLQUFLLENBQUMsd0JBQXdCLEVBQUcscUJBQW9CQSxVQUFXLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ2xGO0FBQ0o7QUFBQyJ9
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvU2NyaXB0Tm90Rm91bmQuanMiXSwibmFtZXMiOlsiU2NyaXB0Tm90Rm91bmRFcnJvciIsIk94eWdlbkVycm9yIiwiY29uc3RydWN0b3IiLCJzY3JpcHRQYXRoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFZQTs7OztBQUVlLE1BQU1BLG1CQUFOLFNBQWtDQyxvQkFBbEMsQ0FBOEM7QUFDekRDLEVBQUFBLFdBQVcsQ0FBQ0MsVUFBRCxFQUFhO0FBQ3BCLFVBQU0sd0JBQU4sRUFBaUMscUJBQW9CQSxVQUFXLEVBQWhFLEVBQW1FLElBQW5FLEVBQXlFLElBQXpFO0FBQ0g7O0FBSHdEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKlxyXG4gKiBPeHlnZW4gc2NyaXB0IGlzIG5vdCBmb3VuZC5cclxuICovXHJcbmltcG9ydCBPeHlnZW5FcnJvciBmcm9tICcuL094eWdlbkVycm9yJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjcmlwdE5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBPeHlnZW5FcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihzY3JpcHRQYXRoKSB7XHJcbiAgICAgICAgc3VwZXIoJ1NDUklQVF9OT1RfRk9VTkRfRVJST1InLCBgU2NyaXB0IG5vdCBmb3VuZDogJHtzY3JpcHRQYXRofWAsIG51bGwsIHRydWUpO1xyXG4gICAgfVxyXG59Il19