testcafe 1.20.2-alpha.1 → 2.0.0-rc.3

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 (231) hide show
  1. package/lib/api/request-hooks/assert-type.js +2 -2
  2. package/lib/api/request-hooks/hook.js +2 -2
  3. package/lib/api/request-hooks/request-logger.js +2 -2
  4. package/lib/api/skip-js-errors/index.js +62 -0
  5. package/lib/api/structure/base-unit.js +2 -2
  6. package/lib/api/structure/fixture.js +13 -13
  7. package/lib/api/structure/test.js +18 -17
  8. package/lib/api/structure/testing-unit.js +26 -16
  9. package/lib/api/test-controller/assertion.js +5 -5
  10. package/lib/api/test-controller/execution-context.js +2 -2
  11. package/lib/api/test-controller/index.js +33 -30
  12. package/lib/api/test-controller/proxy.js +2 -2
  13. package/lib/api/test-page-url.js +4 -4
  14. package/lib/api/test-run-tracker.js +2 -2
  15. package/lib/api/wrap-test-function.js +3 -3
  16. package/lib/assertions/executor.js +4 -4
  17. package/lib/assertions/get-fn.js +3 -3
  18. package/lib/browser/connection/gateway.js +18 -18
  19. package/lib/browser/connection/get-hints.js +8 -8
  20. package/lib/browser/connection/index.js +11 -11
  21. package/lib/browser/connection/remotes-queue.js +4 -4
  22. package/lib/browser/provider/built-in/dedicated/base.js +6 -6
  23. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +10 -10
  24. package/lib/browser/provider/built-in/dedicated/chrome/config.js +17 -17
  25. package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +4 -4
  26. package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
  27. package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +6 -6
  28. package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +4 -4
  29. package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +2 -2
  30. package/lib/browser/provider/built-in/dedicated/firefox/config.js +8 -8
  31. package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +3 -3
  32. package/lib/browser/provider/built-in/dedicated/firefox/index.js +5 -5
  33. package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +2 -2
  34. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +7 -7
  35. package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +3 -3
  36. package/lib/browser/provider/built-in/path.js +2 -2
  37. package/lib/browser/provider/built-in/remote.js +3 -3
  38. package/lib/browser/provider/index.js +5 -5
  39. package/lib/browser/provider/plugin-host.js +5 -6
  40. package/lib/browser/provider/pool.js +4 -4
  41. package/lib/browser/provider/utils/argument-parsing.js +3 -3
  42. package/lib/browser/provider/utils/browser-starter.js +2 -2
  43. package/lib/cli/argument-parser/index.js +52 -41
  44. package/lib/cli/argument-parser/parse-utils.js +2 -2
  45. package/lib/cli/authentication-helper.js +3 -3
  46. package/lib/cli/cli.js +8 -8
  47. package/lib/cli/correct-browsers-and-sources.js +2 -2
  48. package/lib/cli/index.js +2 -2
  49. package/lib/cli/log.js +3 -3
  50. package/lib/cli/remotes-wizard.js +3 -3
  51. package/lib/client/automation/index.js +120 -34
  52. package/lib/client/automation/index.min.js +1 -1
  53. package/lib/client/browser/idle-page/index.js +321 -317
  54. package/lib/client/browser/service-worker.js +244 -290
  55. package/lib/client/core/deps/hammerhead.js +12 -4
  56. package/lib/client/core/index.js +145 -55
  57. package/lib/client/core/index.min.js +1 -1
  58. package/lib/client/core/utils/dom.js +33 -28
  59. package/lib/client/core/utils/position.js +18 -14
  60. package/lib/client/core/utils/style.js +8 -4
  61. package/lib/client/driver/command-executors/client-functions/selector-executor/filter.js +5 -5
  62. package/lib/client/driver/command-executors/client-functions/selector-executor/utils.js +3 -3
  63. package/lib/client/driver/deps/hammerhead.js +12 -4
  64. package/lib/client/driver/deps/testcafe-core.js +12 -4
  65. package/lib/client/driver/deps/testcafe-ui.js +12 -4
  66. package/lib/client/driver/index.js +654 -630
  67. package/lib/client/driver/index.min.js +1 -1
  68. package/lib/client/driver/status.js +2 -2
  69. package/lib/client/ui/index.js +10 -8
  70. package/lib/client/ui/index.min.js +1 -1
  71. package/lib/client-functions/builder-symbol.js +1 -2
  72. package/lib/client-functions/client-function-builder.js +12 -12
  73. package/lib/client-functions/replicator.js +2 -2
  74. package/lib/client-functions/selector-api-execution-mode.js +2 -2
  75. package/lib/client-functions/selectors/add-api.js +48 -48
  76. package/lib/client-functions/selectors/selector-builder.js +17 -17
  77. package/lib/compiler/compile-client-function.js +6 -6
  78. package/lib/compiler/index.js +9 -9
  79. package/lib/compiler/test-file/api-based.js +8 -8
  80. package/lib/compiler/test-file/base.js +6 -6
  81. package/lib/compiler/test-file/exportble-lib-path.js +2 -2
  82. package/lib/compiler/test-file/formats/coffeescript/compiler.js +2 -2
  83. package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +2 -2
  84. package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
  85. package/lib/compiler/test-file/formats/es-next/get-test-list.js +4 -4
  86. package/lib/compiler/test-file/formats/raw.js +2 -2
  87. package/lib/compiler/test-file/formats/typescript/compiler.js +11 -11
  88. package/lib/compiler/test-file/formats/typescript/get-test-list.js +3 -3
  89. package/lib/compiler/test-file/test-file-parser-base.js +3 -3
  90. package/lib/configuration/configuration-base.js +15 -15
  91. package/lib/configuration/interfaces.js +1 -1
  92. package/lib/configuration/skip-js-errors-option-names.js +11 -0
  93. package/lib/configuration/testcafe-configuration.js +21 -16
  94. package/lib/configuration/types.js +1 -1
  95. package/lib/configuration/typescript-configuration.js +4 -4
  96. package/lib/custom-client-scripts/assert-type.js +2 -2
  97. package/lib/custom-client-scripts/client-script.js +6 -6
  98. package/lib/custom-client-scripts/get-code.js +2 -2
  99. package/lib/custom-client-scripts/routing.js +3 -3
  100. package/lib/custom-client-scripts/utils.js +3 -3
  101. package/lib/dashboard/connector.js +4 -4
  102. package/lib/dashboard/get-default-project-link.js +2 -2
  103. package/lib/dashboard/index.js +26 -26
  104. package/lib/errors/create-stack-filter.js +2 -2
  105. package/lib/errors/error-list.js +2 -2
  106. package/lib/errors/get-callsite.js +2 -2
  107. package/lib/errors/is-internal-stack-frame.js +5 -5
  108. package/lib/errors/process-test-fn-error.js +2 -2
  109. package/lib/errors/runtime/index.js +10 -10
  110. package/lib/errors/runtime/templates.js +5 -2
  111. package/lib/errors/runtime/type-assertions.js +6 -6
  112. package/lib/errors/stack-cleaning-hook.js +2 -2
  113. package/lib/errors/test-run/formattable-adapter.js +7 -7
  114. package/lib/errors/test-run/index.js +25 -5
  115. package/lib/errors/test-run/render-error-template/index.js +6 -6
  116. package/lib/errors/test-run/render-error-template/utils.js +2 -2
  117. package/lib/errors/test-run/templates.js +40 -31
  118. package/lib/errors/test-run/utils.js +7 -7
  119. package/lib/errors/types.js +5 -1
  120. package/lib/index.js +1 -1
  121. package/lib/live/file-watcher/index.js +2 -2
  122. package/lib/live/keyboard-observer.js +3 -3
  123. package/lib/live/test-run-controller.js +3 -3
  124. package/lib/live/test-run.js +3 -2
  125. package/lib/live/test-runner.js +2 -2
  126. package/lib/load-assets.js +2 -2
  127. package/lib/notifications/add-rendered-warning.js +4 -4
  128. package/lib/notifications/debug-logger.js +6 -6
  129. package/lib/notifications/deprecated.js +2 -2
  130. package/lib/notifications/information-message.js +4 -3
  131. package/lib/proxyless/resource-injector.js +4 -4
  132. package/lib/reporter/command/command-formatter.js +4 -4
  133. package/lib/reporter/index.js +10 -10
  134. package/lib/reporter/plugin-host.js +7 -7
  135. package/lib/role/index.js +8 -8
  136. package/lib/role/role.js +2 -2
  137. package/lib/runner/bootstrapper.js +20 -20
  138. package/lib/runner/browser-job.js +3 -3
  139. package/lib/runner/browser-set.js +12 -12
  140. package/lib/runner/fixture-hook-controller.js +5 -5
  141. package/lib/runner/index.js +43 -33
  142. package/lib/runner/task/index.js +10 -6
  143. package/lib/runner/test-run-hook-controller.js +5 -5
  144. package/lib/runner/tested-app.js +7 -7
  145. package/lib/screenshots/capturer.js +17 -17
  146. package/lib/screenshots/crop.js +8 -8
  147. package/lib/screenshots/index.js +6 -10
  148. package/lib/screenshots/utils.js +4 -4
  149. package/lib/services/compiler/host.js +8 -8
  150. package/lib/services/compiler/service.js +13 -13
  151. package/lib/services/compiler/test-run-proxy.js +8 -8
  152. package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +2 -2
  153. package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
  154. package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +3 -3
  155. package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +2 -2
  156. package/lib/services/serialization/test-structure.js +4 -4
  157. package/lib/services/utils/ipc/interfaces.js +1 -3
  158. package/lib/services/utils/ipc/io.js +3 -3
  159. package/lib/services/utils/ipc/message.js +2 -2
  160. package/lib/services/utils/ipc/proxy.js +4 -4
  161. package/lib/services/utils/ipc/transport.js +2 -2
  162. package/lib/shared/errors/index.js +9 -2
  163. package/lib/shared/errors/selector-error-ctor-callback.js +7 -3
  164. package/lib/test-run/bookmark.js +1 -1
  165. package/lib/test-run/browser-manipulation-queue.js +3 -3
  166. package/lib/test-run/commands/actions.js +66 -46
  167. package/lib/test-run/commands/assertion.js +3 -3
  168. package/lib/test-run/commands/base.js +2 -2
  169. package/lib/test-run/commands/browser-manipulation.js +8 -8
  170. package/lib/test-run/commands/observation.js +4 -4
  171. package/lib/test-run/commands/options.js +27 -12
  172. package/lib/test-run/commands/type.js +2 -1
  173. package/lib/test-run/commands/utils.js +3 -2
  174. package/lib/test-run/commands/validations/argument.js +19 -10
  175. package/lib/test-run/commands/validations/factories.js +10 -2
  176. package/lib/test-run/commands/validations/initializers.js +4 -4
  177. package/lib/test-run/debug-log.js +4 -4
  178. package/lib/test-run/execute-js-expression/index.js +4 -4
  179. package/lib/test-run/index.js +48 -41
  180. package/lib/test-run/request/create-request-options.js +9 -9
  181. package/lib/test-run/request/process-response-data.js +2 -2
  182. package/lib/test-run/request/send.js +5 -5
  183. package/lib/testcafe.js +8 -4
  184. package/lib/utils/check-file-path.js +2 -2
  185. package/lib/utils/check-url.js +2 -2
  186. package/lib/utils/correct-file-path.js +4 -4
  187. package/lib/utils/delegated-api.js +1 -1
  188. package/lib/utils/detect-ffmpeg.js +3 -3
  189. package/lib/utils/diff/colors.js +2 -2
  190. package/lib/utils/diff/index.js +11 -7
  191. package/lib/utils/diff/util.js +5 -5
  192. package/lib/utils/diff.js +4 -4
  193. package/lib/utils/escape-user-agent.js +2 -2
  194. package/lib/utils/execute-fn-with-timeout.js +2 -2
  195. package/lib/utils/get-browser.js +2 -2
  196. package/lib/utils/get-filter-fn.js +4 -4
  197. package/lib/utils/get-options/base.js +2 -2
  198. package/lib/utils/get-options/compiler.js +2 -2
  199. package/lib/utils/get-options/dashboard.js +2 -2
  200. package/lib/utils/get-options/get-assertion-timeout.js +1 -1
  201. package/lib/utils/get-options/index.js +4 -2
  202. package/lib/utils/get-options/meta.js +2 -2
  203. package/lib/utils/get-options/quarantine.js +8 -6
  204. package/lib/utils/get-options/screenshot.js +2 -2
  205. package/lib/utils/get-options/skip-js-errors.js +35 -0
  206. package/lib/utils/get-options/ssl.js +6 -6
  207. package/lib/utils/get-options/video.js +2 -2
  208. package/lib/utils/is-password-input.js +1 -1
  209. package/lib/utils/log-entry.js +2 -2
  210. package/lib/utils/make-reg-exp.js +19 -6
  211. package/lib/utils/moment-loader.js +2 -2
  212. package/lib/utils/parse-file-list.js +7 -7
  213. package/lib/utils/path-pattern.js +4 -4
  214. package/lib/utils/prepare-reporters.js +2 -2
  215. package/lib/utils/prerender-callsite.js +6 -6
  216. package/lib/utils/process.js +7 -7
  217. package/lib/utils/promisified-functions.js +14 -14
  218. package/lib/utils/raw-command-callsite-record.js +2 -2
  219. package/lib/utils/resolve-path-relatively-cwd.js +2 -2
  220. package/lib/utils/string.js +3 -3
  221. package/lib/utils/temp-directory/cleanup-process/index.js +6 -6
  222. package/lib/utils/temp-directory/cleanup-process/worker.js +4 -4
  223. package/lib/utils/temp-directory/index.js +6 -6
  224. package/lib/utils/temp-directory/lockfile.js +2 -2
  225. package/lib/video-recorder/process.js +6 -6
  226. package/lib/video-recorder/recorder.js +9 -9
  227. package/lib/video-recorder/test-run-video-recorder.js +2 -2
  228. package/package.json +8 -7
  229. package/ts-defs/index.d.ts +46 -7
  230. package/ts-defs/selectors.d.ts +39 -0
  231. package/ts-defs/testcafe-scripts.d.ts +39 -0
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
18
  var __importStar = (this && this.__importStar) || function (mod) {
15
19
  if (mod && mod.__esModule) return mod;
16
20
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
22
  __setModuleDefault(result, mod);
19
23
  return result;
20
24
  };
@@ -56,8 +60,8 @@ function getClientDimensions(target) {
56
60
  if (isElementInIframe) {
57
61
  const iframeElement = domUtils.getIframeByElement(target);
58
62
  if (iframeElement) {
59
- const iframeOffset = exports.getOffsetPosition(iframeElement);
60
- const clientOffset = exports.offsetToClientCoords(axis_values_1.default.create(iframeOffset));
63
+ const iframeOffset = (0, exports.getOffsetPosition)(iframeElement);
64
+ const clientOffset = (0, exports.offsetToClientCoords)(axis_values_1.default.create(iframeOffset));
61
65
  const iframeBorders = styleUtils.getBordersWidth(iframeElement);
62
66
  elPosition.add(clientOffset).add(axis_values_1.default.create(iframeBorders));
63
67
  if (isHtmlElement)
@@ -108,8 +112,8 @@ function calcRelativePosition(dimensions, toDimensions) {
108
112
  }
109
113
  exports.calcRelativePosition = calcRelativePosition;
110
114
  function getIframeClientCoordinates(iframe) {
111
- const { left, top } = exports.getOffsetPosition(iframe);
112
- const clientPosition = exports.offsetToClientCoords({ x: left, y: top });
115
+ const { left, top } = (0, exports.getOffsetPosition)(iframe);
116
+ const clientPosition = (0, exports.offsetToClientCoords)({ x: left, y: top });
113
117
  const iframeBorders = styleUtils.getBordersWidth(iframe);
114
118
  const iframePadding = styleUtils.getElementPadding(iframe);
115
119
  const iframeRectangleLeft = clientPosition.x + iframeBorders.left + iframePadding.left;
@@ -136,7 +140,7 @@ function getEventAbsoluteCoordinates(ev) {
136
140
  if (domUtils.isElementInIframe(curDocument.documentElement)) {
137
141
  const currentIframe = domUtils.getIframeByElement(curDocument);
138
142
  if (currentIframe) {
139
- const iframeOffset = exports.getOffsetPosition(currentIframe);
143
+ const iframeOffset = (0, exports.getOffsetPosition)(currentIframe);
140
144
  const iframeBorders = styleUtils.getBordersWidth(currentIframe);
141
145
  xOffset = iframeOffset.left + iframeBorders.left;
142
146
  yOffset = iframeOffset.top + iframeBorders.top;
@@ -163,23 +167,23 @@ function getEventPageCoordinates(ev) {
163
167
  exports.getEventPageCoordinates = getEventPageCoordinates;
164
168
  function getIframePointRelativeToParentFrame(pos, iframeWin) {
165
169
  const iframe = domUtils.findIframeByWindow(iframeWin);
166
- const iframeOffset = exports.getOffsetPosition(iframe);
170
+ const iframeOffset = (0, exports.getOffsetPosition)(iframe);
167
171
  const iframeBorders = styleUtils.getBordersWidth(iframe);
168
172
  const iframePadding = styleUtils.getElementPadding(iframe);
169
- return exports.offsetToClientCoords({
173
+ return (0, exports.offsetToClientCoords)({
170
174
  x: pos.x + iframeOffset.left + iframeBorders.left + iframePadding.left,
171
175
  y: pos.y + iframeOffset.top + iframeBorders.top + iframePadding.top,
172
176
  });
173
177
  }
174
178
  exports.getIframePointRelativeToParentFrame = getIframePointRelativeToParentFrame;
175
179
  function findCenter(el) {
176
- const rectangle = exports.getElementRectangle(el);
180
+ const rectangle = (0, exports.getElementRectangle)(el);
177
181
  return new axis_values_1.default(Math.round(rectangle.left + rectangle.width / 2), Math.round(rectangle.top + rectangle.height / 2));
178
182
  }
179
183
  exports.findCenter = findCenter;
180
184
  function getClientPosition(el) {
181
- const { left, top } = exports.getOffsetPosition(el);
182
- const clientCoords = exports.offsetToClientCoords({ x: left, y: top });
185
+ const { left, top } = (0, exports.getOffsetPosition)(el);
186
+ const clientCoords = (0, exports.offsetToClientCoords)({ x: left, y: top });
183
187
  clientCoords.x = Math.round(clientCoords.x);
184
188
  clientCoords.y = Math.round(clientCoords.y);
185
189
  return clientCoords;
@@ -204,7 +208,7 @@ function hiddenUsingStyles(el) {
204
208
  styleUtils.get(el, 'display') === 'none';
205
209
  }
206
210
  function hiddenByRectangle(el) {
207
- const elementRectangle = exports.getElementRectangle(el);
211
+ const elementRectangle = (0, exports.getElementRectangle)(el);
208
212
  return elementRectangle.width === 0 ||
209
213
  elementRectangle.height === 0;
210
214
  }
@@ -239,4 +243,4 @@ function isElementVisible(el) {
239
243
  return styleUtils.hasDimensions(el) && !hiddenUsingStyles(el);
240
244
  }
241
245
  exports.isElementVisible = isElementVisible;
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUE0QztBQUM1QyxvREFBc0M7QUFDdEMsZ0RBQWtDO0FBQ2xDLHVFQUFrRTtBQUNsRSwrRUFBOEU7QUFDOUUscUVBQTZDO0FBR2hDLFFBQUEsbUJBQW1CLEdBQUksb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDO0FBQ3JFLFFBQUEsaUJBQWlCLEdBQU0sb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0FBQ25FLFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0FBRW5GLFNBQWdCLG1CQUFtQixDQUFFLE1BQW1CO0lBQ3BELE1BQU0sYUFBYSxHQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsTUFBTSxJQUFJLEdBQWdCLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEYsTUFBTSxXQUFXLEdBQVMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDekQsTUFBTSxTQUFTLEdBQVcseUJBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sUUFBUSxHQUFZLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLFlBQVksR0FB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QU8saUJBQWlCLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVk7WUFDYixPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBNEIsQ0FBQyxDQUFDO1FBRTVELE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQTRCLENBQUMsQ0FBQztBQUMzRyxDQUFDO0FBdENELDRDQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBoYW1tZXJoZWFkIGZyb20gJy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5pbXBvcnQgKiBhcyBzdHlsZVV0aWxzIGZyb20gJy4vc3R5bGUnO1xuaW1wb3J0ICogYXMgZG9tVXRpbHMgZnJvbSAnLi9kb20nO1xuaW1wb3J0IEF4aXNWYWx1ZXMsIHsgQXhpc1ZhbHVlc0RhdGEgfSBmcm9tICcuL3ZhbHVlcy9heGlzLXZhbHVlcyc7XG5pbXBvcnQgQm91bmRhcnlWYWx1ZXMsIHsgQm91bmRhcnlWYWx1ZXNEYXRhIH0gZnJvbSAnLi92YWx1ZXMvYm91bmRhcnktdmFsdWVzJztcbmltcG9ydCBEaW1lbnNpb25zIGZyb20gJy4vdmFsdWVzL2RpbWVuc2lvbnMnO1xuXG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50UmVjdGFuZ2xlICA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24uZ2V0RWxlbWVudFJlY3RhbmdsZTtcbmV4cG9ydCBjb25zdCBnZXRPZmZzZXRQb3NpdGlvbiAgICA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24uZ2V0T2Zmc2V0UG9zaXRpb247XG5leHBvcnQgY29uc3Qgb2Zmc2V0VG9DbGllbnRDb29yZHMgPSBoYW1tZXJoZWFkLnV0aWxzLnBvc2l0aW9uLm9mZnNldFRvQ2xpZW50Q29vcmRzO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50RGltZW5zaW9ucyAodGFyZ2V0OiBIVE1MRWxlbWVudCk6IERpbWVuc2lvbnMge1xuICAgIGNvbnN0IGlzSHRtbEVsZW1lbnQgICAgID0gZG9tVXRpbHMuaXNIdG1sRWxlbWVudCh0YXJnZXQpO1xuICAgIGNvbnN0IGJvZHkgICAgICAgICAgICAgID0gaXNIdG1sRWxlbWVudCA/IHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdIDogbnVsbDtcbiAgICBjb25zdCBlbGVtZW50UmVjdCAgICAgICA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlbEJvcmRlcnMgICAgICAgICA9IEJvdW5kYXJ5VmFsdWVzLmNyZWF0ZShzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aCh0YXJnZXQpKTtcbiAgICBjb25zdCBlbFNjcm9sbCAgICAgICAgICA9IHN0eWxlVXRpbHMuZ2V0RWxlbWVudFNjcm9sbCh0YXJnZXQpO1xuICAgIGNvbnN0IGlzRWxlbWVudEluSWZyYW1lID0gZG9tVXRpbHMuaXNFbGVtZW50SW5JZnJhbWUodGFyZ2V0KTtcbiAgICBjb25zdCBpc0NvbXBhdE1vZGUgICAgICA9IHRhcmdldC5vd25lckRvY3VtZW50LmNvbXBhdE1vZGUgPT09ICdCYWNrQ29tcGF0JztcbiAgICBjb25zdCBlbFBvc2l0aW9uICAgICAgICA9IGlzSHRtbEVsZW1lbnQgPyBuZXcgQXhpc1ZhbHVlcygwLCAwKSA6IEF4aXNWYWx1ZXMuY3JlYXRlKGVsZW1lbnRSZWN0KTtcblxuICAgIGxldCBlbEhlaWdodCAgID0gZWxlbWVudFJlY3QuaGVpZ2h0O1xuICAgIGxldCBlbFdpZHRoICAgID0gZWxlbWVudFJlY3Qud2lkdGg7XG5cbiAgICBpZiAoaXNIdG1sRWxlbWVudCkge1xuICAgICAgICBpZiAoYm9keSAmJiBpc0NvbXBhdE1vZGUpIHtcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gYm9keS5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBlbFdpZHRoICA9IGJvZHkuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBlbFdpZHRoICA9IHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0VsZW1lbnRJbklmcmFtZSkge1xuICAgICAgICBjb25zdCBpZnJhbWVFbGVtZW50ID0gZG9tVXRpbHMuZ2V0SWZyYW1lQnlFbGVtZW50KHRhcmdldCk7XG5cbiAgICAgICAgaWYgKGlmcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZU9mZnNldCAgPSBnZXRPZmZzZXRQb3NpdGlvbihpZnJhbWVFbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudE9mZnNldCAgPSBvZmZzZXRUb0NsaWVudENvb3JkcyhBeGlzVmFsdWVzLmNyZWF0ZShpZnJhbWVPZmZzZXQpKTtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChpZnJhbWVFbGVtZW50KTtcblxuICAgICAgICAgICAgZWxQb3NpdGlvbi5hZGQoY2xpZW50T2Zmc2V0KS5hZGQoQXhpc1ZhbHVlcy5jcmVhdGUoaWZyYW1lQm9yZGVycykpO1xuXG4gICAgICAgICAgICBpZiAoaXNIdG1sRWxlbWVudClcbiAgICAgICAgICAgICAgICBlbEJvcmRlcnMuYWRkKGlmcmFtZUJvcmRlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzUmlnaHRTY3JvbGxiYXIgID0gIWlzSHRtbEVsZW1lbnQgJiYgc3R5bGVVdGlscy5nZXRJbm5lcldpZHRoKHRhcmdldCkgIT09IHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBoYXNCb3R0b21TY3JvbGxiYXIgPSAhaXNIdG1sRWxlbWVudCAmJiBzdHlsZVV0aWxzLmdldElubmVySGVpZ2h0KHRhcmdldCkgIT09IHRhcmdldC5jbGllbnRIZWlnaHQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXIgPSB7XG4gICAgICAgIHJpZ2h0OiAgaGFzUmlnaHRTY3JvbGxiYXIgPyBkb21VdGlscy5nZXRTY3JvbGxiYXJTaXplKCkgOiAwLFxuICAgICAgICBib3R0b206IGhhc0JvdHRvbVNjcm9sbGJhciA/IGRvbVV0aWxzLmdldFNjcm9sbGJhclNpemUoKSA6IDAsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgRGltZW5zaW9ucyhlbFdpZHRoLCBlbEhlaWdodCwgZWxQb3NpdGlvbiwgZWxCb3JkZXJzLCBlbFNjcm9sbCwgc2Nyb2xsYmFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRGcm9tUG9pbnQgKHsgeCwgeSB9OiBBeGlzVmFsdWVzRGF0YTxudW1iZXI+KTogRWxlbWVudCB8IG51bGwge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBpZUZuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEZyb21Qb2ludDtcbiAgICBjb25zdCBmdW5jID0gaWVGbiB8fCBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50O1xuXG4gICAgbGV0IGVsOiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgICAvLyBQZXJtaXNzaW9uIGRlbmllZCB0byBhY2Nlc3MgcHJvcGVydHkgJ2dldEVsZW1lbnRGcm9tUG9pbnQnIGVycm9yIGluIGlmcmFtZVxuICAgICAgICBlbCA9IGZ1bmMuY2FsbChkb2N1bWVudCwgeCwgeSk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy9OT1RFOiBlbGVtZW50RnJvbVBvaW50IHJldHVybnMgbnVsbCB3aGVuIGlzJ3MgYSBib3JkZXIgb2YgYW4gaWZyYW1lXG4gICAgaWYgKGVsID09PSBudWxsKVxuICAgICAgICBlbCA9IGZ1bmMuY2FsbChkb2N1bWVudCwgeCAtIDEsIHkgLSAxKTtcblxuICAgIHdoaWxlIChlbCAmJiBlbC5zaGFkb3dSb290ICYmIGVsLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCkge1xuICAgICAgICBjb25zdCBzaGFkb3dFbCA9IGVsLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4LCB5KTtcblxuICAgICAgICBpZiAoIXNoYWRvd0VsIHx8IGVsID09PSBzaGFkb3dFbClcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGVsID0gc2hhZG93RWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY1JlbGF0aXZlUG9zaXRpb24gKGRpbWVuc2lvbnM6IERpbWVuc2lvbnMsIHRvRGltZW5zaW9uczogRGltZW5zaW9ucyk6IEJvdW5kYXJ5VmFsdWVzRGF0YSB7XG4gICAgY29uc3QgcG9zID0gQm91bmRhcnlWYWx1ZXMuY3JlYXRlKHtcbiAgICAgICAgdG9wOiAgICBkaW1lbnNpb25zLnRvcCAtIHRvRGltZW5zaW9ucy50b3AsXG4gICAgICAgIGxlZnQ6ICAgZGltZW5zaW9ucy5sZWZ0IC0gdG9EaW1lbnNpb25zLmxlZnQsXG4gICAgICAgIHJpZ2h0OiAgdG9EaW1lbnNpb25zLnJpZ2h0IC0gZGltZW5zaW9ucy5yaWdodCxcbiAgICAgICAgYm90dG9tOiB0b0RpbWVuc2lvbnMuYm90dG9tIC0gZGltZW5zaW9ucy5ib3R0b20sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcG9zLnN1Yih0b0RpbWVuc2lvbnMuYm9yZGVyKS5zdWIodG9EaW1lbnNpb25zLnNjcm9sbGJhcikucm91bmQoTWF0aC5jZWlsLCBNYXRoLmZsb29yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElmcmFtZUNsaWVudENvb3JkaW5hdGVzIChpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KTogQm91bmRhcnlWYWx1ZXMge1xuICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gICAgICAgPSBnZXRPZmZzZXRQb3NpdGlvbihpZnJhbWUpO1xuICAgIGNvbnN0IGNsaWVudFBvc2l0aW9uICAgICAgPSBvZmZzZXRUb0NsaWVudENvb3Jkcyh7IHg6IGxlZnQsIHk6IHRvcCB9KTtcbiAgICBjb25zdCBpZnJhbWVCb3JkZXJzICAgICAgID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVQYWRkaW5nICAgICAgID0gc3R5bGVVdGlscy5nZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuICAgIGNvbnN0IGlmcmFtZVJlY3RhbmdsZUxlZnQgPSBjbGllbnRQb3NpdGlvbi54ICsgaWZyYW1lQm9yZGVycy5sZWZ0ICsgaWZyYW1lUGFkZGluZy5sZWZ0O1xuICAgIGNvbnN0IGlmcmFtZVJlY3RhbmdsZVRvcCAgPSBjbGllbnRQb3NpdGlvbi55ICsgaWZyYW1lQm9yZGVycy50b3AgKyBpZnJhbWVQYWRkaW5nLnRvcDtcblxuICAgIHJldHVybiBuZXcgQm91bmRhcnlWYWx1ZXMoaWZyYW1lUmVjdGFuZ2xlVG9wLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVMZWZ0ICsgc3R5bGVVdGlscy5nZXRXaWR0aChpZnJhbWUpLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVUb3AgKyBzdHlsZVV0aWxzLmdldEhlaWdodChpZnJhbWUpLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVMZWZ0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zT2Zmc2V0IChlbDogSFRNTEVsZW1lbnQsIG9mZnNldFg/OiBudW1iZXIsIG9mZnNldFk/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gZ2V0Q2xpZW50RGltZW5zaW9ucyhlbCk7XG4gICAgY29uc3Qgd2lkdGggICAgICA9IE1hdGgubWF4KGVsLnNjcm9sbFdpZHRoLCBkaW1lbnNpb25zLndpZHRoKTtcbiAgICBjb25zdCBoZWlnaHQgICAgID0gTWF0aC5tYXgoZWwuc2Nyb2xsSGVpZ2h0LCBkaW1lbnNpb25zLmhlaWdodCk7XG4gICAgY29uc3QgbWF4WCAgICAgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLnJpZ2h0ICsgZGltZW5zaW9ucy5ib3JkZXIubGVmdCArIGRpbWVuc2lvbnMuYm9yZGVyLnJpZ2h0ICsgd2lkdGg7XG4gICAgY29uc3QgbWF4WSAgICAgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLmJvdHRvbSArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLmJvdHRvbSArIGhlaWdodDtcblxuICAgIHJldHVybiAodHlwZW9mIG9mZnNldFggPT09ICd1bmRlZmluZWQnIHx8IG9mZnNldFggPj0gMCAmJiBtYXhYID49IG9mZnNldFgpICYmXG4gICAgICAgICAgICh0eXBlb2Ygb2Zmc2V0WSA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WSA+PSAwICYmIG1heFkgPj0gb2Zmc2V0WSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudEFic29sdXRlQ29vcmRpbmF0ZXMgKGV2OiBNb3VzZUV2ZW50KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBlbCAgICAgICAgICAgICAgPSBldi50YXJnZXQgfHwgZXYuc3JjRWxlbWVudDtcbiAgICBjb25zdCBwYWdlQ29vcmRpbmF0ZXMgPSBnZXRFdmVudFBhZ2VDb29yZGluYXRlcyhldik7XG4gICAgY29uc3QgY3VyRG9jdW1lbnQgICAgID0gZG9tVXRpbHMuZmluZERvY3VtZW50KGVsKTtcbiAgICBsZXQgeE9mZnNldCAgICAgICAgID0gMDtcbiAgICBsZXQgeU9mZnNldCAgICAgICAgID0gMDtcblxuICAgIGlmIChkb21VdGlscy5pc0VsZW1lbnRJbklmcmFtZShjdXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJZnJhbWUgPSBkb21VdGlscy5nZXRJZnJhbWVCeUVsZW1lbnQoY3VyRG9jdW1lbnQpO1xuXG4gICAgICAgIGlmIChjdXJyZW50SWZyYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpZnJhbWVPZmZzZXQgID0gZ2V0T2Zmc2V0UG9zaXRpb24oY3VycmVudElmcmFtZSk7XG4gICAgICAgICAgICBjb25zdCBpZnJhbWVCb3JkZXJzID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoY3VycmVudElmcmFtZSk7XG5cbiAgICAgICAgICAgIHhPZmZzZXQgPSBpZnJhbWVPZmZzZXQubGVmdCArIGlmcmFtZUJvcmRlcnMubGVmdDtcbiAgICAgICAgICAgIHlPZmZzZXQgPSBpZnJhbWVPZmZzZXQudG9wICsgaWZyYW1lQm9yZGVycy50b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXMocGFnZUNvb3JkaW5hdGVzLnggKyB4T2Zmc2V0LCBwYWdlQ29vcmRpbmF0ZXMueSArIHlPZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRQYWdlQ29vcmRpbmF0ZXMgKGV2OiBNb3VzZUV2ZW50KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBjdXJDb29yZE9iamVjdCA9IC9edG91Y2gvLnRlc3QoZXYudHlwZSkgJiYgKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlcyA/IChldiBhcyB1bmtub3duIGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0gfHwgKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkuY2hhbmdlZFRvdWNoZXNbMF0gOiBldjtcblxuICAgIGNvbnN0IGJvdGhQYWdlQ29vcmRpbmF0ZXNBcmVaZXJvICAgICAgPSBjdXJDb29yZE9iamVjdC5wYWdlWCA9PT0gMCAmJiBjdXJDb29yZE9iamVjdC5wYWdlWSA9PT0gMDtcbiAgICBjb25zdCBub3RCb3RoQ2xpZW50Q29vcmRpbmF0ZXNBcmVaZXJvID0gY3VyQ29vcmRPYmplY3QuY2xpZW50WCAhPT0gMCB8fCBjdXJDb29yZE9iamVjdC5jbGllbnRZICE9PSAwO1xuXG4gICAgaWYgKChjdXJDb29yZE9iamVjdC5wYWdlWCA9PT0gbnVsbCB8fCBib3RoUGFnZUNvb3JkaW5hdGVzQXJlWmVybyAmJiBub3RCb3RoQ2xpZW50Q29vcmRpbmF0ZXNBcmVaZXJvKSAmJlxuICAgICAgICBjdXJDb29yZE9iamVjdC5jbGllbnRYICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREb2N1bWVudCA9IGRvbVV0aWxzLmZpbmREb2N1bWVudChldi50YXJnZXQgfHwgZXYuc3JjRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGh0bWwgICAgICAgICAgICA9IGN1cnJlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGJvZHkgICAgICAgICAgICA9IGN1cnJlbnREb2N1bWVudC5ib2R5O1xuXG4gICAgICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlczxudW1iZXI+KFxuICAgICAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5jbGllbnRYICsgKGh0bWwgJiYgaHRtbC5zY3JvbGxMZWZ0IHx8IGJvZHkgJiYgYm9keS5zY3JvbGxMZWZ0IHx8IDApIC1cbiAgICAgICAgICAgICAgICAoaHRtbC5jbGllbnRMZWZ0IHx8IDApKSxcbiAgICAgICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QuY2xpZW50WSArIChodG1sICYmIGh0bWwuc2Nyb2xsVG9wIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgfHwgMCkgLVxuICAgICAgICAgICAgICAgIChodG1sLmNsaWVudFRvcCB8fCAwKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QucGFnZVgpLFxuICAgICAgICBNYXRoLnJvdW5kKGN1ckNvb3JkT2JqZWN0LnBhZ2VZKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZnJhbWVQb2ludFJlbGF0aXZlVG9QYXJlbnRGcmFtZSAocG9zOiBBeGlzVmFsdWVzPG51bWJlcj4sIGlmcmFtZVdpbjogV2luZG93KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBpZnJhbWUgICAgICAgID0gZG9tVXRpbHMuZmluZElmcmFtZUJ5V2luZG93KGlmcmFtZVdpbik7XG4gICAgY29uc3QgaWZyYW1lT2Zmc2V0ICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lQm9yZGVycyA9IHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lUGFkZGluZyA9IHN0eWxlVXRpbHMuZ2V0RWxlbWVudFBhZGRpbmcoaWZyYW1lKTtcblxuICAgIHJldHVybiBvZmZzZXRUb0NsaWVudENvb3Jkcyh7XG4gICAgICAgIHg6IHBvcy54ICsgaWZyYW1lT2Zmc2V0LmxlZnQgKyBpZnJhbWVCb3JkZXJzLmxlZnQgKyBpZnJhbWVQYWRkaW5nLmxlZnQsXG4gICAgICAgIHk6IHBvcy55ICsgaWZyYW1lT2Zmc2V0LnRvcCArIGlmcmFtZUJvcmRlcnMudG9wICsgaWZyYW1lUGFkZGluZy50b3AsXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2VudGVyIChlbDogSFRNTEVsZW1lbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldEVsZW1lbnRSZWN0YW5nbGUoZWwpO1xuXG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgIE1hdGgucm91bmQocmVjdGFuZ2xlLmxlZnQgKyByZWN0YW5nbGUud2lkdGggLyAyKSxcbiAgICAgICAgTWF0aC5yb3VuZChyZWN0YW5nbGUudG9wICsgcmVjdGFuZ2xlLmhlaWdodCAvIDIpLFxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRQb3NpdGlvbiAoZWw6IEhUTUxFbGVtZW50KTogYW55IHtcbiAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gZ2V0T2Zmc2V0UG9zaXRpb24oZWwpO1xuXG4gICAgY29uc3QgY2xpZW50Q29vcmRzID0gb2Zmc2V0VG9DbGllbnRDb29yZHMoeyB4OiBsZWZ0LCB5OiB0b3AgfSk7XG5cbiAgICBjbGllbnRDb29yZHMueCA9IE1hdGgucm91bmQoY2xpZW50Q29vcmRzLngpO1xuICAgIGNsaWVudENvb3Jkcy55ID0gTWF0aC5yb3VuZChjbGllbnRDb29yZHMueSk7XG5cbiAgICByZXR1cm4gY2xpZW50Q29vcmRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJblJlY3RhbmdsZSAoeyB4LCB5IH06IEF4aXNWYWx1ZXM8bnVtYmVyPiwgcmVjdGFuZ2xlOiBCb3VuZGFyeVZhbHVlcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB4ID49IHJlY3RhbmdsZS5sZWZ0ICYmIHggPD0gcmVjdGFuZ2xlLnJpZ2h0ICYmIHkgPj0gcmVjdGFuZ2xlLnRvcCAmJiB5IDw9IHJlY3RhbmdsZS5ib3R0b207XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaW5kb3dQb3NpdGlvbiAoKTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCB4ID0gd2luZG93LnNjcmVlbkxlZnQgfHwgd2luZG93LnNjcmVlblg7XG4gICAgY29uc3QgeSA9IHdpbmRvdy5zY3JlZW5Ub3AgfHwgd2luZG93LnNjcmVlblk7XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXMoeCwgeSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lmcmFtZVZpc2libGUgKGVsOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFoaWRkZW5Vc2luZ1N0eWxlcyhlbCBhcyBIVE1MRWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGhpZGRlblVzaW5nU3R5bGVzIChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3R5bGVVdGlscy5nZXQoZWwsICd2aXNpYmlsaXR5JykgPT09ICdoaWRkZW4nIHx8XG4gICAgICAgIHN0eWxlVXRpbHMuZ2V0KGVsLCAnZGlzcGxheScpID09PSAnbm9uZSc7XG59XG5cbmZ1bmN0aW9uIGhpZGRlbkJ5UmVjdGFuZ2xlIChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbCk7XG5cbiAgICByZXR1cm4gZWxlbWVudFJlY3RhbmdsZS53aWR0aCA9PT0gMCB8fFxuICAgICAgICBlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudFZpc2libGUgKGVsOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKGRvbVV0aWxzLmlzVGV4dE5vZGUoZWwpKVxuICAgICAgICByZXR1cm4gIXN0eWxlVXRpbHMuaXNOb3RWaXNpYmxlTm9kZShlbCk7XG5cbiAgICBpZiAoIWRvbVV0aWxzLmlzQ29udGVudEVkaXRhYmxlRWxlbWVudChlbCkgJiZcbiAgICAgICAgIWRvbVV0aWxzLmlzU1ZHRWxlbWVudChlbCkgJiZcbiAgICAgICAgaGlkZGVuQnlSZWN0YW5nbGUoZWwgYXMgSFRNTEVsZW1lbnQpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9tVXRpbHMuaXNNYXBFbGVtZW50KGVsKSkge1xuICAgICAgICBjb25zdCBtYXBDb250YWluZXIgPSBkb21VdGlscy5nZXRNYXBDb250YWluZXIoZG9tVXRpbHMuY2xvc2VzdChlbCwgJ21hcCcpKTtcblxuICAgICAgICByZXR1cm4gbWFwQ29udGFpbmVyID8gaXNFbGVtZW50VmlzaWJsZShtYXBDb250YWluZXIpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHN0eWxlVXRpbHMuaXNTZWxlY3RWaXNpYmxlQ2hpbGQoZWwpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdCAgICAgICAgICAgICAgPSBkb21VdGlscy5nZXRTZWxlY3RQYXJlbnQoZWwpIGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgICAgICBjb25zdCBjaGlsZFJlYWxJbmRleCAgICAgID0gZG9tVXRpbHMuZ2V0Q2hpbGRWaXNpYmxlSW5kZXgoc2VsZWN0LCBlbCk7XG4gICAgICAgIGNvbnN0IHJlYWxTZWxlY3RTaXplVmFsdWUgPSBzdHlsZVV0aWxzLmdldFNlbGVjdEVsZW1lbnRTaXplKHNlbGVjdCk7XG4gICAgICAgIGNvbnN0IHRvcFZpc2libGVJbmRleCAgICAgPSBNYXRoLm1heChzdHlsZVV0aWxzLmdldFNjcm9sbFRvcChzZWxlY3QpIC8gc3R5bGVVdGlscy5nZXRPcHRpb25IZWlnaHQoc2VsZWN0KSwgMCk7XG4gICAgICAgIGNvbnN0IGJvdHRvbVZpc2libGVJbmRleCAgPSB0b3BWaXNpYmxlSW5kZXggKyByZWFsU2VsZWN0U2l6ZVZhbHVlIC0gMTtcbiAgICAgICAgY29uc3Qgb3B0aW9uVmlzaWJsZUluZGV4ICA9IE1hdGgubWF4KGNoaWxkUmVhbEluZGV4IC0gdG9wVmlzaWJsZUluZGV4LCAwKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9uVmlzaWJsZUluZGV4ID49IHRvcFZpc2libGVJbmRleCAmJiBvcHRpb25WaXNpYmxlSW5kZXggPD0gYm90dG9tVmlzaWJsZUluZGV4O1xuICAgIH1cblxuICAgIGlmIChkb21VdGlscy5pc1NWR0VsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IGhpZGRlblBhcmVudCA9IGRvbVV0aWxzLmZpbmRQYXJlbnQoZWwsIHRydWUsIChwYXJlbnQ6IE5vZGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBoaWRkZW5Vc2luZ1N0eWxlcyhwYXJlbnQgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaGlkZGVuUGFyZW50KVxuICAgICAgICAgICAgcmV0dXJuICFoaWRkZW5CeVJlY3RhbmdsZShlbCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlVXRpbHMuaGFzRGltZW5zaW9ucyhlbCBhcyBIVE1MRWxlbWVudCkgJiYgIWhpZGRlblVzaW5nU3R5bGVzKGVsIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xufVxuXG4iXX0=
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBNEM7QUFDNUMsb0RBQXNDO0FBQ3RDLGdEQUFrQztBQUNsQyx1RUFBa0U7QUFDbEUsK0VBQThFO0FBQzlFLHFFQUE2QztBQUdoQyxRQUFBLG1CQUFtQixHQUFJLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztBQUNyRSxRQUFBLGlCQUFpQixHQUFNLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztBQUNuRSxRQUFBLG9CQUFvQixHQUFHLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztBQUVuRixTQUFnQixtQkFBbUIsQ0FBRSxNQUFtQjtJQUNwRCxNQUFNLGFBQWEsR0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELE1BQU0sSUFBSSxHQUFnQixhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hGLE1BQU0sV0FBVyxHQUFTLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3pELE1BQU0sU0FBUyxHQUFXLHlCQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLFFBQVEsR0FBWSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZ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LFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBWSxFQUFFLEVBQUU7WUFDaEUsT0FBTyxpQkFBaUIsQ0FBQyxNQUFnQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWTtZQUNiLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUE0QixDQUFDLENBQUM7UUFFNUQsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBNEIsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUF0Q0QsNENBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhbW1lcmhlYWQgZnJvbSAnLi4vZGVwcy9oYW1tZXJoZWFkJztcbmltcG9ydCAqIGFzIHN0eWxlVXRpbHMgZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgKiBhcyBkb21VdGlscyBmcm9tICcuL2RvbSc7XG5pbXBvcnQgQXhpc1ZhbHVlcywgeyBBeGlzVmFsdWVzRGF0YSB9IGZyb20gJy4vdmFsdWVzL2F4aXMtdmFsdWVzJztcbmltcG9ydCBCb3VuZGFyeVZhbHVlcywgeyBCb3VuZGFyeVZhbHVlc0RhdGEgfSBmcm9tICcuL3ZhbHVlcy9ib3VuZGFyeS12YWx1ZXMnO1xuaW1wb3J0IERpbWVuc2lvbnMgZnJvbSAnLi92YWx1ZXMvZGltZW5zaW9ucyc7XG5cblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRSZWN0YW5nbGUgID0gaGFtbWVyaGVhZC51dGlscy5wb3NpdGlvbi5nZXRFbGVtZW50UmVjdGFuZ2xlO1xuZXhwb3J0IGNvbnN0IGdldE9mZnNldFBvc2l0aW9uICAgID0gaGFtbWVyaGVhZC51dGlscy5wb3NpdGlvbi5nZXRPZmZzZXRQb3NpdGlvbjtcbmV4cG9ydCBjb25zdCBvZmZzZXRUb0NsaWVudENvb3JkcyA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24ub2Zmc2V0VG9DbGllbnRDb29yZHM7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnREaW1lbnNpb25zICh0YXJnZXQ6IEhUTUxFbGVtZW50KTogRGltZW5zaW9ucyB7XG4gICAgY29uc3QgaXNIdG1sRWxlbWVudCAgICAgPSBkb21VdGlscy5pc0h0bWxFbGVtZW50KHRhcmdldCk7XG4gICAgY29uc3QgYm9keSAgICAgICAgICAgICAgPSBpc0h0bWxFbGVtZW50ID8gdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0gOiBudWxsO1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0ICAgICAgID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGVsQm9yZGVycyAgICAgICAgID0gQm91bmRhcnlWYWx1ZXMuY3JlYXRlKHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKHRhcmdldCkpO1xuICAgIGNvbnN0IGVsU2Nyb2xsICAgICAgICAgID0gc3R5bGVVdGlscy5nZXRFbGVtZW50U2Nyb2xsKHRhcmdldCk7XG4gICAgY29uc3QgaXNFbGVtZW50SW5JZnJhbWUgPSBkb21VdGlscy5pc0VsZW1lbnRJbklmcmFtZSh0YXJnZXQpO1xuICAgIGNvbnN0IGlzQ29tcGF0TW9kZSAgICAgID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQuY29tcGF0TW9kZSA9PT0gJ0JhY2tDb21wYXQnO1xuICAgIGNvbnN0IGVsUG9zaXRpb24gICAgICAgID0gaXNIdG1sRWxlbWVudCA/IG5ldyBBeGlzVmFsdWVzKDAsIDApIDogQXhpc1ZhbHVlcy5jcmVhdGUoZWxlbWVudFJlY3QpO1xuXG4gICAgbGV0IGVsSGVpZ2h0ICAgPSBlbGVtZW50UmVjdC5oZWlnaHQ7XG4gICAgbGV0IGVsV2lkdGggICAgPSBlbGVtZW50UmVjdC53aWR0aDtcblxuICAgIGlmIChpc0h0bWxFbGVtZW50KSB7XG4gICAgICAgIGlmIChib2R5ICYmIGlzQ29tcGF0TW9kZSkge1xuICAgICAgICAgICAgZWxIZWlnaHQgPSBib2R5LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGVsV2lkdGggID0gYm9keS5jbGllbnRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gdGFyZ2V0LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGVsV2lkdGggID0gdGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRWxlbWVudEluSWZyYW1lKSB7XG4gICAgICAgIGNvbnN0IGlmcmFtZUVsZW1lbnQgPSBkb21VdGlscy5nZXRJZnJhbWVCeUVsZW1lbnQodGFyZ2V0KTtcblxuICAgICAgICBpZiAoaWZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgaWZyYW1lT2Zmc2V0ICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50T2Zmc2V0ICA9IG9mZnNldFRvQ2xpZW50Q29vcmRzKEF4aXNWYWx1ZXMuY3JlYXRlKGlmcmFtZU9mZnNldCkpO1xuICAgICAgICAgICAgY29uc3QgaWZyYW1lQm9yZGVycyA9IHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKGlmcmFtZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBlbFBvc2l0aW9uLmFkZChjbGllbnRPZmZzZXQpLmFkZChBeGlzVmFsdWVzLmNyZWF0ZShpZnJhbWVCb3JkZXJzKSk7XG5cbiAgICAgICAgICAgIGlmIChpc0h0bWxFbGVtZW50KVxuICAgICAgICAgICAgICAgIGVsQm9yZGVycy5hZGQoaWZyYW1lQm9yZGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYXNSaWdodFNjcm9sbGJhciAgPSAhaXNIdG1sRWxlbWVudCAmJiBzdHlsZVV0aWxzLmdldElubmVyV2lkdGgodGFyZ2V0KSAhPT0gdGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGhhc0JvdHRvbVNjcm9sbGJhciA9ICFpc0h0bWxFbGVtZW50ICYmIHN0eWxlVXRpbHMuZ2V0SW5uZXJIZWlnaHQodGFyZ2V0KSAhPT0gdGFyZ2V0LmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IHNjcm9sbGJhciA9IHtcbiAgICAgICAgcmlnaHQ6ICBoYXNSaWdodFNjcm9sbGJhciA/IGRvbVV0aWxzLmdldFNjcm9sbGJhclNpemUoKSA6IDAsXG4gICAgICAgIGJvdHRvbTogaGFzQm90dG9tU2Nyb2xsYmFyID8gZG9tVXRpbHMuZ2V0U2Nyb2xsYmFyU2l6ZSgpIDogMCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBEaW1lbnNpb25zKGVsV2lkdGgsIGVsSGVpZ2h0LCBlbFBvc2l0aW9uLCBlbEJvcmRlcnMsIGVsU2Nyb2xsLCBzY3JvbGxiYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudEZyb21Qb2ludCAoeyB4LCB5IH06IEF4aXNWYWx1ZXNEYXRhPG51bWJlcj4pOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGllRm4gPSBkb2N1bWVudC5nZXRFbGVtZW50RnJvbVBvaW50O1xuICAgIGNvbnN0IGZ1bmMgPSBpZUZuIHx8IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQ7XG5cbiAgICBsZXQgZWw6IEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICAgIC8vIFBlcm1pc3Npb24gZGVuaWVkIHRvIGFjY2VzcyBwcm9wZXJ0eSAnZ2V0RWxlbWVudEZyb21Qb2ludCcgZXJyb3IgaW4gaWZyYW1lXG4gICAgICAgIGVsID0gZnVuYy5jYWxsKGRvY3VtZW50LCB4LCB5KTtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvL05PVEU6IGVsZW1lbnRGcm9tUG9pbnQgcmV0dXJucyBudWxsIHdoZW4gaXMncyBhIGJvcmRlciBvZiBhbiBpZnJhbWVcbiAgICBpZiAoZWwgPT09IG51bGwpXG4gICAgICAgIGVsID0gZnVuYy5jYWxsKGRvY3VtZW50LCB4IC0gMSwgeSAtIDEpO1xuXG4gICAgd2hpbGUgKGVsICYmIGVsLnNoYWRvd1Jvb3QgJiYgZWwuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd0VsID0gZWwuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KHgsIHkpO1xuXG4gICAgICAgIGlmICghc2hhZG93RWwgfHwgZWwgPT09IHNoYWRvd0VsKVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZWwgPSBzaGFkb3dFbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjUmVsYXRpdmVQb3NpdGlvbiAoZGltZW5zaW9uczogRGltZW5zaW9ucywgdG9EaW1lbnNpb25zOiBEaW1lbnNpb25zKTogQm91bmRhcnlWYWx1ZXNEYXRhIHtcbiAgICBjb25zdCBwb3MgPSBCb3VuZGFyeVZhbHVlcy5jcmVhdGUoe1xuICAgICAgICB0b3A6ICAgIGRpbWVuc2lvbnMudG9wIC0gdG9EaW1lbnNpb25zLnRvcCxcbiAgICAgICAgbGVmdDogICBkaW1lbnNpb25zLmxlZnQgLSB0b0RpbWVuc2lvbnMubGVmdCxcbiAgICAgICAgcmlnaHQ6ICB0b0RpbWVuc2lvbnMucmlnaHQgLSBkaW1lbnNpb25zLnJpZ2h0LFxuICAgICAgICBib3R0b206IHRvRGltZW5zaW9ucy5ib3R0b20gLSBkaW1lbnNpb25zLmJvdHRvbSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwb3Muc3ViKHRvRGltZW5zaW9ucy5ib3JkZXIpLnN1Yih0b0RpbWVuc2lvbnMuc2Nyb2xsYmFyKS5yb3VuZChNYXRoLmNlaWwsIE1hdGguZmxvb3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SWZyYW1lQ2xpZW50Q29vcmRpbmF0ZXMgKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQpOiBCb3VuZGFyeVZhbHVlcyB7XG4gICAgY29uc3QgeyBsZWZ0LCB0b3AgfSAgICAgICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZSk7XG4gICAgY29uc3QgY2xpZW50UG9zaXRpb24gICAgICA9IG9mZnNldFRvQ2xpZW50Q29vcmRzKHsgeDogbGVmdCwgeTogdG9wIH0pO1xuICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgICAgICAgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChpZnJhbWUpO1xuICAgIGNvbnN0IGlmcmFtZVBhZGRpbmcgICAgICAgPSBzdHlsZVV0aWxzLmdldEVsZW1lbnRQYWRkaW5nKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lUmVjdGFuZ2xlTGVmdCA9IGNsaWVudFBvc2l0aW9uLnggKyBpZnJhbWVCb3JkZXJzLmxlZnQgKyBpZnJhbWVQYWRkaW5nLmxlZnQ7XG4gICAgY29uc3QgaWZyYW1lUmVjdGFuZ2xlVG9wICA9IGNsaWVudFBvc2l0aW9uLnkgKyBpZnJhbWVCb3JkZXJzLnRvcCArIGlmcmFtZVBhZGRpbmcudG9wO1xuXG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcyhpZnJhbWVSZWN0YW5nbGVUb3AsXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZUxlZnQgKyBzdHlsZVV0aWxzLmdldFdpZHRoKGlmcmFtZSksXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZVRvcCArIHN0eWxlVXRpbHMuZ2V0SGVpZ2h0KGlmcmFtZSksXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZUxlZnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNPZmZzZXQgKGVsOiBIVE1MRWxlbWVudCwgb2Zmc2V0WD86IG51bWJlciwgb2Zmc2V0WT86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBnZXRDbGllbnREaW1lbnNpb25zKGVsKTtcbiAgICBjb25zdCB3aWR0aCAgICAgID0gTWF0aC5tYXgoZWwuc2Nyb2xsV2lkdGgsIGRpbWVuc2lvbnMud2lkdGgpO1xuICAgIGNvbnN0IGhlaWdodCAgICAgPSBNYXRoLm1heChlbC5zY3JvbGxIZWlnaHQsIGRpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICBjb25zdCBtYXhYICAgICAgID0gZGltZW5zaW9ucy5zY3JvbGxiYXIucmlnaHQgKyBkaW1lbnNpb25zLmJvcmRlci5sZWZ0ICsgZGltZW5zaW9ucy5ib3JkZXIucmlnaHQgKyB3aWR0aDtcbiAgICBjb25zdCBtYXhZICAgICAgID0gZGltZW5zaW9ucy5zY3JvbGxiYXIuYm90dG9tICsgZGltZW5zaW9ucy5ib3JkZXIudG9wICsgZGltZW5zaW9ucy5ib3JkZXIuYm90dG9tICsgaGVpZ2h0O1xuXG4gICAgcmV0dXJuICh0eXBlb2Ygb2Zmc2V0WCA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WCA+PSAwICYmIG1heFggPj0gb2Zmc2V0WCkgJiZcbiAgICAgICAgICAgKHR5cGVvZiBvZmZzZXRZID09PSAndW5kZWZpbmVkJyB8fCBvZmZzZXRZID49IDAgJiYgbWF4WSA+PSBvZmZzZXRZKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50QWJzb2x1dGVDb29yZGluYXRlcyAoZXY6IE1vdXNlRXZlbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGVsICAgICAgICAgICAgICA9IGV2LnRhcmdldCB8fCBldi5zcmNFbGVtZW50O1xuICAgIGNvbnN0IHBhZ2VDb29yZGluYXRlcyA9IGdldEV2ZW50UGFnZUNvb3JkaW5hdGVzKGV2KTtcbiAgICBjb25zdCBjdXJEb2N1bWVudCAgICAgPSBkb21VdGlscy5maW5kRG9jdW1lbnQoZWwpO1xuICAgIGxldCB4T2Zmc2V0ICAgICAgICAgPSAwO1xuICAgIGxldCB5T2Zmc2V0ICAgICAgICAgPSAwO1xuXG4gICAgaWYgKGRvbVV0aWxzLmlzRWxlbWVudEluSWZyYW1lKGN1ckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudElmcmFtZSA9IGRvbVV0aWxzLmdldElmcmFtZUJ5RWxlbWVudChjdXJEb2N1bWVudCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJZnJhbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZU9mZnNldCAgPSBnZXRPZmZzZXRQb3NpdGlvbihjdXJyZW50SWZyYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChjdXJyZW50SWZyYW1lKTtcblxuICAgICAgICAgICAgeE9mZnNldCA9IGlmcmFtZU9mZnNldC5sZWZ0ICsgaWZyYW1lQm9yZGVycy5sZWZ0O1xuICAgICAgICAgICAgeU9mZnNldCA9IGlmcmFtZU9mZnNldC50b3AgKyBpZnJhbWVCb3JkZXJzLnRvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlcyhwYWdlQ29vcmRpbmF0ZXMueCArIHhPZmZzZXQsIHBhZ2VDb29yZGluYXRlcy55ICsgeU9mZnNldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFBhZ2VDb29yZGluYXRlcyAoZXY6IE1vdXNlRXZlbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGN1ckNvb3JkT2JqZWN0ID0gL150b3VjaC8udGVzdChldi50eXBlKSAmJiAoZXYgYXMgdW5rbm93biBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzID8gKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSB8fCAoZXYgYXMgdW5rbm93biBhcyBUb3VjaEV2ZW50KS5jaGFuZ2VkVG91Y2hlc1swXSA6IGV2O1xuXG4gICAgY29uc3QgYm90aFBhZ2VDb29yZGluYXRlc0FyZVplcm8gICAgICA9IGN1ckNvb3JkT2JqZWN0LnBhZ2VYID09PSAwICYmIGN1ckNvb3JkT2JqZWN0LnBhZ2VZID09PSAwO1xuICAgIGNvbnN0IG5vdEJvdGhDbGllbnRDb29yZGluYXRlc0FyZVplcm8gPSBjdXJDb29yZE9iamVjdC5jbGllbnRYICE9PSAwIHx8IGN1ckNvb3JkT2JqZWN0LmNsaWVudFkgIT09IDA7XG5cbiAgICBpZiAoKGN1ckNvb3JkT2JqZWN0LnBhZ2VYID09PSBudWxsIHx8IGJvdGhQYWdlQ29vcmRpbmF0ZXNBcmVaZXJvICYmIG5vdEJvdGhDbGllbnRDb29yZGluYXRlc0FyZVplcm8pICYmXG4gICAgICAgIGN1ckNvb3JkT2JqZWN0LmNsaWVudFggIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY3VycmVudERvY3VtZW50ID0gZG9tVXRpbHMuZmluZERvY3VtZW50KGV2LnRhcmdldCB8fCBldi5zcmNFbGVtZW50KTtcbiAgICAgICAgY29uc3QgaHRtbCAgICAgICAgICAgID0gY3VycmVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgYm9keSAgICAgICAgICAgID0gY3VycmVudERvY3VtZW50LmJvZHk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgICAgICBNYXRoLnJvdW5kKGN1ckNvb3JkT2JqZWN0LmNsaWVudFggKyAoaHRtbCAmJiBodG1sLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLVxuICAgICAgICAgICAgICAgIChodG1sLmNsaWVudExlZnQgfHwgMCkpLFxuICAgICAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5jbGllbnRZICsgKGh0bWwgJiYgaHRtbC5zY3JvbGxUb3AgfHwgYm9keSAmJiBib2R5LnNjcm9sbFRvcCB8fCAwKSAtXG4gICAgICAgICAgICAgICAgKGh0bWwuY2xpZW50VG9wIHx8IDApKVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPihcbiAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5wYWdlWCksXG4gICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QucGFnZVkpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElmcmFtZVBvaW50UmVsYXRpdmVUb1BhcmVudEZyYW1lIChwb3M6IEF4aXNWYWx1ZXM8bnVtYmVyPiwgaWZyYW1lV2luOiBXaW5kb3cpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGlmcmFtZSAgICAgICAgPSBkb21VdGlscy5maW5kSWZyYW1lQnlXaW5kb3coaWZyYW1lV2luKTtcbiAgICBjb25zdCBpZnJhbWVPZmZzZXQgID0gZ2V0T2Zmc2V0UG9zaXRpb24oaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVCb3JkZXJzID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVQYWRkaW5nID0gc3R5bGVVdGlscy5nZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuXG4gICAgcmV0dXJuIG9mZnNldFRvQ2xpZW50Q29vcmRzKHtcbiAgICAgICAgeDogcG9zLnggKyBpZnJhbWVPZmZzZXQubGVmdCArIGlmcmFtZUJvcmRlcnMubGVmdCArIGlmcmFtZVBhZGRpbmcubGVmdCxcbiAgICAgICAgeTogcG9zLnkgKyBpZnJhbWVPZmZzZXQudG9wICsgaWZyYW1lQm9yZGVycy50b3AgKyBpZnJhbWVQYWRkaW5nLnRvcCxcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDZW50ZXIgKGVsOiBIVE1MRWxlbWVudCk6IEF4aXNWYWx1ZXM8bnVtYmVyPiB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbCk7XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPihcbiAgICAgICAgTWF0aC5yb3VuZChyZWN0YW5nbGUubGVmdCArIHJlY3RhbmdsZS53aWR0aCAvIDIpLFxuICAgICAgICBNYXRoLnJvdW5kKHJlY3RhbmdsZS50b3AgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMiksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudFBvc2l0aW9uIChlbDogSFRNTEVsZW1lbnQpOiBhbnkge1xuICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gPSBnZXRPZmZzZXRQb3NpdGlvbihlbCk7XG5cbiAgICBjb25zdCBjbGllbnRDb29yZHMgPSBvZmZzZXRUb0NsaWVudENvb3Jkcyh7IHg6IGxlZnQsIHk6IHRvcCB9KTtcblxuICAgIGNsaWVudENvb3Jkcy54ID0gTWF0aC5yb3VuZChjbGllbnRDb29yZHMueCk7XG4gICAgY2xpZW50Q29vcmRzLnkgPSBNYXRoLnJvdW5kKGNsaWVudENvb3Jkcy55KTtcblxuICAgIHJldHVybiBjbGllbnRDb29yZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luUmVjdGFuZ2xlICh7IHgsIHkgfTogQXhpc1ZhbHVlczxudW1iZXI+LCByZWN0YW5nbGU6IEJvdW5kYXJ5VmFsdWVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHggPj0gcmVjdGFuZ2xlLmxlZnQgJiYgeCA8PSByZWN0YW5nbGUucmlnaHQgJiYgeSA+PSByZWN0YW5nbGUudG9wICYmIHkgPD0gcmVjdGFuZ2xlLmJvdHRvbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdpbmRvd1Bvc2l0aW9uICgpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHggPSB3aW5kb3cuc2NyZWVuTGVmdCB8fCB3aW5kb3cuc2NyZWVuWDtcbiAgICBjb25zdCB5ID0gd2luZG93LnNjcmVlblRvcCB8fCB3aW5kb3cuc2NyZWVuWTtcblxuICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlcyh4LCB5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSWZyYW1lVmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWhpZGRlblVzaW5nU3R5bGVzKGVsIGFzIEhUTUxFbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gaGlkZGVuVXNpbmdTdHlsZXMgKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdHlsZVV0aWxzLmdldChlbCwgJ3Zpc2liaWxpdHknKSA9PT0gJ2hpZGRlbicgfHxcbiAgICAgICAgc3R5bGVVdGlscy5nZXQoZWwsICdkaXNwbGF5JykgPT09ICdub25lJztcbn1cblxuZnVuY3Rpb24gaGlkZGVuQnlSZWN0YW5nbGUgKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsKTtcblxuICAgIHJldHVybiBlbGVtZW50UmVjdGFuZ2xlLndpZHRoID09PSAwIHx8XG4gICAgICAgIGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0ID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50VmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAoZG9tVXRpbHMuaXNUZXh0Tm9kZShlbCkpXG4gICAgICAgIHJldHVybiAhc3R5bGVVdGlscy5pc05vdFZpc2libGVOb2RlKGVsKTtcblxuICAgIGlmICghZG9tVXRpbHMuaXNDb250ZW50RWRpdGFibGVFbGVtZW50KGVsKSAmJlxuICAgICAgICAhZG9tVXRpbHMuaXNTVkdFbGVtZW50KGVsKSAmJlxuICAgICAgICBoaWRkZW5CeVJlY3RhbmdsZShlbCBhcyBIVE1MRWxlbWVudCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb21VdGlscy5pc01hcEVsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IG1hcENvbnRhaW5lciA9IGRvbVV0aWxzLmdldE1hcENvbnRhaW5lcihkb21VdGlscy5jbG9zZXN0KGVsLCAnbWFwJykpO1xuXG4gICAgICAgIHJldHVybiBtYXBDb250YWluZXIgPyBpc0VsZW1lbnRWaXNpYmxlKG1hcENvbnRhaW5lcikgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVdGlscy5pc1NlbGVjdFZpc2libGVDaGlsZChlbCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ICAgICAgICAgICAgICA9IGRvbVV0aWxzLmdldFNlbGVjdFBhcmVudChlbCkgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUmVhbEluZGV4ICAgICAgPSBkb21VdGlscy5nZXRDaGlsZFZpc2libGVJbmRleChzZWxlY3QsIGVsKTtcbiAgICAgICAgY29uc3QgcmVhbFNlbGVjdFNpemVWYWx1ZSA9IHN0eWxlVXRpbHMuZ2V0U2VsZWN0RWxlbWVudFNpemUoc2VsZWN0KTtcbiAgICAgICAgY29uc3QgdG9wVmlzaWJsZUluZGV4ICAgICA9IE1hdGgubWF4KHN0eWxlVXRpbHMuZ2V0U2Nyb2xsVG9wKHNlbGVjdCkgLyBzdHlsZVV0aWxzLmdldE9wdGlvbkhlaWdodChzZWxlY3QpLCAwKTtcbiAgICAgICAgY29uc3QgYm90dG9tVmlzaWJsZUluZGV4ICA9IHRvcFZpc2libGVJbmRleCArIHJlYWxTZWxlY3RTaXplVmFsdWUgLSAxO1xuICAgICAgICBjb25zdCBvcHRpb25WaXNpYmxlSW5kZXggID0gTWF0aC5tYXgoY2hpbGRSZWFsSW5kZXggLSB0b3BWaXNpYmxlSW5kZXgsIDApO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25WaXNpYmxlSW5kZXggPj0gdG9wVmlzaWJsZUluZGV4ICYmIG9wdGlvblZpc2libGVJbmRleCA8PSBib3R0b21WaXNpYmxlSW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGRvbVV0aWxzLmlzU1ZHRWxlbWVudChlbCkpIHtcbiAgICAgICAgY29uc3QgaGlkZGVuUGFyZW50ID0gZG9tVXRpbHMuZmluZFBhcmVudChlbCwgdHJ1ZSwgKHBhcmVudDogTm9kZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGhpZGRlblVzaW5nU3R5bGVzKHBhcmVudCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFoaWRkZW5QYXJlbnQpXG4gICAgICAgICAgICByZXR1cm4gIWhpZGRlbkJ5UmVjdGFuZ2xlKGVsIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVVdGlscy5oYXNEaW1lbnNpb25zKGVsIGFzIEhUTUxFbGVtZW50KSAmJiAhaGlkZGVuVXNpbmdTdHlsZXMoZWwgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCk7XG59XG5cbiJdfQ==
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
18
  var __importStar = (this && this.__importStar) || function (mod) {
15
19
  if (mod && mod.__esModule) return mod;
16
20
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
22
  __setModuleDefault(result, mod);
19
23
  return result;
20
24
  };
@@ -69,7 +73,7 @@ function getViewportDimensions() {
69
73
  }
70
74
  exports.getViewportDimensions = getViewportDimensions;
71
75
  function getWindowDimensions(window) {
72
- return new boundary_values_1.default(0, exports.getWidth(window), exports.getHeight(window), 0);
76
+ return new boundary_values_1.default(0, (0, exports.getWidth)(window), (0, exports.getHeight)(window), 0);
73
77
  }
74
78
  exports.getWindowDimensions = getWindowDimensions;
75
79
  function isVisibilityHiddenNode(node) {
@@ -91,4 +95,4 @@ function isFixedElement(node) {
91
95
  return domUtils.isElementNode(node) && styleUtils.get(node, 'position') === 'fixed';
92
96
  }
93
97
  exports.isFixedElement = isFixedElement;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvc3R5bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUE0QztBQUM1QywrRUFBc0Q7QUFDdEQsZ0RBQWtDO0FBRWxDLE1BQU0sVUFBVSxHQUFHLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUU3QixRQUFBLGVBQWUsR0FBUSxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQzlELFFBQUEsZ0JBQWdCLEdBQU8sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQy9ELFFBQUEsZ0JBQWdCLEdBQU8sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQy9ELFFBQUEsaUJBQWlCLEdBQU0sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0FBQ2hFLFFBQUEsZ0JBQWdCLEdBQU8sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQy9ELFFBQUEsZUFBZSxHQUFRLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7QUFDOUQsUUFBQSxvQkFBb0IsR0FBRyxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUM7QUFDbkUsUUFBQSxnQkFBZ0IsR0FBTyxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7QUFDL0QsUUFBQSxvQkFBb0IsR0FBRyxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO0FBQzdELFFBQUEsUUFBUSxHQUFlLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDdkQsUUFBQSxT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QyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzVGLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBRSxJQUFJO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixhQUFhLENBQUUsRUFBRTtJQUM3Qix1R0FBdUc7SUFDdkcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUhELHNDQUdDO0FBRUQsU0FBZ0IsY0FBYyxDQUFFLElBQUk7SUFDaEMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLE9BQU8sQ0FBQztBQUN4RixDQUFDO0FBRkQsd0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaGFtbWVyaGVhZCBmcm9tICcuLi9kZXBzL2hhbW1lcmhlYWQnO1xuaW1wb3J0IEJvdW5kYXJ5VmFsdWVzIGZyb20gJy4vdmFsdWVzL2JvdW5kYXJ5LXZhbHVlcyc7XG5pbXBvcnQgKiBhcyBkb21VdGlscyBmcm9tICcuL2RvbSc7XG5cbmNvbnN0IHN0eWxlVXRpbHMgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlO1xuXG5leHBvcnQgY29uc3QgZ2V0Qm9yZGVyc1dpZHRoICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldEJvcmRlcnNXaWR0aDtcbmV4cG9ydCBjb25zdCBnZXRDb21wdXRlZFN0eWxlICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0Q29tcHV0ZWRTdHlsZTtcbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50TWFyZ2luICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0RWxlbWVudE1hcmdpbjtcbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50UGFkZGluZyAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0RWxlbWVudFBhZGRpbmc7XG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudFNjcm9sbCAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldEVsZW1lbnRTY3JvbGw7XG5leHBvcnQgY29uc3QgZ2V0T3B0aW9uSGVpZ2h0ICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldE9wdGlvbkhlaWdodDtcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RFbGVtZW50U2l6ZSA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0U2VsZWN0RWxlbWVudFNpemU7XG5leHBvcnQgY29uc3QgaXNFbGVtZW50VmlzaWJsZSAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmlzRWxlbWVudFZpc2libGU7XG5leHBvcnQgY29uc3QgaXNTZWxlY3RWaXNpYmxlQ2hpbGQgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmlzVmlzaWJsZUNoaWxkO1xuZXhwb3J0IGNvbnN0IGdldFdpZHRoICAgICAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRXaWR0aDtcbmV4cG9ydCBjb25zdCBnZXRIZWlnaHQgICAgICAgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0SGVpZ2h0O1xuZXhwb3J0IGNvbnN0IGdldElubmVyV2lkdGggICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRJbm5lcldpZHRoO1xuZXhwb3J0IGNvbnN0IGdldElubmVySGVpZ2h0ICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRJbm5lckhlaWdodDtcbmV4cG9ydCBjb25zdCBnZXRTY3JvbGxMZWZ0ICAgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0U2Nyb2xsTGVmdDtcbmV4cG9ydCBjb25zdCBnZXRTY3JvbGxUb3AgICAgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0U2Nyb2xsVG9wO1xuZXhwb3J0IGNvbnN0IHNldFNjcm9sbExlZnQgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5zZXRTY3JvbGxMZWZ0O1xuZXhwb3J0IGNvbnN0IHNldFNjcm9sbFRvcCAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5zZXRTY3JvbGxUb3A7XG5leHBvcnQgY29uc3QgZ2V0ICAgICAgICAgICAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldDtcblxuXG5leHBvcnQgZnVuY3Rpb24gc2V0IChlbCwgc3R5bGUsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBzdHlsZSA9PT0gJ3N0cmluZycpXG4gICAgICAgIHN0eWxlVXRpbHMuc2V0KGVsLCBzdHlsZSwgdmFsdWUpO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBzdHlsZSkge1xuICAgICAgICBpZiAoc3R5bGUuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKVxuICAgICAgICAgICAgc3R5bGVVdGlscy5zZXQoZWwsIHByb3BlcnR5LCBzdHlsZVtwcm9wZXJ0eV0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0Vmlld3BvcnREaW1lbnNpb24gKHdpbmRvd0RpbWVuc2lvbiwgZG9jdW1lbnREaW1lbnNpb24sIGJvZHlEaW1lbnNpb24pIHtcbiAgICBpZiAoZG9jdW1lbnREaW1lbnNpb24gPiB3aW5kb3dEaW1lbnNpb24pXG4gICAgICAgIHJldHVybiBib2R5RGltZW5zaW9uO1xuXG4gICAgaWYgKGJvZHlEaW1lbnNpb24gPiB3aW5kb3dEaW1lbnNpb24pXG4gICAgICAgIHJldHVybiBkb2N1bWVudERpbWVuc2lvbjtcblxuICAgIHJldHVybiBNYXRoLm1heChib2R5RGltZW5zaW9uLCBkb2N1bWVudERpbWVuc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaWV3cG9ydERpbWVuc2lvbnMgKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiAgZ2V0Vmlld3BvcnREaW1lbnNpb24od2luZG93LmlubmVyV2lkdGgsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCksXG4gICAgICAgIGhlaWdodDogZ2V0Vmlld3BvcnREaW1lbnNpb24od2luZG93LmlubmVySGVpZ2h0LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCksXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdpbmRvd0RpbWVuc2lvbnMgKHdpbmRvdykge1xuICAgIHJldHVybiBuZXcgQm91bmRhcnlWYWx1ZXMoMCwgZ2V0V2lkdGgod2luZG93KSwgZ2V0SGVpZ2h0KHdpbmRvdyksIDApO1xufVxuXG5mdW5jdGlvbiBpc1Zpc2liaWxpdHlIaWRkZW5Ob2RlIChub2RlKSB7XG4gICAgcmV0dXJuICEhZG9tVXRpbHMuZmluZFBhcmVudChub2RlLCB0cnVlLCBhbmNlc3RvciA9PlxuICAgICAgICBkb21VdGlscy5pc0VsZW1lbnROb2RlKGFuY2VzdG9yKSAmJiBzdHlsZVV0aWxzLmdldChhbmNlc3RvciwgJ3Zpc2liaWxpdHknKSA9PT0gJ2hpZGRlbicpO1xufVxuXG5mdW5jdGlvbiBpc0hpZGRlbk5vZGUgKG5vZGUpIHtcbiAgICByZXR1cm4gISFkb21VdGlscy5maW5kUGFyZW50KG5vZGUsIHRydWUsIGFuY2VzdG9yID0+XG4gICAgICAgIGRvbVV0aWxzLmlzRWxlbWVudE5vZGUoYW5jZXN0b3IpICYmIHN0eWxlVXRpbHMuZ2V0KGFuY2VzdG9yLCAnZGlzcGxheScpID09PSAnbm9uZScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb3RWaXNpYmxlTm9kZSAobm9kZSkge1xuICAgIHJldHVybiAhZG9tVXRpbHMuaXNSZW5kZXJlZE5vZGUobm9kZSkgfHwgaXNIaWRkZW5Ob2RlKG5vZGUpIHx8IGlzVmlzaWJpbGl0eUhpZGRlbk5vZGUobm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEaW1lbnNpb25zIChlbCkge1xuICAgIC8vTk9URTogaXQncyBsaWtlIGpxdWVyeSAnOnZpc2libGUnIHNlbGVjdG9yIChodHRwOi8vYmxvZy5qcXVlcnkuY29tLzIwMDkvMDIvMjAvanF1ZXJ5LTEtMy0yLXJlbGVhc2VkLylcbiAgICByZXR1cm4gZWwgJiYgIShlbC5vZmZzZXRIZWlnaHQgPD0gMCAmJiBlbC5vZmZzZXRXaWR0aCA8PSAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRml4ZWRFbGVtZW50IChub2RlKSB7XG4gICAgcmV0dXJuIGRvbVV0aWxzLmlzRWxlbWVudE5vZGUobm9kZSkgJiYgc3R5bGVVdGlscy5nZXQobm9kZSwgJ3Bvc2l0aW9uJykgPT09ICdmaXhlZCc7XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvc3R5bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBNEM7QUFDNUMsK0VBQXNEO0FBQ3RELGdEQUFrQztBQUVsQyxNQUFNLFVBQVUsR0FBRyxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFFN0IsUUFBQSxlQUFlLEdBQVEsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztBQUM5RCxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGlCQUFpQixHQUFNLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUNoRSxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGVBQWUsR0FBUSxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQzlELFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ25FLFFBQUEsZ0JBQWdCLEdBQU8sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQy9ELFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztBQUM3RCxRQUFBLFFBQVEsR0FBZSxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQ3ZELFFB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LENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFFLElBQUk7SUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBRSxFQUFFO0lBQzdCLHVHQUF1RztJQUN2RyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBSEQsc0NBR0M7QUFFRCxTQUFnQixjQUFjLENBQUUsSUFBSTtJQUNoQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssT0FBTyxDQUFDO0FBQ3hGLENBQUM7QUFGRCx3Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBoYW1tZXJoZWFkIGZyb20gJy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5pbXBvcnQgQm91bmRhcnlWYWx1ZXMgZnJvbSAnLi92YWx1ZXMvYm91bmRhcnktdmFsdWVzJztcbmltcG9ydCAqIGFzIGRvbVV0aWxzIGZyb20gJy4vZG9tJztcblxuY29uc3Qgc3R5bGVVdGlscyA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGU7XG5cbmV4cG9ydCBjb25zdCBnZXRCb3JkZXJzV2lkdGggICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0Qm9yZGVyc1dpZHRoO1xuZXhwb3J0IGNvbnN0IGdldENvbXB1dGVkU3R5bGUgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRDb21wdXRlZFN0eWxlO1xuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRNYXJnaW4gICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRFbGVtZW50TWFyZ2luO1xuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRQYWRkaW5nICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRFbGVtZW50UGFkZGluZztcbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50U2Nyb2xsICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0RWxlbWVudFNjcm9sbDtcbmV4cG9ydCBjb25zdCBnZXRPcHRpb25IZWlnaHQgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0T3B0aW9uSGVpZ2h0O1xuZXhwb3J0IGNvbnN0IGdldFNlbGVjdEVsZW1lbnRTaXplID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTZWxlY3RFbGVtZW50U2l6ZTtcbmV4cG9ydCBjb25zdCBpc0VsZW1lbnRWaXNpYmxlICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuaXNFbGVtZW50VmlzaWJsZTtcbmV4cG9ydCBjb25zdCBpc1NlbGVjdFZpc2libGVDaGlsZCA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuaXNWaXNpYmxlQ2hpbGQ7XG5leHBvcnQgY29uc3QgZ2V0V2lkdGggICAgICAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldFdpZHRoO1xuZXhwb3J0IGNvbnN0IGdldEhlaWdodCAgICAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRIZWlnaHQ7XG5leHBvcnQgY29uc3QgZ2V0SW5uZXJXaWR0aCAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldElubmVyV2lkdGg7XG5leHBvcnQgY29uc3QgZ2V0SW5uZXJIZWlnaHQgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldElubmVySGVpZ2h0O1xuZXhwb3J0IGNvbnN0IGdldFNjcm9sbExlZnQgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTY3JvbGxMZWZ0O1xuZXhwb3J0IGNvbnN0IGdldFNjcm9sbFRvcCAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTY3JvbGxUb3A7XG5leHBvcnQgY29uc3Qgc2V0U2Nyb2xsTGVmdCAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLnNldFNjcm9sbExlZnQ7XG5leHBvcnQgY29uc3Qgc2V0U2Nyb2xsVG9wICAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLnNldFNjcm9sbFRvcDtcbmV4cG9ydCBjb25zdCBnZXQgICAgICAgICAgICAgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQgKGVsLCBzdHlsZSwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHN0eWxlID09PSAnc3RyaW5nJylcbiAgICAgICAgc3R5bGVVdGlscy5zZXQoZWwsIHN0eWxlLCB2YWx1ZSk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHN0eWxlKSB7XG4gICAgICAgIGlmIChzdHlsZS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpXG4gICAgICAgICAgICBzdHlsZVV0aWxzLnNldChlbCwgcHJvcGVydHksIHN0eWxlW3Byb3BlcnR5XSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRWaWV3cG9ydERpbWVuc2lvbiAod2luZG93RGltZW5zaW9uLCBkb2N1bWVudERpbWVuc2lvbiwgYm9keURpbWVuc2lvbikge1xuICAgIGlmIChkb2N1bWVudERpbWVuc2lvbiA+IHdpbmRvd0RpbWVuc2lvbilcbiAgICAgICAgcmV0dXJuIGJvZHlEaW1lbnNpb247XG5cbiAgICBpZiAoYm9keURpbWVuc2lvbiA+IHdpbmRvd0RpbWVuc2lvbilcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50RGltZW5zaW9uO1xuXG4gICAgcmV0dXJuIE1hdGgubWF4KGJvZHlEaW1lbnNpb24sIGRvY3VtZW50RGltZW5zaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdwb3J0RGltZW5zaW9ucyAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6ICBnZXRWaWV3cG9ydERpbWVuc2lvbih3aW5kb3cuaW5uZXJXaWR0aCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKSxcbiAgICAgICAgaGVpZ2h0OiBnZXRWaWV3cG9ydERpbWVuc2lvbih3aW5kb3cuaW5uZXJIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2luZG93RGltZW5zaW9ucyAod2luZG93KSB7XG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcygwLCBnZXRXaWR0aCh3aW5kb3cpLCBnZXRIZWlnaHQod2luZG93KSwgMCk7XG59XG5cbmZ1bmN0aW9uIGlzVmlzaWJpbGl0eUhpZGRlbk5vZGUgKG5vZGUpIHtcbiAgICByZXR1cm4gISFkb21VdGlscy5maW5kUGFyZW50KG5vZGUsIHRydWUsIGFuY2VzdG9yID0+XG4gICAgICAgIGRvbVV0aWxzLmlzRWxlbWVudE5vZGUoYW5jZXN0b3IpICYmIHN0eWxlVXRpbHMuZ2V0KGFuY2VzdG9yLCAndmlzaWJpbGl0eScpID09PSAnaGlkZGVuJyk7XG59XG5cbmZ1bmN0aW9uIGlzSGlkZGVuTm9kZSAobm9kZSkge1xuICAgIHJldHVybiAhIWRvbVV0aWxzLmZpbmRQYXJlbnQobm9kZSwgdHJ1ZSwgYW5jZXN0b3IgPT5cbiAgICAgICAgZG9tVXRpbHMuaXNFbGVtZW50Tm9kZShhbmNlc3RvcikgJiYgc3R5bGVVdGlscy5nZXQoYW5jZXN0b3IsICdkaXNwbGF5JykgPT09ICdub25lJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vdFZpc2libGVOb2RlIChub2RlKSB7XG4gICAgcmV0dXJuICFkb21VdGlscy5pc1JlbmRlcmVkTm9kZShub2RlKSB8fCBpc0hpZGRlbk5vZGUobm9kZSkgfHwgaXNWaXNpYmlsaXR5SGlkZGVuTm9kZShub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RpbWVuc2lvbnMgKGVsKSB7XG4gICAgLy9OT1RFOiBpdCdzIGxpa2UganF1ZXJ5ICc6dmlzaWJsZScgc2VsZWN0b3IgKGh0dHA6Ly9ibG9nLmpxdWVyeS5jb20vMjAwOS8wMi8yMC9qcXVlcnktMS0zLTItcmVsZWFzZWQvKVxuICAgIHJldHVybiBlbCAmJiAhKGVsLm9mZnNldEhlaWdodCA8PSAwICYmIGVsLm9mZnNldFdpZHRoIDw9IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXhlZEVsZW1lbnQgKG5vZGUpIHtcbiAgICByZXR1cm4gZG9tVXRpbHMuaXNFbGVtZW50Tm9kZShub2RlKSAmJiBzdHlsZVV0aWxzLmdldChub2RlLCAncG9zaXRpb24nKSA9PT0gJ2ZpeGVkJztcbn1cbiJdfQ==
@@ -31,7 +31,7 @@ class SelectorFilter {
31
31
  this._assertFilterError(nodes, apiInfo, SELECTOR_FILTER_ERROR.filterVisible);
32
32
  }
33
33
  if (options.filterHidden) {
34
- nodes = nodes.filter(n => !utils_1.visible(n));
34
+ nodes = nodes.filter(n => !(0, utils_1.visible)(n));
35
35
  this._assertFilterError(nodes, apiInfo, SELECTOR_FILTER_ERROR.filterHidden);
36
36
  }
37
37
  if (options.counterMode) {
@@ -57,10 +57,10 @@ class SelectorFilter {
57
57
  return [];
58
58
  else if (searchResult instanceof hammerhead_1.nativeMethods.Node)
59
59
  return [searchResult];
60
- else if (utils_1.isArrayOfNodes(searchResult))
60
+ else if ((0, utils_1.isArrayOfNodes)(searchResult))
61
61
  return searchResult;
62
- else if (utils_1.isNodeCollection(searchResult))
63
- return utils_1.castToArray(searchResult);
62
+ else if ((0, utils_1.isNodeCollection)(searchResult))
63
+ return (0, utils_1.castToArray)(searchResult);
64
64
  throw new index_1.InvalidSelectorResultError();
65
65
  }
66
66
  _assertFilterError(filtered, apiInfo, filterError) {
@@ -81,4 +81,4 @@ class SelectorFilter {
81
81
  }
82
82
  }
83
83
  exports.default = new SelectorFilter();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9kcml2ZXIvY29tbWFuZC1leGVjdXRvcnMvY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3Rvci1leGVjdXRvci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4REFBZ0Y7QUFDaEYsbUNBS2lCO0FBRWpCLGFBQWE7QUFDYix5REFBeUQ7QUFHekQsTUFBTSxxQkFBcUIsR0FBRztJQUMxQixhQUFhLEVBQUUsQ0FBQztJQUNoQixZQUFZLEVBQUcsQ0FBQztJQUNoQixHQUFHLEVBQVksQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFLHVCQUF1QjtJQUM5RCxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxFQUFHLHNCQUFzQjtJQUM3RCxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFZLGdCQUFnQjtDQUMxRCxDQUFDO0FBR0YsTUFBTSxjQUFjO0lBQXBCO1FBQ1ksU0FBSSxHQUFrQixJQUFJLENBQUM7SUFzRnZDLENBQUM7SUFwRkcsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBRSxPQUFzQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRU0sTUFBTSxDQUFFLEtBQWEsRUFBRSxPQUFzQixFQUFFLE9BQWdCO1FBQ2xFLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFPLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxxQkFB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QUFlLENBQUUsS0FBYSxFQUFFLEtBQWE7UUFDeEQsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSjtBQUVELGtCQUFlLElBQUksY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZhbGlkU2VsZWN0b3JSZXN1bHRFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9lcnJvcnMvaW5kZXgnO1xuaW1wb3J0IHtcbiAgICB2aXNpYmxlLFxuICAgIGlzTm9kZUNvbGxlY3Rpb24sXG4gICAgaXNBcnJheU9mTm9kZXMsXG4gICAgY2FzdFRvQXJyYXksXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQVBJSW5mbywgRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IG5hdGl2ZU1ldGhvZHMgfSBmcm9tICcuLi8uLi8uLi9kZXBzL2hhbW1lcmhlYWQnO1xuXG5cbmNvbnN0IFNFTEVDVE9SX0ZJTFRFUl9FUlJPUiA9IHtcbiAgICBmaWx0ZXJWaXNpYmxlOiAxLFxuICAgIGZpbHRlckhpZGRlbjogIDIsXG4gICAgbnRoOiAgICAgICAgICAgMyxcbn07XG5cbmNvbnN0IEZJTFRFUl9FUlJPUl9UT19BUElfUkUgPSB7XG4gICAgW1NFTEVDVE9SX0ZJTFRFUl9FUlJPUi5maWx0ZXJWaXNpYmxlXTogL15cXC5maWx0ZXJWaXNpYmxlXFwoXFwpJC8sXG4gICAgW1NFTEVDVE9SX0ZJTFRFUl9FUlJPUi5maWx0ZXJIaWRkZW5dOiAgL15cXC5maWx0ZXJIaWRkZW5cXChcXCkkLyxcbiAgICBbU0VMRUNUT1JfRklMVEVSX0VSUk9SLm50aF06ICAgICAgICAgICAvXlxcLm50aFxcKFxcZCtcXCkkLyxcbn07XG5cblxuY2xhc3MgU2VsZWN0b3JGaWx0ZXIge1xuICAgIHByaXZhdGUgX2VycjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yICgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VycjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGVycm9yIChtZXNzYWdlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnIgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl9lcnIgPSBtZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXIgKG5vZGVzOiBOb2RlW10sIG9wdGlvbnM6IEZpbHRlck9wdGlvbnMsIGFwaUluZm86IEFQSUluZm8pOiBudW1iZXIgfCBOb2RlIHwgTm9kZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuZmlsdGVyVmlzaWJsZSkge1xuICAgICAgICAgICAgbm9kZXMgPSBub2Rlcy5maWx0ZXIodmlzaWJsZSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Fzc2VydEZpbHRlckVycm9yKG5vZGVzLCBhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IuZmlsdGVyVmlzaWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXJIaWRkZW4pIHtcbiAgICAgICAgICAgIG5vZGVzID0gbm9kZXMuZmlsdGVyKG4gPT4gIXZpc2libGUobikpO1xuXG4gICAgICAgICAgICB0aGlzLl9hc3NlcnRGaWx0ZXJFcnJvcihub2RlcywgYXBpSW5mbywgU0VMRUNUT1JfRklMVEVSX0VSUk9SLmZpbHRlckhpZGRlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jb3VudGVyTW9kZSkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaW5kZXggPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVzLmxlbmd0aDtcblxuICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmlsdGVyLl9nZXROb2RlQnlJbmRleChub2Rlcywgb3B0aW9ucy5pbmRleCkgPyAxIDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNvbGxlY3Rpb25Nb2RlKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVPbkluZGV4ID0gU2VsZWN0b3JGaWx0ZXIuX2dldE5vZGVCeUluZGV4KG5vZGVzLCBvcHRpb25zLmluZGV4KTtcblxuICAgICAgICAgICAgICAgIG5vZGVzID0gbm9kZU9uSW5kZXggPyBbbm9kZU9uSW5kZXhdIDogW107XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NlcnRGaWx0ZXJFcnJvcihub2RlcywgYXBpSW5mbywgU0VMRUNUT1JfRklMVEVSX0VSUk9SLm50aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGVPbkluZGV4ID0gU2VsZWN0b3JGaWx0ZXIuX2dldE5vZGVCeUluZGV4KG5vZGVzLCBvcHRpb25zLmluZGV4IHx8IDApO1xuXG4gICAgICAgIGlmICghbm9kZU9uSW5kZXgpXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gU2VsZWN0b3JGaWx0ZXIuX2dldEVycm9ySXRlbShhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IubnRoKTtcblxuICAgICAgICByZXR1cm4gbm9kZU9uSW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIGNhc3QgKHNlYXJjaFJlc3VsdDogdW5rbm93bik6IE5vZGVbXSB7XG4gICAgICAgIGlmIChzZWFyY2hSZXN1bHQgPT09IG51bGwgfHwgc2VhcmNoUmVzdWx0ID09PSB2b2lkIDApXG4gICAgICAgICAgICByZXR1cm4gW107XG5cbiAgICAgICAgZWxzZSBpZiAoc2VhcmNoUmVzdWx0IGluc3RhbmNlb2YgbmF0aXZlTWV0aG9kcy5Ob2RlKVxuICAgICAgICAgICAgcmV0dXJuIFtzZWFyY2hSZXN1bHQgYXMgTm9kZV07XG5cbiAgICAgICAgZWxzZSBpZiAoaXNBcnJheU9mTm9kZXMoc2VhcmNoUmVzdWx0KSlcbiAgICAgICAgICAgIHJldHVybiBzZWFyY2hSZXN1bHQ7XG5cbiAgICAgICAgZWxzZSBpZiAoaXNOb2RlQ29sbGVjdGlvbihzZWFyY2hSZXN1bHQpKVxuICAgICAgICAgICAgcmV0dXJuIGNhc3RUb0FycmF5KHNlYXJjaFJlc3VsdCk7XG5cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRTZWxlY3RvclJlc3VsdEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzZXJ0RmlsdGVyRXJyb3IgKGZpbHRlcmVkOiBOb2RlW10sIGFwaUluZm86IEFQSUluZm8sIGZpbHRlckVycm9yOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbHRlcmVkLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBTZWxlY3RvckZpbHRlci5fZ2V0RXJyb3JJdGVtKGFwaUluZm8sIGZpbHRlckVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfZ2V0RXJyb3JJdGVtICh7IGFwaUZuQ2hhaW4sIGFwaUZuSUQgfTogQVBJSW5mbywgZXJyOiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGFwaUZuSUQ7IGkgPCBhcGlGbkNoYWluLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKEZJTFRFUl9FUlJPUl9UT19BUElfUkVbZXJyXS50ZXN0KGFwaUZuQ2hhaW5baV0pKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXROb2RlQnlJbmRleCAobm9kZXM6IE5vZGVbXSwgaW5kZXg6IG51bWJlcik6IE5vZGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gaW5kZXggPCAwID8gbm9kZXNbbm9kZXMubGVuZ3RoICsgaW5kZXhdIDogbm9kZXNbaW5kZXhdO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFNlbGVjdG9yRmlsdGVyKCk7XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9kcml2ZXIvY29tbWFuZC1leGVjdXRvcnMvY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3Rvci1leGVjdXRvci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4REFBZ0Y7QUFDaEYsbUNBS2lCO0FBRWpCLGFBQWE7QUFDYix5REFBeUQ7QUFHekQsTUFBTSxxQkFBcUIsR0FBRztJQUMxQixhQUFhLEVBQUUsQ0FBQztJQUNoQixZQUFZLEVBQUcsQ0FBQztJQUNoQixHQUFHLEVBQVksQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFLHVCQUF1QjtJQUM5RCxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxFQUFHLHNCQUFzQjtJQUM3RCxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFZLGdCQUFnQjtDQUMxRCxDQUFDO0FBR0YsTUFBTSxjQUFjO0lBQXBCO1FBQ1ksU0FBSSxHQUFrQixJQUFJLENBQUM7SUFzRnZDLENBQUM7SUFwRkcsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBRSxPQUFzQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRU0sTUFBTSxDQUFFLEtBQWEsRUFBRSxPQUFzQixFQUFFLE9BQWdCO1FBQ2xFLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFPLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxxQkFB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QUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBRSxLQUFhLEVBQUUsS0FBYTtRQUN4RCxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNKO0FBRUQsa0JBQWUsSUFBSSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRTZWxlY3RvclJlc3VsdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2Vycm9ycy9pbmRleCc7XG5pbXBvcnQge1xuICAgIHZpc2libGUsXG4gICAgaXNOb2RlQ29sbGVjdGlvbixcbiAgICBpc0FycmF5T2ZOb2RlcyxcbiAgICBjYXN0VG9BcnJheSxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBUElJbmZvLCBGaWx0ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgbmF0aXZlTWV0aG9kcyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5cblxuY29uc3QgU0VMRUNUT1JfRklMVEVSX0VSUk9SID0ge1xuICAgIGZpbHRlclZpc2libGU6IDEsXG4gICAgZmlsdGVySGlkZGVuOiAgMixcbiAgICBudGg6ICAgICAgICAgICAzLFxufTtcblxuY29uc3QgRklMVEVSX0VSUk9SX1RPX0FQSV9SRSA9IHtcbiAgICBbU0VMRUNUT1JfRklMVEVSX0VSUk9SLmZpbHRlclZpc2libGVdOiAvXlxcLmZpbHRlclZpc2libGVcXChcXCkkLyxcbiAgICBbU0VMRUNUT1JfRklMVEVSX0VSUk9SLmZpbHRlckhpZGRlbl06ICAvXlxcLmZpbHRlckhpZGRlblxcKFxcKSQvLFxuICAgIFtTRUxFQ1RPUl9GSUxURVJfRVJST1IubnRoXTogICAgICAgICAgIC9eXFwubnRoXFwoXFxkK1xcKSQvLFxufTtcblxuXG5jbGFzcyBTZWxlY3RvckZpbHRlciB7XG4gICAgcHJpdmF0ZSBfZXJyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBnZXQgZXJyb3IgKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZXJyb3IgKG1lc3NhZ2U6IG51bWJlciB8IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuX2VyciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX2VyciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlciAobm9kZXM6IE5vZGVbXSwgb3B0aW9uczogRmlsdGVyT3B0aW9ucywgYXBpSW5mbzogQVBJSW5mbyk6IG51bWJlciB8IE5vZGUgfCBOb2RlW10gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXJWaXNpYmxlKSB7XG4gICAgICAgICAgICBub2RlcyA9IG5vZGVzLmZpbHRlcih2aXNpYmxlKTtcblxuICAgICAgICAgICAgdGhpcy5fYXNzZXJ0RmlsdGVyRXJyb3Iobm9kZXMsIGFwaUluZm8sIFNFTEVDVE9SX0ZJTFRFUl9FUlJPUi5maWx0ZXJWaXNpYmxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlckhpZGRlbikge1xuICAgICAgICAgICAgbm9kZXMgPSBub2Rlcy5maWx0ZXIobiA9PiAhdmlzaWJsZShuKSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Fzc2VydEZpbHRlckVycm9yKG5vZGVzLCBhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IuZmlsdGVySGlkZGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNvdW50ZXJNb2RlKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pbmRleCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGaWx0ZXIuX2dldE5vZGVCeUluZGV4KG5vZGVzLCBvcHRpb25zLmluZGV4KSA/IDEgOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuY29sbGVjdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZU9uSW5kZXggPSBTZWxlY3RvckZpbHRlci5fZ2V0Tm9kZUJ5SW5kZXgobm9kZXMsIG9wdGlvbnMuaW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgbm9kZXMgPSBub2RlT25JbmRleCA/IFtub2RlT25JbmRleF0gOiBbXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2VydEZpbHRlckVycm9yKG5vZGVzLCBhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IubnRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9kZU9uSW5kZXggPSBTZWxlY3RvckZpbHRlci5fZ2V0Tm9kZUJ5SW5kZXgobm9kZXMsIG9wdGlvbnMuaW5kZXggfHwgMCk7XG5cbiAgICAgICAgaWYgKCFub2RlT25JbmRleClcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBTZWxlY3RvckZpbHRlci5fZ2V0RXJyb3JJdGVtKGFwaUluZm8sIFNFTEVDVE9SX0ZJTFRFUl9FUlJPUi5udGgpO1xuXG4gICAgICAgIHJldHVybiBub2RlT25JbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdCAoc2VhcmNoUmVzdWx0OiB1bmtub3duKTogTm9kZVtdIHtcbiAgICAgICAgaWYgKHNlYXJjaFJlc3VsdCA9PT0gbnVsbCB8fCBzZWFyY2hSZXN1bHQgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHJldHVybiBbXTtcblxuICAgICAgICBlbHNlIGlmIChzZWFyY2hSZXN1bHQgaW5zdGFuY2VvZiBuYXRpdmVNZXRob2RzLk5vZGUpXG4gICAgICAgICAgICByZXR1cm4gW3NlYXJjaFJlc3VsdCBhcyBOb2RlXTtcblxuICAgICAgICBlbHNlIGlmIChpc0FycmF5T2ZOb2RlcyhzZWFyY2hSZXN1bHQpKVxuICAgICAgICAgICAgcmV0dXJuIHNlYXJjaFJlc3VsdDtcblxuICAgICAgICBlbHNlIGlmIChpc05vZGVDb2xsZWN0aW9uKHNlYXJjaFJlc3VsdCkpXG4gICAgICAgICAgICByZXR1cm4gY2FzdFRvQXJyYXkoc2VhcmNoUmVzdWx0KTtcblxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFNlbGVjdG9yUmVzdWx0RXJyb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NlcnRGaWx0ZXJFcnJvciAoZmlsdGVyZWQ6IE5vZGVbXSwgYXBpSW5mbzogQVBJSW5mbywgZmlsdGVyRXJyb3I6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgdGhpcy5lcnJvciA9IFNlbGVjdG9yRmlsdGVyLl9nZXRFcnJvckl0ZW0oYXBpSW5mbywgZmlsdGVyRXJyb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRFcnJvckl0ZW0gKHsgYXBpRm5DaGFpbiwgYXBpRm5JRCB9OiBBUElJbmZvLCBlcnI6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gYXBpRm5JRDsgaSA8IGFwaUZuQ2hhaW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoRklMVEVSX0VSUk9SX1RPX0FQSV9SRVtlcnJdLnRlc3QoYXBpRm5DaGFpbltpXSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldE5vZGVCeUluZGV4IChub2RlczogTm9kZVtdLCBpbmRleDogbnVtYmVyKTogTm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBpbmRleCA8IDAgPyBub2Rlc1tub2Rlcy5sZW5ndGggKyBpbmRleF0gOiBub2Rlc1tpbmRleF07XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgU2VsZWN0b3JGaWx0ZXIoKTtcbiJdfQ==
@@ -10,12 +10,12 @@ const testcafe_ui_1 = require("../../../deps/testcafe-ui");
10
10
  const position_1 = require("../../../../core/utils/position");
11
11
  function visible(el) {
12
12
  if (testcafe_core_1.domUtils.isIframeElement(el))
13
- return position_1.isIframeVisible(el);
13
+ return (0, position_1.isIframeVisible)(el);
14
14
  if (!hammerhead_1.utils.dom.isDomElement(el) && !hammerhead_1.utils.dom.isTextNode(el))
15
15
  return false;
16
16
  if (testcafe_core_1.domUtils.isOptionElement(el) || testcafe_core_1.domUtils.getTagName(el) === 'optgroup')
17
17
  return testcafe_ui_1.selectElement.isOptionElementVisible(el);
18
- return position_1.isElementVisible(el);
18
+ return (0, position_1.isElementVisible)(el);
19
19
  }
20
20
  exports.visible = visible;
21
21
  function isNodeCollection(obj) {
@@ -41,4 +41,4 @@ function isArrayOfNodes(obj) {
41
41
  return true;
42
42
  }
43
43
  exports.isArrayOfNodes = isArrayOfNodes;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9jb21tYW5kLWV4ZWN1dG9ycy9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9yLWV4ZWN1dG9yL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGFBQWE7QUFDYix5REFBZ0U7QUFDaEUsYUFBYTtBQUNiLCtEQUF1RDtBQUN2RCxhQUFhO0FBQ2IsMkRBQTBEO0FBQzFELDhEQUFvRjtBQUdwRixTQUFnQixPQUFPLENBQUUsRUFBUTtJQUM3QixJQUFJLHdCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLDBCQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFL0IsSUFBSSxDQUFDLGtCQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDeEQsT0FBTyxLQUFLLENBQUM7SUFFakIsSUFBSSx3QkFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSx3QkFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFhLENBQUMsS0FBSyxVQUFVO1FBQ2pGLE9BQU8sMkJBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVwRCxPQUFPLDJCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFYRCwwQkFXQztBQUVELFNBQWdCLGdCQUFnQixDQUFFLEdBQVk7SUFDMUMsT0FBTyxHQUFHLFlBQVksMEJBQWEsQ0FBQyxjQUFjLElBQUksR0FBRyxZQUFZLDBCQUFhLENBQUMsUUFBUSxDQUFDO0FBQ2hHLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLFdBQVcsQ0FBRSxJQUErQjtJQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFSRCxrQ0FRQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxHQUFZO0lBQ3hDLElBQUksQ0FBQywwQkFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDM0IsT0FBTyxLQUFLLENBQUM7SUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFJLEdBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekMsYUFBYTtRQUNiLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSwwQkFBYSxDQUFDLElBQUksQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQztLQUNwQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFYRCx3Q0FXQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IG5hdGl2ZU1ldGhvZHMsIHV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGVwcy9oYW1tZXJoZWFkJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGRvbVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vZGVwcy90ZXN0Y2FmZS1jb3JlJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9kZXBzL3Rlc3RjYWZlLXVpJztcbmltcG9ydCB7IGlzRWxlbWVudFZpc2libGUsIGlzSWZyYW1lVmlzaWJsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvcG9zaXRpb24nO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiB2aXNpYmxlIChlbDogTm9kZSk6IGJvb2xlYW4ge1xuICAgIGlmIChkb21VdGlscy5pc0lmcmFtZUVsZW1lbnQoZWwpKVxuICAgICAgICByZXR1cm4gaXNJZnJhbWVWaXNpYmxlKGVsKTtcblxuICAgIGlmICghdXRpbHMuZG9tLmlzRG9tRWxlbWVudChlbCkgJiYgIXV0aWxzLmRvbS5pc1RleHROb2RlKGVsKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKGRvbVV0aWxzLmlzT3B0aW9uRWxlbWVudChlbCkgfHwgZG9tVXRpbHMuZ2V0VGFnTmFtZShlbCBhcyBFbGVtZW50KSA9PT0gJ29wdGdyb3VwJylcbiAgICAgICAgcmV0dXJuIHNlbGVjdEVsZW1lbnQuaXNPcHRpb25FbGVtZW50VmlzaWJsZShlbCk7XG5cbiAgICByZXR1cm4gaXNFbGVtZW50VmlzaWJsZShlbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vZGVDb2xsZWN0aW9uIChvYmo6IHVua25vd24pOiBvYmogaXMgSFRNTENvbGxlY3Rpb24gfCBOb2RlTGlzdCB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIG5hdGl2ZU1ldGhvZHMuSFRNTENvbGxlY3Rpb24gfHwgb2JqIGluc3RhbmNlb2YgbmF0aXZlTWV0aG9kcy5Ob2RlTGlzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhc3RUb0FycmF5IChsaXN0OiBIVE1MQ29sbGVjdGlvbiB8IE5vZGVMaXN0KTogTm9kZVtdIHtcbiAgICBjb25zdCBsZW5ndGggPSBsaXN0Lmxlbmd0aDtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG4gICAgICAgIHJlc3VsdC5wdXNoKGxpc3RbaV0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXlPZk5vZGVzIChvYmo6IHVua25vd24pOiBvYmogaXMgTm9kZVtdIHtcbiAgICBpZiAoIW5hdGl2ZU1ldGhvZHMuaXNBcnJheShvYmopKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IChvYmogYXMgW10pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKCEob2JqW2ldIGluc3RhbmNlb2YgbmF0aXZlTWV0aG9kcy5Ob2RlKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9jb21tYW5kLWV4ZWN1dG9ycy9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9yLWV4ZWN1dG9yL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGFBQWE7QUFDYix5REFBZ0U7QUFDaEUsYUFBYTtBQUNiLCtEQUF1RDtBQUN2RCxhQUFhO0FBQ2IsMkRBQTBEO0FBQzFELDhEQUFvRjtBQUdwRixTQUFnQixPQUFPLENBQUUsRUFBUTtJQUM3QixJQUFJLHdCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUEsMEJBQWUsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUUvQixJQUFJLENBQUMsa0JBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLEtBQUssQ0FBQztJQUVqQixJQUFJLHdCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLHdCQUFRLENBQUMsVUFBVSxDQUFDLEVBQWEsQ0FBQyxLQUFLLFVBQVU7UUFDakYsT0FBTywyQkFBYSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBELE9BQU8sSUFBQSwyQkFBZ0IsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBWEQsMEJBV0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBRSxHQUFZO0lBQzFDLE9BQU8sR0FBRyxZQUFZLDBCQUFhLENBQUMsY0FBYyxJQUFJLEdBQUcsWUFBWSwwQkFBYSxDQUFDLFFBQVEsQ0FBQztBQUNoRyxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixXQUFXLENBQUUsSUFBK0I7SUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUU7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixjQUFjLENBQUUsR0FBWTtJQUN4QyxJQUFJLENBQUMsMEJBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxHQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pDLGFBQWE7UUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksMEJBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7S0FDcEI7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBWEQsd0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBuYXRpdmVNZXRob2RzLCB1dGlscyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvaGFtbWVyaGVhZCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBkb21VdGlscyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvdGVzdGNhZmUtY29yZSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBzZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVwcy90ZXN0Y2FmZS11aSc7XG5pbXBvcnQgeyBpc0VsZW1lbnRWaXNpYmxlLCBpc0lmcmFtZVZpc2libGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL3Bvc2l0aW9uJztcblxuXG5leHBvcnQgZnVuY3Rpb24gdmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAoZG9tVXRpbHMuaXNJZnJhbWVFbGVtZW50KGVsKSlcbiAgICAgICAgcmV0dXJuIGlzSWZyYW1lVmlzaWJsZShlbCk7XG5cbiAgICBpZiAoIXV0aWxzLmRvbS5pc0RvbUVsZW1lbnQoZWwpICYmICF1dGlscy5kb20uaXNUZXh0Tm9kZShlbCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb21VdGlscy5pc09wdGlvbkVsZW1lbnQoZWwpIHx8IGRvbVV0aWxzLmdldFRhZ05hbWUoZWwgYXMgRWxlbWVudCkgPT09ICdvcHRncm91cCcpXG4gICAgICAgIHJldHVybiBzZWxlY3RFbGVtZW50LmlzT3B0aW9uRWxlbWVudFZpc2libGUoZWwpO1xuXG4gICAgcmV0dXJuIGlzRWxlbWVudFZpc2libGUoZWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlQ29sbGVjdGlvbiAob2JqOiB1bmtub3duKTogb2JqIGlzIEhUTUxDb2xsZWN0aW9uIHwgTm9kZUxpc3Qge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBuYXRpdmVNZXRob2RzLkhUTUxDb2xsZWN0aW9uIHx8IG9iaiBpbnN0YW5jZW9mIG5hdGl2ZU1ldGhvZHMuTm9kZUxpc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXN0VG9BcnJheSAobGlzdDogSFRNTENvbGxlY3Rpb24gfCBOb2RlTGlzdCk6IE5vZGVbXSB7XG4gICAgY29uc3QgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKVxuICAgICAgICByZXN1bHQucHVzaChsaXN0W2ldKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5T2ZOb2RlcyAob2JqOiB1bmtub3duKTogb2JqIGlzIE5vZGVbXSB7XG4gICAgaWYgKCFuYXRpdmVNZXRob2RzLmlzQXJyYXkob2JqKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAob2JqIGFzIFtdKS5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICghKG9ialtpXSBpbnN0YW5jZW9mIG5hdGl2ZU1ldGhvZHMuTm9kZSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG4iXX0=
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
18
  };
12
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.default = void 0;
13
21
  __exportStar(require("hammerhead"), exports);
14
22
  var hammerhead_1 = require("hammerhead");
15
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return hammerhead_1.default; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFtbWVyaGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvaGFtbWVyaGVhZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFDM0IseUNBQXFDO0FBQTVCLHFHQUFBLE9BQU8sT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ2hhbW1lcmhlYWQnO1xuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJ2hhbW1lcmhlYWQnO1xuIl19
23
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(hammerhead_1).default; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFtbWVyaGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvaGFtbWVyaGVhZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQix5Q0FBcUM7QUFBNUIsc0hBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnaGFtbWVyaGVhZCc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnaGFtbWVyaGVhZCc7XG4iXX0=
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
18
  };
12
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.default = void 0;
13
21
  __exportStar(require("testcafe-core"), exports);
14
22
  var testcafe_core_1 = require("testcafe-core");
15
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return testcafe_core_1.default; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvdGVzdGNhZmUtY29yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxnREFBOEI7QUFDOUIsK0NBQXdDO0FBQS9CLHdHQUFBLE9BQU8sT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ3Rlc3RjYWZlLWNvcmUnO1xuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJ3Rlc3RjYWZlLWNvcmUnO1xuIl19
23
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(testcafe_core_1).default; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvdGVzdGNhZmUtY29yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5QiwrQ0FBd0M7QUFBL0IseUhBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAndGVzdGNhZmUtY29yZSc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAndGVzdGNhZmUtY29yZSc7XG4iXX0=
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
18
  };
12
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.default = void 0;
13
21
  __exportStar(require("testcafe-ui"), exports);
14
22
  var testcafe_ui_1 = require("testcafe-ui");
15
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return testcafe_ui_1.default; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtdWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9kZXBzL3Rlc3RjYWZlLXVpLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1QiwyQ0FBc0M7QUFBN0Isc0dBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAndGVzdGNhZmUtdWknO1xuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJ3Rlc3RjYWZlLXVpJztcbiJdfQ==
23
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(testcafe_ui_1).default; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtdWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9kZXBzL3Rlc3RjYWZlLXVpLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUFzQztBQUE3Qix1SEFBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICd0ZXN0Y2FmZS11aSc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAndGVzdGNhZmUtdWknO1xuIl19