@playkit-js/transcript 2.1.5-canary.1-4d8d855 → 2.1.5-canary.16-1ac3e09

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 (61) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/LICENSE +5 -5
  3. package/README.md +122 -24
  4. package/dist/1501adfdf5c835667ce7.svg +9 -0
  5. package/dist/301e7a199b2cd06c2edf.svg +9 -0
  6. package/dist/33bce27c0f546e80478c.svg +36 -0
  7. package/dist/6a4867d3d9170cc2a24d.svg +9 -0
  8. package/dist/73bab0af28a1c7aed29f.svg +9 -0
  9. package/dist/84087eb1cff72e5e6bd3.svg +9 -0
  10. package/dist/95d7192dc427afb678d0.svg +9 -0
  11. package/dist/cea5d6a7f050cbd199a1.svg +9 -0
  12. package/dist/d93f06ff32cdfcd016df.svg +9 -0
  13. package/dist/e5496f4c01207db44ffc.svg +9 -0
  14. package/dist/playkit-transcript.js +1 -31
  15. package/dist/playkit-transcript.js.map +1 -1
  16. package/package.json +53 -50
  17. package/src/components/a11y-wrapper/a11y-wrapper.ts +26 -0
  18. package/src/components/a11y-wrapper/index.ts +1 -0
  19. package/src/components/caption/caption.scss +1 -1
  20. package/src/components/caption/caption.tsx +118 -140
  21. package/src/components/caption/index.ts +1 -1
  22. package/src/components/caption-list/captionList.scss +8 -8
  23. package/src/components/caption-list/captionList.tsx +115 -117
  24. package/src/components/caption-list/index.ts +1 -1
  25. package/src/components/close-button/close-button.scss +11 -0
  26. package/src/components/close-button/index.tsx +23 -0
  27. package/src/components/download-print-menu/download-print-menu.scss +49 -48
  28. package/src/components/download-print-menu/download-print-menu.tsx +147 -125
  29. package/src/components/download-print-menu/index.ts +1 -1
  30. package/src/components/icons/index.ts +11 -0
  31. package/src/components/plugin-button/plugin-button.scss +26 -0
  32. package/src/components/plugin-button/plugin-button.tsx +29 -0
  33. package/src/components/popover-menu/index.ts +1 -1
  34. package/src/components/popover-menu/popover-menu.scss +3 -3
  35. package/src/components/popover-menu/popover-menu.tsx +25 -25
  36. package/src/components/search/index.ts +1 -1
  37. package/src/components/search/search.scss +1 -1
  38. package/src/components/search/search.tsx +137 -144
  39. package/src/components/spinner/index.ts +1 -1
  40. package/src/components/spinner/spinner.scss +58 -50
  41. package/src/components/spinner/spinner.tsx +9 -9
  42. package/src/components/transcript/index.ts +1 -1
  43. package/src/components/transcript/transcript.scss +9 -33
  44. package/src/components/transcript/transcript.tsx +333 -454
  45. package/src/global.d.ts +6 -6
  46. package/src/index.ts +13 -1
  47. package/src/transcript-plugin.scss +3 -3
  48. package/src/transcript-plugin.tsx +210 -391
  49. package/src/types/index.ts +3 -0
  50. package/src/types/transcript-config.ts +11 -0
  51. package/src/types/transcript-item-data.ts +29 -0
  52. package/src/types/types-ui.ts +11 -0
  53. package/src/utils/debounce.ts +36 -0
  54. package/src/utils/index.ts +4 -0
  55. package/src/utils/object-utils.ts +34 -0
  56. package/src/utils/popover/popover.scss +30 -0
  57. package/src/utils/popover/popover.tsx +178 -0
  58. package/src/utils/utils.ts +86 -0
  59. package/src/variables.scss +14 -0
  60. package/src/assets/close.svg +0 -10
  61. package/src/utils.ts +0 -192
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///api/kaltura-types-factory.ts","webpack:///api/kaltura-object-base.ts","webpack:///external \"KalturaPlayer.ui.preact\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///api/kaltura-api-exception.ts","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///playkit.contrib.ui/webpack/universalModuleDefinition","webpack:///playkit.contrib.ui/webpack/bootstrap","webpack:///playkit.contrib.ui/external \"KalturaPlayer.ui.preact\"","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/css-loader/dist/runtime/api.js","webpack:///playkit.contrib.ui/external \"@playkit-js-contrib/common\"","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/utils.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/css-loader/dist/runtime/getUrl.js","webpack:///playkit.contrib.ui/src/contrib-utils.ts","webpack:///playkit.contrib.ui/src/components/managed-component/index.ts","webpack:///playkit.contrib.ui/src/presets-utils.ts","webpack:///playkit.contrib.ui/src/floating-item-data.tsx","webpack:///playkit.contrib.ui/src/kitchen-sink-item-data.ts","webpack:///playkit.contrib.ui/src/player-utils.ts","webpack:///playkit.contrib.ui/src/toast-manager.tsx","webpack:///playkit.contrib.ui/src/floating-item.tsx","webpack:///playkit.contrib.ui/src/preset-manager.tsx","webpack:///playkit.contrib.ui/src/preset-item-data.tsx","webpack:///playkit.contrib.ui/src/upper-bar-item.tsx","webpack:///playkit.contrib.ui/src/components/popover/index.ts","webpack:///playkit.contrib.ui/src/kitchen-sink-item.tsx","webpack:///playkit.contrib.ui/src/kitchen-sink-manager.tsx","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/bind.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/buildURL.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/cancel/isCancel.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/defaults.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/adapters/xhr.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/createError.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/mergeConfig.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/cancel/Cancel.js","webpack:///playkit.contrib.ui/src/scale-video.ts","webpack:///playkit.contrib.ui/src/overlay-item.tsx","webpack:///playkit.contrib.ui/src/overlay-item-data.tsx","webpack:///playkit.contrib.ui/src/components/banner/assets/someone_asks_large.svg","webpack:///playkit.contrib.ui/src/components/banner/assets/someone_asks_small.svg","webpack:///playkit.contrib.ui/src/components/banner-container/assets/close_large.svg","webpack:///playkit.contrib.ui/src/components/banner-container/assets/close_small.svg","webpack:///playkit.contrib.ui/src/components/toast/assets/close.svg","webpack:///playkit.contrib.ui/src/components/icons-menu/assets/more.svg","webpack:///playkit.contrib.ui/src/index.ts","webpack:///playkit.contrib.ui/src/banner-manager.tsx","webpack:///playkit.contrib.ui/src/components/banner/index.ts","webpack:///playkit.contrib.ui/src/components/banner/banner.tsx","webpack:///playkit.contrib.ui/src/components/banner/_banner.scss?7d77","webpack:///playkit.contrib.ui/src/components/banner/_banner.scss","webpack:///playkit.contrib.ui/src/components/banner-container/index.ts","webpack:///playkit.contrib.ui/src/components/banner-container/banner-container.tsx","webpack:///playkit.contrib.ui/src/components/banner-container/_banner-container.scss?1e54","webpack:///playkit.contrib.ui/src/components/banner-container/_banner-container.scss","webpack:///playkit.contrib.ui/src/components/toasts-container/index.ts","webpack:///playkit.contrib.ui/src/components/toasts-container/toasts-container.tsx","webpack:///playkit.contrib.ui/src/components/toast/toast.tsx","webpack:///playkit.contrib.ui/src/components/toast/_toast.scss?a851","webpack:///playkit.contrib.ui/src/components/toast/_toast.scss","webpack:///playkit.contrib.ui/src/components/toasts-container/_toasts-container.scss?4add","webpack:///playkit.contrib.ui/src/components/toasts-container/_toasts-container.scss","webpack:///playkit.contrib.ui/src/components/managed-component/managed-component.tsx","webpack:///playkit.contrib.ui/src/components/managed-component/_managed-component.scss?a49b","webpack:///playkit.contrib.ui/src/components/managed-component/_managed-component.scss","webpack:///playkit.contrib.ui/src/floating-manager.tsx","webpack:///playkit.contrib.ui/src/preset-item.tsx","webpack:///playkit.contrib.ui/src/components/injected-component/injected-component.tsx","webpack:///playkit.contrib.ui/src/components/injected-component/injected-component.scss?df7a","webpack:///playkit.contrib.ui/src/components/injected-component/injected-component.scss","webpack:///playkit.contrib.ui/src/components/ui-player-adapter/index.tsx","webpack:///playkit.contrib.ui/src/components/ui-player-adapter/ui-player-adapter.tsx","webpack:///playkit.contrib.ui/src/upper-bar-manager.tsx","webpack:///playkit.contrib.ui/src/components/upper-bar/index.ts","webpack:///playkit.contrib.ui/src/components/upper-bar/upper-bar.tsx","webpack:///playkit.contrib.ui/src/components/upper-bar/_upper-bar.scss?b0f9","webpack:///playkit.contrib.ui/src/components/upper-bar/_upper-bar.scss","webpack:///playkit.contrib.ui/src/components/icons-menu/index.ts","webpack:///playkit.contrib.ui/src/components/icons-menu/icons-menu.tsx","webpack:///playkit.contrib.ui/src/components/icons-menu/_icons-menu.scss?f2c0","webpack:///playkit.contrib.ui/src/components/icons-menu/_icons-menu.scss","webpack:///playkit.contrib.ui/src/components/popover/popover.tsx","webpack:///playkit.contrib.ui/src/components/popover/popover.scss?3fb8","webpack:///playkit.contrib.ui/src/components/popover/popover.scss","webpack:///playkit.contrib.ui/src/components/popover/popover-menu.tsx","webpack:///playkit.contrib.ui/src/components/popover/popover-menu.scss?eb19","webpack:///playkit.contrib.ui/src/components/popover/popover-menu.scss","webpack:///playkit.contrib.ui/src/components/kitchen-sink-container/kitchen-sink-container.tsx","webpack:///playkit.contrib.ui/src/components/kitchen-sink-container/_kitchen-sink-container.scss?aada","webpack:///playkit.contrib.ui/src/components/kitchen-sink-container/_kitchen-sink-container.scss","webpack:///playkit.contrib.ui/src/components/kitchen-sink-adapter/index.ts","webpack:///playkit.contrib.ui/src/components/kitchen-sink-adapter/kitchen-sink-adapter.tsx","webpack:///playkit.contrib.ui/src/components/kitchen-sink/index.ts","webpack:///playkit.contrib.ui/src/components/kitchen-sink/kitchen-sink.tsx","webpack:///playkit.contrib.ui/src/components/kitchen-sink/_kitchen-sink.scss?9489","webpack:///playkit.contrib.ui/src/components/kitchen-sink/_kitchen-sink.scss","webpack:///playkit.contrib.ui/src/font-manager.ts","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/index.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/axios.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/is-buffer/index.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/Axios.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/InterceptorManager.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/dispatchRequest.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/transformData.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/process/browser.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/settle.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/core/enhanceError.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/cookies.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/combineURLs.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/cancel/CancelToken.js","webpack:///playkit.contrib.ui/Users/jonathangold/Desktop/dev/playkit-js-contrib/node_modules/axios/lib/helpers/spread.js","webpack:///playkit.contrib.ui/src/cuepoint-floating-engine.ts","webpack:///playkit.contrib.ui/src/local-content-utils.ts","webpack:///playkit.contrib.ui/src/overlay-manager.tsx","webpack:///playkit.contrib.ui/src/components/overlay-item-container/index.ts","webpack:///playkit.contrib.ui/src/components/overlay-item-container/overlay-item-container.tsx","webpack:///playkit.contrib.ui/src/components/overlay-item-container/_overlay-item-container.scss?3940","webpack:///playkit.contrib.ui/src/components/overlay-item-container/_overlay-item-container.scss","webpack:///api/kaltura-client-exception.ts","webpack:///api/kaltura-request.ts","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///playkit.contrib.common/webpack/universalModuleDefinition","webpack:///playkit.contrib.common/webpack/bootstrap","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/global.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/well-known-symbol.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/an-object.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/fails.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/export.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/descriptors.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/has.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/is-object.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/get-built-in.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/redefine.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-define-property.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/a-function.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/is-pure.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/internal-state.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/classof-raw.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/iterators.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/new-promise-capability.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/shared.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/create-property-descriptor.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-indexed-object.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/path.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/iterate.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/perform.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/set-global.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/document-create-element.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/shared-key.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/hidden-keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-integer.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/require-object-coercible.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/enum-bug-keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-object.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-create.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/set-to-string-tag.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/user-agent.js","webpack:///playkit.contrib.common/src/object-utils.ts","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/ie8-dom-define.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-primitive.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/function-to-string.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/uid.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/classof.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/define-iterator.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/indexed-object.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-keys-internal.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-length.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/is-forced.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/iterators-core.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/html.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/native-promise-constructor.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/bind-context.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/species-constructor.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/task.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/promise-resolve.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.promise.all-settled.js","webpack:///playkit.contrib.common/src/contrib-logger.ts","webpack:///playkit.contrib.common/src/uuid.ts","webpack:///playkit.contrib.common/src/index.ts","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/features/promise/index.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/es/promise/index.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.object.to-string.js","webpack:///playkit.contrib.common/(webpack)/buildin/global.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/shared-store.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/native-weak-map.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-to-string.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/native-symbol.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.string.iterator.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/string-multibyte.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/own-keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/array-includes.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/to-absolute-index.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-define-properties.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/a-possible-prototype.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/dom-iterables.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.array.iterator.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/add-to-unscopables.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.promise.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/redefine-all.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/set-species.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/an-instance.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/get-iterator-method.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/microtask.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/host-report-errors.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/v8-version.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.promise.finally.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/esnext.aggregate-error.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/esnext.promise.all-settled.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/esnext.promise.try.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/esnext.promise.any.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/features/object/assign.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/es/object/assign.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.object.assign.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/internals/object-assign.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/features/object/keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/es/object/keys.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/core-js/modules/es.object.keys.js","webpack:///playkit.contrib.common/src/cuepoint-engine.ts","webpack:///playkit.contrib.common/src/player-contrib-registry.ts","webpack:///playkit.contrib.common/src/kaltura-live-services.ts","webpack:///playkit.contrib.common/src/events-manager.ts","webpack:///playkit.contrib.common/src/debouce.ts","webpack:///playkit.contrib.common/src/kaltura-player-utils.ts","webpack:///playkit.contrib.common/src/array-utils.ts","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/rng.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/stringify.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/regex.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/validate.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/v1.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/parse.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/v35.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/md5.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/v3.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/v4.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/sha1.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/v5.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/nil.js","webpack:///playkit.contrib.common/Users/semarche/dev/kaltura/playkit-js-contrib/node_modules/uuid/dist/esm-browser/version.js","webpack:///./node_modules/css-loader/dist/runtime/url-escape.js","webpack:///cancelable-action.ts","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///adapters/utils.ts","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///api/kaltura-request-base.ts","webpack:///environment.ts","webpack:///api/kaltura-request-options.ts","webpack:///./src/utils.ts","webpack:///./node_modules/events/events.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/xml-js/lib/options-helper.js","webpack:///./node_modules/xml-js/lib/array-helper.js","webpack:///api/kaltura-multi-request.ts","webpack:///api/kaltura-multi-response.ts","webpack:///api/kaltura-response.ts","webpack:///api/kaltura-upload-request.ts","webpack:///api/types/KalturaCaptionType.ts","webpack:///api/types/KalturaCaptionAssetStatus.ts","webpack:///api/types/KalturaAssetFilter.ts","webpack:///./node_modules/xml-js/lib/xml2js.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/xml-js/lib/js2xml.js","webpack:///./src/index.ts","webpack:///./src/transcript-plugin.tsx","webpack:///playkit.contrib.plugin/webpack/universalModuleDefinition","webpack:///playkit.contrib.plugin/webpack/bootstrap","webpack:///playkit.contrib.plugin/external \"@playkit-js-contrib/common\"","webpack:///playkit.contrib.plugin/src/contrib-plugin.ts","webpack:///playkit.contrib.plugin/src/core-plugin.ts","webpack:///playkit.contrib.plugin/src/contrib-plugin-factories.ts","webpack:///playkit.contrib.plugin/src/contrib-services.ts","webpack:///playkit.contrib.plugin/src/contrib-plugin-configs.ts","webpack:///playkit.contrib.plugin/src/index.ts","webpack:///playkit.contrib.plugin/src/contrib-plugin-manager.ts","webpack:///playkit.contrib.plugin/src/core-plugin-proxy.ts","webpack:///playkit.contrib.plugin/external \"@playkit-js-contrib/ui\"","webpack:///./src/transcript-plugin.scss?f63c","webpack:///./src/transcript-plugin.scss","webpack:///./src/assets/transcript-icon.svg","webpack:///./src/assets/transcript-icon-over.svg","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///index.ts","webpack:///api/index.ts","webpack:///api/kaltura-client-utils.ts","webpack:///api/kaltura-logger.ts","webpack:///api/types/KalturaBaseResponseProfile.ts","webpack:///kaltura-client-service.ts","webpack:///api/kaltura-file-request.ts","webpack:///adapters/kaltura-request-adapter.ts","webpack:///adapters/kaltura-file-request-adapter.ts","webpack:///adapters/kaltura-multi-request-adapter.ts","webpack:///adapters/kaltura-upload-request-adapter.ts","webpack:///api/types/KalturaCaptionAssetFilter.ts","webpack:///api/types/KalturaCaptionAssetBaseFilter.ts","webpack:///api/types/KalturaAssetBaseFilter.ts","webpack:///api/types/KalturaRelatedFilter.ts","webpack:///api/types/KalturaFilter.ts","webpack:///api/types/KalturaSearchItem.ts","webpack:///api/types/CaptionAssetListAction.ts","webpack:///api/types/KalturaCaptionAssetListResponse.ts","webpack:///api/types/KalturaCaptionAsset.ts","webpack:///api/types/KalturaLanguage.ts","webpack:///api/types/KalturaLanguageCode.ts","webpack:///api/types/KalturaNullableBoolean.ts","webpack:///api/types/KalturaAsset.ts","webpack:///api/types/KalturaListResponse.ts","webpack:///api/types/KalturaFilterPager.ts","webpack:///api/types/KalturaPager.ts","webpack:///./src/components/transcript/index.ts","webpack:///./src/components/transcript/transcript.tsx","webpack:///./src/components/transcript/transcript.scss?3f53","webpack:///./src/components/transcript/transcript.scss","webpack:///./src/assets/close.svg","webpack:///./src/assets/error.svg","webpack:///./src/assets/arrow-up.svg","webpack:///./src/components/spinner/index.ts","webpack:///./src/components/spinner/spinner.tsx","webpack:///./src/components/spinner/spinner.scss?4efc","webpack:///./src/components/spinner/spinner.scss","webpack:///./src/assets/loader.svg","webpack:///./src/components/search/index.ts","webpack:///./src/components/search/search.tsx","webpack:///./src/components/search/search.scss?20c1","webpack:///./src/components/search/search.scss","webpack:///./src/assets/search.svg","webpack:///./src/assets/up.svg","webpack:///./src/assets/down.svg","webpack:///./src/assets/clear.svg","webpack:///./src/components/caption-list/index.ts","webpack:///./src/components/caption-list/captionList.tsx","webpack:///./src/components/caption/index.ts","webpack:///./src/components/caption/caption.tsx","webpack:///./src/components/caption/caption.scss?4d08","webpack:///./src/components/caption/caption.scss","webpack:///./node_modules/xml-js/lib/index.js","webpack:///./node_modules/sax/lib/sax.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/xml-js/lib/xml2json.js","webpack:///./node_modules/xml-js/lib/json2xml.js","webpack:///./src/components/caption-list/captionList.scss?7d6e","webpack:///./src/components/caption-list/captionList.scss","webpack:///./src/components/download-print-menu/index.ts","webpack:///./src/components/download-print-menu/download-print-menu.tsx","webpack:///./src/components/popover-menu/index.ts","webpack:///./src/components/popover-menu/popover-menu.tsx","webpack:///./src/components/popover-menu/popover-menu.scss?081c","webpack:///./src/components/popover-menu/popover-menu.scss","webpack:///./src/components/download-print-menu/download-print-menu.scss?5a85","webpack:///./src/components/download-print-menu/download-print-menu.scss","webpack:///./src/assets/download.svg","webpack:///./src/assets/download-over.svg","webpack:///./src/assets/print.svg","webpack:///./src/assets/print-over.svg"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","this","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","default","__importDefault","typesMapping","registerType","typeName","objectCtor","createObject","type","KalturaObjectBase","getTypeName","KalturaTypesFactory","logger","KalturaLogger","data","_allowedEmptyArray","_dependentProperties","relatedObjects","allowEmptyArray","_getMetadata","properties","metadataProperty","warn","setData","handler","readOnly","subTypeConstructor","subType","hasMetadataProperty","propertyName","toRequestObject","keys","forEach","propertyData","propertyValue","_createRequestPropertyValue","status","err","message","fromResponseObject","_parseResponseProperty","source","sourceValue","toString","undefined","propertyObjectType","Error","_createKalturaObject","itemKey","itemValue","newItem","responseItem","_isNumeric","KalturaClientUtils","fromServerDate","isNaN","parseFloat","isFinite","objectType","fallbackObjectType","usedFallbackType","dependentProperty","request","targetPath","item","valueKeys","Date","toServerDate","FormData","setDependency","len","dependency","KalturaPlayer","ui","preact","useSourceMap","list","map","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","id","fn","memo","stylesInDom","isOldIE","document","all","atob","getTarget","parent","querySelector","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","insertInto","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","splice","createStyleElement","createElement","attrs","nonce","getNonce","addAttrs","el","setAttribute","obj","update","remove","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","href","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","code","args","KalturaAPIException","pna","objectKeys","Duplex","util","inherits","Readable","Writable","method","readable","writable","allowHalfOpen","once","onend","_writableState","ended","nextTick","onEndNT","self","end","highWaterMark","_readableState","destroyed","set","_destroy","cb","__WEBPACK_EXTERNAL_MODULE__2__","require","base64","dedupe","_i","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","count","references","updater","attributes","insert","removeAttribute","lastIdentifiers","newLastIdentifiers","_index","isBuffer","isArray","val","isObject","isFunction","isArrayBuffer","isFormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","merge","assignValue","deepMerge","extend","trim","str","replace","url","test","slice","hash","needQuotes","player","path","baseConfig","KalturaPlayerUtils","getPlayerConfig","getContribLogger","class","groupPresetAreasByType","presetAreasMapping","acceptableTypes","presetType","presetName","PresetsUtils","FloatingUIModes","MediaLoaded","OnDemand","Immediate","FirstPlay","FloatingPositions","VideoArea","PresetArea","InteractiveArea","KitchenSinkExpandModes","AlongSideTheVideo","Hidden","OverTheVideo","KitchenSinkPositions","Top","Left","Right","Bottom","kalturaPlayer","dimensions","width","height","videoTrack","getActiveTracks","video","getVideoElement","videoWidth","videoHeight","ToastSeverity","Info","Success","Warn","_toasts","_floatingItem","_remove","_findToastIndexById","clearTimeout","timerSubscription","_updateToastsUI","_removeToastsContainer","_options","add","duration","props","_addToastsContainer","managedToast","toastProps","UUID","uuidV1","onClose","_startDurationTimer","reset","setTimeout","floatingManager","position","renderContent","ToastsContainer","toasts","toast","ToastManager","_destroyed","_isShown","_componentRef","_logger","info","_handleMediaLoaded","removeEventListener","Event","MEDIA_LOADED","_handleFirstPlay","FIRST_PLAY","context","debug","_addPlayerBindings","destroy","renderFloatingChild","ManagedComponent","renderChildren","isShown","ref","addEventListener","FloatingItem","PresetManagerEventTypes","PresetResizeEvent","VideoResizeEvent","defaultPresetConfig","Playback","PlayerArea","Live","_events","EventsManager","_isLocked","_items","_pendingItems","_registerToPlayer","EventType","UI_PRESET_RESIZE","_notifyUIPresetResize","VIDEO_RESIZE","_notifyVideoResize","emit","_unregisterToPlayer","on","off","_presetConfig","getContribConfig","explicitMerge","groupedPresets","presetAreas","renderChild","UIPlayerAdapter","onMount","onUnmount","console","component","PresetItem","lockManager","registerComponents","configs","playerConfig","PresetManager","ReservedPresetNames","ReservedPresetAreas","RelativeToTypes","Before","After","Replace","UpperBarItem","onClick","renderItem","children","className","_activationStateChange","renderContentChild","_isDestroyed","kitchenSinkConfig","fillContainer","KitchenSink","isActive","eventManager","KitchenSinkEventTypes","ItemActiveStateChangeEvent","activate","deactivate","KitchenSinkItem","ItemActiveStates","Active","InActive","defaultKitchenSinkConfig","theme","backgroundColor","blur","SidePanelRight","SidePanelBottom","_panels","items","activeItem","_kitchenSinkAdapterRef","_toggle","_isActive","_deactivateItem","_activateItem","expandMode","relevantPanel","state","_expand","_collapse","expand","_renderChild","_renderKitchenSink","_setRef","_kitchenSinkConfig","presetManager","KitchenSinkAdapter","itemOptions","kitchenSinkItem","upperBarItem","upperBarManager","renderIcon","itemsIndex","ArrayUtils","findIndex","collapse","itemProps","KitchenSinkContainer","KitchenSinkManager","utils","encode","params","paramsSerializer","serializedParams","toISOString","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","process","XMLHttpRequest","transformRequest","transformResponse","parse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","buildURL","parseHeaders","isURLSameOrigin","createError","config","requestData","requestHeaders","auth","username","password","Authorization","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","toLowerCase","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","config1","config2","prop","Cancel","playerWidth","playerHeight","fLetterBox","left","top","scaleToTargetWidth","scaleX1","scaleY1","scaleX2","scaleY2","fScaleOnWidth","Math","abs","renderOverlayChild","OverlayItem","OverlayPositions","VisibilityMode","VISIBLE","HIDDEN","defaultBannerConfig","_timerSubscription","_bannerConfig","_createRenderBanner","_handleCloseEvent","autoClose","_getState","floatingItemProps","BannerContainer","Banner","displayDuration","max","playerSize","getPlayerSize","visibilityMode","BannerManager","componentDidMount","componentWillUnmount","render","text","title","icon","_defaultIcon","trace","defaultBannerRoot","bannerWrapper","iconContainer","iconWrapper","bannerBody","iconImage","Component","api","locals","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","bannerContainerRoot","bannerContainer","closeButton","toastsContainer","toastRow","Toast","_onClick","_onClose","stopPropagation","setState","_getToastSeverityClass","severity","successToast","warnToast","errorToast","infoToast","toastWrapper","toastBody","connect","mapStateToProps","shell","prev","toggler","shouldComponentUpdate","prevProps","updateOnPlayerSizeChanged","inlineContainer","defaultProps","forwardRef","defaultFloatingConfig","_cache","canvas","videoSize","_renderItems","_getRendererProps","_floatingConfig","_updateCachedCanvas","positionItems","itemIndex","currentTime","getVideoSize","_updateComponents","TIME_UPDATE","LOADED_DATA","FloatingManager","_render","isolateComponent","InjectedComponent","onCreate","_onCreate","onDestroy","_onDestroy","child","presetContainer","relativeTo","presets","container","_root","parentElement","components","withPlayer","DefaultPluginOrder","Navigation","Moderation","Transcript","Share","Playlist","Related","Quiz","Layout","Polls","PLAYER_SIZE","defaultUpperBarConfig","TopBarRightControls","_rootElement","_prepareUpperBarItems","upperBarItems","iconMenuItems","IconsMenu","iconMenu","upperBarContent","UpperBar","_upperBarConfig","_iconsMenuConfig","iconsOrder","order","ObjectUtils","Infinity","sortByKey","reverse","itemToRemove","TINY","EXTRA_SMALL","SMALL","UpperBarManager","_onKeyDown","callBack","keyCode","KeyboardKeys","Enter","Esc","_getPopoverMenuOptions","customRenderer","tabIndex","role","onKeyDown","iconMenuItem","itemLabel","_popoverContent","PopoverMenu","Popover","verticalPosition","PopoverVerticalPositions","horizontalPosition","PopoverHorizontalPositions","PopoverTriggerMode","Click","Hover","Tab","Space","End","Home","triggerMode","closeOnEsc","closeOnClick","_closeTimeout","_controlElement","_clearTimeout","_handleMouseEvent","event","contains","_closePopover","_handleKeyboardEvent","_openPopover","onOpen","_addListeners","_removeListeners","_togglePopover","_handleMouseEnter","_handleMouseLeave","_handleHoverOnPopover","_getHoverEvents","targetEvents","onMouseEnter","onMouseLeave","popoverEvents","popoverContainer","node","popoverComponent","popoverMenu","itemRenderer","onMenuChosen","updateSidePanelMode","SidePanelPositions","SidePanelModes","sidePanelsModes","_convertToAdapterPositionEnum","_convertToAdapterModeEnum","getSidePanelMode","_convertToKitchenSinkModeEnum","redux","bindActions","reducers","actions","_getClass","backgroundLayout","active","defaultFontsConfig","fontFamily","testingFont","size","fontName","currentFontFamily","_fontConfig","loadFont","_isFontLoaded","_overrideCorePlayerFontStyles","_handleFontDownloadProcess","fontCss","lastHeadChild","getElementsByTagName","lastElementChild","downloadData","_checkFontExistence","_downloadAndCacheFont","fontData","_injectFontRawStyle","testingOptions","getContext","fontSize","font","baselineSize","measureText","cachedFontData","_loadFontFromLocalStorage","_saveFontToLocalStorage","catch","innerHTML","localStorage","getItem","fontValue","setItem","FontManager","Axios","mergeConfig","createInstance","defaultConfig","instance","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","getUri","handlers","use","eject","h","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","Item","array","noop","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","resolveURL","protocol","host","search","hostname","port","pathname","charAt","location","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","now","relativeURL","executor","resolvePromise","token","callback","arr","ChangeTypes","Show","Hide","cuepoints","updateLayout","recalculateCuepointLayout","getCurrentCuepointSnapshot","_calculateLayout","cuepoint","scaleCalculation","rawLayout","x","relativeX","relativeY","relativeWidth","relativeHeight","enabled","scaleVideo","layout","CuepointEngine","CuepointFloatingEngine","anchor","msSaveBlob","msSaveOrOpenBlob","display","click","printWindow","close","focus","print","date","intervalType","currentDate","seconds","floor","interval","defaultOverlayConfig","OverlayItemContainer","_overlayConfig","OverlayManager","overlayItemContainer","KalturaClientException","responseSubType","responseConstructor","_responseConstructor","KalturaRequest","setCompletion","_unwrapResponse","environment","nestedResponse","handleResponse","responseResult","responseError","unwrappedResponse","responseObject","ex","KalturaResponse","setRequestOptions","arg","__requestOptions__","KalturaRequestOptions","getRequestOptions","buildRequest","defaultRequestOptions","requestOptionsObject","defaultRequestOptionsObject","KalturaRequestBase","Function","ctor","superCtor","super_","configurable","TempCtor","it","check","globalThis","global","shared","uid","NATIVE_SYMBOL","store","String","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","exec","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","fails","aFunction","variable","namespace","has","nativeFunctionToString","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","O","unsafe","simple","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","Attributes","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","STATE","getterFor","TYPE","PromiseCapability","C","$$resolve","$$reject","IS_PURE","copyright","bitmap","IndexedObject","requireObjectCoercible","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","that","AS_ENTRIES","IS_ITERATOR","iterFn","boundFunction","stop","EXISTS","ceil","argument","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","toObject","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","getPrototypeOf","defineProperties","enumBugKeys","html","documentCreateElement","Empty","createDict","iframeDocument","iframe","src","contentWindow","lt","F","Properties","internalObjectKeys","TO_STRING_TAG","TAG","getBuiltIn","copyDeep","mergeDeep","extra","explicitFlatMerge","mergeDefaults","initialObject","defaultValue","pathArray","output","current","input","PREFERRED_STRING","valueOf","postfix","random","classofRaw","CORRECT_ARGUMENTS","tag","callee","$","createIteratorConstructor","setToStringTag","wellKnownSymbol","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","nativePropertyIsEnumerable","NASHORN_BUG","1","V","classof","names","toInteger","min","feature","detection","normalize","POLYFILL","NATIVE","string","PrototypeOfArrayIteratorPrototype","arrayIterator","aPossiblePrototype","setter","CORRECT_SETTER","SPECIES","defaultConstructor","S","defer","channel","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","counter","runner","listener","post","postMessage","port2","port1","onmessage","importScripts","newPromiseCapability","promiseCapability","newPromiseCapabilityModule","perform","iterate","allSettled","capability","promiseResolve","remaining","alreadyCalled","getPlayerLogger","loggerName","getLoggerFn","getLogger","NoopLogger","globalLogger","defaultNoopLogger","_defaultOptions","_log","loggerMethod","level","messageContext","formattedMessage","INFO","TRACE","WARN","ERROR","ProxyLogger","_playerId","setLevel","uuidV5","numberedUuidV1","uuid","numStr","char","Number","charCodeAt","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","pos","first","second","codeAt","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertyNames","toAbsoluteIndex","IS_INCLUDES","fromIndex","includes","integer","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","kind","Arguments","UNSCOPABLES","ArrayPrototype","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","speciesConstructor","task","microtask","hostReportErrors","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","isThenable","notify","isReject","notified","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","initEvent","isUnhandled","unwrap","internalReject","internalResolve","wrapper","onFulfilled","onRejected","fetch","wrap","$promiseResolve","race","CONSTRUCTOR_NAME","Constructor","ENTRIES","returnMethod","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","flush","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","v8","real","onFinally","getInternalAggregateErrorState","$AggregateError","errors","errorsArray","AggregateError","callbackfn","any","alreadyResolved","alreadyRejected","nativeAssign","A","B","symbol","chr","T","argumentsLength","nativeKeys","isFirstTime","lastHandledTime","lastHandledTimeIndex","nextTimeToHandle","cuepointChanges","reasonableSeekThreshold","_cuepoints","prepareCuepoint","getSnapshot","time","timeIndex","findClosestLastIndexByTime","createCuepointSnapshot","updateTime","forceSnapshot","snapshot","userSeeked","hasChangesToHandle","closestChangeIndex","closestChangeTime","delta","createEmptyDelta","updateInternals","createCuepointDelta","targetIndex","cuepointCount","cuepointIndex","cuePoint","newCuepoint","removedCuepoint","show","hide","isIndexOfLastChange","isIndexBeforeTheFirstChange","binarySearch","lo","hi","mid","changes","closestIndex","changesLength","startTime","endTime","sort","__contrib__","services","PlayerContribRegistry","register","creator","requestedResource","getAnonymousUserId","userId","Storage","KalturaLiveServices","_generateAnonymousUserId","anonymousUserId","_eventListeners","_wildcardEventListeners","eventListeners","func","waitMilliseconds","timeoutId","isImmediate","doLater","shouldCallNow","configPath","playerContribConfig","comparator","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rng","byteToHex","_nodeId","_clockseq","offset","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","parseInt","generateUUID","bytes","hashfunc","DNS","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","num","cnt","md5ff","md5gg","md5hh","md5ii","v35","msg","length32","hex","olda","oldb","oldc","oldd","length8","Uint32Array","rnds","z","ROTL","K","H","N","M","pow","_i2","W","_t","_t2","_executors","_onCancel","_onResolve","_onReject","CancelableAction","_notifyExecutor","newValue","nextExecutor","_handleErrorOriginatedFromExecuter","objectToString","isBoolean","isNull","isNullOrUndefined","isSymbol","isRegExp","re","isError","isPrimitive","Buffer","querystring","formattedUrl","urlHasQuerystring","_buildQuerystring","prefix","networkTag","getNetworkTag","clientTag","service","action","additionalQueryparams","endpoint","endpointUrl","createClientTag","buildUrl","buildQuerystring","apiVersion","format","xhr","isComplete","resp","headerKey","headerValue","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","checked","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","runClearTimeout","arg1","arg2","arg3","copyProps","SafeBuffer","setNetworkTag","_networkTag","avoidQueryString","fileFormatValue","customErrorInHttp500","acceptedTypes","partnerId","ks","responseProfile","KalturaBaseResponseProfile","HOUR","toSeconds","vtt","getCaptionsByFormat","captions","captionsFormat","fromSrt","TTML2Obj","fromVtt","linesBefore","substring","linesAfter","lines","ttml","xml2js","compact","tt","div","begin","_text","pad","secontsToTime","longerThanHour","setSeconds","hours","makeHoursString","getUTCMinutes","getUTCSeconds","condition","reduce","acc","captionAssetId","CaptionAssetServeAction","ReflectOwnKeys","R","ReflectApply","receiver","NumberIsNaN","EventEmitter","init","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","warned","w","emitter","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","originalListener","spliceOne","rawListeners","eventNames","Stream","Transform","PassThrough","CorkedRequest","_this","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","WritableState","internalUtil","deprecate","OurUint8Array","realHasInstance","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","total","utf8CheckIncomplete","copyOptions","ensureFlagExists","ensureSpacesExists","spaces","ensureAlwaysArrayExists","alwaysArray","ensureKeyExists","checkFnExists","requests","responses","kalturaResponses","serverResponse","KalturaMultiResponse","KalturaMultiRequest","results","hasErrors","getFirstError","uploadedFileSize","setProgress","_progressCallback","_getProgressCallback","supportChunkUpload","getFileInfo","metadataProperties","filePropertyName","find","file","KalturaUploadRequest","KalturaCaptionType","KalturaCaptionAssetStatus","typeIn","KalturaAssetBaseFilter","KalturaAssetFilter","currentElement","sax","helper","nativeType","nValue","bValue","addField","instructionFn","temp","instructionNameFn","elementsKey","element","typeKey","nameKey","instructionHasAttributes","attributesKey","instructionKey","addParent","parentKey","manipulateAttributes","attributesFn","nativeTypeAttributes","attributeValueFn","attributeNameFn","onInstruction","instruction","attrsRegExp","ignoreDeclaration","declarationKey","ignoreInstruction","onStartElement","elementNameFn","ignoreAttributes","alwaysChildren","onText","ignoreText","captureSpacesBetweenElements","sanitize","onComment","comment","ignoreComment","onEndElement","onCdata","cdata","ignoreCdata","onDoctype","doctype","ignoreDoctype","onError","note","xml","userOptions","parser","validateOptions","opt","strictEntities","onopentag","ontext","oncomment","onclosetag","oncdata","ondoctype","onprocessinginstruction","ReadableState","EElistenerCount","debugUtil","debuglog","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","pipeOnDrain","increasedAwaitDrain","pause","dests","ev","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","_transform","_flush","_this2","err2","currentElementName","writeIndentation","depth","firstLine","writeAttributes","attr","attrName","quote","noQuotesForNativeAttributes","indentAttributes","writeDeclaration","declaration","writeInstruction","instructionName","instructionValue","writeComment","commentFn","writeCdata","cdataFn","writeDoctype","doctypeFn","writeText","textFn","writeElements","elements","indent","elementName","withClosingTag","fullTagEmptyElementFn","fullTagEmptyElement","indentText","indentCdata","indentInstruction","hasContent","writeElement","commentKey","doctypeKey","cdataKey","textKey","hasContentCompact","anyContent","writeElementCompact","writeElementsCompact","nodes","js","_contribServices","_configs","_player","_kitchenSinkItem","_upperBarItem","_isLoading","_hasError","_entryId","_captionsList","_captions","_kalturaClient","KalturaClient","_transcriptLanguage","_triggeredByKeyboard","_handleIconClick","_onTimeUpdate","_updateKitchenSink","_onError","_loadCaptions","_getCaptionsByLang","_getCaptionsList","KalturaCaptionAssetFilter","entryIdEqual","CaptionAssetListAction","_initLoading","objects","caption","displayOnPlayer","_filterCaptionAssetsByProperty","kalturaCaptionAsset","_findCaptionAsset","filteredByLang","filteredByLabel","filteredByIndex","captionAsset","language","_initKitchensinkAndUpperBarItems","_loadCaptionsAsset","_getCaptionData","rawCaptions","_parseCaptions","captionFormat","_getCaptionFormat","selectedLanguage","_seekTo","_handleDownload","entryMetadata","downloadContent","makePlainText","_handlePrint","printContent","_renderKitchenSinkContent","showTime","scrollOffset","searchDebounceTimeout","searchNextPrevDebounceTimeout","getConfigValue","isInteger","onSeek","isLoading","hasError","onRetryLoad","videoDuration","kitchenSinkActive","toggledWithEnter","onPluginSetup","setOptions","provider","serviceUrl","setDefaultRequestOptions","session","TEXT_TRACK_CHANGED","RESIZE","onRegisterUI","onMediaLoad","onMediaUnload","_reset","kitchenSinkManager","_addPopoverIcon","_addKitchenSinkItem","downloadDisabled","printDisabled","DownloadPrintMenu","onDownload","onPrint","dropdownAriaLabel","printButtonAriaLabel","downloadButtonAriaLabel","expandOnFirstPlay","pluginButton","transcriptIcon","TranscriptPlugin","ContribPluginManager","registerPlugin","contribServices","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__9__","plugin","_wasSetupExecuted","_wasSetupFailed","handleMediaLoaded","hasOnPluginSetup","_contribPlugin","hasOnMediaLoad","isValid","setContribContext","contribPlugin","getUIComponents","hasOnRegisterPresetsComponents","onRegisterPresetsComponents","hasOnPluginDestroy","onPluginDestroy","hasOnMediaUnload","core","BasePlugin","CorePlugin","factories","ContribPluginFactories","enableLogIfNeeded","_playerContribRegistry","PLAYER_RESET","PLAYER_DESTROY","_toastManager","_overlayManager","_bannerManager","_floatingManager","_kitchenSinkManager","_upperBarManager","_initialize","playerContribRegistry","ContribServices","fontManager","overlayManager","bannerManager","toastManager","_presetManager","_fontManager","getPlayerKS","_corePlugin","ContribPluginConfigs","createCorePlugin","pluginName","contribPluginFactory","overrides","corePluginFactory","CorePluginProxy","createPlugin","pluginFactories","corePluginConfig","corePlugin","setPluginContext","urlEscape","___CSS_LOADER_URL___0___","___CSS_LOADER_URL___1___","baseUrl","currentDir","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","round","getTime","getStartDateValue","setHours","setMinutes","getEndDateValue","LogLevels","LoggerSettings","logLevel","_name","defaultRequestOptionsArgs","_defaultRequestOptions","appendOptions","appendDefaultRequestOptions","_validateOptions","optionsViolationError","KalturaFileRequest","KalturaFileRequestAdapter","transmit","KalturaUploadRequestAdapter","KalturaRequestAdapter","multiRequest","some","KalturaMultiRequestAdapter","clientOptions","parameters","prepareParameters","createEndpoint","createCancelableAction","getHeaders","errorMessage","queryparams","_chunkUploadSupported","supportedByBrowser","supportedByRequest","chunkFileDisabled","activeAction","finalChunk","resumeAt","handleChunkUploadError","handleChunkUploadSuccess","_chunkUpload","_getFormData","fileChunk","append","uploadChunkData","fileStart","actualChunkFileSize","userChunkFileSize","chunkFileSize","log","fileEnd","progressCallback","lengthComputable","loaded","KalturaCaptionAssetBaseFilter","captionParamsIdEqual","captionParamsIdIn","formatEqual","formatIn","statusEqual","statusIn","statusNotIn","idEqual","idIn","entryIdIn","partnerIdEqual","partnerIdIn","sizeGreaterThanOrEqual","sizeLessThanOrEqual","tagsLike","tagsMultiLikeOr","tagsMultiLikeAnd","createdAtGreaterThanOrEqual","createdAtLessThanOrEqual","updatedAtGreaterThanOrEqual","updatedAtLessThanOrEqual","deletedAtGreaterThanOrEqual","deletedAtLessThanOrEqual","KalturaRelatedFilter","KalturaFilter","orderBy","advancedSearch","KalturaSearchItem","KalturaCaptionAssetListResponse","pager","KalturaFilterPager","KalturaCaptionAsset","KalturaListResponse","captionParamsId","KalturaLanguage","languageCode","KalturaLanguageCode","isDefault","KalturaNullableBoolean","parentId","accuracy","associatedTranscriptIds","KalturaAsset","entryId","tags","fileExt","createdAt","updatedAt","deletedAt","partnerData","partnerDescription","actualSourceAssetParamsIds","sizeInBytes","totalCount","KalturaPager","pageSize","pageIndex","initialSearch","activeSearchIndex","searchMap","totalSearchResults","searchLength","_transcriptListRef","_captionListRef","_skipTranscriptButtonRef","_autoscrollButtonRef","_preventScrollEvent","_scrollToSearchMatchEnabled","_widgetRootRef","_engine","_widgetHeight","_topAutoscrollEdge","_bottomAutoscrollEdge","_thirdOfWidgetHeight","_silence","isAutoScrollEnabled","highlightedMap","widgetWidth","_createEngine","_syncVisibleTranscript","transcriptUpdate","_enableAutoScroll","preventDefault","_renderScrollToButton","autoscrollButton","autoscrollButtonVisible","_onSearch","_findSearchMatches","loSearch","regex","indices","_setActiveSearchIndex","_getHeaderStyles","mediumWidth","smallWidth","_renderHeader","header","Search","onChange","onSearchIndexChange","_debounced","onActiveSearchIndexChange","_handleKeyDown","shiftKey","captionRef","_currentCaptionRef","_hotspotRef","_renderSkipTranscriptButton","skipTranscriptButton","_renderTranscript","errorWrapper","errorIcon","errorMainText","errorDescriptionText","captionProps","scrollTo","_scrollTo","scrollToSearchMatch","_scrollToSearchMatch","CaptionList","seekTo","_handleSeek","_setWidgetSize","_renderLoading","loadingWrapper","Spinner","scrollTop","offsetTop","_onScroll","selection","getSelection","findSearchMatches","debounce","_handleEsc","_handleClose","componentDidUpdate","previousProps","previousState","hidden","onKeyUp","globalContainer","onScroll","___CSS_LOADER_URL___2___","spinnerBall","bounceFrame","focused","_inputRef","_focusedByMouse","_handleOnChange","_onClear","_onFocus","_onBlur","_goToNextSearchResult","_goToPrevSearchResult","_handleMouseDown","nextProps","nextState","searchWrapper","searchIcon","searchInput","placeholder","onInput","onFocus","onBlur","onMouseDown","clearIcon","searchResults","prevNextWrapper","prevNextButton","prevButton","disabled","nextButton","___CSS_LOADER_URL___3___","_firstCaptionRef","_lastCaptionRef","_handleClick","_getShouldScroll","captionId","_getShouldScrollToSearchMatch","_getSearchProps","searchProps","indexMap","_getCaptionProps","captionData","highlighted","shouldScroll","shouldScrollToSearchMatch","_handleKeyUp","transcriptWrapper","Caption","_handleKeyPress","which","_gotoCurrentTime","_renderText","indexArray","captionSpan","preSelected","selected","postSelected","activeSearch","highlightSearch","captionTime","captionContent","withoutTime","xml2json","js2xml","json2xml","strict","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","buffers","clearBuffers","bufferCheckPosition","lowercase","lowercasetags","looseCase","closed","closedRoot","sawRoot","noscript","BEGIN","ENTITIES","XML_ENTITIES","attribList","xmlns","rootNS","trackPosition","column","EVENTS","BEGIN_WHITESPACE","beginWhiteSpace","TEXT","starti","textNode","isWhitespace","strictFail","TEXT_ENTITY","OPEN_WAKA","startTagPosition","SCRIPT","SCRIPT_ENDING","script","CLOSE_TAG","SGML_DECL","sgmlDecl","isMatch","nameStart","OPEN_TAG","tagName","PROC_INST","procInstName","procInstBody","emitNode","CDATA","COMMENT","DOCTYPE","isQuote","SGML_DECL_QUOTED","DOCTYPE_DTD","DOCTYPE_QUOTED","DOCTYPE_DTD_QUOTED","COMMENT_ENDING","COMMENT_ENDED","textopts","CDATA_ENDING","CDATA_ENDING_2","PROC_INST_ENDING","PROC_INST_BODY","nameBody","newTag","openTag","OPEN_TAG_SLASH","ATTRIB","closeTag","attribName","attribValue","ATTRIB_NAME","ATTRIB_VALUE","attrib","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_CLOSED","isAttribEnd","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG_SAW_WHITE","notMatch","returnState","parseEntity","entity","entityBody","entityStart","maxAllowed","maxActual","closeText","checkBufferLength","streamWraps","_parser","me","_decoder","SD","XML_NAMESPACE","stringFromCharCode","fromCodePoint","COMMENT_STARTING","nodeType","qname","attribute","qualName","local","qn","selfClosing","uri","nv","isSelfClosing","closeTo","entityLC","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","EE","_isStdio","didOnEnd","cleanup","_classCallCheck","custom","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","unref","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","documentElement","attachEvent","json","popoverOpen","_onDownloadClicked","_onPrintClicked","_popoverMenuItemRenderer","popoverMenuItem","_renderIcon","buttonStyles","iconStyles","downloadPrintButton","downloadIcon","printIcon"],"mappings":"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BAAqB,EAAA+0D,0BAA2B90D,QAAU,6BACnGqxE,SAAW,CAAExyE,KAAO,KACpByyE,SAAW,CAAEzyE,KAAO,KACpBmkE,gBAAkB,CAAEnkE,KAAO,KAC3B0yE,wBAA0B,CAAE1yE,KAAO,OAGxBvD,GAEf,EAzCA,CAfA,MAeyCk2E,cAA5B,EAAAX,sBA2Cb,EAAA7xE,oBAAoBP,aAAa,sBAAsBoyE,I,8EChEvD,SAAYG,GACR,YACH,cACA,iBACA,uBACA,cACA,cACA,iBACA,mCACA,eACA,oBACA,iBACA,kBACA,uBACA,uBACA,iBACA,cACA,iBACA,mBACA,cACA,6BACA,qBACA,iBACA,gBACA,aACA,gBACA,iBACA,cACA,6BACA,wBACA,kBACA,wBACA,yBACA,eACA,gBACA,4BACA,oBACA,2BACA,yBACA,cACA,0BACA,gBACA,gBACA,mBACA,gBACA,oBACA,iBACA,gBACA,6BACA,kBACA,gBACA,eACA,eACA,cACA,mBACA,eACA,gBACA,iBACA,iBACA,wBACA,yBACA,eACA,YACA,iCACA,eACA,aACA,uBACA,eACA,eACA,cACA,iBACA,cACA,cACA,iBACA,eACA,cACA,aACA,gBACA,wBACA,eACA,6BACA,cACA,eACA,iBACA,8BACA,eACA,aACA,cACA,yBACA,eACA,yBACA,gBACA,gBACA,iBACA,sBACA,uBACA,gBACA,kBACA,iBACA,iBACA,kBACA,iBACA,iBACA,aACA,sBACA,eACA,kBACA,6BACA,wBACA,yBACA,gBACA,eACA,gBACA,iBACA,cACA,eACA,YACA,eACA,sBACA,gBACA,aACA,kBACA,cACA,aACA,wBACA,cACA,eACA,eACA,aACA,cACA,iBACA,eACA,aACA,eACA,cACA,cACA,eACA,eACA,aACA,wBACA,sBACA,cACA,cACA,eACA,UACA,gBACA,aACA,eACA,mCACA,2BACA,4BACA,iBACA,eACA,iCACA,gBACA,cACA,aACA,eACA,aACA,iCACA,aACA,eACA,iBACA,6BACA,YACA,gBACA,YACA,cACA,iBACA,qBACA,yBACA,yBACA,eACA,iBACA,YACA,eACA,aACA,WACA,eACA,YACA,yBACA,yBACA,aACA,yBACA,aACA,mBACA,gBACA,gBACA,cACA,eACA,qBACA,gCACA,wCACA,gBACA,qBACA,gBACA,aACA,YACA,cACA,cACA,eACA,iBACA,cACA,iBACA,aACA,gBACA,mBACA,gBACA,cACA,aACA,kBACA,aACA,gBACA,sBACA,iBACA,mBACA,gBACA,mBACA,kBACA,mBACA,eACA,oBACA,cACA,kBACA,eACA,4BACA,iBACA,eACA,gBACA,iBACA,cACA,gBACA,gBACA,eACA,4BACA,uBACA,eACA,eACA,gBACA,gBACA,mBACA,eACA,YACA,eACA,aACA,kBACA,eACA,eACA,qBACA,eACA,gBACA,cACA,iBACA,gBACA,cACA,eACA,gDACA,cACA,cACA,mBACA,sBACA,iBACA,eACA,2BACA,cACA,qBACA,0BACA,iBACA,eACA,eACA,eACA,wBACA,iBACA,gBACA,kBACA,cACA,eACA,cACA,gBACA,iBACA,uBACA,eACA,aACA,eACA,eACA,qCACA,YACA,iBACA,aACA,+BACA,cACA,iBACA,iBACA,aACA,eACA,cACA,gBACA,eACA,gBACA,uBACA,aACA,kBACA,mBACA,eACA,cACA,iCACA,eACA,oBACA,yBACA,YACA,iBACA,eACA,iBACA,cACA,eACA,6BACA,kBACA,iBACA,aACA,gBACA,eACA,aACA,eACA,gBACA,oBACA,kBACA,iBACA,iBACA,eACA,eACA,wBACA,cACA,YACA,iBACA,mBACA,eACA,cACA,eACA,gBACA,aACA,eACA,cACA,oBACA,cACA,kBACA,gBACA,kBACA,eACA,cACA,cACA,gBACA,aACA,mBACA,uBACA,eACA,6BACA,cACA,2BACA,iBACA,eACA,qBACA,aACA,iBACA,wBACA,cACA,kBACA,eACA,gBACA,mCACA,iBACA,cACA,gBACA,eACA,sBACA,4BACA,uBACA,uBACA,sBACA,uBACA,iBACA,2BACA,eACA,iBACA,sBACA,aACA,wBACA,eACA,eACA,mBACA,iBACA,mBACA,gBACA,eACA,4BACA,qBACA,sBACA,mBACA,yBACA,cACA,oBACA,eACA,mBACA,eACA,+BACA,uBACA,iBACA,gBACA,uBACA,uBACA,kBACA,6BACA,gCACA,eACA,sBACA,gBACA,gBACA,mBACA,6BACA,iBACA,sBACA,oBACA,4BACA,qBACA,uBACA,gBACA,eACA,eACA,cACA,uBACA,kBACA,yBACA,4BACA,yBACA,gBACA,cACA,2BACA,0BACA,gBACA,iBACA,cACA,qBACA,cACA,4BACA,gBACA,eACA,aACA,eACA,eACA,cACA,sBACA,iBACA,kBACA,gBACA,iBACA,iBACA,eACA,oBACA,gBACA,cACA,iBACA,cACA,cACA,sBACA,uBACA,kBACA,mBACA,mBACA,aACA,gBACA,cACA,gBACA,eACA,mBACA,eACA,eACA,eACA,eACA,0BACA,uBACA,iBACA,iBACA,eACA,aACA,2BACA,iBACA,gBACA,8BACA,oBACA,eACA,iBACA,aACA,mBACA,iBACA,2BACA,iBACA,0BACA,aACA,aACA,eACA,cACA,iBACA,cACA,aACA,eACA,YACA,iBACA,gBACA,gBACA,cACA,eACA,eACA,6BACA,gBACA,eACA,gBACA,aACA,sBACA,kBACA,iBACA,eACA,eACA,cACA,kBACA,aACA,4BACA,0BACA,mBACA,gBACA,kBACA,gBACA,eACA,WACA,iBACA,gCACA,cACA,YACA,eACA,cACA,iBACA,iBACA,YACA,aACA,aACA,iBACA,aACA,kBACA,eACA,aACA,cACA,YACA,4BACA,cACA,aACA,mBACA,kBACA,qBACA,aACA,mBACA,qBACA,iBACA,eACA,cACA,kBACA,wBACA,eACA,4BACA,YACA,8BAvjBD,CAAY,EAAAA,kBAAA,EAAAA,gBAAe,M,8ECA3B,SAAYE,GACR,UACH,UACA,UACA,YACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,eACA,eACA,UACA,UACA,eACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,eACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,eACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,eACA,UACA,YAzKD,CAAY,EAAAA,sBAAA,EAAAA,oBAAmB,M,8ECA/B,SAAYE,GACR,+BACH,8BACA,6BAHD,CAAY,EAAAA,yBAAA,EAAAA,uBAAsB,M,yFCAlC,OAYA,cAkBI,WAAYjyE,G,OAER,YAAMA,IAAK,KA6BnB,OAjDkC,iBAuBpB,YAAAK,aAAV,WAEI,IAAMlE,EAAS,YAAMkE,aAAY,WAsBjC,OArBArI,OAAOgC,OACHmC,EAAOmE,WACP,CACIsC,WAAa,CAAElD,KAAO,IAAKP,QAAU,gBACjD6F,GAAK,CAAEtF,KAAO,IAAKiB,UAAW,GAC9B2xE,QAAU,CAAE5yE,KAAO,IAAKiB,UAAW,GACnC+nD,UAAY,CAAEhpD,KAAO,IAAKiB,UAAW,GACrCmzB,QAAU,CAAEp0B,KAAO,IAAKiB,UAAW,GACnCguB,KAAO,CAAEjvB,KAAO,IAAKiB,UAAW,GAChC4xE,KAAO,CAAE7yE,KAAO,KAChB8yE,QAAU,CAAE9yE,KAAO,KACnB+yE,UAAY,CAAE/yE,KAAO,IAAKiB,UAAW,GACrC+xE,UAAY,CAAEhzE,KAAO,IAAKiB,UAAW,GACrCgyE,UAAY,CAAEjzE,KAAO,IAAKiB,UAAW,GACrCm0B,YAAc,CAAEp1B,KAAO,IAAKiB,UAAW,GACvCiyE,YAAc,CAAElzE,KAAO,KACvBmzE,mBAAqB,CAAEnzE,KAAO,KAC9BozE,2BAA6B,CAAEpzE,KAAO,KACtCqzE,YAAc,CAAErzE,KAAO,IAAKiB,UAAW,KAG5BxE,GAEf,EAjDA,CAXA,KAWkCwD,mBAArB,EAAA0yE,eAmDb,EAAAxyE,oBAAoBP,aAAa,eAAe+yE,I,yFC/DhD,OAQA,cAII,WAAYryE,G,OAER,YAAMA,IAAK,KAenB,OArByC,iBAS3B,YAAAK,aAAV,WAEI,IAAMlE,EAAS,YAAMkE,aAAY,WAQjC,OAPArI,OAAOgC,OACHmC,EAAOmE,WACP,CACIsC,WAAa,CAAElD,KAAO,IAAKP,QAAU,uBACjD6zE,WAAa,CAAEtzE,KAAO,IAAKiB,UAAW,KAG3BxE,GAEf,EArBA,CAPA,KAOyCwD,mBAA5B,EAAAgyE,sBAuBb,EAAA9xE,oBAAoBP,aAAa,sBAAsBqyE,I,yFC/BvD,OAQA,cAII,WAAY3xE,G,OAER,YAAMA,IAAK,KAcnB,OApBwC,iBAS1B,YAAAK,aAAV,WAEI,IAAMlE,EAAS,YAAMkE,aAAY,WAOjC,OANArI,OAAOgC,OACHmC,EAAOmE,WACP,CACIsC,WAAa,CAAElD,KAAO,IAAKP,QAAU,wBAGtChD,GAEf,EApBA,CAPA,MAOwC82E,cAA3B,EAAAxB,qBAsBb,EAAA5xE,oBAAoBP,aAAa,qBAAqBmyE,I,yFC9BtD,OASA,cAKI,WAAYzxE,G,OAER,YAAMA,IAAK,KAgBnB,OAvBkC,iBAUpB,YAAAK,aAAV,WAEI,IAAMlE,EAAS,YAAMkE,aAAY,WASjC,OARArI,OAAOgC,OACHmC,EAAOmE,WACP,CACIsC,WAAa,CAAElD,KAAO,IAAKP,QAAU,gBACjD+zE,SAAW,CAAExzE,KAAO,KACpByzE,UAAY,CAAEzzE,KAAO,OAGVvD,GAEf,EAvBA,CARA,KAQkCwD,mBAArB,EAAAszE,eAyBb,EAAApzE,oBAAoBP,aAAa,eAAe2zE,I,0ICpChD,S,koBCAA,WACA,OACA,QACA,QACA,QAEA,QACA,SA8BMG,EAAgB,CAClBp9C,OAAQ,GACRq9C,kBAAmB,EACnBC,UAAW,GACXC,mBAAoB,EACpBC,aAAc,GAGZ1zE,EAAS,EAAAqQ,iBAAiB,CAC5BC,MAAO,aACPrZ,OAAQ,sBAKZ,yE,OACY,EAAA08E,mBAAyC,KACzC,EAAAC,gBAAuB,KACvB,EAAAC,yBAAkD,KAClD,EAAAC,qBAA8C,KAC9C,EAAAC,qBAA+B,EAC/B,EAAAC,6BAAuC,EACvC,EAAAC,eAAqC,KACrC,EAAAC,QAA8C,KAE9C,EAAAC,cAAwB,EACxB,EAAAC,mBAA6B,EAC7B,EAAAC,sBAAgC,EAChC,EAAAC,qBAA+B,EAE/B,EAAAhrC,KAAO,SAACwR,EAAavvC,GACzBvL,EAAOsjB,MAAMw3B,EAAK,CACdvvC,OAAQA,GAAU,wBAGlB,EAAAgpE,UAAW,EACnB,EAAAt5D,MAAK,GACDu5D,qBAAqB,EACrBC,eAAgB,GAChBC,YAAa,GACVpB,GAoCC,EAAAqB,cAAgB,WACZ,IAAAvrB,EAAA,QAAAA,SACHA,GAAgC,IAApBA,EAAShvD,QAI1B,EAAK85E,QAAU,IAAI,EAAAt7C,eAA4BwwB,GAC/C,EAAKwrB,0BAJD,EAAKV,QAAU,MAOf,EAAAU,uBAAyB,SAACz/B,QAAA,IAAAA,OAAA,GACtB,IAAAzuB,EAAA,QAAAA,YACR,EAAK9B,UAAS,SAAC3J,GACX,IAAK,EAAKi5D,QACN,MAAO,CACHO,eAAgB,IAIxB,IAAMI,EAAmB,EAAKX,QAAQh/B,WAAWxuB,EAAayuB,GAC9D,GAAI0/B,EAAiBz/B,SAKjB,OAJA,EAAKm/B,UAAW,EAIT,CACHE,eAJmBI,EAAiBz/B,SAASyV,QAAO,SAACC,EAAK1nD,G,MAC1D,OAAO,EAAP,KAAY0nD,KAAG,MAAG1nD,EAAK8B,KAAK,EAAI,MACjC,KAMP,IAAK2vE,EAAiBp/B,MAClB,OAAOx6B,EAGL,cAAEk7B,EAAA,EAAAA,KAAMC,EAAA,EAAAA,KAEd,GAAoB,IAAhBD,EAAK/7C,QAAgBg8C,EAAKh8C,OAAS,EAEnC,OADA,EAAKm6E,UAAW,EACTt5D,EAGX,GAAIk7B,EAAK/7C,OAAS,GAAKg8C,EAAKh8C,OAAS,EAAG,CACpC,IAAI,EAA0C,GAc9C,OAbI,EAAKm6E,SACL,EAAKA,UAAW,EAEhB,EAAoB,EAAH,GAAQt5D,EAAMw5D,gBAEnCt+B,EAAK/0C,SAAQ,SAAC0iE,GACV,EAAkBA,EAAQ5+D,KAAM,KAGpCkxC,EAAKh1C,SAAQ,SAAC0iE,UACH,EAAkBA,EAAQ5+D,OAG9B,CACHuvE,eAAgB,GAGxB,OAAOx5D,MAIP,EAAA65D,kBAAoB,SAAC1oD,G,MACzBA,EAAM2oD,iBACF,EAAK95D,MAAMu5D,qBAII,UAAfpoD,EAAMxsB,MACNwsB,EAAMhC,UAAY,EAAAC,aAAaqB,OAC/BU,EAAMhC,UAAY,EAAAC,aAAaC,QAE/B,EAAKypD,qBAAsB,EAC3B,EAAKnvD,SAAS,CACV4vD,qBAAqB,IAEN,UAAfpoD,EAAMxsB,OACuB,QAA7B,IAAKi0E,gCAAwB,SAAEx6C,WAKnC,EAAA27C,sBAAwB,WACpB,IAAAR,EAAA,QAAAA,oBACR,OACI,WACI7pD,KAAK,SACL3R,UAAczS,EAAO0uE,iBAAgB,KAAIT,EAAsB,GAAKjuE,EAAO2uE,yBAC3Er8D,QAAS,EAAKi8D,kBACdlqD,UAAW,EAAKkqD,kBAChBpqD,SAAU8pD,GAAuB,EAAI,EACrC5+D,IAAK,SAAA0X,GACH,EAAKwmD,qBAAuBxmD,MAMlC,EAAA6nD,UAAY,SAACj/C,GACjB,EAAKtR,SAAS,CAAEsR,OAAM,KAGlB,EAAAk/C,mBAAqB,WACzB,EAAKxwD,UAAS,SAAC3J,GACX,IAAKA,EAAMib,OACP,OAAO,EAAP,GAAYo9C,GAEhB,IAAItpE,EAAQ,EACNqrE,EAAWp6D,EAAMib,OAAOrW,cACxB2zD,EAAoD,GAc1D,OAbA,EAAKhgE,MAAM41C,SAAShoD,SAAQ,SAAC0iE,GAKzB,IAJA,IAEIznE,EAFE6mB,EAAO4gD,EAAQ5gD,KAAKrD,cACpBy1D,EAAQ,IAAIt+C,OAAOq+C,EAAU,MAE7BE,EAAU,GACRl5E,EAASi5E,EAAMx4C,KAAK5Z,IACxBqyD,EAAQ/3E,KAAKnB,EAAO2N,OAExBurE,EAAQn0E,SAAQ,SAAC5J,G,MACbwS,IACAwpE,EAAU1P,EAAQ5+D,IAAM,EAAH,KAAQsuE,EAAU1P,EAAQ5+D,OAAG,MAAG8E,GAAQxS,EAAC,UAG/D,CACHg8E,UAAS,EACTC,mBAAoBzpE,EACpBupE,kBAAmB,EACnBG,aAAc2B,EAASj7E,YAK3B,EAAAo7E,sBAAwB,SAACxrE,GAC7B,EAAKgqE,6BAA8B,EACnC,EAAKpvD,SAAS,CACV2uD,kBAAmBvpE,EACnBwqE,qBAAqB,KAIrB,EAAAiB,iBAAmB,WACf,IAAAf,EAAA,QAAAA,YACR,OAAIA,GAAe,IACR,GAEPA,GAAe,IACRnuE,EAAOmvE,YAEXnvE,EAAOovE,YAGV,EAAAC,cAAgB,WACd,cAAExP,EAAA,EAAAA,iBAAkBD,EAAA,EAAAA,kBACpB,UAAEjwC,EAAA,EAAAA,OAAQq9C,EAAA,EAAAA,kBAAmBE,EAAA,EAAAA,mBACnC,OACI,WAAKz6D,UAAW,CAACzS,EAAOsvE,OAAQ,EAAKJ,oBAAoB3wE,KAAK,MAC1D,IAAC,EAAAgxE,OAAM,CACHC,SAAU,EAAKZ,UACfa,oBAAqB,EAAKC,WAAWC,0BACrCz9E,MAAOy9B,EACPq9C,kBAAmBA,EACnBE,mBAAoBA,EACpBrN,iBAAkBA,EAClBD,kBAAmBA,MAM3B,EAAAgQ,eAAiB,SAAC/pD,G,UACxB,GAAIA,EAAMhC,UAAY,EAAAC,aAAaoB,KAAQW,EAAMgqD,SAU/ChqD,EAAMhC,UAAY,EAAAC,aAAaC,OAC/B8B,EAAMhC,UAAY,EAAAC,aAAaqB,QAE/BU,EAAM2oD,iBACmB,QAAzB,IAAKjB,4BAAoB,SAAEz6C,aAd8B,CACzD,EAAKzU,SAAS,CACZ4vD,qBAAqB,IAEvB,IAAM6B,EAAqD,QAA3C,EAAuB,QAAvB,EAAG,EAAKzC,uBAAe,eAAE0C,0BAAkB,eAAEC,YACzDF,IACFjqD,EAAM2oD,iBACNsB,EAAWh9C,WAWT,EAAAm9C,4BAA8B,WACpC,OACE,WACE7rD,KAAK,SACL/U,IAAK,SAAC0X,GACJ,EAAKumD,yBAA2BvmD,GAElCtU,UAAWzS,EAAOkwE,qBAClB7rD,UAAW,EAAKurD,eAChBzrD,SAAU,GAAC,oBAOT,EAAAgsD,kBAAoB,WAClB,cAAEttB,EAAA,EAAAA,SAAU4c,EAAA,EAAAA,SAAuBR,GAAb,EAAAS,YAAa,EAAAT,UAAUU,EAAA,EAAAA,cAC7C,UACFsO,EAAA,EAAAA,oBACAhB,EAAA,EAAAA,UACAD,EAAA,EAAAA,kBACAkB,EAAA,EAAAA,eACAf,EAAA,EAAAA,aAEJ,IAAKtqB,IAAaA,EAAShvD,OACvB,OAAO,KAGX,GAAI4rE,EACA,OACI,WAAKhtD,UAAWzS,EAAOowE,cACnB,WAAK39D,UAAWzS,EAAOqwE,YACvB,SAAG59D,UAAWzS,EAAOswE,eAAa,WAClC,SAAG79D,UAAWzS,EAAOuwE,sBAAoB,+CAarD,IAAMC,EAAe,CACjBvR,SAAQ,EACRkO,aAAY,EACZsD,SAAU,EAAKC,UACfC,oBAAqB,EAAKC,qBAC1BjR,cAAa,GAGjB,OACI,IAAC,EAAAkR,YAAW,CACRxhE,IAAK,SAAA0X,GACH,EAAKsmD,gBAAkBtmD,GAEzBmnD,eAAgBA,EAChBrrB,SAAUA,EACViuB,OAAQ,EAAKC,YACb9C,oBAAqBA,EACrBhB,UAAWA,EACXD,kBAAmBA,EACnBwD,aAAcA,KAKlB,EAAAQ,eAAiB,WACrB,GAAI,EAAKtD,eAAgB,CACf,+CAAEhiE,EAAA,EAAAA,MAAOC,EAAA,EAAAA,OAAQ,EAAA8O,IACnB,EAAK/F,MAAMy5D,cAAgBziE,GAC3B,EAAK2S,SAAS,CACV8vD,YAAaziE,IAGjB,EAAKkiE,gBAAkBjiE,IACvB,EAAKiiE,cAAgBjiE,EACrB,EAAKoiE,qBAAuBpiE,EAAS,EACrC,EAAKkiE,mBAAqB7yD,KAAKoY,MAAM,EAAK26C,qBA/UjC,IAgVT,EAAKD,sBAAwB9yD,KAAK4f,KAAkC,EAA5B,EAAKmzC,qBAhVpC,OAqVb,EAAAkD,eAAiB,WACrB,OACI,WAAKx+D,UAAWzS,EAAOkxE,gBACnB,IAAC,EAAAC,QAAO,QAKZ,EAAAT,UAAY,SAACzuE,GACjB,GAAI,EAAKmrE,mBAAoB,CACzB,EAAKI,qBAAsB,EACnB,gCAAA/yD,KACJ,GAAO,EAAKozD,oBAAsB,GAAO,EAAKC,yBAC9C,EAAKV,mBAAmBgE,UAAYnvE,EAAGovE,WAAa,EAAKtD,qBAlWhD,OAuWb,EAAA6C,qBAAuB,SAAC3uE,GACxB,EAAKmrE,oBAAsB,EAAKK,8BAChC,EAAKA,6BAA8B,EACnC,EAAKD,qBAAsB,EAC3B,EAAKJ,mBAAmBgE,UAAYnvE,EAAGovE,UA3W1B,KA+Wb,EAAAC,UAAY,WACZ,EAAK9D,oBACL,EAAKA,qBAAsB,EAG/B,EAAKnvD,SAAS,CACV4vD,qBAAqB,KAIrB,EAAA8C,YAAc,SAACxT,GACX,IAAAgC,EAAA,QAAAA,OACFgS,EAAY1gF,OAAO2gF,eACrBD,GAAgC,UAAnBA,EAAUl4E,MACvBkmE,EAAOhC,EAAQhtB,YAIf,EAAAm/B,WAAa,CACjB+B,kBAAmB,EAAAC,SAAS,EAAK7C,mBAAoB,EAAK5hE,MAAMkyD,uBAChEwQ,0BAA2B,EAAA+B,SACvB,EAAKzC,sBACL,EAAKhiE,MAAMmyD,gCAIX,EAAAuS,WAAa,SAAC9rD,GAChBA,EAAMhC,UAAY,EAAAC,aAAaE,KACjC,EAAK/W,MAAMM,WAIP,EAAAqkE,aAAe,SAAC/rD,GAED,UAAfA,EAAMxsB,MACNwsB,EAAMhC,UAAY,EAAAC,aAAaqB,OAC/BU,EAAMhC,UAAY,EAAAC,aAAaC,OAE/B,EAAK9W,MAAMM,W,EAsCvB,OAzbgC,OA4B5B,YAAAiP,kBAAA,WACIhpB,KAAKuvC,KAAK,kBAAmB,qBAC7BvvC,KAAK46E,iBAGT,YAAAyD,mBAAA,SACIC,EACAC,GAEM,iBAAElvB,EAAA,EAAAA,SAAU1iC,EAAA,EAAAA,YACVwP,EAAA,WAAAA,OACJmiD,EAAcjvB,WAAaA,IAC3BrvD,KAAKuvC,KAAK,qBAAsB,sBAChCvvC,KAAK46E,gBACL56E,KAAK6qB,SAAS,CAAEsR,OAAQ,GAAIs+C,qBAAqB,KAGjD6D,EAAc3xD,cAAgBA,GAC9B3sB,KAAK66E,yBAGL0D,EAAcpiD,SAAWA,GACzBn8B,KAAKk8E,WAAW+B,oBAGpBj+E,KAAKw9E,kBAGT,YAAAv0D,qBAAA,WACIjpB,KAAKuvC,KAAK,kBAAmB,wBAC7BvvC,KAAKm6E,QAAU,MA6VnB,YAAAjxD,OAAA,SAAOzP,GAAP,WACYuyD,EAAA,EAAAA,UAAWI,EAAA,EAAAA,kBACnB,OACI,WACIntD,UAAczS,EAAOzP,KAAI,KAAIqvE,EAAoB,GAAK5/D,EAAOgyE,QAC7D3iE,IAAK,SAAA0X,GACD,EAAK2mD,eAAiB3mD,GAE1BkrD,QAASz+E,KAAKm+E,YAEd,WAAKl/D,UAAWzS,EAAOkyE,iBAClB1+E,KAAK67E,gBACN,WACIjrD,KAAK,SACL3R,UAAWzS,EAAO8d,YAClBqG,SAAU,EACV7R,QAAS9e,KAAKo+E,aACdK,QAASz+E,KAAKo+E,gBAEhBpS,GAAahsE,KAAKy8E,8BACpB,WACIx9D,UAAWzS,EAAO9J,KAClBi8E,SAAU3+E,KAAK89E,UACfjiE,IAAK,SAAA0X,GACD,EAAKqmD,mBAAqBrmD,IAG7By4C,EAAYhsE,KAAKy9E,iBAAmBz9E,KAAK28E,qBAE7C38E,KAAKi7E,2BAK1B,EAzbA,CAAgC,EAAAnxD,WAAnB,EAAAsE,c,gBCnDb,IAAIjkB,EAAU,EAAQ,IAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,gBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,GAE3F,IAAI20E,EAAY,EAAQ,IACpBC,EAA2BD,EAAU,EAAQ,KAC7CE,EAA2BF,EAAU,EAAQ,KAC7CgN,EAA2BhN,EAAU,EAAQ,KAGjD30E,EAAQwG,KAAK,CAACvG,EAAOO,EAAI,g3DAAk3Do0E,EAA2B,yzBAA2zBC,EAA2B,4tCAA8tC8M,EAA2B,kHAAmH,KAGxmI3hF,EAAQ+sB,OAAS,CAChB,KAAQ,oDACR,OAAU,sDACV,KAAQ,oDACR,yBAA0B,sEAC1B,qBAAwB,sEACxB,mBAAoB,gEACpB,gBAAmB,gEACnB,OAAU,sDACV,cAAe,2DACf,WAAc,2DACd,eAAgB,4DAChB,YAAe,4DACf,eAAgB,4DAChB,YAAe,4DACf,kBAAmB,+DACnB,eAAkB,+DAClB,gBAAiB,6DACjB,aAAgB,6DAChB,aAAc,0DACd,UAAa,0DACb,kBAAmB,+DACnB,cAAiB,+DACjB,yBAA0B,sEAC1B,qBAAwB,sEACxB,eAAgB,4DAChB,YAAe,4DACf,oBAAqB,iEACrB,iBAAoB,iEACpB,4BAA6B,yEAC7B,wBAA2B,2E,cCzC5B9sB,EAAOD,QAAU,oxC,cCAjBC,EAAOD,QAAU,y8P,cCAjBC,EAAOD,QAAU,kxC,0ICAjB,S,8ZCAA,WACA,QAEA,2B,+CAQA,OAR6B,OACzB,YAAAisB,OAAA,WACI,OACI,WAAKjK,UAAWzS,EAAOqyE,aACnB,WAAK5/D,UAAWzS,EAAOsyE,gBAIvC,EARA,CAA6B,EAAAh1D,WAAhB,EAAA6zD,W,gBCFb,IAAIxzE,EAAU,EAAQ,IAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,gBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,GAE3F,IACI40E,EADY,EAAQ,GACOD,CAAU,EAAQ,KAGjD30E,EAAQwG,KAAK,CAACvG,EAAOO,EAAI,yRAA2Ro0E,EAA2B,o4BAAq4B,KAGptC50E,EAAQ+sB,OAAS,CAChB,eAAgB,sDAChB,YAAe,sDACf,cAAe,qDACf,WAAc,qDACd,eAAgB,sDAChB,YAAe,sDACf,eAAgB,sDAChB,YAAe,wD,cCjBhB9sB,EAAOD,QAAU,+hP,0ICAjB,S,8ZCAA,WACA,QAiBA,yE,OACI,EAAAikB,MAAqB,CACjBwT,QAAQ,EACRqqD,SAAS,GAEL,EAAAC,UAAqC,KACrC,EAAAC,iBAAkB,EAwBlB,EAAAC,gBAAkB,SAAC1+E,GACvB,EAAKiZ,MAAMuiE,SAASx7E,EAAEM,OAAOpC,QAGzB,EAAAygF,SAAW,SAAC9sD,G,MACA,IAAZA,EAAMgM,GAAuB,IAAZhM,EAAMzvB,IACvB,EAAKq8E,iBAAkB,GAEb,QAAd,IAAKD,iBAAS,SAAE1/C,QAChB,EAAK7lB,MAAMuiE,SAAS,KAGhB,EAAAoD,SAAW,WACf,EAAKv0D,SAAS,CACV6J,QAAQ,EACRqqD,SAAU,EAAKE,kBAEnB,EAAKA,iBAAkB,GAGnB,EAAAI,QAAU,WACd,EAAKx0D,SAAS,CACV6J,QAAQ,EACRqqD,SAAS,KAIT,EAAAO,sBAAwB,WACtB,cAAE9F,EAAA,EAAAA,kBAAmBE,EAAA,EAAAA,mBAAoBuC,EAAA,EAAAA,oBAC/C,GAA2B,IAAvBvC,EAAJ,CASAuC,EALIzC,IAAsBE,EACd,EAAKjgE,MAAM+/D,kBAAoB,EAE/B,KAIR,EAAA+F,sBAAwB,WACtB,cAAE/F,EAAA,EAAAA,kBAAmBE,EAAA,EAAAA,oBAO3BuC,EAP+C,EAAAA,qBAErB,IAAtBzC,EACQA,EAAoB,EAEpBE,IAKhB,EAAA8F,iBAAmB,WACf,EAAKP,iBAAkB,G,EAgE/B,OAlJ4B,OAQxB,YAAAtzD,sBAAA,SACI8zD,EACAC,GAEM,iBAAEhhF,EAAA,EAAAA,MAAO86E,EAAA,EAAAA,kBAAmBE,EAAA,EAAAA,mBAAoBtN,EAAA,EAAAA,kBACtD,OACI1tE,IAAU+gF,EAAU/gF,OACpB86E,IAAsBiG,EAAUjG,mBAChCE,IAAuB+F,EAAU/F,oBACjCtN,IAAsBqT,EAAUrT,mBAChCpsE,KAAKkhB,MAAMwT,SAAWgrD,EAAUhrD,QAMxC,YAAA2pD,mBAAA,SAAmBC,G,MACT,aAAElS,EAAA,EAAAA,kBAAmBC,EAAA,EAAAA,kBACtBiS,EAAclS,mBAAqBA,GAAqBC,IAC3C,QAAd,EAAArsE,KAAKg/E,iBAAS,SAAE1/C,UA0DxB,YAAApW,OAAA,sBACU,aAAExqB,EAAA,EAAAA,MAAO86E,EAAA,EAAAA,kBAAmBE,EAAA,EAAAA,mBAClC,OACI,WAAKz6D,UAAW,CACZzS,EAAOmzE,cACNjhF,GAASsB,KAAKkhB,MAAMwT,OAAUloB,EAAOkoB,OAAS,GAC/C10B,KAAKkhB,MAAM69D,QAAUvyE,EAAOuyE,QAAU,IACxCh0E,KAAK,MACH,WAAKkU,UAAWzS,EAAOozE,aACvB,aACI3gE,UAAWzS,EAAOqzE,YAClBC,YAAa,uBACbphF,MAAOA,EACPqhF,QAAS//E,KAAKk/E,gBACdc,QAAShgF,KAAKo/E,SACda,OAAQjgF,KAAKq/E,QACba,YAAalgF,KAAKw/E,iBAClB7uD,SAAU,EACV9U,IAAK,SAAC0X,GACF,EAAKyrD,UAAYzrD,KAGxB70B,GACG,cACIugB,UAAWzS,EAAO2zE,UAClBrhE,QAAS9e,KAAKm/E,SACdxuD,SAAU,IAGjBjyB,GACG,WAAKugB,UAAWzS,EAAO4zE,eAEf1G,EAAqB,EACZF,EAAiB,IAAIE,EACxB,OAIlB,WAAKz6D,UAAWzS,EAAO6zE,iBAClB3hF,GACG,cACIiyB,SAAU,EACV1R,UAAczS,EAAO8zE,eAAc,IAAI9zE,EAAO+zE,WAAU,KAC7B,IAAvB7G,EAA2BltE,EAAOg0E,SAAW,IAEjD1hE,QAAS9e,KAAKu/E,wBAGrB7gF,GACG,cACIiyB,SAAU,EACV1R,UAAczS,EAAO8zE,eAAc,IAAI9zE,EAAOi0E,WAAU,KAC7B,IAAvB/G,EAA2BltE,EAAOg0E,SAAW,IAEjD1hE,QAAS9e,KAAKs/E,2BAO1C,EAlJA,CAA4B,EAAAx1D,WAAf,EAAAiyD,U,gBCjBb,IAAI5xE,EAAU,EAAQ,IAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,gBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,GAE3F,IAAI20E,EAAY,EAAQ,IACpBC,EAA2BD,EAAU,EAAQ,KAC7CE,EAA2BF,EAAU,EAAQ,KAC7CgN,EAA2BhN,EAAU,EAAQ,KAC7C8O,EAA2B9O,EAAU,EAAQ,MAGjD30E,EAAQwG,KAAK,CAACvG,EAAOO,EAAI,ggBAAkgBo0E,EAA2B,o+BAAs+BC,EAA2B,+OAAiP8M,EAA2B,ymCAA2mC8B,EAA2B,sUAAuU,KAGhxGzjF,EAAQ+sB,OAAS,CAChB,iBAAkB,sDAClB,cAAiB,sDACjB,cAAe,mDACf,WAAc,mDACd,iBAAkB,sDAClB,cAAiB,sDACjB,oBAAqB,yDACrB,gBAAmB,yDACnB,mBAAoB,wDACpB,eAAkB,wDAClB,cAAe,mDACf,WAAc,mDACd,cAAe,mDACf,WAAc,mDACd,SAAY,gDACZ,eAAgB,oDAChB,YAAe,oDACf,aAAc,kDACd,UAAa,kDACb,OAAU,8CACV,QAAW,iD,cCjCZ9sB,EAAOD,QAAU,8wC,cCAjBC,EAAOD,QAAU,siC,cCAjBC,EAAOD,QAAU,g9B,cCAjBC,EAAOD,QAAU,m6C,0ICAjB,U,koBCAA,WACA,QACA,OACA,SACA,SACA,QAcA,GAZQ,cAAAqB,IAYR,uE,OACY,EAAAi+E,mBAA0B,KAC1B,EAAAoE,iBAAwB,KACxB,EAAAC,gBAAuB,KAuBvB,EAAAC,aAAe,SAAC9W,GAAyB,mBAE7CuT,EADQ,QAAAA,QACDvT,KAGH,EAAA+W,iBAAmB,SAACC,GAClB,cAAEtG,EAAA,EAAAA,oBAAqBC,EAAA,EAAAA,eAC7B,OAAOD,GAAuBC,EAAeqG,IAGzC,EAAAC,8BAAgC,SAACD,GAC/B,cAAEtG,EAAA,EAAAA,oBAAqBhB,EAAA,EAAAA,UAAWD,EAAA,EAAAA,kBACxC,OAAQiB,GAAwBhB,EAAUsH,SAA0D94E,IAA5CwxE,EAAUsH,GAAWvH,IAGzE,EAAAyH,gBAAkB,SAACF,GACjB,cAAEtH,EAAA,EAAAA,UAAWD,EAAA,EAAAA,kBAAmBwD,EAAA,EAAAA,aAChCkE,EAAmB,GAMzB,OALIzH,EAAUsH,KACVG,EAAYC,SAAW1H,EAAUsH,GACjCG,EAAY1H,kBAAoBA,EAChC0H,EAAYvH,aAAeqD,EAAarD,cAErCuH,GAGH,EAAAE,iBAAmB,SAACC,GAClB,cACF3G,EAAA,EAAAA,eACAsC,EAAA,EAAAA,aACAvC,EAAA,EAAAA,oBAEItvE,EAAA,EAAAA,GAeR,OAdwB,EAAH,CACjBsgE,SAAUuR,EAAavR,SACvBwR,SAAUD,EAAaC,SACvBE,oBAAqBH,EAAaG,oBAClCn+E,IAAKmM,EACL2T,QAAS,EAAK+hE,aAAaQ,GAC3BtX,QAASsX,EACTC,YAAa5G,EAAevvE,GAC5BolD,eAAgBysB,EAAa7Q,eAAiB,EAAAld,KAC9CsyB,aAAc,EAAKT,iBAAiB31E,GACpCq2E,0BAA2B,EAAKR,8BAA8B71E,GAC9DsvE,oBAAmB,GAChB,EAAKwG,gBAAgB91E,KAKxB,EAAAs2E,aAAe,SAACpvD,G,YAChBA,EAAMhC,UAAY,EAAAC,aAAasB,IACE,QAAjC,EAAoB,QAApB,IAAKgvD,uBAAe,eAAEpE,mBAAW,SAAEl9C,QAC5BjN,EAAMhC,UAAY,EAAAC,aAAauB,OACJ,QAAlC,EAAqB,QAArB,IAAK8uD,wBAAgB,eAAEnE,mBAAW,SAAEl9C,U,EAgChD,OAhHiC,OAI7B,YAAA3T,sBAAA,SAAsB8zD,GACZ,iBACF/E,EAAA,EAAAA,eACArrB,EAAA,EAAAA,SACAoqB,EAAA,EAAAA,UACAD,EAAA,EAAAA,kBACAiB,EAAA,EAAAA,oBACAuC,EAAA,EAAAA,aAEJ,OACItC,IAAmB+E,EAAU/E,gBAC7BrrB,IAAaowB,EAAUpwB,UACvBoqB,IAAcgG,EAAUhG,WACxBD,IAAsBiG,EAAUjG,mBAChCiB,IAAwBgF,EAAUhF,qBAClCuC,EAAa7Q,gBAAkBsT,EAAUzC,aAAa7Q,eAiE9D,YAAAjjD,OAAA,sBACYmmC,EAAA,WAAAA,SACR,OACI,WACIpwC,UAAWzS,EAAOk1E,kBAClBjD,QAASz+E,KAAKyhF,cAEbpyB,EAASnlD,KAAI,SAACm3E,EAAapxE,GACxB,IAAM+sE,EAAe,EAAKoE,iBAAiBC,GAC3C,OACI,IAAC,EAAAM,QAAO,GACJ9lE,IAAK,SAAA0X,GACa,IAAVtjB,EACA,EAAK0wE,iBAAmBptD,EACjBtjB,IAAUo/C,EAAShvD,OAAS,IACnC,EAAKugF,gBAAkBrtD,GAEvBypD,EAAasE,cACb,EAAK/E,mBAAqBhpD,KAG9BypD,SAOhC,EAhHA,CAAiC,EAAAlzD,YAApB,EAAAuzD,e,0ICnBb,U,8ZCAA,WACA,OACA,SACA,QAsBA,yE,OACY,EAAAb,YAAkC,KAoClC,EAAAoF,gBAAkB,SAACvvD,GACvB,IAAMhC,EAAUgC,EAAMwvD,OAASxvD,EAAMhC,QACrC,GACIA,IAAY,EAAAC,aAAaC,OACzBF,IAAY,EAAAC,aAAaqB,MAIzB,OAFAU,EAAM2oD,sBACN,EAAK8G,oBAKL,EAAAjB,aAAe,SAACxuD,G,MACpBA,EAAMzH,kBACU,QAAhB,IAAK4xD,mBAAW,SAAEl9C,QAClB,EAAKwiD,oBAGD,EAAAA,iBAAmB,WACjB,cAAE/X,EAAA,EAAAA,QAASjrD,EAAA,EAAAA,QACbirD,EAAQ5gD,KAAK9oB,QACbye,KAIA,EAAAijE,YAAc,SAAC54D,GACb,cAAEqwD,EAAA,EAAAA,kBAAmBG,EAAA,EAAAA,aAAcwH,EAAA,EAAAA,SACrCa,EAAuB,GAI3B,OAHIb,IACAa,EAAa7jF,OAAOiJ,KAAK+5E,GAAUlkC,MAAK,SAAC74C,EAAG1E,GAAM,OAAA8wC,OAAOpsC,GAAKosC,OAAO9wC,OAErD,IAAhBypB,EAAK9oB,OACE,KAGP,YAAM4e,UAAWzS,EAAOy1E,aACnBd,EACKa,EAAW93E,KAAI,SAACuE,EAAYwB,GACxB,IAAMiyE,EAAwB,IAAVjyE,EAAckZ,EAAKwmC,UAAU,EAAGwxB,EAAS1yE,IAAO,GAC9D0zE,EAAWh5D,EAAKwmC,UAClBwxB,EAAS1yE,GACT0yE,EAAS1yE,GAAMkrE,GAEbyI,EAAej5D,EAAKwmC,UACtBwxB,EAAS1yE,GAAMkrE,EACf1pE,EAAQ,IAAM+xE,EAAW3hF,OACnB8oB,EAAK9oB,OACL8gF,EAASa,EAAW/xE,EAAQ,KAEtC,OACI,gBACKiyE,EACD,YACIjjE,UACIuxB,OAAO/hC,KAAQ+qE,EACThtE,EAAO61E,aACP71E,EAAO81E,iBAGhBH,GAEJC,MAIbj5D,I,EAiCtB,OAvI6B,OAGzB,YAAAk1D,mBAAA,WACQr+E,KAAKw8E,aAAex8E,KAAKyZ,MAAM8nE,aAC/BvhF,KAAKyZ,MAAMwjE,SAASj9E,KAAKw8E,aAClBx8E,KAAKw8E,aAAex8E,KAAKyZ,MAAM+nE,2BACtCxhF,KAAKyZ,MAAM0jE,oBAAoBn9E,KAAKw8E,cAI5C,YAAA7wD,sBAAA,SAAsB8zD,GACZ,iBACF0B,EAAA,EAAAA,SACAG,EAAA,EAAAA,YACA7G,EAAA,EAAAA,oBACAjB,EAAA,EAAAA,kBAGJ,OAFI,EAAAjpB,iBAEmBkvB,EAAUlvB,iBAG7B+wB,IAAgB7B,EAAU6B,iBAG1BA,GAAe7G,IAAwBgF,EAAUhF,uBAGjD0G,IAAa1B,EAAU0B,aAGvBA,IAAY1B,EAAU0B,UAAYA,EAAS3H,KAAuBiG,EAAU0B,SAAS1B,EAAUjG,wBA4EvG,YAAAtwD,OAAA,sBACU,aAAE6gD,EAAA,EAAAA,QAASuX,EAAA,EAAAA,YAAa7V,EAAA,EAAAA,SAAUlb,EAAA,EAAAA,eAChCpnC,EAAA,EAAAA,KAAM4zB,EAAA,EAAAA,UAEd,OACI,WACI99B,UAAWzS,EAAOu9D,QAClBp5C,SAAU,EACV9U,IAAK,SAAA0X,GACD,EAAKipD,YAAcjpD,GAEvB1C,UAAW7wB,KAAK4hF,iBAEfnW,GACG,WAAKxsD,UAAWzS,EAAO+1E,aAClB,EAAAjyB,cAAcvT,EAAWwT,IAGlC,WACIzxC,QAAS9e,KAAK6gF,aACd5hE,UAAczS,EAAOg2E,eAAc,KAAIlB,EAAc90E,EAAO80E,YAAc,IAAE,KAAI7V,EAAW,GAAKj/D,EAAOi2E,aACvG7xD,KAAK,UAEJ5wB,KAAK+hF,YAAY54D,MAKtC,EAvIA,CAA6B,EAAAW,WAAhB,EAAA63D,W,gBCxBb,IAAIx3E,EAAU,EAAQ,KAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,iBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,IAEnFwG,KAAK,CAACvG,EAAOO,EAAI,60FAA80F,KAGv2FR,EAAQ+sB,OAAS,CAChB,QAAW,iDACX,eAAgB,sDAChB,YAAe,sDACf,kBAAmB,yDACnB,eAAkB,yDAClB,eAAgB,sDAChB,YAAe,sDACf,YAAe,qDACf,eAAgB,sDAChB,YAAe,sDACf,mBAAoB,0DACpB,gBAAmB,0DACnB,gBAAiB,uDACjB,aAAgB,yD,gBCjBjB,IAAI+lC,EAAS,EAAQ,IACjB2yB,EAAW,EAAQ,KACnBC,EAAS,EAAQ,IACjBC,EAAW,EAAQ,KAEvB1lF,EAAOD,QAAU,CACf8yD,OAAQA,EACR2yB,SAAUA,EACVC,OAAQA,EACRC,SAAUA,I,iBCXZ,aAAC,SAAWzmB,GACVA,EAAImD,OAAS,SAAUujB,EAAQrjB,GAAO,OAAO,IAAIsjB,EAAUD,EAAQrjB,IACnErD,EAAI2mB,UAAYA,EAChB3mB,EAAI4mB,UAAYA,EAChB5mB,EAAI6mB,aAuKJ,SAAuBH,EAAQrjB,GAC7B,OAAO,IAAIujB,EAAUF,EAAQrjB,IA7J/BrD,EAAI8mB,kBAAoB,MAExB,IA+IIxvB,EA/IAyvB,EAAU,CACZ,UAAW,WAAY,WAAY,UAAW,UAC9C,eAAgB,eAAgB,SAAU,aAC1C,cAAe,QAAS,UAwB1B,SAASJ,EAAWD,EAAQrjB,GAC1B,KAAMx/D,gBAAgB8iF,GACpB,OAAO,IAAIA,EAAUD,EAAQrjB,IAwFjC,SAAuBF,GACrB,IAAK,IAAI7hE,EAAI,EAAGC,EAAIwlF,EAAQ7iF,OAAQ5C,EAAIC,EAAGD,IACzC6hE,EAAO4jB,EAAQzlF,IAAM,GAtFvB0lF,CADanjF,WAEN0E,EAFM1E,KAEKlC,EAAI,GAFTkC,KAGNojF,oBAAsBjnB,EAAI8mB,kBAHpBjjF,KAINw/D,IAAMA,GAAO,GAJPx/D,KAKNw/D,IAAI6jB,UALErjF,KAKiBw/D,IAAI6jB,WALrBrjF,KAKyCw/D,IAAI8jB,cAL7CtjF,KAMNujF,UANMvjF,KAMaw/D,IAAI6jB,UAAY,cAAgB,cAN7CrjF,KAON04E,KAAO,GAPD14E,KAQNwjF,OARMxjF,KAQUyjF,WARVzjF,KAQ8B0jF,SAAU,EARxC1jF,KASNgqC,IATMhqC,KASO8D,MAAQ,KATf9D,KAUN6iF,SAAWA,EAVL7iF,KAWN2jF,YAAcd,IAXR7iF,KAWyBw/D,IAAImkB,UAX7B3jF,KAYNkhB,MAAQksB,EAAEw2C,MAZJ5jF,KAaNy/D,eAbMz/D,KAakBw/D,IAAIC,eAbtBz/D,KAcN6jF,SAdM7jF,KAcYy/D,eAAiBthE,OAAOY,OAAOo9D,EAAI2nB,cAAgB3lF,OAAOY,OAAOo9D,EAAI0nB,UAdjF7jF,KAeN+jF,WAAa,GAfP/jF,KAoBFw/D,IAAIwkB,QApBFhkF,KAqBJlB,GAAKX,OAAOY,OAAOklF,IArBfjkF,KAyBNkkF,eAAwC,IAzBlClkF,KAyBiBw/D,IAAIplD,SAzBrBpa,KA0BFkkF,gBA1BElkF,KA2BJoa,SA3BIpa,KA2Bc07B,KA3Bd17B,KA2B4BmkF,OAAS,GAElDjnE,EA7Bald,KA6BA,WAvDfm8D,EAAIioB,OAAS,CACX,OACA,wBACA,kBACA,UACA,UACA,eACA,YACA,UACA,WACA,YACA,QACA,aACA,QACA,MACA,QACA,SACA,gBACA,kBAwCGjmF,OAAOY,SACVZ,OAAOY,OAAS,SAAUb,GACxB,SAASuqC,KAGT,OAFAA,EAAEppC,UAAYnB,EACH,IAAIuqC,IAKdtqC,OAAOiJ,OACVjJ,OAAOiJ,KAAO,SAAUlJ,GACtB,IAAIkG,EAAI,GACR,IAAK,IAAI3G,KAAKS,EAAOA,EAAEoB,eAAe7B,IAAI2G,EAAEX,KAAKhG,GACjD,OAAO2G,IA0DX0+E,EAAUzjF,UAAY,CACpB8S,IAAK,WAAcA,EAAInS,OACvB08B,MA0yBF,SAAgBy6B,GAEd,GAAIn3D,KAAK8D,MACP,MAAM9D,KAAK8D,MAEb,GAJa9D,KAIFwjF,OACT,OAAO1/E,EALI9D,KAMT,wDAEJ,GAAc,OAAVm3D,EACF,OAAOhlD,EATInS,MAWQ,iBAAVm3D,IACTA,EAAQA,EAAMnvD,YAEhB,IAAIvK,EAAI,EACJK,EAAI,GACR,KACEA,EAAIy+B,EAAO46B,EAAO15D,KAjBPuC,KAkBJlC,EAAIA,EAENA,GAcL,OAlCWkC,KAwBAkkF,gBAxBAlkF,KAyBFoa,WACG,OAANtc,GA1BKkC,KA2BA07B,OA3BA17B,KA4BAmkF,OAAS,GA5BTnkF,KA8BAmkF,UA9BAnkF,KAkCIkhB,OACb,KAAKksB,EAAEw2C,MAEL,GArCO5jF,KAoCAkhB,MAAQksB,EAAEi3C,iBACP,WAANvmF,EACF,SAEFwmF,EAxCOtkF,KAwCiBlC,GACxB,SAEF,KAAKsvC,EAAEi3C,iBACLC,EA5COtkF,KA4CiBlC,GACxB,SAEF,KAAKsvC,EAAEm3C,KACL,GAhDOvkF,KAgDI0jF,UAhDJ1jF,KAgDuByjF,WAAY,CAExC,IADA,IAAIe,EAAS/mF,EAAI,EACVK,GAAW,MAANA,GAAmB,MAANA,IACvBA,EAAIy+B,EAAO46B,EAAO15D,OAnDfuC,KAoDakkF,gBApDblkF,KAqDMoa,WACG,OAANtc,GAtDHkC,KAuDQ07B,OAvDR17B,KAwDQmkF,OAAS,GAxDjBnkF,KA0DQmkF,UA1DRnkF,KA8DEykF,UAAYttB,EAAMxH,UAAU60B,EAAQ/mF,EAAI,GAEvC,MAANK,GAhEGkC,KAgEmB0jF,SAhEnB1jF,KAgEqCyjF,aAhErCzjF,KAgE2D6iF,QAI3D6B,EAAa5mF,IApEbkC,KAoE4B0jF,UApE5B1jF,KAoE8CyjF,YACjDkB,EArEG3kF,KAqEgB,mCAEX,MAANlC,EAvECkC,KAwEIkhB,MAAQksB,EAAEw3C,YAxEd5kF,KA0EIykF,UAAY3mF,IA1EhBkC,KAiEEkhB,MAAQksB,EAAEy3C,UAjEZ7kF,KAkEE8kF,iBAlEF9kF,KAkE4Boa,UAWnC,SAEF,KAAKgzB,EAAE23C,OAEK,MAANjnF,EAjFGkC,KAkFEkhB,MAAQksB,EAAE43C,cAlFZhlF,KAoFEilF,QAAUnnF,EAEnB,SAEF,KAAKsvC,EAAE43C,cACK,MAANlnF,EAzFGkC,KA0FEkhB,MAAQksB,EAAE83C,WA1FZllF,KA4FEilF,QAAU,IAAMnnF,EA5FlBkC,KA6FEkhB,MAAQksB,EAAE23C,QAEnB,SAEF,KAAK33C,EAAEy3C,UAEL,GAAU,MAAN/mF,EAnGGkC,KAoGEkhB,MAAQksB,EAAE+3C,UApGZnlF,KAqGEolF,SAAW,QACb,GAAIV,EAAa5mF,SAEjB,GAAIunF,EAAQC,EAAWxnF,GAxGvBkC,KAyGEkhB,MAAQksB,EAAEm4C,SAzGZvlF,KA0GEwlF,QAAU1nF,OACZ,GAAU,MAANA,EA3GJkC,KA4GEkhB,MAAQksB,EAAE83C,UA5GZllF,KA6GEwlF,QAAU,QACZ,GAAU,MAAN1nF,EA9GJkC,KA+GEkhB,MAAQksB,EAAEq4C,UA/GZzlF,KAgHE0lF,aAhHF1lF,KAgHwB2lF,aAAe,OACvC,CAGL,GAFAhB,EAlHK3kF,KAkHc,eAlHdA,KAoHM8kF,iBAAmB,EApHzB9kF,KAoHoCoa,SAAU,CACjD,IAAIi2C,EArHDrwD,KAqHcoa,SArHdpa,KAqHgC8kF,iBACnChnF,EAAI,IAAI+B,MAAMwwD,GAAKtlD,KAAK,KAAOjN,EAtH5BkC,KAwHEykF,UAAY,IAAM3mF,EAxHpBkC,KAyHEkhB,MAAQksB,EAAEm3C,KAEnB,SAEF,KAAKn3C,EAAE+3C,UAxzBD,aA2rBGnlF,KA8HKolF,SAAWtnF,GAAG+mB,eACxB+gE,EA/HK5lF,KA+HY,eA/HZA,KAgIEkhB,MAAQksB,EAAEy4C,MAhIZ7lF,KAiIEolF,SAAW,GAjIbplF,KAkIE6+D,MAAQ,IAlIV7+D,KAmIWolF,SAAWtnF,IAAM,MAnI5BkC,KAoIEkhB,MAAQksB,EAAE04C,QApIZ9lF,KAqIEy+D,QAAU,GArIZz+D,KAsIEolF,SAAW,IAh0Bd,aA0rBCplF,KAuIYolF,SAAWtnF,GAAG+mB,eAvI1B7kB,KAwIEkhB,MAAQksB,EAAE24C,SAxIZ/lF,KAyIMg/D,SAzINh/D,KAyIwB0jF,UAC3BiB,EA1IG3kF,KA2ID,+CA3ICA,KA6IEg/D,QAAU,GA7IZh/D,KA8IEolF,SAAW,IACH,MAANtnF,GACT8nF,EAhJK5lF,KAgJY,oBAhJZA,KAgJwColF,UAhJxCplF,KAiJEolF,SAAW,GAjJbplF,KAkJEkhB,MAAQksB,EAAEm3C,MACRyB,EAAQloF,IAnJZkC,KAoJEkhB,MAAQksB,EAAE64C,iBApJZjmF,KAqJEolF,UAAYtnF,GArJdkC,KAuJEolF,UAAYtnF,EAErB,SAEF,KAAKsvC,EAAE64C,iBACDnoF,IA5JGkC,KA4JU0E,IA5JV1E,KA6JEkhB,MAAQksB,EAAE+3C,UA7JZnlF,KA8JE0E,EAAI,IA9JN1E,KAgKAolF,UAAYtnF,EACnB,SAEF,KAAKsvC,EAAE24C,QACK,MAANjoF,GApKGkC,KAqKEkhB,MAAQksB,EAAEm3C,KACjBqB,EAtKK5lF,KAsKY,YAtKZA,KAsKgCg/D,SAtKhCh/D,KAuKEg/D,SAAU,IAvKZh/D,KAyKEg/D,SAAWlhE,EACR,MAANA,EA1KCkC,KA2KIkhB,MAAQksB,EAAE84C,YACRF,EAAQloF,KA5KdkC,KA6KIkhB,MAAQksB,EAAE+4C,eA7KdnmF,KA8KI0E,EAAI5G,IAGf,SAEF,KAAKsvC,EAAE+4C,eAnLEnmF,KAoLAg/D,SAAWlhE,EACdA,IArLGkC,KAqLU0E,IArLV1E,KAsLE0E,EAAI,GAtLN1E,KAuLEkhB,MAAQksB,EAAE24C,SAEnB,SAEF,KAAK34C,EAAE84C,YA3LElmF,KA4LAg/D,SAAWlhE,EACR,MAANA,EA7LGkC,KA8LEkhB,MAAQksB,EAAE24C,QACRC,EAAQloF,KA/LZkC,KAgMEkhB,MAAQksB,EAAEg5C,mBAhMZpmF,KAiME0E,EAAI5G,GAEb,SAEF,KAAKsvC,EAAEg5C,mBArMEpmF,KAsMAg/D,SAAWlhE,EACdA,IAvMGkC,KAuMU0E,IAvMV1E,KAwMEkhB,MAAQksB,EAAE84C,YAxMZlmF,KAyME0E,EAAI,IAEb,SAEF,KAAK0oC,EAAE04C,QACK,MAANhoF,EA9MGkC,KA+MEkhB,MAAQksB,EAAEi5C,eA/MZrmF,KAiNEy+D,SAAW3gE,EAEpB,SAEF,KAAKsvC,EAAEi5C,eACK,MAANvoF,GAtNGkC,KAuNEkhB,MAAQksB,EAAEk5C,cAvNZtmF,KAwNEy+D,QAAU8nB,EAxNZvmF,KAwN4Bw/D,IAxN5Bx/D,KAwNwCy+D,SAxNxCz+D,KAyNMy+D,SACTmnB,EA1NG5lF,KA0Nc,YA1NdA,KA0NkCy+D,SA1NlCz+D,KA4NEy+D,QAAU,KA5NZz+D,KA8NEy+D,SAAW,IAAM3gE,EA9NnBkC,KA+NEkhB,MAAQksB,EAAE04C,SAEnB,SAEF,KAAK14C,EAAEk5C,cACK,MAANxoF,GACF6mF,EArOK3kF,KAqOc,qBArOdA,KAwOEy+D,SAAW,KAAO3gE,EAxOpBkC,KAyOEkhB,MAAQksB,EAAE04C,SAzOZ9lF,KA2OEkhB,MAAQksB,EAAEm3C,KAEnB,SAEF,KAAKn3C,EAAEy4C,MACK,MAAN/nF,EAhPGkC,KAiPEkhB,MAAQksB,EAAEo5C,aAjPZxmF,KAmPE6+D,OAAS/gE,EAElB,SAEF,KAAKsvC,EAAEo5C,aACK,MAAN1oF,EAxPGkC,KAyPEkhB,MAAQksB,EAAEq5C,gBAzPZzmF,KA2PE6+D,OAAS,IAAM/gE,EA3PjBkC,KA4PEkhB,MAAQksB,EAAEy4C,OAEnB,SAEF,KAAKz4C,EAAEq5C,eACK,MAAN3oF,GAjQGkC,KAkQM6+D,OACT+mB,EAnQG5lF,KAmQc,UAnQdA,KAmQgC6+D,OAErC+mB,EArQK5lF,KAqQY,gBArQZA,KAsQE6+D,MAAQ,GAtQV7+D,KAuQEkhB,MAAQksB,EAAEm3C,MACF,MAANzmF,EAxQJkC,KAyQE6+D,OAAS,KAzQX7+D,KA2QE6+D,OAAS,KAAO/gE,EA3QlBkC,KA4QEkhB,MAAQksB,EAAEy4C,OAEnB,SAEF,KAAKz4C,EAAEq4C,UACK,MAAN3nF,EAjRGkC,KAkREkhB,MAAQksB,EAAEs5C,iBACRhC,EAAa5mF,GAnRjBkC,KAoREkhB,MAAQksB,EAAEu5C,eApRZ3mF,KAsRE0lF,cAAgB5nF,EAEzB,SAEF,KAAKsvC,EAAEu5C,eACL,IA3RO3mF,KA2RK2lF,cAAgBjB,EAAa5mF,GACvC,SACe,MAANA,EA7RJkC,KA8REkhB,MAAQksB,EAAEs5C,iBA9RZ1mF,KAgSE2lF,cAAgB7nF,EAEzB,SAEF,KAAKsvC,EAAEs5C,iBACK,MAAN5oF,GACF8nF,EAtSK5lF,KAsSY,0BAA2B,CAC1ChC,KAvSGgC,KAuSU0lF,aACbhjF,KAxSG1C,KAwSU2lF,eAxSV3lF,KA0SE0lF,aA1SF1lF,KA0SwB2lF,aAAe,GA1SvC3lF,KA2SEkhB,MAAQksB,EAAEm3C,OA3SZvkF,KA6SE2lF,cAAgB,IAAM7nF,EA7SxBkC,KA8SEkhB,MAAQksB,EAAEu5C,gBAEnB,SAEF,KAAKv5C,EAAEm4C,SACDF,EAAQuB,EAAU9oF,GAnTfkC,KAoTEwlF,SAAW1nF,GAElB+oF,EAtTK7mF,MAuTK,MAANlC,EACFgpF,EAxTG9mF,MAyTY,MAANlC,EAzTNkC,KA0TIkhB,MAAQksB,EAAE25C,gBAEZrC,EAAa5mF,IAChB6mF,EA7TC3kF,KA6TkB,iCA7TlBA,KA+TIkhB,MAAQksB,EAAE45C,SAGrB,SAEF,KAAK55C,EAAE25C,eACK,MAANjpF,GACFgpF,EAtUK9mF,MAsUW,GAChBinF,EAvUKjnF,QAyUL2kF,EAzUK3kF,KAyUc,kDAzUdA,KA0UEkhB,MAAQksB,EAAE45C,QAEnB,SAEF,KAAK55C,EAAE45C,OAEL,GAAItC,EAAa5mF,GACf,SACe,MAANA,EACTgpF,EAnVK9mF,MAoVU,MAANlC,EApVJkC,KAqVEkhB,MAAQksB,EAAE25C,eACR1B,EAAQC,EAAWxnF,IAtVvBkC,KAuVEknF,WAAappF,EAvVfkC,KAwVEmnF,YAAc,GAxVhBnnF,KAyVEkhB,MAAQksB,EAAEg6C,aAEjBzC,EA3VK3kF,KA2Vc,0BAErB,SAEF,KAAKotC,EAAEg6C,YACK,MAANtpF,EAhWGkC,KAiWEkhB,MAAQksB,EAAEi6C,aACF,MAANvpF,GACT6mF,EAnWK3kF,KAmWc,2BAnWdA,KAoWEmnF,YApWFnnF,KAoWuBknF,WAC5BI,EArWKtnF,MAsWL8mF,EAtWK9mF,OAuWI0kF,EAAa5mF,GAvWjBkC,KAwWEkhB,MAAQksB,EAAEm6C,sBACRlC,EAAQuB,EAAU9oF,GAzWtBkC,KA0WEknF,YAAcppF,EAErB6mF,EA5WK3kF,KA4Wc,0BAErB,SAEF,KAAKotC,EAAEm6C,sBACL,GAAU,MAANzpF,EAjXGkC,KAkXEkhB,MAAQksB,EAAEi6C,iBACZ,IAAI3C,EAAa5mF,GACtB,SAEA6mF,EAtXK3kF,KAsXc,2BAtXdA,KAuXEgqC,IAAIz2B,WAvXNvT,KAuXwBknF,YAAc,GAvXtClnF,KAwXEmnF,YAAc,GACrBvB,EAzXK5lF,KAyXY,cAAe,CAC9BhC,KA1XGgC,KA0XUknF,WACbxoF,MAAO,KA3XJsB,KA6XEknF,WAAa,GACV,MAANppF,EACFgpF,EA/XG9mF,MAgYMqlF,EAAQC,EAAWxnF,IAhYzBkC,KAiYIknF,WAAappF,EAjYjBkC,KAkYIkhB,MAAQksB,EAAEg6C,cAEjBzC,EApYG3kF,KAoYgB,0BApYhBA,KAqYIkhB,MAAQksB,EAAE45C,QAGrB,SAEF,KAAK55C,EAAEi6C,aACL,GAAI3C,EAAa5mF,GACf,SACSkoF,EAAQloF,IA7YZkC,KA8YE0E,EAAI5G,EA9YNkC,KA+YEkhB,MAAQksB,EAAEo6C,sBAEjB7C,EAjZK3kF,KAiZc,4BAjZdA,KAkZEkhB,MAAQksB,EAAEq6C,sBAlZZznF,KAmZEmnF,YAAcrpF,GAEvB,SAEF,KAAKsvC,EAAEo6C,oBACL,GAAI1pF,IAxZGkC,KAwZU0E,EAAG,CACR,MAAN5G,EAzZCkC,KA0ZIkhB,MAAQksB,EAAEs6C,sBA1Zd1nF,KA4ZImnF,aAAerpF,EAExB,SAEFwpF,EAhaOtnF,WAiaA0E,EAAI,GAjaJ1E,KAkaAkhB,MAAQksB,EAAEu6C,oBACjB,SAEF,KAAKv6C,EAAEu6C,oBACDjD,EAAa5mF,GAtaVkC,KAuaEkhB,MAAQksB,EAAE45C,OACF,MAANlpF,EACTgpF,EAzaK9mF,MA0aU,MAANlC,EA1aJkC,KA2aEkhB,MAAQksB,EAAE25C,eACR1B,EAAQC,EAAWxnF,IAC5B6mF,EA7aK3kF,KA6ac,oCA7adA,KA8aEknF,WAAappF,EA9afkC,KA+aEmnF,YAAc,GA/ahBnnF,KAgbEkhB,MAAQksB,EAAEg6C,aAEjBzC,EAlbK3kF,KAkbc,0BAErB,SAEF,KAAKotC,EAAEq6C,sBACL,IAAKG,EAAY9pF,GAAI,CACT,MAANA,EAxbCkC,KAybIkhB,MAAQksB,EAAEy6C,sBAzbd7nF,KA2bImnF,aAAerpF,EAExB,SAEFwpF,EA/bOtnF,MAgcG,MAANlC,EACFgpF,EAjcK9mF,WAmcEkhB,MAAQksB,EAAE45C,OAEnB,SAEF,KAAK55C,EAAE83C,UACL,GAxcOllF,KAwcKwlF,QAaK,MAAN1nF,EACTmpF,EAtdKjnF,MAudIqlF,EAAQuB,EAAU9oF,GAvdtBkC,KAwdEwlF,SAAW1nF,EAxdbkC,KAydWilF,QAzdXjlF,KA0dEilF,QAAU,KA1dZjlF,KA0d0BwlF,QA1d1BxlF,KA2dEwlF,QAAU,GA3dZxlF,KA4dEkhB,MAAQksB,EAAE23C,SAEZL,EAAa5mF,IAChB6mF,EA/dG3kF,KA+dgB,kCA/dhBA,KAieEkhB,MAAQksB,EAAE06C,yBAzBE,CACnB,GAAIpD,EAAa5mF,GACf,SACSiqF,EAASzC,EAAWxnF,GA3c1BkC,KA4cQilF,QA5cRjlF,KA6cMilF,QAAU,KAAOnnF,EA7cvBkC,KA8cMkhB,MAAQksB,EAAE23C,QAEjBJ,EAhdC3kF,KAgdkB,mCAhdlBA,KAmdIwlF,QAAU1nF,EAgBrB,SAEF,KAAKsvC,EAAE06C,oBACL,GAAIpD,EAAa5mF,GACf,SAEQ,MAANA,EACFmpF,EA1eKjnF,MA4eL2kF,EA5eK3kF,KA4ec,qCAErB,SAEF,KAAKotC,EAAEw3C,YACP,KAAKx3C,EAAEs6C,sBACP,KAAKt6C,EAAEy6C,sBACL,IAAIG,EACAzzE,EACJ,OArfOvU,KAqfQkhB,OACb,KAAKksB,EAAEw3C,YACLoD,EAAc56C,EAAEm3C,KAChBhwE,EAAS,WACT,MAEF,KAAK64B,EAAEs6C,sBACLM,EAAc56C,EAAEo6C,oBAChBjzE,EAAS,cACT,MAEF,KAAK64B,EAAEy6C,sBACLG,EAAc56C,EAAEq6C,sBAChBlzE,EAAS,cAIH,MAANzW,GAtgBGkC,KAugBEuU,IAAW0zE,EAvgBbjoF,WAwgBEkoF,OAAS,GAxgBXloF,KAygBEkhB,MAAQ8mE,GACN3C,EA1gBJrlF,KA0gBmBkoF,OAAO7nF,OAAS8nF,EAAaC,EAAatqF,GA1gB7DkC,KA2gBEkoF,QAAUpqF,GAEjB6mF,EA7gBK3kF,KA6gBc,oCA7gBdA,KA8gBEuU,IAAW,IA9gBbvU,KA8gB0BkoF,OAASpqF,EA9gBnCkC,KA+gBEkoF,OAAS,GA/gBXloF,KAghBEkhB,MAAQ8mE,GAGjB,SAEF,QACE,MAAM,IAAI7/E,MAthBHnI,KAshBiB,kBAthBjBA,KAshB4CkhB,OAthB5ClhB,KA0hBFoa,UA1hBEpa,KA0hBiBojF,qBA73ChC,SAA4B9jB,GAG1B,IAFA,IAAI+oB,EAAa7gE,KAAKmB,IAAIwzC,EAAI8mB,kBAAmB,IAC7CqF,EAAY,EACP7qF,EAAI,EAAGC,EAAIwlF,EAAQ7iF,OAAQ5C,EAAIC,EAAGD,IAAK,CAC9C,IAAIkM,EAAM21D,EAAO4jB,EAAQzlF,IAAI4C,OAC7B,GAAIsJ,EAAM0+E,EAKR,OAAQnF,EAAQzlF,IACd,IAAK,WACH8qF,EAAUjpB,GACV,MAEF,IAAK,QACHsmB,EAAStmB,EAAQ,UAAWA,EAAOT,OACnCS,EAAOT,MAAQ,GACf,MAEF,IAAK,SACH+mB,EAAStmB,EAAQ,WAAYA,EAAO2lB,QACpC3lB,EAAO2lB,OAAS,GAChB,MAEF,QACEnhF,EAAMw7D,EAAQ,+BAAiC4jB,EAAQzlF,IAG7D6qF,EAAY9gE,KAAKmB,IAAI2/D,EAAW3+E,GAGlC,IAAI9L,EAAIs+D,EAAI8mB,kBAAoBqF,EAChChpB,EAAO8jB,oBAAsBvlF,EAAIyhE,EAAOllD,SA61CtCouE,CA3hBWxoF,MA6hBb,OA7hBaA;uDA1yBb2E,OAAQ,WAAiC,OAAnB3E,KAAK8D,MAAQ,KAAa9D,MAChDq/B,MAAO,WAAc,OAAOr/B,KAAK08B,MAAM,OACvC8b,MAAO,WAjBT,IAAuB8mB,EACrBipB,EADqBjpB,EAiBat/D,MAfb,KAAjBs/D,EAAOT,QACT+mB,EAAStmB,EAAQ,UAAWA,EAAOT,OACnCS,EAAOT,MAAQ,IAEK,KAAlBS,EAAO2lB,SACTW,EAAStmB,EAAQ,WAAYA,EAAO2lB,QACpC3lB,EAAO2lB,OAAS,MAapB,IACExxB,EAAS,EAAQ,KAAUA,OAC3B,MAAOxyB,GACPwyB,EAAS,aAGX,IAAIg1B,EAActsB,EAAIioB,OAAOj0E,QAAO,SAAUm0D,GAC5C,MAAc,UAAPA,GAAyB,QAAPA,KAO3B,SAASye,EAAWF,EAAQrjB,GAC1B,KAAMx/D,gBAAgB+iF,GACpB,OAAO,IAAIA,EAAUF,EAAQrjB,GAG/B/L,EAAOnzD,MAAMN,MAEbA,KAAK0oF,QAAU,IAAI5F,EAAUD,EAAQrjB,GACrCx/D,KAAK0R,UAAW,EAChB1R,KAAKyR,UAAW,EAEhB,IAAIk3E,EAAK3oF,KAETA,KAAK0oF,QAAQ72E,MAAQ,WACnB82E,EAAGzrE,KAAK,QAGVld,KAAK0oF,QAAQljE,QAAU,SAAU4tC,GAC/Bu1B,EAAGzrE,KAAK,QAASk2C,GAIjBu1B,EAAGD,QAAQ5kF,MAAQ,MAGrB9D,KAAK4oF,SAAW,KAEhBH,EAAYphF,SAAQ,SAAUi9D,GAC5BnmE,OAAOC,eAAeuqF,EAAI,KAAOrkB,EAAI,CACnChmE,IAAK,WACH,OAAOqqF,EAAGD,QAAQ,KAAOpkB,IAE3B/xD,IAAK,SAAU6lB,GACb,IAAKA,EAGH,OAFAuwD,EAAGtuD,mBAAmBiqC,GACtBqkB,EAAGD,QAAQ,KAAOpkB,GAAMlsC,EACjBA,EAETuwD,EAAGvrE,GAAGknD,EAAIlsC,IAEZ/5B,YAAY,EACZ4jC,cAAc,OAKpB8gD,EAAU1jF,UAAYlB,OAAOY,OAAO00D,EAAOp0D,UAAW,CACpDY,YAAa,CACXvB,MAAOqkF,KAIXA,EAAU1jF,UAAUq9B,MAAQ,SAAUv2B,GACpC,GAAsB,mBAAXm9C,GACkB,mBAApBA,EAAOzvC,UACdyvC,EAAOzvC,SAAS1N,GAAO,CACvB,IAAKnG,KAAK4oF,SAAU,CAClB,IAAIC,EAAK,EAAQ,IAAkBnwB,cACnC14D,KAAK4oF,SAAW,IAAIC,EAAG,QAEzB1iF,EAAOnG,KAAK4oF,SAASlsD,MAAMv2B,GAK7B,OAFAnG,KAAK0oF,QAAQhsD,MAAMv2B,EAAK6B,YACxBhI,KAAKkd,KAAK,OAAQ/W,IACX,GAGT48E,EAAU1jF,UAAU8S,IAAM,SAAUglD,GAKlC,OAJIA,GAASA,EAAM92D,QACjBL,KAAK08B,MAAMy6B,GAEbn3D,KAAK0oF,QAAQv2E,OACN,GAGT4wE,EAAU1jF,UAAU+d,GAAK,SAAUknD,EAAIz9D,GACrC,IAAI8hF,EAAK3oF,KAST,OARK2oF,EAAGD,QAAQ,KAAOpkB,KAAoC,IAA7BmkB,EAAYhoF,QAAQ6jE,KAChDqkB,EAAGD,QAAQ,KAAOpkB,GAAM,WACtB,IAAIvzD,EAA4B,IAArB3Q,UAAUC,OAAe,CAACD,UAAU,IAAMP,MAAMS,MAAM,KAAMF,WACvE2Q,EAAK7C,OAAO,EAAG,EAAGo2D,GAClBqkB,EAAGzrE,KAAK5c,MAAMqoF,EAAI53E,KAIf0iD,EAAOp0D,UAAU+d,GAAGxf,KAAK+qF,EAAIrkB,EAAIz9D,IAK1C,IAEIiiF,EAAgB,uCAEhB7E,EAAS,CAAE7kB,IAAK0pB,EAAe9E,MADb,iCASlBsB,EAAY,4JAEZsB,EAAW,gMAEXwB,EAAc,6JACdD,EAAa,iMAEjB,SAASzD,EAAc5mF,GACrB,MAAa,MAANA,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,EAGlD,SAASkoF,EAASloF,GAChB,MAAa,MAANA,GAAmB,MAANA,EAGtB,SAAS8pF,EAAa9pF,GACpB,MAAa,MAANA,GAAa4mF,EAAa5mF,GAGnC,SAASunF,EAAS9J,EAAOz9E,GACvB,OAAOy9E,EAAM1lE,KAAK/X,GAGpB,SAASiqF,EAAUxM,EAAOz9E,GACxB,OAAQunF,EAAQ9J,EAAOz9E,GAGzB,IAwrCQirF,EACAnpD,EACAopD,EA1rCJ57C,EAAI,EAsTR,IAAK,IAAI5tC,KArTT28D,EAAIz2B,MAAQ,CACVk+C,MAAOx2C,IACPi3C,iBAAkBj3C,IAClBm3C,KAAMn3C,IACNw3C,YAAax3C,IACby3C,UAAWz3C,IACX+3C,UAAW/3C,IACX64C,iBAAkB74C,IAClB24C,QAAS34C,IACT+4C,eAAgB/4C,IAChB84C,YAAa94C,IACbg5C,mBAAoBh5C,IACpB67C,iBAAkB77C,IAClB04C,QAAS14C,IACTi5C,eAAgBj5C,IAChBk5C,cAAel5C,IACfy4C,MAAOz4C,IACPo5C,aAAcp5C,IACdq5C,eAAgBr5C,IAChBq4C,UAAWr4C,IACXu5C,eAAgBv5C,IAChBs5C,iBAAkBt5C,IAClBm4C,SAAUn4C,IACV25C,eAAgB35C,IAChB45C,OAAQ55C,IACRg6C,YAAah6C,IACbm6C,sBAAuBn6C,IACvBi6C,aAAcj6C,IACdo6C,oBAAqBp6C,IACrBu6C,oBAAqBv6C,IACrBq6C,sBAAuBr6C,IACvBs6C,sBAAuBt6C,IACvBy6C,sBAAuBz6C,IACvB83C,UAAW93C,IACX06C,oBAAqB16C,IACrB23C,OAAQ33C,IACR43C,cAAe53C,KAGjB+uB,EAAI2nB,aAAe,CACjB,IAAO,IACP,GAAM,IACN,GAAM,IACN,KAAQ,IACR,KAAQ,KAGV3nB,EAAI0nB,SAAW,CACb,IAAO,IACP,GAAM,IACN,GAAM,IACN,KAAQ,IACR,KAAQ,IACR,MAAS,IACT,OAAU,IACV,MAAS,IACT,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,IAAO,IACP,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,OAAU,IACV,MAAS,IACT,OAAU,IACV,OAAU,IACV,OAAU,IACV,KAAQ,IACR,MAAS,IACT,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,OAAU,IACV,MAAS,IACT,MAAS,IACT,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,OAAU,IACV,MAAS,IACT,OAAU,IACV,IAAO,IACP,KAAQ,IACR,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,OAAU,IACV,MAAS,IACT,OAAU,IACV,OAAU,IACV,OAAU,IACV,KAAQ,IACR,MAAS,IACT,MAAS,IACT,OAAU,IACV,MAAS,IACT,OAAU,IACV,KAAQ,IACR,OAAU,IACV,KAAQ,IACR,KAAQ,IACR,IAAO,IACP,KAAQ,IACR,MAAS,IACT,KAAQ,IACR,MAAS,IACT,OAAU,IACV,IAAO,IACP,OAAU,IACV,KAAQ,IACR,IAAO,IACP,KAAQ,IACR,MAAS,IACT,IAAO,IACP,IAAO,IACP,KAAQ,IACR,IAAO,IACP,OAAU,IACV,KAAQ,IACR,KAAQ,IACR,KAAQ,IACR,MAAS,IACT,MAAS,IACT,KAAQ,IACR,OAAU,IACV,MAAS,IACT,KAAQ,IACR,MAAS,IACT,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,MAAS,IACT,OAAU,IACV,MAAS,IACT,MAAS,IACT,OAAU,IACV,OAAU,IACV,KAAQ,IACR,KAAQ,IACR,KAAQ,IACR,MAAS,IACT,MAAS,IACT,KAAQ,IACR,MAAS,IACT,MAAS,IACT,QAAW,IACX,KAAQ,IACR,IAAO,IACP,MAAS,IACT,KAAQ,IACR,MAAS,IACT,OAAU,IACV,GAAM,IACN,GAAM,IACN,GAAM,IACN,QAAW,IACX,GAAM,IACN,IAAO,IACP,MAAS,IACT,IAAO,IACP,QAAW,IACX,IAAO,IACP,IAAO,IACP,IAAO,IACP,MAAS,IACT,MAAS,IACT,KAAQ,IACR,MAAS,IACT,MAAS,IACT,QAAW,IACX,KAAQ,IACR,IAAO,IACP,MAAS,IACT,KAAQ,IACR,MAAS,IACT,OAAU,IACV,GAAM,IACN,GAAM,IACN,GAAM,IACN,QAAW,IACX,GAAM,IACN,IAAO,IACP,OAAU,IACV,MAAS,IACT,IAAO,IACP,QAAW,IACX,IAAO,IACP,IAAO,IACP,IAAO,IACP,MAAS,IACT,SAAY,IACZ,MAAS,IACT,IAAO,IACP,KAAQ,KACR,KAAQ,KACR,OAAU,KACV,KAAQ,KACR,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAS,KACT,MAAS,KACT,MAAS,KACT,MAAS,KACT,MAAS,KACT,MAAS,KACT,MAAS,KACT,MAAS,KACT,OAAU,KACV,OAAU,KACV,KAAQ,KACR,OAAU,KACV,OAAU,KACV,MAAS,KACT,MAAS,KACT,OAAU,KACV,OAAU,KACV,MAAS,KACT,MAAS,KACT,KAAQ,KACR,MAAS,KACT,OAAU,KACV,KAAQ,KACR,MAAS,KACT,QAAW,KACX,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAS,KACT,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAU,KACV,KAAQ,KACR,MAAS,KACT,MAAS,KACT,MAAS,KACT,KAAQ,KACR,MAAS,KACT,GAAM,KACN,KAAQ,KACR,IAAO,KACP,MAAS,KACT,OAAU,KACV,MAAS,KACT,KAAQ,KACR,MAAS,KACT,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAU,KACV,IAAO,KACP,KAAQ,KACR,MAAS,KACT,GAAM,KACN,MAAS,KACT,GAAM,KACN,GAAM,KACN,IAAO,KACP,IAAO,KACP,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAS,KACT,OAAU,KACV,KAAQ,KACR,KAAQ,KACR,MAAS,KACT,MAAS,KACT,OAAU,KACV,OAAU,KACV,KAAQ,KACR,KAAQ,KACR,IAAO,KACP,OAAU,KACV,MAAS,KACT,OAAU,KACV,MAAS,MAGX1lF,OAAOiJ,KAAK+0D,EAAI0nB,UAAUx8E,SAAQ,SAAUrI,GAC1C,IAAIwB,EAAI27D,EAAI0nB,SAAS7kF,GACjBQ,EAAiB,iBAANgB,EAAiBmiC,OAAOimB,aAAapoD,GAAKA,EACzD27D,EAAI0nB,SAAS7kF,GAAOQ,KAGR28D,EAAIz2B,MAChBy2B,EAAIz2B,MAAMy2B,EAAIz2B,MAAMlmC,IAAMA,EAM5B,SAAS0d,EAAMoiD,EAAQjtC,EAAOlsB,GAC5Bm5D,EAAOjtC,IAAUitC,EAAOjtC,GAAOlsB,GAGjC,SAASy/E,EAAUtmB,EAAQ4pB,EAAU/iF,GAC/Bm5D,EAAOmlB,UAAU8D,EAAUjpB,GAC/BpiD,EAAKoiD,EAAQ4pB,EAAU/iF,GAGzB,SAASoiF,EAAWjpB,GAClBA,EAAOmlB,SAAW8B,EAASjnB,EAAOE,IAAKF,EAAOmlB,UAC1CnlB,EAAOmlB,UAAUvnE,EAAKoiD,EAAQ,SAAUA,EAAOmlB,UACnDnlB,EAAOmlB,SAAW,GAGpB,SAAS8B,EAAU/mB,EAAKr2C,GAGtB,OAFIq2C,EAAI/pD,OAAM0T,EAAOA,EAAK1T,QACtB+pD,EAAI/yB,YAAWtjB,EAAOA,EAAKxT,QAAQ,OAAQ,MACxCwT,EAGT,SAASrlB,EAAOw7D,EAAQlM,GAUtB,OATAm1B,EAAUjpB,GACNA,EAAO4kB,gBACT9wB,GAAM,WAAakM,EAAO5jC,KACxB,aAAe4jC,EAAO6kB,OACtB,WAAa7kB,EAAOxhE,GAExBs1D,EAAK,IAAIjrD,MAAMirD,GACfkM,EAAOx7D,MAAQsvD,EACfl2C,EAAKoiD,EAAQ,UAAWlM,GACjBkM,EAGT,SAASntD,EAAKmtD,GAYZ,OAXIA,EAAOokB,UAAYpkB,EAAOmkB,YAAYkB,EAAWrlB,EAAQ,qBACxDA,EAAOp+C,QAAUksB,EAAEw2C,OACrBtkB,EAAOp+C,QAAUksB,EAAEi3C,kBACnB/kB,EAAOp+C,QAAUksB,EAAEm3C,MACpBzgF,EAAMw7D,EAAQ,kBAEhBipB,EAAUjpB,GACVA,EAAOxhE,EAAI,GACXwhE,EAAOkkB,QAAS,EAChBtmE,EAAKoiD,EAAQ,SACbwjB,EAAUllF,KAAK0hE,EAAQA,EAAOujB,OAAQvjB,EAAOE,KACtCF,EAGT,SAASqlB,EAAYrlB,EAAQ33D,GAC3B,GAAsB,iBAAX23D,KAAyBA,aAAkBwjB,GACpD,MAAM,IAAI36E,MAAM,0BAEdm3D,EAAOujB,QACT/+E,EAAMw7D,EAAQ33D,GAIlB,SAASk/E,EAAQvnB,GACVA,EAAOujB,SAAQvjB,EAAOkmB,QAAUlmB,EAAOkmB,QAAQlmB,EAAOikB,cAC3D,IAAI33E,EAAS0zD,EAAOoZ,KAAKpZ,EAAOoZ,KAAKr4E,OAAS,IAAMi/D,EAChDt1B,EAAMs1B,EAAOt1B,IAAM,CAAEhsC,KAAMshE,EAAOkmB,QAASjyE,WAAY,IAGvD+rD,EAAOE,IAAIwkB,QACbh6C,EAAIlrC,GAAK8M,EAAO9M,IAElBwgE,EAAOykB,WAAW1jF,OAAS,EAC3BulF,EAAStmB,EAAQ,iBAAkBt1B,GAGrC,SAASm/C,EAAOnrF,EAAMorF,GACpB,IACIC,EADIrrF,EAAKyC,QAAQ,KACF,EAAI,CAAE,GAAIzC,GAASA,EAAKy9B,MAAM,KAC7CkoB,EAAS0lC,EAAS,GAClBC,EAAQD,EAAS,GAQrB,OALID,GAAsB,UAATprF,IACf2lD,EAAS,QACT2lC,EAAQ,IAGH,CAAE3lC,OAAQA,EAAQ2lC,MAAOA,GAGlC,SAAShC,EAAQhoB,GAKf,GAJKA,EAAOujB,SACVvjB,EAAO4nB,WAAa5nB,EAAO4nB,WAAW5nB,EAAOikB,eAGO,IAAlDjkB,EAAOykB,WAAWtjF,QAAQ6+D,EAAO4nB,aACnC5nB,EAAOt1B,IAAIz2B,WAAWjU,eAAeggE,EAAO4nB,YAC5C5nB,EAAO4nB,WAAa5nB,EAAO6nB,YAAc,OAF3C,CAMA,GAAI7nB,EAAOE,IAAIwkB,MAAO,CACpB,IAAIuF,EAAKJ,EAAM7pB,EAAO4nB,YAAY,GAC9BvjC,EAAS4lC,EAAG5lC,OACZ2lC,EAAQC,EAAGD,MAEf,GAAe,UAAX3lC,EAEF,GAAc,QAAV2lC,GAAmBhqB,EAAO6nB,cAAgB2B,EAC5CnE,EAAWrlB,EACT,gCAAkCwpB,EAAgB,aACrCxpB,EAAO6nB,kBACjB,GAAc,UAAVmC,GA7cK,kCA6cgBhqB,EAAO6nB,YACrCxC,EAAWrlB,EACT,yEACaA,EAAO6nB,iBACjB,CACL,IAAIn9C,EAAMs1B,EAAOt1B,IACbp+B,EAAS0zD,EAAOoZ,KAAKpZ,EAAOoZ,KAAKr4E,OAAS,IAAMi/D,EAChDt1B,EAAIlrC,KAAO8M,EAAO9M,KACpBkrC,EAAIlrC,GAAKX,OAAOY,OAAO6M,EAAO9M,KAEhCkrC,EAAIlrC,GAAGwqF,GAAShqB,EAAO6nB,YAO3B7nB,EAAOykB,WAAWtgF,KAAK,CAAC67D,EAAO4nB,WAAY5nB,EAAO6nB,mBAGlD7nB,EAAOt1B,IAAIz2B,WAAW+rD,EAAO4nB,YAAc5nB,EAAO6nB,YAClDvB,EAAStmB,EAAQ,cAAe,CAC9BthE,KAAMshE,EAAO4nB,WACbxoF,MAAO4gE,EAAO6nB,cAIlB7nB,EAAO4nB,WAAa5nB,EAAO6nB,YAAc,IAG3C,SAASL,EAASxnB,EAAQkqB,GACxB,GAAIlqB,EAAOE,IAAIwkB,MAAO,CAEpB,IAAIh6C,EAAMs1B,EAAOt1B,IAGbu/C,EAAKJ,EAAM7pB,EAAOkmB,SACtBx7C,EAAI2Z,OAAS4lC,EAAG5lC,OAChB3Z,EAAIs/C,MAAQC,EAAGD,MACft/C,EAAIy/C,IAAMz/C,EAAIlrC,GAAGyqF,EAAG5lC,SAAW,GAE3B3Z,EAAI2Z,SAAW3Z,EAAIy/C,MACrB9E,EAAWrlB,EAAQ,6BACjB50D,KAAKC,UAAU20D,EAAOkmB,UACxBx7C,EAAIy/C,IAAMF,EAAG5lC,QAGf,IAAI/3C,EAAS0zD,EAAOoZ,KAAKpZ,EAAOoZ,KAAKr4E,OAAS,IAAMi/D,EAChDt1B,EAAIlrC,IAAM8M,EAAO9M,KAAOkrC,EAAIlrC,IAC9BX,OAAOiJ,KAAK4iC,EAAIlrC,IAAIuI,SAAQ,SAAU9H,GACpCqmF,EAAStmB,EAAQ,kBAAmB,CAClC3b,OAAQpkD,EACRkqF,IAAKz/C,EAAIlrC,GAAGS,QAQlB,IAAK,IAAI9B,EAAI,EAAGC,EAAI4hE,EAAOykB,WAAW1jF,OAAQ5C,EAAIC,EAAGD,IAAK,CACxD,IAAIisF,EAAKpqB,EAAOykB,WAAWtmF,GACvBO,EAAO0rF,EAAG,GACVhrF,EAAQgrF,EAAG,GACXL,EAAWF,EAAMnrF,GAAM,GACvB2lD,EAAS0lC,EAAS1lC,OAClB2lC,EAAQD,EAASC,MACjBG,EAAiB,KAAX9lC,EAAgB,GAAM3Z,EAAIlrC,GAAG6kD,IAAW,GAC9Cv/C,EAAI,CACNpG,KAAMA,EACNU,MAAOA,EACPilD,OAAQA,EACR2lC,MAAOA,EACPG,IAAKA,GAKH9lC,GAAqB,UAAXA,IAAuB8lC,IACnC9E,EAAWrlB,EAAQ,6BACjB50D,KAAKC,UAAUg5C,IACjBv/C,EAAEqlF,IAAM9lC,GAEV2b,EAAOt1B,IAAIz2B,WAAWvV,GAAQoG,EAC9BwhF,EAAStmB,EAAQ,cAAel7D,GAElCk7D,EAAOykB,WAAW1jF,OAAS,EAG7Bi/D,EAAOt1B,IAAI2/C,gBAAkBH,EAG7BlqB,EAAOokB,SAAU,EACjBpkB,EAAOoZ,KAAKj1E,KAAK67D,EAAOt1B,KACxB47C,EAAStmB,EAAQ,YAAaA,EAAOt1B,KAChCw/C,IAEElqB,EAAOqkB,UAA6C,WAAjCrkB,EAAOkmB,QAAQ1/D,cAGrCw5C,EAAOp+C,MAAQksB,EAAEm3C,KAFjBjlB,EAAOp+C,MAAQksB,EAAE23C,OAInBzlB,EAAOt1B,IAAM,KACbs1B,EAAOkmB,QAAU,IAEnBlmB,EAAO4nB,WAAa5nB,EAAO6nB,YAAc,GACzC7nB,EAAOykB,WAAW1jF,OAAS,EAG7B,SAAS4mF,EAAU3nB,GACjB,IAAKA,EAAOkmB,QAIV,OAHAb,EAAWrlB,EAAQ,0BACnBA,EAAOmlB,UAAY,WACnBnlB,EAAOp+C,MAAQksB,EAAEm3C,MAInB,GAAIjlB,EAAO2lB,OAAQ,CACjB,GAAuB,WAAnB3lB,EAAOkmB,QAIT,OAHAlmB,EAAO2lB,QAAU,KAAO3lB,EAAOkmB,QAAU,IACzClmB,EAAOkmB,QAAU,QACjBlmB,EAAOp+C,MAAQksB,EAAE23C,QAGnBa,EAAStmB,EAAQ,WAAYA,EAAO2lB,QACpC3lB,EAAO2lB,OAAS,GAKlB,IAAItmF,EAAI2gE,EAAOoZ,KAAKr4E,OAChBmlF,EAAUlmB,EAAOkmB,QAChBlmB,EAAOujB,SACV2C,EAAUA,EAAQlmB,EAAOikB,cAG3B,IADA,IAAIqG,EAAUpE,EACP7mF,KAAK,CAEV,GADY2gE,EAAOoZ,KAAK/5E,GACdX,OAAS4rF,EAIjB,MAFAjF,EAAWrlB,EAAQ,wBAOvB,GAAI3gE,EAAI,EAIN,OAHAgmF,EAAWrlB,EAAQ,0BAA4BA,EAAOkmB,SACtDlmB,EAAOmlB,UAAY,KAAOnlB,EAAOkmB,QAAU,SAC3ClmB,EAAOp+C,MAAQksB,EAAEm3C,MAGnBjlB,EAAOkmB,QAAUA,EAEjB,IADA,IAAIhmF,EAAI8/D,EAAOoZ,KAAKr4E,OACbb,KAAMb,GAAG,CACd,IAAIqrC,EAAMs1B,EAAOt1B,IAAMs1B,EAAOoZ,KAAKl1E,MACnC87D,EAAOkmB,QAAUlmB,EAAOt1B,IAAIhsC,KAC5B4nF,EAAStmB,EAAQ,aAAcA,EAAOkmB,SAEtC,IAAInnD,EAAI,GACR,IAAK,IAAI5gC,KAAKusC,EAAIlrC,GAChBu/B,EAAE5gC,GAAKusC,EAAIlrC,GAAGrB,GAGhB,IAAImO,EAAS0zD,EAAOoZ,KAAKpZ,EAAOoZ,KAAKr4E,OAAS,IAAMi/D,EAChDA,EAAOE,IAAIwkB,OAASh6C,EAAIlrC,KAAO8M,EAAO9M,IAExCX,OAAOiJ,KAAK4iC,EAAIlrC,IAAIuI,SAAQ,SAAU9H,GACpC,IAAIL,EAAI8qC,EAAIlrC,GAAGS,GACfqmF,EAAStmB,EAAQ,mBAAoB,CAAE3b,OAAQpkD,EAAGkqF,IAAKvqF,OAInD,IAANP,IAAS2gE,EAAOmkB,YAAa,GACjCnkB,EAAOkmB,QAAUlmB,EAAO6nB,YAAc7nB,EAAO4nB,WAAa,GAC1D5nB,EAAOykB,WAAW1jF,OAAS,EAC3Bi/D,EAAOp+C,MAAQksB,EAAEm3C,KAGnB,SAAS0D,EAAa3oB,GACpB,IAEI9e,EAFA0nC,EAAS5oB,EAAO4oB,OAChB2B,EAAW3B,EAAOpiE,cAElBwqB,EAAS,GAEb,OAAIgvB,EAAOukB,SAASqE,GACX5oB,EAAOukB,SAASqE,GAErB5oB,EAAOukB,SAASgG,GACXvqB,EAAOukB,SAASgG,IAGA,OADzB3B,EAAS2B,GACEttD,OAAO,KACS,MAArB2rD,EAAO3rD,OAAO,IAChB2rD,EAASA,EAAOpyE,MAAM,GAEtBw6B,GADAkQ,EAAMV,SAASooC,EAAQ,KACVlgF,SAAS,MAEtBkgF,EAASA,EAAOpyE,MAAM,GAEtBw6B,GADAkQ,EAAMV,SAASooC,EAAQ,KACVlgF,SAAS,MAG1BkgF,EAASA,EAAOvyE,QAAQ,MAAO,IAC3B/M,MAAM43C,IAAQlQ,EAAOxqB,gBAAkBoiE,GACzCvD,EAAWrlB,EAAQ,4BACZ,IAAMA,EAAO4oB,OAAS,KAGxBvlD,OAAOqmD,cAAcxoC,IAG9B,SAAS8jC,EAAiBhlB,EAAQxhE,GACtB,MAANA,GACFwhE,EAAOp+C,MAAQksB,EAAEy3C,UACjBvlB,EAAOwlB,iBAAmBxlB,EAAOllD,UACvBsqE,EAAa5mF,KAGvB6mF,EAAWrlB,EAAQ,oCACnBA,EAAOmlB,SAAW3mF,EAClBwhE,EAAOp+C,MAAQksB,EAAEm3C,MAIrB,SAAShoD,EAAQ46B,EAAO15D,GACtB,IAAI6E,EAAS,GAIb,OAHI7E,EAAI05D,EAAM92D,SACZiC,EAAS60D,EAAM56B,OAAO9+B,IAEjB6E,EArVT8qC,EAAI+uB,EAAIz2B,MA23BH/C,OAAOqmD,gBAEJD,EAAqBpmD,OAAOimB,aAC5BhpB,EAAQpY,KAAKoY,MACbopD,EAAgB,WAClB,IAEIc,EACAC,EAHAC,EAAW,MACXC,EAAY,GAGZh6E,GAAS,EACT5P,EAASD,UAAUC,OACvB,IAAKA,EACH,MAAO,GAGT,IADA,IAAIiC,EAAS,KACJ2N,EAAQ5P,GAAQ,CACvB,IAAIooD,EAAYjY,OAAOpwC,UAAU6P,IACjC,IACGnH,SAAS2/C,IACVA,EAAY,GACZA,EAAY,SACZ7oB,EAAM6oB,KAAeA,EAErB,MAAMvD,WAAW,uBAAyBuD,GAExCA,GAAa,MACfwhC,EAAUxmF,KAAKglD,IAIfqhC,EAAoC,QADpCrhC,GAAa,QACiB,IAC9BshC,EAAgBthC,EAAY,KAAS,MACrCwhC,EAAUxmF,KAAKqmF,EAAeC,KAE5B95E,EAAQ,IAAM5P,GAAU4pF,EAAU5pF,OAAS2pF,KAC7C1nF,GAAUymF,EAAmBzoF,MAAM,KAAM2pF,GACzCA,EAAU5pF,OAAS,GAGvB,OAAOiC,GAGLnE,OAAOC,eACTD,OAAOC,eAAeukC,OAAQ,gBAAiB,CAC7CjkC,MAAOsqF,EACP/mD,cAAc,EACdvwB,UAAU,IAGZixB,OAAOqmD,cAAgBA,GAxhD9B,CA4hDmD/rF,K,sDC1hDpDA,EAAQqoD,WAuCR,SAAqB4kC,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClDrtF,EAAQ4wD,YAiDR,SAAsBq8B,GACpB,IAAIK,EAcA9sF,EAbA0sF,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvB1sD,EAAM,IAAI+sD,EAVhB,SAAsBN,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BG,CAAYP,EAAKG,EAAUC,IAEzCI,EAAU,EAGV/gF,EAAM2gF,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAK5sF,EAAI,EAAGA,EAAIkM,EAAKlM,GAAK,EACxB8sF,EACGI,EAAUT,EAAIz5C,WAAWhzC,KAAO,GAChCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,KAAO,GACpCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,KAAO,EACrCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,IAC/BggC,EAAIitD,KAAcH,GAAO,GAAM,IAC/B9sD,EAAIitD,KAAcH,GAAO,EAAK,IAC9B9sD,EAAIitD,KAAmB,IAANH,EAGK,IAApBD,IACFC,EACGI,EAAUT,EAAIz5C,WAAWhzC,KAAO,EAChCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,KAAO,EACvCggC,EAAIitD,KAAmB,IAANH,GAGK,IAApBD,IACFC,EACGI,EAAUT,EAAIz5C,WAAWhzC,KAAO,GAChCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,KAAO,EACpCktF,EAAUT,EAAIz5C,WAAWhzC,EAAI,KAAO,EACvCggC,EAAIitD,KAAcH,GAAO,EAAK,IAC9B9sD,EAAIitD,KAAmB,IAANH,GAGnB,OAAO9sD,GA3FTxgC,EAAQirD,cAkHR,SAAwB0iC,GAQtB,IAPA,IAAIL,EACA5gF,EAAMihF,EAAMvqF,OACZwqF,EAAalhF,EAAM,EACnBiD,EAAQ,GAIHnP,EAAI,EAAGqtF,EAAOnhF,EAAMkhF,EAAYptF,EAAIqtF,EAAMrtF,GAH9B,MAInBmP,EAAMnJ,KAAKsnF,EACTH,EAAOntF,EAAIA,EALM,MAKgBqtF,EAAOA,EAAQrtF,EAL/B,QAUF,IAAfotF,GACFN,EAAMK,EAAMjhF,EAAM,GAClBiD,EAAMnJ,KACJunF,EAAOT,GAAO,GACdS,EAAQT,GAAO,EAAK,IACpB,OAEsB,IAAfM,IACTN,GAAOK,EAAMjhF,EAAM,IAAM,GAAKihF,EAAMjhF,EAAM,GAC1CiD,EAAMnJ,KACJunF,EAAOT,GAAO,IACdS,EAAQT,GAAO,EAAK,IACpBS,EAAQT,GAAO,EAAK,IACpB,MAIJ,OAAO39E,EAAM7B,KAAK,KA3IpB,IALA,IAAIigF,EAAS,GACTL,EAAY,GACZH,EAA4B,oBAAf1rC,WAA6BA,WAAaj/C,MAEvDiR,EAAO,mEACFrT,EAAI,EAAGkM,EAAMmH,EAAKzQ,OAAQ5C,EAAIkM,IAAOlM,EAC5CutF,EAAOvtF,GAAKqT,EAAKrT,GACjBktF,EAAU75E,EAAK2/B,WAAWhzC,IAAMA,EAQlC,SAAS2sF,EAASF,GAChB,IAAIvgF,EAAMugF,EAAI7pF,OAEd,GAAIsJ,EAAM,EAAI,EACZ,MAAM,IAAIxB,MAAM,kDAKlB,IAAIkiF,EAAWH,EAAIzpF,QAAQ,KAO3B,OANkB,IAAd4pF,IAAiBA,EAAW1gF,GAMzB,CAAC0gF,EAJcA,IAAa1gF,EAC/B,EACA,EAAK0gF,EAAW,GAsEtB,SAASU,EAAaH,EAAOvkC,EAAOl0C,GAGlC,IAFA,IAAIo4E,EARoB/pC,EASpBjX,EAAS,GACJ9rC,EAAI4oD,EAAO5oD,EAAI0U,EAAK1U,GAAK,EAChC8sF,GACIK,EAAMntF,IAAM,GAAM,WAClBmtF,EAAMntF,EAAI,IAAM,EAAK,QACP,IAAfmtF,EAAMntF,EAAI,IACb8rC,EAAO9lC,KAdFunF,GADiBxqC,EAeM+pC,IAdT,GAAK,IACxBS,EAAOxqC,GAAO,GAAK,IACnBwqC,EAAOxqC,GAAO,EAAI,IAClBwqC,EAAa,GAANxqC,IAaT,OAAOjX,EAAOx+B,KAAK,IAjGrB4/E,EAAU,IAAIl6C,WAAW,IAAM,GAC/Bk6C,EAAU,IAAIl6C,WAAW,IAAM,I,cCnB/BxzC,EAAQ4oB,KAAO,SAAUtR,EAAQ4qC,EAAQ8rC,EAAMC,EAAMC,GACnD,IAAI3qF,EAAG3C,EACHutF,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT9tF,EAAIwtF,EAAQE,EAAS,EAAK,EAC1BptF,EAAIktF,GAAQ,EAAI,EAChBzrF,EAAI+U,EAAO4qC,EAAS1hD,GAOxB,IALAA,GAAKM,EAELyC,EAAIhB,GAAM,IAAO+rF,GAAU,EAC3B/rF,KAAQ+rF,EACRA,GAASH,EACFG,EAAQ,EAAG/qF,EAAS,IAAJA,EAAW+T,EAAO4qC,EAAS1hD,GAAIA,GAAKM,EAAGwtF,GAAS,GAKvE,IAHA1tF,EAAI2C,GAAM,IAAO+qF,GAAU,EAC3B/qF,KAAQ+qF,EACRA,GAASL,EACFK,EAAQ,EAAG1tF,EAAS,IAAJA,EAAW0W,EAAO4qC,EAAS1hD,GAAIA,GAAKM,EAAGwtF,GAAS,GAEvE,GAAU,IAAN/qF,EACFA,EAAI,EAAI8qF,MACH,IAAI9qF,IAAM6qF,EACf,OAAOxtF,EAAI2tF,IAAsB77D,KAAdnwB,GAAK,EAAI,GAE5B3B,GAAQ2pB,KAAKu6B,IAAI,EAAGmpC,GACpB1qF,GAAQ8qF,EAEV,OAAQ9rF,GAAK,EAAI,GAAK3B,EAAI2pB,KAAKu6B,IAAI,EAAGvhD,EAAI0qF,IAG5CjuF,EAAQy/B,MAAQ,SAAUnoB,EAAQ7V,EAAOygD,EAAQ8rC,EAAMC,EAAMC,GAC3D,IAAI3qF,EAAG3C,EAAGC,EACNstF,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAc1jE,KAAKu6B,IAAI,GAAI,IAAMv6B,KAAKu6B,IAAI,GAAI,IAAM,EAC1DtkD,EAAIwtF,EAAO,EAAKE,EAAS,EACzBptF,EAAIktF,EAAO,GAAK,EAChBzrF,EAAId,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ8oB,KAAKC,IAAI/oB,GAEbkK,MAAMlK,IAAUA,IAAUixB,KAC5B9xB,EAAI+K,MAAMlK,GAAS,EAAI,EACvB8B,EAAI6qF,IAEJ7qF,EAAIgnB,KAAKoY,MAAMpY,KAAKguD,IAAI92E,GAAS8oB,KAAKkkE,KAClChtF,GAASZ,EAAI0pB,KAAKu6B,IAAI,GAAIvhD,IAAM,IAClCA,IACA1C,GAAK,IAGLY,GADE8B,EAAI8qF,GAAS,EACNG,EAAK3tF,EAEL2tF,EAAKjkE,KAAKu6B,IAAI,EAAG,EAAIupC,IAEpBxtF,GAAK,IACf0C,IACA1C,GAAK,GAGH0C,EAAI8qF,GAASD,GACfxtF,EAAI,EACJ2C,EAAI6qF,GACK7qF,EAAI8qF,GAAS,GACtBztF,GAAMa,EAAQZ,EAAK,GAAK0pB,KAAKu6B,IAAI,EAAGmpC,GACpC1qF,GAAQ8qF,IAERztF,EAAIa,EAAQ8oB,KAAKu6B,IAAI,EAAGupC,EAAQ,GAAK9jE,KAAKu6B,IAAI,EAAGmpC,GACjD1qF,EAAI,IAID0qF,GAAQ,EAAG32E,EAAO4qC,EAAS1hD,GAAS,IAAJI,EAAUJ,GAAKM,EAAGF,GAAK,IAAKqtF,GAAQ,GAI3E,IAFA1qF,EAAKA,GAAK0qF,EAAQrtF,EAClButF,GAAQF,EACDE,EAAO,EAAG72E,EAAO4qC,EAAS1hD,GAAS,IAAJ+C,EAAU/C,GAAKM,EAAGyC,GAAK,IAAK4qF,GAAQ,GAE1E72E,EAAO4qC,EAAS1hD,EAAIM,IAAU,IAAJyB,I,gBC7D5BtC,EAAOD,QAAUw2D,EAEjB,IAAIk4B,EAAK,EAAQ,IAAUp6B,aAkB3B,SAASkC,IACPk4B,EAAG/tF,KAAKoC,MAlBK,EAAQ,GAEvBqR,CAASoiD,EAAQk4B,GACjBl4B,EAAOniD,SAAW,EAAQ,IAC1BmiD,EAAOliD,SAAW,EAAQ,KAC1BkiD,EAAOtiD,OAAS,EAAQ,KACxBsiD,EAAOC,UAAY,EAAQ,KAC3BD,EAAOE,YAAc,EAAQ,KAG7BF,EAAOA,OAASA,EAWhBA,EAAOp0D,UAAU0V,KAAO,SAASquD,EAAM32D,GACrC,IAAI3E,EAAS9H,KAEb,SAASgkE,EAAO7M,GACViM,EAAK1xD,WACH,IAAU0xD,EAAK1mC,MAAMy6B,IAAUrvD,EAAOs8D,OACxCt8D,EAAOs8D,QAOb,SAASL,IACHj8D,EAAO2J,UAAY3J,EAAOnD,QAC5BmD,EAAOnD,SAJXmD,EAAOsV,GAAG,OAAQ4mD,GAQlBZ,EAAKhmD,GAAG,QAAS2mD,GAIZX,EAAKwoB,UAAcn/E,IAA2B,IAAhBA,EAAQ0F,MACzCrK,EAAOsV,GAAG,MAAOvL,GACjB/J,EAAOsV,GAAG,QAASymD,IAGrB,IAAIgoB,GAAW,EACf,SAASh6E,IACHg6E,IACJA,GAAW,EAEXzoB,EAAKjxD,OAIP,SAAS0xD,IACHgoB,IACJA,GAAW,EAEiB,mBAAjBzoB,EAAK5nD,SAAwB4nD,EAAK5nD,WAI/C,SAASgK,EAAQ4tC,GAEf,GADA04B,IACwC,IAApCH,EAAG34B,cAAchzD,KAAM,SACzB,MAAMozD,EAQV,SAAS04B,IACPhkF,EAAOsyB,eAAe,OAAQ4pC,GAC9BZ,EAAKhpC,eAAe,QAAS2pC,GAE7Bj8D,EAAOsyB,eAAe,MAAOvoB,GAC7B/J,EAAOsyB,eAAe,QAASypC,GAE/B/7D,EAAOsyB,eAAe,QAAS5U,GAC/B49C,EAAKhpC,eAAe,QAAS5U,GAE7B1d,EAAOsyB,eAAe,MAAO0xD,GAC7BhkF,EAAOsyB,eAAe,QAAS0xD,GAE/B1oB,EAAKhpC,eAAe,QAAS0xD,GAW/B,OA5BAhkF,EAAOsV,GAAG,QAASoI,GACnB49C,EAAKhmD,GAAG,QAASoI,GAmBjB1d,EAAOsV,GAAG,MAAO0uE,GACjBhkF,EAAOsV,GAAG,QAAS0uE,GAEnB1oB,EAAKhmD,GAAG,QAAS0uE,GAEjB1oB,EAAKlmD,KAAK,OAAQpV,GAGXs7D,I,6CCzHT,IAAI9f,EAAS,EAAQ,IAAeA,OAChClyC,EAAO,EAAQ,KAMnBlU,EAAOD,QAAU,WACf,SAASojE,KAVX,SAAyBlpC,EAAU4gB,GAAe,KAAM5gB,aAAoB4gB,GAAgB,MAAM,IAAIx0C,UAAU,qCAW5GwoF,CAAgB/rF,KAAMqgE,GAEtBrgE,KAAKkM,KAAO,KACZlM,KAAK2iE,KAAO,KACZ3iE,KAAKK,OAAS,EAqDhB,OAlDAggE,EAAWhhE,UAAUoE,KAAO,SAAcJ,GACxC,IAAIywD,EAAQ,CAAE3tD,KAAM9C,EAAGjB,KAAM,MACzBpC,KAAKK,OAAS,EAAGL,KAAK2iE,KAAKvgE,KAAO0xD,EAAW9zD,KAAKkM,KAAO4nD,EAC7D9zD,KAAK2iE,KAAO7O,IACV9zD,KAAKK,QAGTggE,EAAWhhE,UAAU04B,QAAU,SAAiB10B,GAC9C,IAAIywD,EAAQ,CAAE3tD,KAAM9C,EAAGjB,KAAMpC,KAAKkM,MACd,IAAhBlM,KAAKK,SAAcL,KAAK2iE,KAAO7O,GACnC9zD,KAAKkM,KAAO4nD,IACV9zD,KAAKK,QAGTggE,EAAWhhE,UAAUyF,MAAQ,WAC3B,GAAoB,IAAhB9E,KAAKK,OAAT,CACA,IAAIgqD,EAAMrqD,KAAKkM,KAAK/F,KAGpB,OAFoB,IAAhBnG,KAAKK,OAAcL,KAAKkM,KAAOlM,KAAK2iE,KAAO,KAAU3iE,KAAKkM,KAAOlM,KAAKkM,KAAK9J,OAC7EpC,KAAKK,OACAgqD,IAGTgW,EAAWhhE,UAAUmuC,MAAQ,WAC3BxtC,KAAKkM,KAAOlM,KAAK2iE,KAAO,KACxB3iE,KAAKK,OAAS,GAGhBggE,EAAWhhE,UAAU0L,KAAO,SAAcvL,GACxC,GAAoB,IAAhBQ,KAAKK,OAAc,MAAO,GAG9B,IAFA,IAAId,EAAIS,KAAKkM,KACTm+C,EAAM,GAAK9qD,EAAE4G,KACV5G,EAAIA,EAAE6C,MACXioD,GAAO7qD,EAAID,EAAE4G,KACd,OAAOkkD,GAGVgW,EAAWhhE,UAAU2E,OAAS,SAAgB9E,GAC5C,GAAoB,IAAhBc,KAAKK,OAAc,OAAOijD,EAAOyF,MAAM,GAC3C,GAAoB,IAAhB/oD,KAAKK,OAAc,OAAOL,KAAKkM,KAAK/F,KAIxC,IAHA,IApDgBmiC,EAAKxnC,EAAQq+C,EAoDzBkL,EAAM/G,EAAO8B,YAAYlmD,IAAM,GAC/BK,EAAIS,KAAKkM,KACTzO,EAAI,EACD8B,GAvDS+oC,EAwDH/oC,EAAE4G,KAxDMrF,EAwDAupD,EAxDQlL,EAwDH1hD,EAvD5B6qC,EAAIwd,KAAKhlD,EAAQq+C,GAwDb1hD,GAAK8B,EAAE4G,KAAK9F,OACZd,EAAIA,EAAE6C,KAER,OAAOioD,GAGFgW,EA3DQ,GA8DbjvD,GAAQA,EAAK24C,SAAW34C,EAAK24C,QAAQiiC,SACvC9uF,EAAOD,QAAQoC,UAAU+R,EAAK24C,QAAQiiC,QAAU,WAC9C,IAAIr9E,EAAMyC,EAAK24C,QAAQ,CAAE1pD,OAAQL,KAAKK,SACtC,OAAOL,KAAKC,YAAYjC,KAAO,IAAM2Q,K,iCC5EzC,iCAC6B,oBAATuD,MAAwBA,MAChC7U,OACRiD,EAAQuhC,SAASxiC,UAAUiB,MAiB/B,SAAS2rF,EAAQ9gF,EAAI+gF,GACnBlsF,KAAKmsF,IAAMhhF,EACXnL,KAAKosF,SAAWF,EAflBjvF,EAAQid,WAAa,WACnB,OAAO,IAAI+xE,EAAQ3rF,EAAM1C,KAAKsc,WAAYmyE,EAAOjsF,WAAY8Y,eAE/Djc,EAAQqvF,YAAc,WACpB,OAAO,IAAIL,EAAQ3rF,EAAM1C,KAAK0uF,YAAaD,EAAOjsF,WAAYmsF,gBAEhEtvF,EAAQic,aACRjc,EAAQsvF,cAAgB,SAAS5oE,GAC3BA,GACFA,EAAQ0b,SAQZ4sD,EAAQ5sF,UAAUmtF,MAAQP,EAAQ5sF,UAAUwc,IAAM,aAClDowE,EAAQ5sF,UAAUggC,MAAQ,WACxBr/B,KAAKosF,SAASxuF,KAAKyuF,EAAOrsF,KAAKmsF,MAIjClvF,EAAQwvF,OAAS,SAASpjF,EAAMo2C,GAC9BvmC,aAAa7P,EAAKqjF,gBAClBrjF,EAAKsjF,aAAeltC,GAGtBxiD,EAAQ2vF,SAAW,SAASvjF,GAC1B6P,aAAa7P,EAAKqjF,gBAClBrjF,EAAKsjF,cAAgB,GAGvB1vF,EAAQ4vF,aAAe5vF,EAAQy3B,OAAS,SAASrrB,GAC/C6P,aAAa7P,EAAKqjF,gBAElB,IAAIjtC,EAAQp2C,EAAKsjF,aACbltC,GAAS,IACXp2C,EAAKqjF,eAAiBxyE,YAAW,WAC3B7Q,EAAKyjF,YACPzjF,EAAKyjF,eACNrtC,KAKP,EAAQ,KAIRxiD,EAAQswC,aAAgC,oBAATr7B,MAAwBA,KAAKq7B,mBAClB,IAAXjL,GAA0BA,EAAOiL,cACxCvtC,MAAQA,KAAKutC,aACrCtwC,EAAQwwC,eAAkC,oBAATv7B,MAAwBA,KAAKu7B,qBAClB,IAAXnL,GAA0BA,EAAOmL,gBACxCztC,MAAQA,KAAKytC,iB,mCC9DvC,6BACI,aAEA,IAAInL,EAAOiL,aAAX,CAIA,IAIIw/C,EA6HI/kD,EAZAsF,EArBA0/C,EACAC,EAjGJC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBC,EAAM/qD,EAAO92B,SAoJb8hF,EAAWnvF,OAAO0pC,gBAAkB1pC,OAAO0pC,eAAevF,GAC9DgrD,EAAWA,GAAYA,EAASpzE,WAAaozE,EAAWhrD,EAGf,qBAArC,GAAGt6B,SAASpK,KAAK0kC,EAAOhf,SApFxBypE,EAAoB,SAASQ,GACzBjqE,EAAQtR,UAAS,WAAcw7E,EAAaD,QAIpD,WAGI,GAAIjrD,EAAO0L,cAAgB1L,EAAO8L,cAAe,CAC7C,IAAIq/C,GAA4B,EAC5BC,EAAeprD,EAAO6L,UAM1B,OALA7L,EAAO6L,UAAY,WACfs/C,GAA4B,GAEhCnrD,EAAO0L,YAAY,GAAI,KACvB1L,EAAO6L,UAAYu/C,EACZD,GAwEJE,GAIArrD,EAAOoL,iBA9CVJ,EAAU,IAAII,gBACVQ,MAAMC,UAAY,SAAS9b,GAE/Bm7D,EADan7D,EAAMlsB,OAIvB4mF,EAAoB,SAASQ,GACzBjgD,EAAQW,MAAMD,YAAYu/C,KA2CvBF,GAAO,uBAAwBA,EAAIj/E,cAAc,WAtCpD45B,EAAOqlD,EAAIO,gBACfb,EAAoB,SAASQ,GAGzB,IAAItI,EAASoI,EAAIj/E,cAAc,UAC/B62E,EAAOngE,mBAAqB,WACxB0oE,EAAaD,GACbtI,EAAOngE,mBAAqB,KAC5BkjB,EAAKh6B,YAAYi3E,GACjBA,EAAS,MAEbj9C,EAAKr6B,YAAYs3E,KAKrB8H,EAAoB,SAASQ,GACzBrzE,WAAWszE,EAAc,EAAGD,KAlD5BP,EAAgB,gBAAkBxlE,KAAKqiB,SAAW,IAClDojD,EAAkB,SAAS56D,GACvBA,EAAMvqB,SAAWw6B,GACK,iBAAfjQ,EAAMlsB,MACyB,IAAtCksB,EAAMlsB,KAAK1F,QAAQusF,IACnBQ,GAAcn7D,EAAMlsB,KAAK2P,MAAMk3E,EAAc3sF,UAIjDiiC,EAAOxmB,iBACPwmB,EAAOxmB,iBAAiB,UAAWmxE,GAAiB,GAEpD3qD,EAAOurD,YAAY,YAAaZ,GAGpCF,EAAoB,SAASQ,GACzBjrD,EAAO0L,YAAYg/C,EAAgBO,EAAQ,OAgEnDD,EAAS//C,aA1KT,SAAsB/P,GAEI,mBAAbA,IACTA,EAAW,IAAIqE,SAAS,GAAKrE,IAI/B,IADA,IAAIzsB,EAAO,IAAIlR,MAAMO,UAAUC,OAAS,GAC/B5C,EAAI,EAAGA,EAAIsT,EAAK1Q,OAAQ5C,IAC7BsT,EAAKtT,GAAK2C,UAAU3C,EAAI,GAG5B,IAAI23C,EAAO,CAAE5X,SAAUA,EAAUzsB,KAAMA,GAGvC,OAFAo8E,EAAcD,GAAc93C,EAC5B23C,EAAkBG,GACXA,KA6JTI,EAAS7/C,eAAiBA,EA1J1B,SAASA,EAAe8/C,UACbJ,EAAcI,GAyBzB,SAASC,EAAaD,GAGlB,GAAIH,EAGAlzE,WAAWszE,EAAc,EAAGD,OACzB,CACH,IAAIn4C,EAAO+3C,EAAcI,GACzB,GAAIn4C,EAAM,CACNg4C,GAAwB,EACxB,KAjCZ,SAAah4C,GACT,IAAI5X,EAAW4X,EAAK5X,SAChBzsB,EAAOqkC,EAAKrkC,KAChB,OAAQA,EAAK1Q,QACb,KAAK,EACDm9B,IACA,MACJ,KAAK,EACDA,EAASzsB,EAAK,IACd,MACJ,KAAK,EACDysB,EAASzsB,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACDysB,EAASzsB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACIysB,EAASl9B,WAnDrB,EAmDsCyQ,IAiBlB0oB,CAAI2b,GACN,QACE3H,EAAe8/C,GACfH,GAAwB,MAvE5C,CAyLkB,oBAATl7E,UAAyC,IAAXowB,EAAyBtiC,KAAOsiC,EAASpwB,Q,qDCjIhF,SAASmS,EAAQrmB,GAEf,IACE,IAAKskC,EAAO5L,aAAc,OAAO,EACjC,MAAO5zB,GACP,OAAO,EAET,IAAIiR,EAAMuuB,EAAO5L,aAAa14B,GAC9B,OAAI,MAAQ+V,GACyB,SAA9B4uB,OAAO5uB,GAAK+R,cA5DrB5oB,EAAOD,QAoBP,SAAoBmO,EAAI21C,GACtB,GAAI18B,EAAO,iBACT,OAAOjZ,EAGT,IAAIgnD,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAI/tC,EAAO,oBACT,MAAM,IAAIlc,MAAM44C,GACP18B,EAAO,oBAChBtG,QAAQwL,MAAMw3B,GAEdhjC,QAAQpX,KAAKo6C,GAEfqR,GAAS,EAEX,OAAOhnD,EAAG9K,MAAMN,KAAMI,e,+CCf1BlD,EAAOD,QAAU02D,EAEjB,IAAID,EAAY,EAAQ,IAGpBtiD,EAAO,EAAQ,IAMnB,SAASuiD,EAAYlnD,GACnB,KAAMzM,gBAAgB2zD,GAAc,OAAO,IAAIA,EAAYlnD,GAE3DinD,EAAU91D,KAAKoC,KAAMyM,GARvB2E,EAAKC,SAAW,EAAQ,IAGxBD,EAAKC,SAASsiD,EAAaD,GAQ3BC,EAAYt0D,UAAU+lE,WAAa,SAAUjO,EAAO1R,EAAUhzC,GAC5DA,EAAG,KAAM0kD,K,gBC7CXj6D,EAAOD,QAAU,EAAQ,K,gBCAzBC,EAAOD,QAAU,EAAQ,I,gBCAzBC,EAAOD,QAAU,EAAQ,IAAcy2D,W,gBCAvCx2D,EAAOD,QAAU,EAAQ,IAAc02D,a,gBCAvC,IAAIyI,EAAS,EAAQ,IACjBrM,EAAS,EAAQ,IAQrB7yD,EAAOD,QAAU,SAASmiE,EAAKC,GAC7B,IAAI5yD,EAAS27D,EAAUhL,EAUvB,OATA3wD,EARF,SAA0B4yD,GACxB,IAAI5yD,EAAU2vD,EAAOnC,YAAYoF,GAEjC,OADAjD,EAAOjC,mBAAmB1tD,GACnBA,EAKG8yD,CAAgBF,GAC1B+I,EAAKrY,EAAOqP,EAAK3yD,GACjB2wD,EAAY,YAAa3wD,GAAWA,EAAQujD,QAAU,UAAY,UAE9D,cAAevjD,GAAWA,EAAQ0wD,UAC7BzyD,KAAKC,UAAUy9D,GAAI,SAAUjkE,EAAGd,GAAK,OAAOc,IAAMi5D,EAAW,IAAM/5D,IAAMoJ,EAAQ2tD,QAEjF1vD,KAAKC,UAAUy9D,EAAI,KAAM37D,EAAQ2tD,SAE9BzkD,QAAQ,UAAW,WAAWA,QAAQ,UAAW,a,iBCpB/D,kBAAa,EAAQ,IAErBzY,EAAOD,QAAU,SAAU6wF,EAAMrhF,GAC3BqhF,aAAgBxqC,IAClBwqC,EAAOA,EAAK9lF,YAEd,IAAIogE,EAAK,KACT,GAAsB,iBAAX,EACT,IACEA,EAAK19D,KAAKgZ,MAAMoqE,GAChB,MAAOttF,GACP,MAAM,IAAI2H,MAAM,sCAGlBigE,EAAK0lB,EAEP,OAAOnL,EAAOva,EAAI37D,M,yCCfpB,IAAItC,EAAU,EAAQ,KAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,iBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,IAEnFwG,KAAK,CAACvG,EAAOO,EAAI,qMAAsM,KAG/NR,EAAQ+sB,OAAS,CAChB,qBAAsB,qEACtB,kBAAqB,uE,0ICPtB,U,i+BCAA,WACA,OAMA,SACA,SAwBA,yE,OAMI,EAAA9I,MAAgC,CAC5B6sE,aAAa,GAGT,EAAAC,mBAAqB,WACzB,EAAKv0E,MAAM+zD,cAGP,EAAAygB,gBAAkB,WACtB,EAAKx0E,MAAMg0D,WAEP,EAAAt9C,WAAa,SAAC3vB,EAAkB4vB,GAKpC,OAJI5vB,EAAE6vB,UAAY,EAAAC,aAAaC,OAAS/vB,EAAE6vB,UAAY,EAAAC,aAAaE,KAE/DhwB,EAAEoqB,kBAEEpqB,EAAE6vB,SACN,KAAK,GACDD,MAIJ,EAAA89D,yBAA2B,SAACz/E,GAAwB,OACxD,WACIkiB,SAAU,EACVC,KAAK,SACL9R,QAAS,WAAM,OAAArQ,EAAGklB,gBAClB9C,UAAW,SAACrwB,GAAqB,SAAK2vB,WAAW3vB,EAAGiO,EAAGklB,eACvD1U,UAAWzS,EAAO2hF,iBAEjB1/E,EAAG1L,QAIJ,EAAA0tB,uBAAyB,WAC7B,MAAO,CACH,CACI1tB,MAAO,EAAK0W,MAAMm0D,wBAClBj6C,aAAc,EAAKq6D,oBAEvB,CACIjrF,MAAO,EAAK0W,MAAMk0D,qBAClBh6C,aAAc,EAAKs6D,mBAKvB,EAAAG,YAAc,SAAC,GACnB,IAAAC,EAAA,EAAAA,aACA,IAAA19D,gBAAA,IAAW,EAAX,IACA29D,EAAA,EAAAA,WACA,gDAEA,OACI,gBAAQrvE,UAAWovE,EAAc19D,SAAUA,GAAclX,GACrD,WAAKwF,UAAWqvE,MAKpB,EAAAt9D,gBAAkB,WACtB,OACI,IAAC,EAAAC,YAAW,CACRyC,aAAc,EAAKw6D,yBACnBzhF,QAAS,EAAKgkB,4B,EAyC9B,OA/GuC,OA2EnC,YAAAvH,OAAA,SAAOzP,G,UACK4zD,EAAA,EAAAA,iBAAkBC,EAAA,EAAAA,cAC1B,OAAKD,GAAqBC,GAgBrBD,GAAoBC,EACdttE,KAAKouF,cAAW,MAClB,cAAe30E,EAAMm0D,wBACtB,EAAAygB,aAAc7hF,EAAO+hF,oBACrB,EAAAD,WAAY,CAAC9hF,EAAO6c,KAAM7c,EAAOgiF,cAAczjF,KAAK,KACpD,EAAA+T,QAAS9e,KAAKguF,mB,IAGlB3gB,IAAqBC,EACdttE,KAAKouF,cAAW,MAClB,cAAe30E,EAAMk0D,qBACtB,EAAA0gB,aAAc7hF,EAAO+hF,oBACrB,EAAAD,WAAY,CAAC9hF,EAAO6c,KAAM7c,EAAOiiF,WAAW1jF,KAAK,KACjD,EAAA+T,QAAS9e,KAAKiuF,gB,IAGf,KA9BC,IAAC,EAAA/8D,QAAO,CACJjS,UAAU,yBACVkS,iBAAkB,EAAAC,yBAAyBrZ,OAC3CsZ,mBAAoB,EAAAC,2BAA2BzZ,KAC/C1N,QAASnK,KAAKgxB,mBAEbhxB,KAAKouF,cAAW,MACZ,cAAe30E,EAAMi0D,kBACtB,EAAA2gB,aAAc7hF,EAAO+hF,oBACrB,EAAAD,WAAY,CAAC9hF,EAAO6c,KAAM7c,EAAOgiF,cAAczjF,KAAK,K,MAvFjE,EAAAghB,aAAe,CAClB2hD,kBAAmB,uCACnBC,qBAAsB,2BACtBC,wBAAyB,+BA2GjC,EA/GA,CAAuC,EAAA9jD,WAA1B,EAAAyjD,qB,0IChCb,U,8ZCAA,WACA,SA8BA,2B,+CAoBA,OApBiC,OAC7B,YAAArkD,OAAA,SAAOzP,GACH,OACI,WAAKwF,UAAWzS,EAAOinB,aAClBha,EAAMhN,QAAQvC,KAAI,SAACuE,GAChB,OAAIA,EAAGiiB,eACIjiB,EAAGiiB,eAAejiB,GAEzBgL,EAAMia,aACCja,EAAMia,aAAajlB,GAG1B,WAAKwQ,UAAU,oBAAoBH,QAAS,WAAM,OAAArQ,EAAGklB,aAAallB,KAC7DA,EAAG1L,YAOhC,EApBA,CAAiC,EAAA+mB,WAApB,EAAAmH,e,gBC9Bb,IAAI9mB,EAAU,EAAQ,KAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,iBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,IAEnFwG,KAAK,CAACvG,EAAOO,EAAI,uGAAwG,KAGjIR,EAAQ+sB,OAAS,CAChB,eAAgB,gEAChB,YAAe,kE,gBCNhB,IAAI7f,EAAU,EAAQ,KAEA,iBAAZA,IAAsBA,EAAU,CAAC,CAACjN,EAAOO,EAAI0M,EAAS,MAOhE,IAAIsC,EAAU,CAAC,KAAM,EAErB,eAPIqC,EAQJ,gBAAqB7G,GAER,EAAQ,EAAR,CAAgEkC,EAASsC,GAEnFtC,EAAQ6f,SAAQ9sB,EAAOD,QAAUkN,EAAQ6f,S,gBCjB5C/sB,EAAUC,EAAOD,QAAU,EAAQ,EAAR,EAAgE,GAE3F,IAAI20E,EAAY,EAAQ,IACpBC,EAA2BD,EAAU,EAAQ,MAC7CE,EAA2BF,EAAU,EAAQ,MAC7CgN,EAA2BhN,EAAU,EAAQ,MAC7C8O,EAA2B9O,EAAU,EAAQ,MAGjD30E,EAAQwG,KAAK,CAACvG,EAAOO,EAAI,+8BAAi9Bo0E,EAA2B,qMAAuMC,EAA2B,2LAA6L8M,EAA2B,kMAAoM8B,EAA2B,qcAAsc,KAGpmEzjF,EAAQ+sB,OAAS,CAChB,wBAAyB,uFACzB,oBAAuB,uFACvB,KAAQ,sEACR,gBAAiB,+EACjB,aAAgB,+EAChB,aAAc,4EACd,UAAa,4EACb,oBAAqB,mFACrB,gBAAmB,qF,cCrBpB9sB,EAAOD,QAAU,kgF,cCAjBC,EAAOD,QAAU,kgF,cCAjBC,EAAOD,QAAU,+qC,cCAjBC,EAAOD,QAAU","file":"playkit-transcript.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"playkit-transcript\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"playkit-transcript\"] = factory();\n\telse\n\t\troot[\"KalturaPlayer\"] = root[\"KalturaPlayer\"] || {}, root[\"KalturaPlayer\"][\"plugins\"] = root[\"KalturaPlayer\"][\"plugins\"] || {}, root[\"KalturaPlayer\"][\"plugins\"][\"playkit-transcript\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 46);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { KalturaObjectBase } from './kaltura-object-base';\n\n// TODO [kaltura] constructor type should be 'KalturaObjectBase' (currently any to support enum of type string)\nexport type KalturaObjectClass = { new(...args) : any};\nconst typesMapping : { [key : string] : KalturaObjectClass} = {};\n\nexport class KalturaTypesFactory\n{\n\tstatic registerType(typeName : string, objectCtor :KalturaObjectClass) : void\n\t{\n\t\ttypesMapping[typeName] = objectCtor;\n\t}\n\n\tstatic createObject(type : KalturaObjectBase) : KalturaObjectBase;\n\tstatic createObject(typeName : string) : KalturaObjectBase;\n\tstatic createObject(type : any) : KalturaObjectBase\n\t{\n\t\tlet typeName = '';\n\n\t\tif (type instanceof KalturaObjectBase)\n\t\t{\n\t\t\ttypeName = type.getTypeName();\n\t\t}else if(typeof type === 'string')\n\t\t{\n\t\t\ttypeName = type;\n\t\t}\n\n\t\tconst factory : KalturaObjectClass = typeName ? typesMapping[typeName] : null;\n\t\treturn factory ? new factory() : null;\n\t}\n}\n","import { KalturaClientUtils } from \"./kaltura-client-utils\";\nimport { KalturaTypesFactory } from './kaltura-types-factory';\nimport { KalturaLogger } from './kaltura-logger';\n\nexport type DependentProperty = { property : string, request : number, targetPath? : string[] };\n\nexport interface KalturaObjectMetadata\n{\n\tproperties : { [key : string] : KalturaObjectPropertyMetadata};\n}\n\nexport interface KalturaObjectPropertyMetadata\n{\n\treadOnly? : boolean;\n\ttype : string;\n\tsubType? : string;\n\tdefault? : string;\n\tsubTypeConstructor? : { new() : KalturaObjectBase };\n};\n\nexport interface KalturaObjectBaseArgs\n{\n\trelatedObjects? : { [key: string] : KalturaObjectBase };\n}\n\nconst logger = new KalturaLogger('KalturaObjectBase');\n\nexport abstract class KalturaObjectBase{\n\n\tprivate _allowedEmptyArray: string[] = [];\n\tprivate _dependentProperties : { [key : string] : DependentProperty} = {};\n\trelatedObjects : { [key: string] : KalturaObjectBase }; // see developer notice in method '_getMetadata()'\n\n\n\tallowEmptyArray(... properties: string[]): this {\n\t\tconst metadata = this._getMetadata().properties;\n\t\tfor (const property of properties) {\n\t\t\tconst metadataProperty = metadata[property];\n\t\t\tif (!metadataProperty) {\n\t\t\t\tlogger.warn(`ignore property '${property}' flaged to allow empty array as it doesn't not exists on type (did you set the right property in method 'allowEmptyArray'?)`);\n\t\t\t} else if (metadataProperty.type !== 'a') {\n\t\t\t\tlogger.warn(`ignore property '${property}' flaged to allow empty array as it is not of type array (did you set the right property in method 'allowEmptyArray'?)`);\n\t\t\t} else {\n\t\t\t\tthis._allowedEmptyArray.push(property);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetData(handler : (request : this) => void) : this {\n\t\tif (handler) {\n\t\t\thandler(this);\n\t\t}\n\t\treturn this;\n\t}\n\n\tconstructor(data? : {})\n\t{\n\t\tif (data)\n\t\t{\n\t\t\tObject.assign(this, data);\n\t\t}\n\n\t\tif (typeof this.relatedObjects === 'undefined') this.relatedObjects = {};\n\t}\n\n\tpublic getTypeName() : string\n\t{\n\t\treturn this._getMetadata().properties['objectType'].default;\n\t}\n\n\tprotected _getMetadata() : KalturaObjectMetadata\n\t{\n\t\t// DEVELOPER NOTICE: according to the server schema, property 'relatedObjects' should have be of type 'KalturaListResponse'.\n\t\t// this is not an option as it created circle reference where KalturaListResponse > KalturaObjectBase > KalturaListResponse.\n\t\t// Hence, we cannot set the type explicitly and we need to expose the default type 'KalturaObjectBase'\n\t\treturn { properties : {\n\t\t\trelatedObjects: { type: 'm', readOnly: true, subTypeConstructor : null, subType : 'KalturaListResponse'},\n\t\t}};\n\t}\n\n\tpublic hasMetadataProperty(propertyName: string): boolean\n\t{\n\t\treturn !!this._getMetadata().properties[propertyName];\n\t}\n\n\ttoRequestObject() : {} {\n\t\tconst metadata = this._getMetadata();\n\t\tlet result = {};\n\n\t\ttry {\n\t\t\tObject.keys(metadata.properties).forEach(propertyName => {\n\t\t\t\tconst propertyData = metadata.properties[propertyName];\n\t\t\t\tconst propertyValue = this._createRequestPropertyValue(propertyName, propertyData);\n\n\t\t\t\tswitch (propertyValue.status)\n\t\t\t\t{\n\t\t\t\t\tcase \"exists\":\n\t\t\t\t\t\tresult[propertyName] = propertyValue.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"removed\":\n\t\t\t\t\t\tresult[`${propertyName}__null`] = ''; // mark property for deletion\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"missing\":\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}catch(err)\n\t\t{\n\t\t\t// TODO [kaltura] should use logHandler\n\t\t\tlogger.warn(err.message);\n\t\t\tthrow err;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tfromResponseObject(data : any) : {} {\n\t\tconst metadata = this._getMetadata();\n\t\tlet result = {};\n\n\t\ttry {\n\t\t\tObject.keys(metadata.properties).forEach(propertyName => {\n\t\t\t\tconst propertyData = metadata.properties[propertyName];\n\t\t\t\tconst propertyValue = this._parseResponseProperty(propertyName, propertyData, data);\n\n\t\t\t\tif (propertyValue != null && typeof propertyValue !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\tthis[propertyName] = propertyValue;\n\t\t\t\t}\n\t\t\t});\n\t\t}catch(err)\n\t\t{\n\t\t\t// TODO [kaltura] should use logHandler\n\t\t\tlogger.warn(err.message);\n\t\t\tthrow err;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\n\n\tprotected _parseResponseProperty(propertyName : string, property : KalturaObjectPropertyMetadata, source : any) : any {\n\n\t\tlet result;\n\t\tlet sourceValue = propertyName ? source[propertyName] : source;\n\n\t\tif (typeof sourceValue !== 'undefined') {\n\t\t\tif (sourceValue === null) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tswitch (property.type) {\n\t\t\t\t\tcase 'b': // boolean\n\t\t\t\t\t\tif (typeof sourceValue === 'boolean') {\n\t\t\t\t\t\t\tresult = sourceValue;\n\t\t\t\t\t\t} else if (sourceValue + '' === '0') {\n\t\t\t\t\t\t\tresult = false;\n\t\t\t\t\t\t} else if (sourceValue + '' === '1') {\n\t\t\t\t\t\t\tresult = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': // string\n\t\t\t\t\t\tresult = sourceValue + '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n': // number\n\t\t\t\t\tcase 'en': // enum of type number\n\t\t\t\t\t\tresult = sourceValue * 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'es': // enum of type number\n\t\t\t\t\t\tresult = typeof sourceValue !== 'undefined' && sourceValue !== null ? sourceValue.toString() : undefined;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'o': // object\n\t\t\t\t\t\tconst propertyObjectType = sourceValue['objectType'];\n\n\t\t\t\t\t\tif (propertyObjectType)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult = this._createKalturaObject(propertyObjectType, property.subType);\n\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tresult.fromResponseObject(sourceValue);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow new Error(`Failed to create kaltura object of type '${source['objectType']}' (fallback type '${property.subType}')`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}else\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthrow new Error(`Failed to create kaltura object for property '${propertyName}' (type '${property.subType}'). provided response object is missing property 'objectType'.`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'm': // map\n\t\t\t\t\t\tconst parsedMap = {};\n\t\t\t\t\t\tif (sourceValue instanceof Object) {\n\t\t\t\t\t\t\tObject.keys(sourceValue).forEach(itemKey =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst itemValue = sourceValue[itemKey];\n\t\t\t\t\t\t\t\tconst newItem = this._createKalturaObject(itemValue['objectType'], property.subType);\n\n\t\t\t\t\t\t\t\tif (itemValue && newItem) {\n\t\t\t\t\t\t\t\t\tnewItem.fromResponseObject(itemValue);\n\t\t\t\t\t\t\t\t\tparsedMap[itemKey] = newItem;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthrow new Error(`Failed to create kaltura object for type '${property.subType}'`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tresult = parsedMap;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new Error(`failed to parse property '${propertyName}. Expected type object, got type '${typeof sourceValue}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'a': // array\n\t\t\t\t\t\tif (sourceValue instanceof Array) {\n\t\t\t\t\t\t\tconst parsedArray = [];\n\t\t\t\t\t\t\tsourceValue.forEach(responseItem => {\n\t\t\t\t\t\t\t\tconst newItem = this._createKalturaObject(responseItem['objectType'], property.subType);\n\n\t\t\t\t\t\t\t\tif (newItem) {\n\t\t\t\t\t\t\t\t\tnewItem.fromResponseObject(responseItem);\n\t\t\t\t\t\t\t\t\tparsedArray.push(newItem);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthrow new Error(`Failed to create kaltura object for type '${responseItem['objectType']}' and for fallback type '${property.subType}'`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tresult = parsedArray;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new Error(`failed to parse property '${propertyName}. Expected type array, got type '${typeof sourceValue}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd': // date\n\t\t\t\t\t\tif (this._isNumeric(sourceValue)) {\n\t\t\t\t\t\t\tresult = KalturaClientUtils.fromServerDate(sourceValue*1)\n\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\tthrow new Error(`failed to parse property '${propertyName}. Expected type date, got type '${typeof sourceValue}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _isNumeric(n : any) : boolean {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t}\n\n\tprivate _createKalturaObject(objectType : string, fallbackObjectType? : string) : KalturaObjectBase\n\t{\n\t\tlet result = null;\n\t\tlet usedFallbackType = false;\n\t\tif (objectType)\n\t\t{\n\t\t\tresult = KalturaTypesFactory.createObject(objectType);\n\t\t}\n\n\t\tif (!result && fallbackObjectType)\n\t\t{\n\t\t\tusedFallbackType = true;\n\t\t\tresult = KalturaTypesFactory.createObject(fallbackObjectType);\n\t\t}\n\n\t\tif (usedFallbackType && result)\n\t\t{\n\t\t\tlogger.warn(`[kaltura-client]: Could not find object type '${objectType}', Falling back to '${fallbackObjectType}' object type. (Did you remember to set your accepted object types in the request “config.acceptedTypes” attribute?)`);\n\t\t}else if (!result)\n\t\t{\n\t\t\tlogger.warn(`[kaltura-client]: Could not find object type '${objectType}'. (Did you remember to set your accepted object types in the request “config.acceptedTypes” attribute?)`);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _createRequestPropertyValue(propertyName : string, property : KalturaObjectPropertyMetadata) : { status : 'missing' | 'removed' | 'exists', value? : any } {\n\n\t\tlet result : { status : 'missing' | 'removed' | 'exists', value? : any } = { status : 'missing'};\n\n\t\tif (property.type === 'c')\n\t\t{\n\t\t\t// constant string\n\t\t\tif (property.default)\n\t\t\t{\n\t\t\t\tresult = { status : 'exists', value : property.default};\n\t\t\t}\n\t\t} else if (this._dependentProperties[propertyName])\n\t\t{\n\t\t\tconst dependentProperty = this._dependentProperties[propertyName];\n\t\t\tconst resultValue = `{${dependentProperty.request}:result${dependentProperty.targetPath ? ':' + dependentProperty.targetPath : ''}}`;\n\t\t\tresult = { status : 'exists', value : resultValue};\n\t\t}\n\t\telse if (!property.readOnly) {\n\t\t\tlet value = this[propertyName];\n\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult = { status : 'removed'};\n\t\t\t\t} else {\n\t\t\t\t\tswitch (property.type) {\n\t\t\t\t\t\tcase 'b': // boolean\n\t\t\t\t\t\t\tresult = { status : 'exists', value : value};\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's': // string\n\t\t\t\t\t\t\tresult = { status : 'exists', value : value + ''};\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n': // number\n\t\t\t\t\t\tcase 'en': // enum of type number\n\t\t\t\t\t\t\tresult = { status : 'exists', value : value * 1};\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'o': // object\n\t\t\t\t\t\t\tif (value instanceof KalturaObjectBase) {\n\t\t\t\t\t\t\t\tresult = { status : 'exists', value : value.toRequestObject()};\n\t\t\t\t\t\t\t}else\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthrow new Error(`failed to parse property. Expected '${propertyName} to be kaltura object`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'a': // array\n\t\t\t\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\t\t\t\tconst parsedArray = [];\n\t\t\t\t\t\t\t\tvalue.forEach(item =>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (item instanceof KalturaObjectBase)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tparsedArray.push(item.toRequestObject());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tconst allowEmptyArrayAsAValue = this._allowedEmptyArray.indexOf(propertyName) !== -1;\n\t\t\t\t\t\t\t\tif (allowEmptyArrayAsAValue || parsedArray.length !== 0) {\n\t\t\t\t\t\t\t\t\tif (parsedArray.length === value.length) {\n\t\t\t\t\t\t\t\t\t\tresult = {status: 'exists', value: parsedArray};\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`failed to parse array. Expected all '${propertyName} items to be kaltura object`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}else\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthrow new Error(`failed to parse property. Expected '${propertyName} to be Array`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm': //map\n\t\t\t\t\t\t\tif (value instanceof Object) {\n\t\t\t\t\t\t\t\tconst valueKeys = Object.keys(value);\n\n\t\t\t\t\t\t\t\tif (valueKeys.length > 0) {\n\t\t\t\t\t\t\t\t\tconst parsedObject = {};\n\t\t\t\t\t\t\t\t\tvalueKeys.forEach(itemKey => {\n\t\t\t\t\t\t\t\t\t\tvar itemValue = value[itemKey];\n\t\t\t\t\t\t\t\t\t\tif (itemValue instanceof KalturaObjectBase) {\n\t\t\t\t\t\t\t\t\t\t\tparsedObject[itemKey] = itemValue.toRequestObject();\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (valueKeys.length === Object.keys(parsedObject).length) {\n\t\t\t\t\t\t\t\t\t\tresult = {status: 'exists', value: parsedObject};\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(`failed to parse map. Expected all '${propertyName} items to be kaltura object`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}else\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthrow new Error(`failed to parse property. Expected '${propertyName} to be kaltura object`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd': // date\n\t\t\t\t\t\t\tif (value instanceof Date) {\n\t\t\t\t\t\t\t\tresult = { status : 'exists', value : KalturaClientUtils.toServerDate(value)};\n\t\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\t\tthrow new Error(`failed to parse property. Expected '${propertyName} to be date`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'es': // enum of type string\n\t\t\t\t\t\t\tresult = { status : 'exists', value : typeof value === 'string' ? value : undefined};\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'f':\n\t\t\t\t\t\t\tif (value instanceof FormData)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tresult = {status : 'exists', value : value};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// do nothing\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsetDependency(...dependency : (DependentProperty | [string, number] | [string, number,string])[]) : this\n\t{\n\t\tfor(let i = 0, len = dependency.length;i<len;i++)\n\t\t{\n\t\t\tconst item = dependency[i];\n\t\t\tlet { property, request, targetPath } = <any>item;\n\t\t\tif (item instanceof Array)\n\t\t\t{\n\t\t\t\tproperty = item[0];\n\t\t\t\trequest = item[1];\n\t\t\t\ttargetPath = item.length === 3 ? item[2] : null;\n\t\t\t}\n\n\t\t\t// The server expect one based index (meaning the first item has index 1)\n\t\t\t// since Javascript array are zero based index we expose the api as zero based\n\t\t\t// and transform the index value in the actual request by adding 1\n\t\t\trequest = request + 1;\n\t\t\tthis._dependentProperties[property] = { property , request, targetPath };\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","module.exports = KalturaPlayer.ui.preact;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","export class KalturaAPIException extends Error {\n constructor(public message: string, public code: string, public args: any) {\n super(message);\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, KalturaAPIException.prototype);\n }\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@playkit-js-contrib/common\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ui\", [\"@playkit-js-contrib/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ui\"] = factory(require(\"@playkit-js-contrib/common\"));\n\telse\n\t\troot[\"playkit\"] = root[\"playkit\"] || {}, root[\"playkit\"][\"contrib\"] = root[\"playkit\"][\"contrib\"] || {}, root[\"playkit\"][\"contrib\"][\"ui\"] = factory(root[\"@playkit-js-contrib/common\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__2__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n","module.exports = KalturaPlayer.ui.preact;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};","import {KalturaPlayerUtils} from '@playkit-js-contrib/common';\n\nexport function getContribConfig<T>(\n player: KalturaPlayerTypes.Player,\n path: string,\n baseConfig: T,\n options?: {explicitMerge: string[]}\n): T {\n return KalturaPlayerUtils.getPlayerConfig(\n player,\n `contrib.${path}`,\n baseConfig,\n options\n );\n}\n","export * from './managed-component';\n","import PlayerConfig = KalturaPlayerTypes.PlayerConfig;\nimport {getContribLogger, ObjectUtils} from '@playkit-js-contrib/common';\nimport ContribPresetAreasMapping = KalturaPlayerContribTypes.ContribPresetAreasMapping;\n\nexport interface GroupPresetAreasOptions {\n presetAreasMapping: KalturaPlayerContribTypes.ContribPresetAreasMapping;\n acceptableTypes: string[];\n}\n\nconst logger = getContribLogger({\n module: 'contrib-ui',\n class: 'PresetsUtils',\n});\n\nexport class PresetsUtils {\n public static groupPresetAreasByType(\n options: GroupPresetAreasOptions\n ): ContribPresetAreasMapping {\n const {presetAreasMapping, acceptableTypes} = options;\n\n const result = {};\n acceptableTypes.forEach(presetType => (result[presetType] = {}));\n Object.keys(presetAreasMapping).forEach(presetName => {\n Object.keys(presetAreasMapping[presetName]).forEach(presetType => {\n if (acceptableTypes.indexOf(presetType) === -1) {\n logger.warn(\n `Unknown preset area type '${presetType}' provided, ignoring specific type mapping. Acceptable values are '${acceptableTypes.join(\n ', '\n )}`,\n {}\n );\n } else {\n result[presetType][presetName] =\n presetAreasMapping[presetName][presetType];\n }\n });\n });\n return result;\n }\n}\n","import {ComponentChild, Ref} from 'preact';\nimport {PlayerSize, VideoSize} from './common.types';\n\nexport enum FloatingUIModes {\n MediaLoaded = 'MediaLoaded',\n OnDemand = 'OnDemand',\n Immediate = 'Immediate',\n FirstPlay = 'FirstPlay',\n}\n\nexport enum FloatingPositions {\n VideoArea = 'VideoArea',\n PresetArea = 'PresetArea',\n InteractiveArea = 'InteractiveArea',\n}\n\nexport interface FloatingItemData {\n label: string;\n mode: FloatingUIModes;\n renderContent: (floatingItemProps: FloatingItemProps) => ComponentChild;\n className?: string;\n position: FloatingPositions;\n}\n\nexport interface FloatingItemProps {\n currentTime: number;\n canvas: {\n playerSize: PlayerSize;\n videoSize: VideoSize;\n };\n}\n","import {ComponentChild, JSX} from 'preact';\nimport {KitchenSinkAdapter} from './components/kitchen-sink-adapter';\n\nexport interface KitchenSinkContentRendererProps {\n onClose: () => void;\n}\n\nexport enum KitchenSinkExpandModes {\n AlongSideTheVideo = 'alongside',\n Hidden = 'hidden',\n OverTheVideo = 'over',\n}\n\nexport enum KitchenSinkPositions {\n Top = 'top',\n Left = 'left',\n Right = 'right',\n Bottom = 'bottom',\n}\n\nexport interface KitchenSinkItemData {\n label: string;\n renderIcon: (isActive: boolean) => ComponentChild | JSX.Element;\n expandMode: KitchenSinkExpandModes;\n position: KitchenSinkPositions;\n fillContainer?: boolean;\n renderContent: (props: KitchenSinkContentRendererProps) => ComponentChild;\n}\n","import {PlayerSize, VideoSize} from './common.types';\n\nexport function getPlayerSize(\n kalturaPlayer: KalturaPlayerTypes.Player\n): PlayerSize {\n return kalturaPlayer ? kalturaPlayer.dimensions : {width: 0, height: 0};\n}\n\nexport function getVideoSize(\n kalturaPlayer: KalturaPlayerTypes.Player\n): VideoSize {\n if (!kalturaPlayer) {\n return {width: 0, height: 0};\n }\n\n const videoTrack = kalturaPlayer.getActiveTracks().video;\n\n if (\n !videoTrack ||\n videoTrack.width === undefined ||\n videoTrack.height === undefined\n ) {\n // fallback - mainly for Safari\n if (kalturaPlayer.getVideoElement()) {\n return {\n width: kalturaPlayer.getVideoElement().videoWidth,\n height: kalturaPlayer.getVideoElement().videoHeight,\n };\n }\n return {width: 0, height: 0};\n }\n\n return {\n width: videoTrack.width,\n height: videoTrack.height,\n };\n}\n","import {UUID} from '@playkit-js-contrib/common';\nimport {FloatingManager} from './floating-manager';\nimport {FloatingPositions, FloatingUIModes} from './floating-item-data';\nimport {FloatingItem} from './floating-item';\nimport {ToastProps} from './components/toast/toast';\nimport {ToastsContainer} from './components/toasts-container';\nimport {h} from 'preact';\n\nexport interface ToastManagerOptions {\n floatingManager: FloatingManager;\n}\n\nexport enum ToastSeverity {\n Info = 'Info',\n Success = 'Success',\n Warn = 'Warn',\n Error = 'Error',\n}\n\nexport interface ToastItemData {\n title: string;\n text: string;\n icon: any;\n severity: ToastSeverity;\n duration: number;\n onClick: () => void;\n}\n\ninterface ManagedToasts {\n timerSubscription: any;\n duration: number;\n toastProps: ToastProps;\n}\n\nexport class ToastManager {\n private _options: ToastManagerOptions;\n private _toasts: ManagedToasts[] = [];\n private _floatingItem: FloatingItem | null = null;\n\n constructor(private options: ToastManagerOptions) {\n this._options = options;\n }\n\n add(data: ToastItemData): void {\n const {duration, ...props} = data;\n if (!this._floatingItem) this._addToastsContainer();\n const managedToast = {\n toastProps: {\n ...props,\n id: UUID.uuidV1(),\n onClose: this._remove,\n },\n duration: duration,\n timerSubscription: null,\n };\n this._toasts.push(managedToast);\n this._updateToastsUI();\n this._startDurationTimer(managedToast);\n }\n\n reset(): void {\n this._toasts.forEach(managedToast => {\n this._remove(managedToast.toastProps.id);\n });\n }\n\n private _startDurationTimer(managedToast: ManagedToasts): void {\n managedToast.timerSubscription = setTimeout(() => {\n this._remove(managedToast.toastProps.id);\n }, managedToast.duration);\n }\n\n private _remove = (id: string): void => {\n const index = this._findToastIndexById(id);\n if (index === -1) return;\n\n clearTimeout(this._toasts[index].timerSubscription);\n this._toasts.splice(index, 1);\n this._updateToastsUI();\n if (this._toasts.length === 0) this._removeToastsContainer();\n };\n\n private _addToastsContainer(): void {\n this._floatingItem = this._options.floatingManager.add({\n label: 'Toasts',\n mode: FloatingUIModes.Immediate,\n position: FloatingPositions.InteractiveArea,\n renderContent: () => {\n return (\n <ToastsContainer\n toasts={this._toasts.map(toast => {\n return toast.toastProps;\n })}\n />\n );\n },\n });\n }\n\n private _removeToastsContainer(): void {\n if (!this._floatingItem) return;\n\n this._options.floatingManager.remove(this._floatingItem);\n this._floatingItem = null;\n }\n\n private _updateToastsUI(): void {\n if (this._floatingItem) this._floatingItem.update();\n }\n\n private _findToastIndexById(id: string): number {\n let index = 0;\n while (index < this._toasts.length) {\n if (this._toasts[index].toastProps.id === id) {\n return index;\n }\n index++;\n }\n return -1;\n }\n}\n","import {h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport {\n FloatingItemData,\n FloatingItemProps,\n FloatingUIModes,\n} from './floating-item-data';\nimport {ManagedComponent} from './components/managed-component';\n\nexport interface FloatingItemOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n data: FloatingItemData;\n}\n\nexport class FloatingItem {\n private _destroyed = false;\n private _options: FloatingItemOptions;\n private _isShown = false;\n private _componentRef: ManagedComponent | null = null;\n private _logger: ContribLogger;\n\n constructor(options: FloatingItemOptions) {\n this._options = options;\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'FloatingItem',\n context: options.data.label,\n });\n this._logger.debug('executed', {\n method: 'constructor',\n data: {\n options,\n },\n });\n this._logger.info(`created item ${options.data.label}`, {\n method: 'constructor',\n });\n\n this._addPlayerBindings();\n }\n\n get data(): FloatingItemData {\n return this._options.data;\n }\n\n remove = (): void => {\n this._logger.info('remove item from player', {\n method: 'remove',\n });\n this._isShown = false;\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.update();\n };\n\n add = (): void => {\n this._logger.info('add item to player', {\n method: 'add',\n });\n this._isShown = true;\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.update();\n };\n\n public update() {\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.update();\n }\n\n /**\n * destory the ui item\n */\n destroy(): void {\n this._logger.info('destroy item', {\n method: 'destroy',\n });\n this._destroyed = true;\n this.remove();\n }\n\n renderFloatingChild(props: FloatingItemProps) {\n const {label} = this._options.data;\n\n return (\n <ManagedComponent\n label={label}\n renderChildren={() => this._options.data.renderContent(props)}\n isShown={() => this._isShown}\n ref={ref => (this._componentRef = ref)}\n />\n );\n }\n\n private _handleMediaLoaded = () => {\n const {kalturaPlayer} = this._options;\n kalturaPlayer.removeEventListener(\n kalturaPlayer.Event.MEDIA_LOADED,\n this._handleMediaLoaded\n );\n this.add();\n };\n\n private _handleFirstPlay = () => {\n const {kalturaPlayer} = this._options;\n kalturaPlayer.removeEventListener(\n kalturaPlayer.Event.FIRST_PLAY,\n this._handleFirstPlay\n );\n this.add();\n };\n\n private _addPlayerBindings() {\n const {kalturaPlayer, data} = this._options;\n\n if (data.mode === FloatingUIModes.MediaLoaded) {\n kalturaPlayer.addEventListener(\n kalturaPlayer.Event.MEDIA_LOADED,\n this._handleMediaLoaded\n );\n }\n\n if (data.mode === FloatingUIModes.FirstPlay) {\n kalturaPlayer.addEventListener(\n kalturaPlayer.Event.FIRST_PLAY,\n this._handleFirstPlay\n );\n }\n\n if (data.mode === FloatingUIModes.Immediate) {\n this.add();\n }\n }\n}\n","import {h} from 'preact';\nimport {PresetItemData, ReservedPresetNames} from './preset-item-data';\nimport {KalturaPlayerPresetComponent, PresetItem} from './preset-item';\nimport {EventsManager, ObjectUtils} from '@playkit-js-contrib/common';\nimport {UIPlayerAdapter} from './components/ui-player-adapter';\nimport PresetConfig = KalturaPlayerContribTypes.PresetConfig;\nimport {PresetsUtils} from './presets-utils';\nimport {getContribConfig} from './contrib-utils';\n\nexport interface PresetManagerOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n}\n\nexport enum PresetManagerEventTypes {\n PresetResizeEvent = 'PresetResizeEvent',\n VideoResizeEvent = 'VideoResizeEvent',\n}\n\nexport interface PresetResizeEvent {\n type: PresetManagerEventTypes.PresetResizeEvent;\n}\n\nexport interface VideoResizeEvent {\n type: PresetManagerEventTypes.VideoResizeEvent;\n}\n\nexport type PresetManagerEvents = PresetResizeEvent | VideoResizeEvent;\n\nconst acceptableTypes = ['PlayerArea'];\n\nconst defaultPresetConfig: PresetConfig = {\n presetAreasMapping: {\n Playback: {\n PlayerArea: 'PlayerArea',\n },\n Live: {\n PlayerArea: 'PlayerArea',\n },\n },\n};\n\nexport class PresetManager {\n private _events: EventsManager<PresetManagerEvents> = new EventsManager<\n PresetManagerEvents\n >();\n private _isLocked = false;\n private _options: PresetManagerOptions;\n private _items: PresetItem[] = [];\n private _pendingItems: PresetItem[] = [];\n private _presetConfig: PresetConfig;\n\n constructor(options: PresetManagerOptions) {\n this._options = options;\n\n this._presetConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.preset',\n defaultPresetConfig,\n {\n explicitMerge: ['presetAreasMapping'],\n }\n );\n\n const groupedPresets = PresetsUtils.groupPresetAreasByType({\n presetAreasMapping: this._presetConfig.presetAreasMapping,\n acceptableTypes,\n });\n\n this.add({\n label: 'preset-manager',\n presetAreas: groupedPresets['PlayerArea'],\n renderChild: () => (\n <UIPlayerAdapter\n onMount={this._registerToPlayer}\n onUnmount={this._unregisterToPlayer}\n />\n ),\n });\n }\n\n private _registerToPlayer = (player: KalturaPlayerTypes.Player) => {\n // player.addEventListener(\n // KalturaPlayer.ui.EventType.UI_PRESET_CHANGE,\n // this._notifyPresetChanged\n // );\n\n player.addEventListener(\n KalturaPlayer.ui.EventType.UI_PRESET_RESIZE,\n this._notifyUIPresetResize\n );\n\n player.addEventListener(\n KalturaPlayer.ui.EventType.VIDEO_RESIZE,\n this._notifyVideoResize\n );\n };\n\n // private _notifyPresetChanged = () => {\n // // TODO implement\n // console.log(`sakal preset-manager: _notifyPresetChanged`);\n // };\n //\n private _notifyVideoResize = () => {\n this._events.emit({\n type: PresetManagerEventTypes.VideoResizeEvent,\n });\n };\n\n private _notifyUIPresetResize = () => {\n this._events.emit({\n type: PresetManagerEventTypes.PresetResizeEvent,\n });\n };\n\n private _unregisterToPlayer = (player: KalturaPlayerTypes.Player) => {\n // player.removeEventListener(\n // KalturaPlayer.ui.EventType.UI_PRESET_CHANGE,\n // this._notifyPresetChanged\n // );\n\n player.removeEventListener(\n KalturaPlayer.ui.EventType.UI_PRESET_RESIZE,\n this._notifyUIPresetResize\n );\n\n player.removeEventListener(\n KalturaPlayer.ui.EventType.VIDEO_RESIZE,\n this._notifyVideoResize\n );\n };\n\n on: EventsManager<PresetManagerEvents>['on'] = this._events.on.bind(\n this._events\n );\n off: EventsManager<PresetManagerEvents>['off'] = this._events.off.bind(\n this._events\n );\n\n add<TProps>(data: PresetItemData): void {\n if (this._isLocked) {\n console.warn(\n `cannot add new preset items once player completed its' setup phase`\n );\n return null;\n }\n const component = new PresetItem({\n kalturaPlayer: this._options.kalturaPlayer,\n data,\n });\n\n this._pendingItems.push(component);\n }\n\n lockManager(): void {\n this._isLocked = true;\n }\n\n registerComponents(): KalturaPlayerPresetComponent[] {\n let configs: KalturaPlayerPresetComponent[] = [];\n this._pendingItems.forEach(item => {\n configs = [...configs, ...item.playerConfig];\n });\n this._items = [...this._items, ...this._pendingItems];\n this._pendingItems = [];\n return configs.filter(Boolean) as KalturaPlayerPresetComponent[];\n }\n}\n","import {ComponentChild} from 'preact';\n\nexport enum ReservedPresetNames {\n Playback = 'Playback',\n Live = 'Live',\n}\n\nexport enum ReservedPresetAreas {\n 'PresetFloating' = 'PresetFloating',\n 'BottomBarLeftControls' = 'BottomBarLeftControls',\n 'BottomBarRightControls' = 'BottomBarRightControls',\n 'TopBarLeftControls' = 'TopBarLeftControls',\n 'TopBarRightControls' = 'TopBarRightControls',\n 'SidePanelTop' = 'SidePanelTop',\n 'SidePanelLeft' = 'SidePanelLeft',\n 'SidePanelRight' = 'SidePanelRight',\n 'SidePanelBottom' = 'SidePanelBottom',\n 'PresetArea' = 'PresetArea',\n 'InteractiveArea' = 'InteractiveArea',\n 'PlayerArea' = 'PlayerArea',\n 'VideoArea' = 'VideoArea',\n}\n\nexport enum RelativeToTypes {\n Before = 'Before',\n After = 'After',\n Replace = 'Replace',\n}\n\nexport interface PresetItemData {\n label: string;\n fillContainer?: boolean;\n isolateComponent?: boolean;\n presetAreas: Record<\n ReservedPresetNames | string,\n ReservedPresetAreas | string\n >;\n renderChild: () => ComponentChild;\n relativeTo?: {\n type: RelativeToTypes;\n name: string;\n };\n}\n","import {h, ComponentChild} from 'preact';\nimport {UpperBarItemData} from './upper-bar-item-data';\nimport {ContribLogger} from '@playkit-js-contrib/common';\nimport {getContribLogger} from '@playkit-js-contrib/common';\n\nexport interface UpperBarItemOptions {\n data: UpperBarItemData;\n}\n\nexport interface UpperBarItemProps {}\n\nexport class UpperBarItem {\n public _options: UpperBarItemOptions;\n private _logger: ContribLogger;\n\n constructor(options: UpperBarItemOptions) {\n this._options = options;\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'PresetItem',\n context: options.data.label,\n });\n this._logger.debug('executed', {\n method: 'constructor',\n data: {\n options,\n },\n });\n this._logger.info(`created item ${options.data.label}`, {\n method: 'constructor',\n });\n }\n\n public renderChild = (props: UpperBarItemProps): ComponentChild => {\n const {onClick, renderItem, label} = this._options.data;\n const children = renderItem(props);\n\n return (\n <div onClick={onClick} className={'upper-bar-icon'}>\n {children}\n </div>\n );\n };\n}\n","export * from './popover';\n","import {ComponentChild, h} from 'preact';\nimport {\n ContribLogger,\n getContribLogger,\n EventsManager,\n} from '@playkit-js-contrib/common';\nimport {KitchenSinkItemData} from './kitchen-sink-item-data';\nimport {ManagedComponent} from './components/managed-component';\nimport {\n ItemActiveStateChangeEvent,\n KitchenSinkEvents,\n KitchenSinkEventTypes,\n} from './kitchen-sink-manager';\nimport {KitchenSink} from './components/kitchen-sink';\n\nexport interface KitchenSinkItemOptions {\n data: KitchenSinkItemData;\n isActive: (item: KitchenSinkItem) => boolean;\n activate: (item: KitchenSinkItem) => void;\n deactivate: (item: KitchenSinkItem) => void;\n eventManager: EventsManager<KitchenSinkEvents>;\n kitchenSinkConfig: KalturaPlayerContribTypes.KitchenSinkConfig;\n}\n\nexport interface KitchenSinkItemRenderProps {\n onClose: () => void;\n}\n\nexport class KitchenSinkItem {\n private _options: KitchenSinkItemOptions;\n private _componentRef: ManagedComponent | null = null;\n private _logger: ContribLogger;\n private _destroyed = false;\n\n constructor(options: KitchenSinkItemOptions) {\n this._options = options;\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'KitchenSinkItem',\n context: options && options.data && options.data.label,\n });\n this._logger.debug('executed', {\n method: 'constructor',\n data: {\n options,\n },\n });\n\n this._logger.info(`created item ${options.data.label}`, {\n method: 'constructor',\n });\n\n this._options.eventManager.on(\n KitchenSinkEventTypes.ItemActiveStateChangeEvent,\n this._activationStateChange\n );\n }\n\n get data() {\n if (this._isDestroyed()) {\n return;\n }\n return this._options.data;\n }\n\n get displayName() {\n if (this._isDestroyed()) {\n return;\n }\n return this._options.data.label;\n }\n\n public update() {\n if (this._isDestroyed()) {\n return;\n }\n\n if (!this._componentRef) {\n return;\n }\n\n this._componentRef.update();\n }\n\n public isActive(): boolean {\n if (this._isDestroyed()) {\n return;\n }\n\n return this._options.isActive(this);\n }\n\n public activate(): void {\n if (this._isDestroyed()) {\n return;\n }\n\n this._options.activate(this);\n }\n\n private _activationStateChange = ({item}: ItemActiveStateChangeEvent) => {\n // handle only if relevant to this item\n if (this === item) {\n this.update();\n }\n };\n\n public deactivate(): void {\n if (this._isDestroyed()) {\n return;\n }\n\n this._options.deactivate(this);\n }\n\n public _destroy(): void {\n if (this._isDestroyed()) {\n return;\n }\n\n this._options.eventManager.off(\n KitchenSinkEventTypes.ItemActiveStateChangeEvent,\n this._activationStateChange\n );\n this.update();\n this._componentRef = null;\n this._options = null;\n this._destroyed = true;\n }\n\n public renderContentChild = (\n props: KitchenSinkItemRenderProps\n ): ComponentChild => {\n if (this._isDestroyed()) {\n return;\n }\n\n const {renderContent, label} = this._options.data;\n const {kitchenSinkConfig} = this._options;\n\n return (\n <ManagedComponent\n label={label}\n fillContainer={false}\n renderChildren={() => (\n <KitchenSink\n children={renderContent(props)}\n isActive={this.isActive()}\n kitchenSinkConfig={kitchenSinkConfig}\n />\n )}\n isShown={() => !this._destroyed}\n ref={ref => (this._componentRef = ref)}\n />\n );\n };\n\n private _isDestroyed(): boolean {\n if (this._destroyed) {\n this._logger.warn(\n `can't perform requested call, item was marked as destroyed`,\n {}\n );\n return true;\n }\n return false;\n }\n}\n","import {ComponentChild, h} from 'preact';\nimport {\n KitchenSinkExpandModes,\n KitchenSinkItemData,\n KitchenSinkPositions,\n} from './kitchen-sink-item-data';\nimport {KitchenSinkItem, KitchenSinkItemRenderProps} from './kitchen-sink-item';\nimport {UpperBarManager} from './upper-bar-manager';\nimport {PresetManager} from './preset-manager';\nimport {\n ArrayUtils,\n EventsManager,\n ObjectUtils,\n} from '@playkit-js-contrib/common';\nimport {KitchenSinkContainer} from './components/kitchen-sink-container/kitchen-sink-container';\nimport {KitchenSinkAdapter} from './components/kitchen-sink-adapter';\nimport {ManagedComponent} from './components/managed-component';\nimport {UpperBarItem} from './upper-bar-item';\nimport {PresetsUtils} from './presets-utils';\nimport {getContribConfig} from './contrib-utils';\n\nexport interface KitchenSinkManagerOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n presetManager: PresetManager;\n upperBarManager: UpperBarManager;\n}\n\nconst acceptableTypes = ['PlayerArea', 'SidePanelRight', 'SidePanelBottom'];\n\nexport enum ItemActiveStates {\n Active = 'Active',\n InActive = 'InActive',\n}\n\nexport enum KitchenSinkEventTypes {\n ItemActiveStateChangeEvent = 'ItemActiveStateChangeEvent',\n}\n\nexport interface ItemActiveStateChangeEvent {\n type: KitchenSinkEventTypes.ItemActiveStateChangeEvent;\n state: ItemActiveStates;\n item: KitchenSinkItem;\n}\n\nexport type KitchenSinkEvents = ItemActiveStateChangeEvent;\n\ninterface KitchenSinkPanel {\n ref: ManagedComponent | null;\n items: {\n kitchenSinkItem: KitchenSinkItem;\n upperBarItem: UpperBarItem;\n }[];\n activeItem: KitchenSinkItem | null;\n}\n\nconst defaultKitchenSinkConfig: KalturaPlayerContribTypes.KitchenSinkConfig = {\n theme: {\n backgroundColor: 'rgba(0, 0, 0, .7)',\n blur: '10px',\n },\n presetAreasMapping: {\n Playback: {\n PlayerArea: 'PlayerArea',\n SidePanelRight: 'SidePanelRight',\n SidePanelBottom: 'SidePanelBottom',\n },\n Live: {\n PlayerArea: 'PlayerArea',\n SidePanelRight: 'SidePanelRight',\n SidePanelBottom: 'SidePanelBottom',\n },\n },\n};\n\nexport class KitchenSinkManager {\n private _events: EventsManager<KitchenSinkEvents> = new EventsManager<\n KitchenSinkEvents\n >();\n\n private _panels: Record<KitchenSinkPositions, KitchenSinkPanel> = {\n [KitchenSinkPositions.Bottom]: {ref: null, items: [], activeItem: null},\n [KitchenSinkPositions.Right]: {ref: null, items: [], activeItem: null},\n [KitchenSinkPositions.Top]: {ref: null, items: [], activeItem: null},\n [KitchenSinkPositions.Left]: {ref: null, items: [], activeItem: null},\n };\n\n private _options: KitchenSinkManagerOptions;\n private _kitchenSinkAdapterRef: KitchenSinkAdapter | null = null;\n private _kitchenSinkConfig: KalturaPlayerContribTypes.KitchenSinkConfig;\n\n on: EventsManager<KitchenSinkEvents>['on'] = this._events.on.bind(\n this._events\n );\n off: EventsManager<KitchenSinkEvents>['off'] = this._events.off.bind(\n this._events\n );\n\n constructor(private options: KitchenSinkManagerOptions) {\n this._options = options;\n\n this._kitchenSinkConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.kitchenSink',\n defaultKitchenSinkConfig,\n {\n explicitMerge: ['presetAreasMapping'],\n }\n );\n\n const groupedPresets = PresetsUtils.groupPresetAreasByType({\n presetAreasMapping: this._kitchenSinkConfig.presetAreasMapping,\n acceptableTypes,\n });\n\n this.options.presetManager.add({\n label: 'kitchen-sink-right',\n fillContainer: true,\n presetAreas: groupedPresets['SidePanelRight'],\n renderChild: this._renderChild.bind(this, KitchenSinkPositions.Right),\n });\n\n this.options.presetManager.add({\n label: 'kitchen-sink-bottom',\n fillContainer: true,\n presetAreas: groupedPresets['SidePanelBottom'],\n renderChild: this._renderChild.bind(this, KitchenSinkPositions.Bottom),\n });\n\n this.options.presetManager.add({\n label: 'kitchen-sink-adapter',\n presetAreas: groupedPresets['PlayerArea'],\n renderChild: () => <KitchenSinkAdapter ref={this._setRef} />,\n });\n }\n\n /**\n * initialize new upper bar item\n * @param item\n */\n add(data: KitchenSinkItemData): KitchenSinkItem {\n const itemOptions = {\n data,\n isActive: this._isActive,\n activate: this._activateItem,\n deactivate: this._deactivateItem,\n eventManager: this._events,\n kitchenSinkConfig: this._kitchenSinkConfig,\n };\n\n const relevantPanel = this._panels[data.position];\n const kitchenSinkItem = new KitchenSinkItem(itemOptions);\n const upperBarItem = this.options.upperBarManager.add({\n label: data.label,\n renderItem: () => data.renderIcon(itemOptions.isActive(kitchenSinkItem)),\n onClick: () => {\n this._toggle(kitchenSinkItem);\n this.options.upperBarManager.update();\n },\n });\n relevantPanel.items.push({\n kitchenSinkItem,\n upperBarItem,\n });\n if (relevantPanel.ref) {\n relevantPanel.ref.update();\n }\n\n return kitchenSinkItem;\n }\n\n remove(item: KitchenSinkItem): void {\n const relevantPanel = this._panels[item.data.position];\n const itemsIndex = ArrayUtils.findIndex(\n relevantPanel.items,\n ({kitchenSinkItem}) => {\n return item === kitchenSinkItem;\n }\n );\n\n if (itemsIndex === -1) return;\n\n this._deactivateItem(item);\n const {upperBarItem} = relevantPanel.items[itemsIndex];\n item._destroy();\n this.options.upperBarManager.remove(upperBarItem);\n relevantPanel.items.splice(itemsIndex, 1);\n\n if (relevantPanel.ref) {\n relevantPanel.ref.update();\n }\n }\n\n private _toggle = (item: KitchenSinkItem): void => {\n if (this._isActive(item)) {\n this._deactivateItem(item);\n } else {\n this._activateItem(item);\n }\n };\n\n private _activateItem = (item: KitchenSinkItem): void => {\n const {position, expandMode} = item.data;\n const relevantPanel = this._panels[position];\n // trying to activate an already active item\n if (relevantPanel.activeItem === item) return;\n // switch between items if currently there is an active one (without collapsing / expanding KS)\n if (relevantPanel.activeItem) {\n //trigger item de-activation event\n this._events.emit({\n type: KitchenSinkEventTypes.ItemActiveStateChangeEvent,\n state: ItemActiveStates.InActive,\n item: relevantPanel.activeItem,\n });\n }\n //update new item as active\n relevantPanel.activeItem = item;\n //trigger new item activation event\n this._events.emit({\n type: KitchenSinkEventTypes.ItemActiveStateChangeEvent,\n state: ItemActiveStates.Active,\n item: item,\n });\n //expand kitchenSink component (won't do anything if already expanded)\n this._expand(position, expandMode);\n };\n\n private _deactivateItem = (item: KitchenSinkItem): void => {\n const {position} = item.data;\n const relevantPanel = this._panels[position];\n\n //item is not active\n if (relevantPanel.activeItem !== item) return;\n //collapse kitchenSink component\n this._collapse(position);\n //trigger item de-activation event\n this._events.emit({\n type: KitchenSinkEventTypes.ItemActiveStateChangeEvent,\n state: ItemActiveStates.InActive,\n item: relevantPanel.activeItem,\n });\n //remove item from _activeItems\n relevantPanel.activeItem = null;\n };\n\n private _isActive = (item: KitchenSinkItem): boolean => {\n return this._panels[item.data.position].activeItem === item;\n };\n\n private _expand = (\n position: KitchenSinkPositions,\n expandMode: KitchenSinkExpandModes\n ): void => {\n if (!this._kitchenSinkAdapterRef) {\n return;\n }\n\n this._kitchenSinkAdapterRef.expand(position, expandMode);\n };\n\n private _collapse(position: KitchenSinkPositions): void {\n if (!this._kitchenSinkAdapterRef) {\n return;\n }\n\n this._kitchenSinkAdapterRef.collapse(position);\n }\n\n private _renderKitchenSink(position: KitchenSinkPositions) {\n const items = this._panels[position].items.map(({kitchenSinkItem}) => {\n const itemProps: KitchenSinkItemRenderProps = {\n onClose: this._deactivateItem.bind(this, kitchenSinkItem),\n };\n return kitchenSinkItem.renderContentChild(itemProps);\n });\n return <KitchenSinkContainer>{items}</KitchenSinkContainer>;\n }\n\n private _renderChild = (position: KitchenSinkPositions): ComponentChild => {\n return (\n <ManagedComponent\n label={'kitchen-sink-manager'}\n renderChildren={() => this._renderKitchenSink(position)}\n isShown={() => true}\n ref={ref => (this._panels[position].ref = ref)}\n />\n );\n };\n\n private _setRef = (ref: KitchenSinkAdapter | null) => {\n this._kitchenSinkAdapterRef = ref ? ref : null;\n };\n\n /**\n * remove all ui manager items\n */\n reset(): void {\n const allItems = [\n ...this._panels[KitchenSinkPositions.Bottom].items,\n ...this._panels[KitchenSinkPositions.Left].items,\n ...this._panels[KitchenSinkPositions.Top].items,\n ...this._panels[KitchenSinkPositions.Right].items,\n ];\n allItems.forEach(({kitchenSinkItem}) => {\n this.remove(kitchenSinkItem);\n });\n }\n}\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n // Only Node.JS has a process variable that is of [[Class]] process\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach([\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',\n 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken',\n 'socketPath'\n ], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","export interface ScaleCalculation {\n width: number;\n height: number;\n left: number;\n top: number;\n scaleToTargetWidth: boolean;\n}\n\nexport function scaleVideo(\n videoWidth: number,\n videoHeight: number,\n playerWidth: number,\n playerHeight: number,\n fLetterBox: boolean\n): ScaleCalculation {\n const result: ScaleCalculation = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n scaleToTargetWidth: true,\n };\n\n if (\n videoWidth <= 0 ||\n videoHeight <= 0 ||\n playerWidth <= 0 ||\n playerHeight <= 0\n ) {\n return result;\n }\n\n // scale to the target width\n const scaleX1 = playerWidth;\n const scaleY1 = (videoHeight * playerWidth) / videoWidth;\n\n // scale to the target height\n const scaleX2 = (videoWidth * playerHeight) / videoHeight;\n const scaleY2 = playerHeight;\n\n // now figure out which one we should use\n let fScaleOnWidth = scaleX2 > playerWidth;\n if (fScaleOnWidth) {\n fScaleOnWidth = fLetterBox;\n } else {\n fScaleOnWidth = !fLetterBox;\n }\n\n if (fScaleOnWidth) {\n result.width = Math.abs(scaleX1);\n result.height = Math.abs(scaleY1);\n result.scaleToTargetWidth = true;\n } else {\n result.width = Math.abs(scaleX2);\n result.height = Math.abs(scaleY2);\n result.scaleToTargetWidth = false;\n }\n result.left = Math.abs((playerWidth - result.width) / 2);\n result.top = Math.abs((playerHeight - result.height) / 2);\n\n return result;\n}\n","import {h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport {OverlayItemData, OverlayItemProps} from './overlay-item-data';\nimport {ManagedComponent} from './components/managed-component';\n\nexport interface OverlayItemOptions {\n data: OverlayItemData;\n}\n\nexport class OverlayItem {\n private _destroyed = false;\n private _options: OverlayItemOptions;\n private _logger: ContribLogger;\n\n constructor(options: OverlayItemOptions) {\n this._options = options;\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'OverlayItem',\n context: options.data.label,\n });\n this._logger.debug('executed', {\n method: 'constructor',\n data: {\n options,\n },\n });\n this._logger.info(`created item ${options.data.label}`, {\n method: 'constructor',\n });\n }\n\n get data() {\n return this._options.data;\n }\n\n /**\n * destory the ui item\n */\n destroy(): void {\n this._logger.info('destroy item', {\n method: 'destroy',\n });\n this._destroyed = true;\n }\n\n renderOverlayChild(props: OverlayItemProps) {\n return this._destroyed ? null : this._options.data.renderContent(props);\n }\n}\n","import {ComponentChild, Ref} from 'preact';\nimport {PlayerSize, VideoSize} from './common.types';\n\nexport enum OverlayPositions {\n PlayerArea = 'PlayerArea',\n}\n\nexport interface OverlayItemData {\n label: string;\n renderContent: (overlayItemProps: OverlayItemProps) => ComponentChild;\n className?: string;\n position: OverlayPositions;\n}\n\nexport interface OverlayItemProps {}\n","module.exports = \"data:image/svg+xml,%3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/Someone asks%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/Someone-asks' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='Group' transform='translate(4.000000, 5.000000)' fill='%23B2D238'%3E %3Cellipse id='Oval' cx='12' cy='5.5' rx='6' ry='5.5'%3E%3C/ellipse%3E %3Cpath d='M12,13 C7.995,13 0,15.01 0,19 L0,20.5 C0,21.325 0.675,22 1.5,22 L22.5,22 C23.325,22 24,21.325 24,20.5 L24,19 C24,15.01 16.005,13 12,13 Z' id='Path'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3Csvg width='20px' height='20px' viewBox='0 0 20 20' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/20/Someone asks%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/20/Someone-asks' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='Group' transform='translate(2.000000, 2.000000)' fill='%23B2D238'%3E %3Ccircle id='Oval' cx='8' cy='4' r='4'%3E%3C/circle%3E %3Cpath d='M8,9 C5.33,9 0,10.5633333 0,13.6666667 L0,14.8333333 C0,15.475 0.45,16 1,16 L15,16 C15.55,16 16,15.475 16,14.8333333 L16,13.6666667 C16,10.5633333 10.67,9 8,9 Z' id='Path'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32x32/Menu Player Close%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32x32/Menu-Player-Close' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M17.4142136,16 L22.363961,20.9497475 C22.7544853,21.3402718 22.7544853,21.9734367 22.363961,22.363961 C21.9734367,22.7544853 21.3402718,22.7544853 20.9497475,22.363961 L16,17.4142136 L11.0502525,22.363961 C10.6597282,22.7544853 10.0265633,22.7544853 9.63603897,22.363961 C9.24551468,21.9734367 9.24551468,21.3402718 9.63603897,20.9497475 L14.5857864,16 L9.63603897,11.0502525 C9.24551468,10.6597282 9.24551468,10.0265633 9.63603897,9.63603897 C10.0265633,9.24551468 10.6597282,9.24551468 11.0502525,9.63603897 L16,14.5857864 L20.9497475,9.63603897 C21.3402718,9.24551468 21.9734367,9.24551468 22.363961,9.63603897 C22.7544853,10.0265633 22.7544853,10.6597282 22.363961,11.0502525 L17.4142136,16 Z' id='Path' fill='%23FFFFFF'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E %3Cpath fill='%23FFF' fill-rule='evenodd' d='M5.956 5l3.348-3.348A.674.674 0 0 0 9.3.7a.672.672 0 0 0-.952-.004L5 4.044 1.652.696A.674.674 0 0 0 .7.7a.672.672 0 0 0-.004.952L4.044 5 .696 8.348A.674.674 0 0 0 .7 9.3c.265.266.69.266.952.004L5 5.956l3.348 3.348c.262.262.689.26.952-.004a.672.672 0 0 0 .004-.952L5.956 5z' opacity='.9'/%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3Csvg width='16px' height='16px' viewBox='0 0 16 16' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/16/Close%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/16/Close' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M8.8497789,8 L11.824005,10.9742261 C12.058665,11.2088861 12.058665,11.5893451 11.824005,11.824005 C11.5893451,12.058665 11.2088861,12.058665 10.9742261,11.824005 L8,8.8497789 L5.02577387,11.824005 C4.7911139,12.058665 4.41065493,12.058665 4.17599497,11.824005 C3.94133501,11.5893451 3.94133501,11.2088861 4.17599497,10.9742261 L7.1502211,8 L4.17599497,5.02577387 C3.94133501,4.7911139 3.94133501,4.41065493 4.17599497,4.17599497 C4.41065493,3.94133501 4.7911139,3.94133501 5.02577387,4.17599497 L8,7.1502211 L10.9742261,4.17599497 C11.2088861,3.94133501 11.5893451,3.94133501 11.824005,4.17599497 C12.058665,4.41065493 12.058665,4.7911139 11.824005,5.02577387 L8.8497789,8 Z' id='Path' fill='%23cccccc'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E %3Cg fill='none' fill-rule='evenodd'%3E %3Cpath d='M0 0h32v32H0z'/%3E %3Cpath fill='%23FFF' d='M16 22a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm0-11a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm0-11a3 3 0 1 1 0 6 3 3 0 0 1 0-6zm0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E %3C/g%3E %3C/svg%3E\"","/// <reference path=\"./global.d.ts\" />\n\nexport * from './banner-manager';\nexport * from './toast-manager';\nexport * from './floating-item';\nexport * from './floating-item-data';\nexport * from './floating-manager';\nexport * from './upper-bar-item';\nexport * from './upper-bar-item-data';\nexport * from './upper-bar-manager';\nexport * from './kitchen-sink-item';\nexport * from './kitchen-sink-item-data';\nexport * from './kitchen-sink-manager';\nexport * from './preset-manager';\nexport * from './font-manager';\nexport * from './preset-item-data';\nexport * from './presets-utils';\nexport * from './scale-video';\nexport * from './cuepoint-floating-engine';\nexport * from './common.types';\nexport * from './components/managed-component';\nexport * from './local-content-utils';\nexport * from './overlay-manager';\nexport * from './overlay-item';\nexport * from './overlay-item-data';\nexport * from './components/popover';\n","import {FloatingItem} from './floating-item';\nimport {FloatingManager} from './floating-manager';\nimport {ObjectUtils} from '@playkit-js-contrib/common';\nimport {\n FloatingItemProps,\n FloatingPositions,\n FloatingUIModes,\n} from './floating-item-data';\nimport {ComponentChild, h} from 'preact';\nimport {Banner} from './components/banner';\nimport {BannerContainer} from './components/banner-container';\nimport {BannerContainerProps} from './components/banner-container/banner-container';\nimport {getPlayerSize} from './player-utils';\nimport BannerConfig = KalturaPlayerContribTypes.BannerConfig;\nimport {getContribConfig} from './contrib-utils';\n\nexport interface BannerContent {\n text: string;\n title?: string;\n icon?: any;\n}\n\nexport interface BannerOptions {\n content: BannerContent;\n autoClose?: boolean;\n duration?: number;\n renderContent?: (\n content: BannerContent,\n floatingItemProps: FloatingItemProps\n ) => ComponentChild;\n}\n\nexport interface BannerManagerOptions {\n floatingManager: FloatingManager;\n kalturaPlayer: KalturaPlayerTypes.Player;\n}\n\nexport interface BannerState {\n visibilityMode: VisibilityMode;\n}\n\nexport enum VisibilityMode {\n VISIBLE = 'VISIBLE',\n HIDDEN = 'HIDDEN',\n}\n\nconst MinPlayerWidth = 480;\nconst DefaultDuration: number = 60 * 1000;\nconst MinDuration: number = 5 * 1000;\n\nconst defaultBannerConfig: BannerConfig = {\n theme: {\n backgroundColor: 'rgba(0, 0, 0, .7)',\n blur: '10px',\n },\n};\n\n/**\n * banner manager manages the display (add / remove) of a single banner in the player.\n */\nexport class BannerManager {\n private _options: BannerManagerOptions;\n private _floatingItem: FloatingItem | null = null;\n private _timerSubscription: any | undefined = undefined;\n private _bannerConfig: BannerConfig;\n\n constructor(private options: BannerManagerOptions) {\n this._options = options;\n\n this._bannerConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.banner',\n defaultBannerConfig\n );\n }\n\n add(props: BannerOptions): BannerState {\n if (this._floatingItem) {\n this.remove();\n }\n this._floatingItem = this._options.floatingManager.add({\n label: 'Banner',\n mode: FloatingUIModes.Immediate,\n position: FloatingPositions.InteractiveArea,\n renderContent: this._createRenderBanner(props, {\n onClose: this._handleCloseEvent.bind(this),\n theme: this._bannerConfig.theme,\n }),\n });\n if (props.autoClose) {\n this._startDurationTimer(props.duration);\n }\n return this._getState();\n }\n\n remove() {\n if (this._floatingItem) {\n if (this._timerSubscription) clearTimeout(this._timerSubscription);\n this._options.floatingManager.remove(this._floatingItem);\n this._floatingItem = null;\n }\n }\n\n reset() {\n this.remove();\n }\n\n private _createRenderBanner(\n {content, renderContent}: BannerOptions,\n {onClose, theme}: BannerContainerProps\n ) {\n function _renderContent(floatingItemProps: FloatingItemProps) {\n return (\n <BannerContainer onClose={onClose} theme={theme}>\n {renderContent ? (\n renderContent(content, floatingItemProps)\n ) : (\n <Banner content={content} />\n )}\n </BannerContainer>\n );\n }\n return _renderContent;\n }\n\n private _handleCloseEvent() {\n this.remove();\n }\n\n private _startDurationTimer(displayDuration: number = DefaultDuration) {\n this._timerSubscription = setTimeout(\n this.remove.bind(this),\n Math.max(MinDuration, displayDuration)\n );\n }\n\n private _getState(): BannerState {\n const playerSize = getPlayerSize(this._options.kalturaPlayer);\n return {\n visibilityMode:\n !playerSize || playerSize.width < MinPlayerWidth\n ? VisibilityMode.HIDDEN\n : VisibilityMode.VISIBLE,\n };\n }\n}\n","export {Banner} from './banner';\n","import {Component, h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport {BannerContent} from '../../banner-manager';\nimport * as styles from './_banner.scss';\n\nexport interface BannerProps {\n content: BannerContent;\n}\n\nexport class Banner extends Component<BannerProps> {\n private _logger: ContribLogger = getContribLogger({\n module: 'contrib-ui',\n class: 'Banner',\n });\n\n componentDidMount(): void {\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render({content}: BannerProps) {\n const {\n text,\n title = 'Audience asks:',\n icon = this._defaultIcon(),\n } = content;\n\n this._logger.trace(`render component`, {\n method: 'render',\n });\n\n return (\n <div className={styles.defaultBannerRoot + ' ' + styles.bannerWrapper}>\n <div className={styles.iconContainer}>\n <div className={styles.iconWrapper}>{icon}</div>\n </div>\n <div className={styles.bannerBody}>\n <div className={styles.title}>{title}</div>\n <div className={styles.text}>{text}</div>\n </div>\n </div>\n );\n }\n\n private _defaultIcon() {\n return <div className={styles.iconImage} />;\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_banner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"./assets/someone_asks_large.svg\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"./assets/someone_asks_small.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_banner__defaultBannerRoot___3Mjsx{display:flex;max-width:100%;height:100%;transition:all .5s ease;text-align:left}.contrib_banner__bannerWrapper___10Aav{padding:18px 17px 17px 16px}.contrib_banner__iconContainer___11URF{height:100%;width:64px}.contrib_banner__iconWrapper___2GmiQ{position:relative;height:48px;width:48px;background-color:rgba(255,255,255,0.14);border-radius:50%;transition:all .5s ease}.contrib_banner__iconImage___34fSF{position:absolute;width:32px;height:32px;left:calc(50% - 16px);top:calc(50% - 16px);background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-repeat:no-repeat;transition:all .5s ease}.contrib_banner__bannerBody___3co4C{height:100%;flex:1 1 auto;overflow:hidden}.contrib_banner__title___3cUox{opacity:0.9;font-size:14px;font-weight:normal;font-style:normal;font-stretch:normal;line-height:1;letter-spacing:normal;color:#ebebeb}.contrib_banner__text___1yzsx{opacity:0.9;font-size:24px;font-weight:normal;font-style:normal;font-stretch:normal;line-height:1.21;letter-spacing:normal;color:#ffffff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .5s ease}.playkit-size-md .contrib_banner__bannerWrapper___10Aav{padding:14px 16px 14px}.playkit-size-md .contrib_banner__iconContainer___11URF{width:44px}.playkit-size-md .contrib_banner__iconWrapper___2GmiQ{height:32px;width:32px}.playkit-size-md .contrib_banner__iconImage___34fSF{width:20px;height:20px;left:calc(50% - 10px);top:calc(50% - 10px);background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.playkit-size-md .contrib_banner__bannerBody___3co4C{flex:1 1 auto}.playkit-size-md .contrib_banner__title___3cUox{font-size:12px;font-weight:bold;line-height:1.17}.playkit-size-md .contrib_banner__text___1yzsx{font-size:15px;line-height:1.27}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/banner/_banner.scss\"],\"names\":[],\"mappings\":\"AAAA,2CACE,YAAa,CACb,cAAe,CACf,WAAY,CACZ,uBAAwB,CACxB,eAAgB,CACjB,uCAGC,2BAA4B,CAC7B,uCAGC,WAAY,CACZ,UAAW,CACZ,qCAGC,iBAAkB,CAClB,WAAY,CACZ,UAAW,CACX,uCAAwC,CACxC,iBAAkB,CAClB,uBAAwB,CACzB,mCAGC,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,qBAAsB,CACtB,oBAAqB,CACrB,wDAAwD,CACxD,2BAA4B,CAC5B,uBAAwB,CACzB,oCAGC,WAAY,CACZ,aAAc,CACd,eAAgB,CACjB,+BAGC,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,iBAAkB,CAClB,mBAAoB,CACpB,aAAc,CACd,qBAAsB,CACtB,aAAc,CACf,8BAGC,WAAY,CACZ,cAAe,CACf,kBAAmB,CACnB,iBAAkB,CAClB,mBAAoB,CACpB,gBAAiB,CACjB,qBAAsB,CACtB,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,uBAAwB,CACzB,wDAMO,sBACF,CALN,wDAOQ,UAAW,CAPnB,sDAUQ,WAAY,CACZ,UAAW,CAXnB,oDAcQ,UAAW,CACX,WAAY,CACZ,qBAAsB,CACtB,oBAAqB,CACrB,wDAAwD,CAlBhE,qDAqBQ,aAAc,CArBtB,gDAwBQ,cAAe,CACf,gBAAiB,CACjB,gBAAiB,CA1BzB,+CA6BQ,cAAe,CACf,gBAAiB\",\"file\":\"_banner.scss\",\"sourcesContent\":[\".defaultBannerRoot {\\n display: flex;\\n max-width: 100%;\\n height: 100%;\\n transition: all .5s ease;\\n text-align: left;\\n}\\n\\n.bannerWrapper {\\n padding: 18px 17px 17px 16px;\\n}\\n\\n.iconContainer {\\n height: 100%;\\n width: 64px;\\n}\\n\\n.iconWrapper {\\n position: relative;\\n height: 48px;\\n width: 48px;\\n background-color: rgba(255,255,255,0.14);\\n border-radius: 50%;\\n transition: all .5s ease;\\n}\\n\\n.iconImage {\\n position: absolute;\\n width: 32px;\\n height: 32px;\\n left: calc(50% - 16px);\\n top: calc(50% - 16px);\\n background-image: url('./assets/someone_asks_large.svg');\\n background-repeat: no-repeat;\\n transition: all .5s ease;\\n}\\n\\n.bannerBody {\\n height: 100%;\\n flex: 1 1 auto;\\n overflow: hidden;\\n}\\n\\n.title {\\n opacity: 0.9;\\n font-size: 14px;\\n font-weight: normal;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: 1;\\n letter-spacing: normal;\\n color: #ebebeb;\\n}\\n\\n.text {\\n opacity: 0.9;\\n font-size: 24px;\\n font-weight: normal;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: 1.21;\\n letter-spacing: normal;\\n color: #ffffff;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n transition: all .5s ease;\\n}\\n\\n:global {\\n .playkit-size-md {\\n :local {\\n .bannerWrapper {\\n padding: 14px 16px 14px\\n }\\n .iconContainer {\\n width: 44px;\\n }\\n .iconWrapper {\\n height: 32px;\\n width: 32px;\\n }\\n .iconImage {\\n width: 20px;\\n height: 20px;\\n left: calc(50% - 10px);\\n top: calc(50% - 10px);\\n background-image: url('./assets/someone_asks_small.svg');\\n }\\n .bannerBody {\\n flex: 1 1 auto;\\n }\\n .title {\\n font-size: 12px;\\n font-weight: bold;\\n line-height: 1.17;\\n }\\n .text {\\n font-size: 15px;\\n line-height: 1.27;\\n }\\n }\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"defaultBannerRoot\": \"contrib_banner__defaultBannerRoot___3Mjsx\",\n\t\"bannerWrapper\": \"contrib_banner__bannerWrapper___10Aav\",\n\t\"iconContainer\": \"contrib_banner__iconContainer___11URF\",\n\t\"iconWrapper\": \"contrib_banner__iconWrapper___2GmiQ\",\n\t\"iconImage\": \"contrib_banner__iconImage___34fSF\",\n\t\"bannerBody\": \"contrib_banner__bannerBody___3co4C\",\n\t\"title\": \"contrib_banner__title___3cUox\",\n\t\"text\": \"contrib_banner__text___1yzsx\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","export {BannerContainer} from './banner-container';\n","import {Component, h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport * as styles from './_banner-container.scss';\n\nexport interface BannerContainerProps {\n onClose: () => void;\n theme: BannerTheme;\n}\n\ninterface BannerTheme {\n backgroundColor: string;\n blur: string;\n}\n\nexport class BannerContainer extends Component<BannerContainerProps> {\n private _logger: ContribLogger = getContribLogger({\n module: 'contrib-ui',\n class: 'BannerContainer',\n });\n\n componentDidMount(): void {\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render(props: BannerContainerProps) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n\n const {backgroundColor, blur} = this.props.theme;\n\n return (\n <div className={styles.bannerContainerRoot}>\n <div\n style={`\n background-color:${backgroundColor}; \n backdrop-filter: blur(${blur});\n `}\n className={styles.bannerContainer}>\n <button className={styles.closeButton} onClick={props.onClose} />\n {this.props.children}\n </div>\n </div>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_banner-container.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"./assets/close_large.svg\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"./assets/close_small.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_banner-container__bannerContainerRoot___3riMs{position:absolute;max-width:100%;min-width:270px;padding:0 16px 8px;height:88px;bottom:0;left:0;transition:all .5s ease}.contrib_banner-container__bannerContainer___gn6bT{position:relative;width:100%;height:100%;border-radius:4px;transition:all .5s ease}.contrib_banner-container__closeButton___2PBES{position:absolute;background-color:transparent;padding:0;border:none;top:0;right:0;width:32px;height:32px;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-repeat:no-repeat}.contrib_banner-container__closeButton___2PBES:hover,.contrib_banner-container__closeButton___2PBES:active{cursor:pointer}.playkit-size-md .contrib_banner-container__bannerContainerRoot___3riMs{height:68px;min-width:230px}.playkit-size-md .contrib_banner-container__closeButton___2PBES{top:8px;right:8px;width:10px;height:10px;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.playkit-size-sm .contrib_banner-container__bannerContainerRoot___3riMs,.playkit-size-xs .contrib_banner-container__bannerContainerRoot___3riMs,.playkit-size-ty .contrib_banner-container__bannerContainerRoot___3riMs{display:none;width:0;height:0}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/banner-container/_banner-container.scss\"],\"names\":[],\"mappings\":\"AAAA,uDACE,iBAAkB,CAClB,cAAe,CACf,eAAgB,CAChB,kBAAmB,CACnB,WAAY,CACZ,QAAS,CACT,MAAO,CACP,uBAAwB,CACzB,mDAGC,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,uBAAwB,CACzB,+CAGC,iBAAkB,CAClB,4BAA6B,CAC7B,SAAU,CACV,WAAY,CACZ,KAAM,CACN,OAAQ,CACR,UAAW,CACX,WAAY,CACZ,wDAAiD,CACjD,2BAA4B,CAC7B,2GAGC,cAAe,CAChB,wEAMO,WAAY,CACZ,eAAgB,CALxB,gEAQQ,OAAQ,CACR,SAAU,CACV,UAAW,CACX,WAAY,CACZ,wDAAiD,CAClD,wNAQD,YAAa,CACb,OAAQ,CACR,QAAS\",\"file\":\"_banner-container.scss\",\"sourcesContent\":[\".bannerContainerRoot {\\n position: absolute;\\n max-width: 100%;\\n min-width: 270px;\\n padding: 0 16px 8px;\\n height: 88px;\\n bottom: 0;\\n left: 0;\\n transition: all .5s ease;\\n}\\n\\n.bannerContainer {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n border-radius: 4px;\\n transition: all .5s ease;\\n}\\n\\n.closeButton {\\n position: absolute;\\n background-color: transparent;\\n padding: 0;\\n border: none;\\n top: 0;\\n right: 0;\\n width: 32px;\\n height: 32px;\\n background-image: url('./assets/close_large.svg');\\n background-repeat: no-repeat;\\n}\\n\\n.closeButton:hover, .closeButton:active {\\n cursor: pointer;\\n}\\n\\n:global {\\n .playkit-size-md {\\n :local {\\n .bannerContainerRoot {\\n height: 68px;\\n min-width: 230px;\\n }\\n .closeButton {\\n top: 8px;\\n right: 8px;\\n width: 10px;\\n height: 10px;\\n background-image: url('./assets/close_small.svg');\\n }\\n }\\n }\\n}\\n\\n:global {\\n .playkit-size-sm, .playkit-size-xs, .playkit-size-ty {\\n :local .bannerContainerRoot {\\n display: none;\\n width: 0;\\n height: 0;\\n }\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"bannerContainerRoot\": \"contrib_banner-container__bannerContainerRoot___3riMs\",\n\t\"bannerContainer\": \"contrib_banner-container__bannerContainer___gn6bT\",\n\t\"closeButton\": \"contrib_banner-container__closeButton___2PBES\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","export {ToastsContainer} from './toasts-container';\n","import {Component, h} from 'preact';\nimport {Toast, ToastProps} from '../toast/toast';\nimport * as styles from './_toasts-container.scss';\n\nexport interface ToastsContainerProps {\n toasts: ToastProps[];\n}\n\nexport class ToastsContainer extends Component<ToastsContainerProps> {\n render() {\n return (\n <div className={styles.toastsContainer}>\n {this.props.toasts.map(toast => {\n return (\n <div className={styles.toastRow} key={toast.id}>\n <Toast {...toast} />\n </div>\n );\n })}\n </div>\n );\n }\n}\n","import {Component, h} from 'preact';\nimport * as styles from './_toast.scss';\nimport {ToastSeverity} from '../../toast-manager';\n\nexport interface ToastProps {\n id: string;\n title: string;\n text: string;\n icon: any;\n severity: ToastSeverity;\n onClose: (id: string) => void;\n onClick: () => void;\n}\n\ninterface ToastState {\n isShown: boolean;\n}\n\nexport class Toast extends Component<ToastProps, ToastState> {\n state = {\n isShown: true,\n };\n\n private _onClick = e => {\n this.props.onClick();\n this._onClose(e);\n };\n\n private _onClose = e => {\n e.stopPropagation();\n this.setState({isShown: false});\n this.props.onClose(this.props.id);\n };\n\n private _getToastSeverityClass(): string {\n switch (this.props.severity) {\n case ToastSeverity.Success:\n return styles.successToast;\n case ToastSeverity.Warn:\n return styles.warnToast;\n case ToastSeverity.Error:\n return styles.errorToast;\n default:\n //info\n return styles.infoToast;\n }\n }\n\n render() {\n const {text, title, icon} = this.props;\n\n return (\n <div\n className={styles.toastWrapper + ' ' + this._getToastSeverityClass()}\n onClick={this._onClick}>\n <button className={styles.closeButton} onClick={this._onClose}></button>\n <div className={styles.title}>{title}</div>\n <div className={styles.toastBody}>\n <div className={styles.iconContainer}>\n <div className={styles.iconWrapper}>{icon}</div>\n </div>\n <div className={styles.text}>{text}</div>\n </div>\n </div>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_toast.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"./assets/close.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_toast__toastWrapper___QXcJM{position:relative;min-width:120px;max-width:264px;height:100%;border-radius:4px;background-color:#222222;border-left-style:solid;border-left-width:4px;text-align:left}.contrib_toast__infoToast___1HmIt{border-left-color:#01ACCD}.contrib_toast__successToast___3ampp{border-left-color:#009E48}.contrib_toast__warnToast___23lkF{border-left-color:#F9A71B}.contrib_toast__errorToast___3bwna{border-left-color:#E7585D}.contrib_toast__closeButton___ATTAj{position:absolute;background-color:transparent;top:0;right:0;width:16px;height:16px;object-fit:contain;background-repeat:no-repeat;border:none;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.contrib_toast__closeButton___ATTAj:hover{cursor:pointer}.contrib_toast__title___RMhDh{font-size:12px;font-weight:normal;font-style:normal;font-stretch:normal;line-height:1.17;letter-spacing:normal;color:#cccccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:4px;padding-right:16px;padding-left:12px}.contrib_toast__toastBody___2kkj8{position:relative;width:100%;padding:2px 16px 5px 12px}.contrib_toast__iconContainer___37C80{position:relative;height:16px;width:16px;float:left;margin-right:7px}.contrib_toast__iconWrapper___h5_1x{height:16px;width:16px}.contrib_toast__text___2d4Qb{font-size:14px;font-weight:bold;font-style:normal;font-stretch:normal;line-height:normal;letter-spacing:normal;color:#cccccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/toast/_toast.scss\"],\"names\":[],\"mappings\":\"AAAA,qCACE,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,WAAY,CACZ,iBAAkB,CAClB,wBAAyB,CACzB,uBAAwB,CACxB,qBAAsB,CACtB,eAAgB,CACjB,kCAGC,yBAA0B,CAC3B,qCAGC,yBAA0B,CAC3B,kCAGC,yBAA0B,CAC3B,mCAGC,yBAA0B,CAC3B,oCAGC,iBAAkB,CAClB,4BAA6B,CAC7B,KAAM,CACN,OAAQ,CACR,UAAW,CACX,WAAY,CACZ,kBAAmB,CACnB,2BAA4B,CAC5B,WAAY,CACZ,wDAA2C,CAV7C,0CAaI,cAAe,CAChB,8BAID,cAAe,CACf,kBAAmB,CACnB,iBAAkB,CAClB,mBAAoB,CACpB,gBAAiB,CACjB,qBAAsB,CACtB,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,eAAgB,CAChB,kBAAmB,CACnB,iBAAkB,CACnB,kCAGC,iBAAkB,CAClB,UAAW,CACX,yBAA0B,CAC3B,sCAGC,iBAAkB,CAClB,WAAY,CACZ,UAAW,CACX,UAAW,CACX,gBAAiB,CAClB,oCAGC,WAAY,CACZ,UAAW,CACZ,6BAGC,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,qBAAsB,CACtB,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB\",\"file\":\"_toast.scss\",\"sourcesContent\":[\".toastWrapper {\\n position: relative;\\n min-width: 120px;\\n max-width: 264px;\\n height: 100%;\\n border-radius: 4px;\\n background-color: #222222;\\n border-left-style: solid;\\n border-left-width: 4px;\\n text-align: left;\\n}\\n\\n.infoToast {\\n border-left-color: #01ACCD;\\n}\\n\\n.successToast {\\n border-left-color: #009E48;\\n}\\n\\n.warnToast {\\n border-left-color: #F9A71B;\\n}\\n\\n.errorToast {\\n border-left-color: #E7585D;\\n}\\n\\n.closeButton {\\n position: absolute;\\n background-color: transparent;\\n top: 0;\\n right: 0;\\n width: 16px;\\n height: 16px;\\n object-fit: contain;\\n background-repeat: no-repeat;\\n border: none;\\n background-image: url(\\\"./assets/close.svg\\\");\\n\\n &:hover {\\n cursor: pointer;\\n }\\n}\\n\\n.title {\\n font-size: 12px;\\n font-weight: normal;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: 1.17;\\n letter-spacing: normal;\\n color: #cccccc;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n padding-top: 4px;\\n padding-right: 16px;\\n padding-left: 12px;\\n}\\n\\n.toastBody {\\n position: relative;\\n width: 100%;\\n padding: 2px 16px 5px 12px;\\n}\\n\\n.iconContainer {\\n position: relative;\\n height: 16px;\\n width: 16px;\\n float: left;\\n margin-right: 7px;\\n}\\n\\n.iconWrapper {\\n height: 16px;\\n width: 16px;\\n}\\n\\n.text {\\n font-size: 14px;\\n font-weight: bold;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n color: #cccccc;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"toastWrapper\": \"contrib_toast__toastWrapper___QXcJM\",\n\t\"infoToast\": \"contrib_toast__infoToast___1HmIt\",\n\t\"successToast\": \"contrib_toast__successToast___3ampp\",\n\t\"warnToast\": \"contrib_toast__warnToast___23lkF\",\n\t\"errorToast\": \"contrib_toast__errorToast___3bwna\",\n\t\"closeButton\": \"contrib_toast__closeButton___ATTAj\",\n\t\"title\": \"contrib_toast__title___RMhDh\",\n\t\"toastBody\": \"contrib_toast__toastBody___2kkj8\",\n\t\"iconContainer\": \"contrib_toast__iconContainer___37C80\",\n\t\"iconWrapper\": \"contrib_toast__iconWrapper___h5_1x\",\n\t\"text\": \"contrib_toast__text___2d4Qb\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_toasts-container.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_toasts-container__toastsContainer___2MBa-{position:absolute;right:0;top:0;padding:8px 16px 0;min-width:120px;max-width:264px;display:flex;flex-direction:column}.contrib_toasts-container__toastRow___2oVhO{height:42px;min-width:120px;max-width:264px;margin-bottom:8px;overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;align-self:flex-end}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/toasts-container/_toasts-container.scss\"],\"names\":[],\"mappings\":\"AAAA,mDACE,iBAAkB,CAClB,OAAQ,CACR,KAAM,CACN,kBAAmB,CACnB,eAAgB,CAChB,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACvB,4CAGC,WAAY,CACZ,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,eAAgB,CAChB,wBAAyB,CACzB,sBAAuB,CACvB,mBAAoB\",\"file\":\"_toasts-container.scss\",\"sourcesContent\":[\".toastsContainer {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding: 8px 16px 0;\\n min-width: 120px;\\n max-width: 264px;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.toastRow {\\n height: 42px;\\n min-width: 120px;\\n max-width: 264px;\\n margin-bottom: 8px;\\n overflow: hidden;\\n overflow-wrap: break-word;\\n text-overflow: ellipsis;\\n align-self: flex-end;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"toastsContainer\": \"contrib_toasts-container__toastsContainer___2MBa-\",\n\t\"toastRow\": \"contrib_toasts-container__toastRow___2oVhO\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import {h, Component, ComponentChild, ComponentChildren} from 'preact';\nimport {getContribLogger} from '@playkit-js-contrib/common';\nimport {ContribLogger} from '@playkit-js-contrib/common';\nimport * as styles from './_managed-component.scss';\nconst {\n redux: {connect},\n} = KalturaPlayer.ui;\n\ntype ManagedComponentState = {\n toggler: boolean;\n};\ntype ManagedComponentProps = {\n isShown: () => boolean;\n renderChildren: (playerSize: string) => ComponentChildren;\n label: string;\n fillContainer: boolean;\n playerSize?: string;\n updateOnPlayerSizeChanged?: boolean;\n};\n\nconst mapStateToProps = (state: Record<string, any>) => ({\n playerSize: state.shell.playerSize,\n});\n@connect(mapStateToProps, null, null, {forwardRef: true})\nexport class ManagedComponent extends Component<\n ManagedComponentProps,\n ManagedComponentState\n> {\n private _logger: ContribLogger | null = null;\n\n static defaultProps = {\n fillContainer: false,\n };\n\n update() {\n this.setState((prev: ManagedComponentState) => {\n return {\n toggler: !prev.toggler,\n };\n });\n }\n\n shouldComponentUpdate(prevProps: Readonly<ManagedComponentProps>): boolean {\n const {updateOnPlayerSizeChanged, playerSize} = this.props;\n return (\n (updateOnPlayerSizeChanged && prevProps.playerSize !== playerSize) ||\n prevProps.playerSize === playerSize\n );\n }\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'ManagedComponent',\n context: this.props.label,\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n this.setState({\n toggler: false,\n });\n }\n\n render() {\n const {fillContainer, isShown, playerSize} = this.props;\n if (!isShown()) {\n return null;\n }\n\n if (this._logger) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n }\n\n return (\n <div\n data-contrib-item={this.props.label}\n className={[\n `${fillContainer ? styles.fillContainer : ''}`,\n styles.inlineContainer,\n ].join(' ')}>\n {this.props.renderChildren(playerSize)}\n </div>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_managed-component.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_managed-component__fill-container___27fdI{width:100%;height:100%}.contrib_managed-component__inline-container___2VQc4{display:inline-block}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/managed-component/_managed-component.scss\"],\"names\":[],\"mappings\":\"AAAA,mDACE,UAAW,CACX,WAAY,CACb,qDAGC,oBAAqB\",\"file\":\"_managed-component.scss\",\"sourcesContent\":[\".fill-container {\\n width: 100%;\\n height: 100%;\\n}\\n\\n.inline-container {\\n display: inline-block;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fill-container\": \"contrib_managed-component__fill-container___27fdI\",\n\t\"fillContainer\": \"contrib_managed-component__fill-container___27fdI\",\n\t\"inline-container\": \"contrib_managed-component__inline-container___2VQc4\",\n\t\"inlineContainer\": \"contrib_managed-component__inline-container___2VQc4\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import {FloatingItem} from './floating-item';\nimport {\n FloatingItemData,\n FloatingItemProps,\n FloatingPositions,\n} from './floating-item-data';\nimport {PresetManager, PresetManagerEventTypes} from './preset-manager';\nimport {ComponentChild, h} from 'preact';\nimport {PlayerSize, VideoSize} from './common.types';\nimport {getPlayerSize, getVideoSize} from './player-utils';\nimport {ManagedComponent} from './components/managed-component';\nimport {PresetsUtils} from './presets-utils';\nimport FloatingConfig = KalturaPlayerContribTypes.FloatingConfig;\nimport {getContribConfig} from './contrib-utils';\n\nexport interface FloatingManagerOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n presetManager: PresetManager;\n}\n\nconst defaultFloatingConfig: KalturaPlayerContribTypes.FloatingConfig = {\n presetAreasMapping: {\n Playback: {\n VideoArea: 'VideoArea',\n PresetArea: 'PresetArea',\n InteractiveArea: 'InteractiveArea',\n },\n Live: {\n VideoArea: 'VideoArea',\n PresetArea: 'PresetArea',\n InteractiveArea: 'InteractiveArea',\n },\n },\n};\n\nconst acceptableTypes = ['VideoArea', 'PresetArea', 'InteractiveArea'];\n\nexport class FloatingManager {\n private _items: Record<FloatingPositions, FloatingItem[]> = {\n [FloatingPositions.VideoArea]: [],\n [FloatingPositions.InteractiveArea]: [],\n [FloatingPositions.PresetArea]: [],\n };\n private _componentRef: Record<FloatingPositions, ManagedComponent | null> = {\n [FloatingPositions.InteractiveArea]: null,\n [FloatingPositions.VideoArea]: null,\n [FloatingPositions.PresetArea]: null,\n };\n private _cache: {\n canvas: {\n playerSize: PlayerSize;\n videoSize: VideoSize;\n };\n } = {\n canvas: {\n playerSize: {width: 0, height: 0},\n videoSize: {width: 0, height: 0},\n },\n };\n\n private _floatingConfig: FloatingConfig;\n\n constructor(private _options: FloatingManagerOptions) {\n this._floatingConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.floating',\n defaultFloatingConfig,\n {\n explicitMerge: ['presetAreasMapping'],\n }\n );\n\n const groupedPresets = PresetsUtils.groupPresetAreasByType({\n presetAreasMapping: this._floatingConfig.presetAreasMapping,\n acceptableTypes,\n });\n\n Object.keys(groupedPresets).forEach(presetType => {\n this._options.presetManager.add({\n label: 'floating-manager',\n presetAreas: groupedPresets[presetType],\n renderChild: () => this._renderChild(FloatingPositions[presetType]),\n });\n });\n this._addPlayerBindings();\n this._updateCachedCanvas();\n }\n\n /**\n * initialize new floating ui item\n * @param item\n */\n //TODO push new item to relevant position array according to its' FloatingPositions value\n add(data: FloatingItemData): FloatingItem | null {\n const {presetManager} = this._options;\n\n const itemOptions = {\n presetManager,\n ...this._options,\n data,\n };\n\n const item = new FloatingItem(itemOptions);\n this._items[data.position].push(item);\n return item;\n }\n\n remove(item: FloatingItem) {\n const positionItems = this._items[item.data.position];\n const itemIndex = positionItems.indexOf(item);\n if (itemIndex > -1) {\n positionItems[itemIndex].destroy();\n positionItems.splice(itemIndex, 1);\n } else {\n console.warn(`couldn't remove ${item} since it wasn't found`);\n }\n }\n\n reset(): void {\n const allItems = [\n ...this._items.VideoArea,\n ...this._items.InteractiveArea,\n ...this._items.PresetArea,\n ];\n allItems.forEach(item => {\n try {\n item.destroy();\n } catch (e) {\n // TODO log error\n console.warn(e);\n }\n });\n\n this._items.VideoArea = [];\n this._items.PresetArea = [];\n this._items.InteractiveArea = [];\n }\n\n private _getRendererProps(\n props: Partial<FloatingItemProps>\n ): FloatingItemProps {\n const {kalturaPlayer} = this._options;\n\n return {\n currentTime:\n typeof props.currentTime !== 'undefined'\n ? props.currentTime\n : kalturaPlayer.currentTime * 1000,\n canvas: this._cache.canvas,\n };\n }\n\n private _updateCachedCanvas() {\n this._cache.canvas = {\n playerSize: getPlayerSize(this._options.kalturaPlayer),\n videoSize: getVideoSize(this._options.kalturaPlayer),\n };\n }\n\n private _renderItems = (position: FloatingPositions) => {\n const props = this._getRendererProps({});\n return this._items[position].map(item => item.renderFloatingChild(props));\n };\n\n private _renderChild = (position: FloatingPositions): ComponentChild => {\n return (\n <ManagedComponent\n label={'floating-manager'}\n renderChildren={() => this._renderItems(position)}\n isShown={() => true}\n ref={ref => (this._componentRef[position] = ref)}\n />\n );\n };\n\n private _updateComponents() {\n if (this._componentRef.InteractiveArea) {\n this._componentRef.InteractiveArea.update();\n }\n\n if (this._componentRef.PresetArea) {\n this._componentRef.PresetArea.update();\n }\n\n if (this._componentRef.VideoArea) {\n this._componentRef.VideoArea.update();\n }\n }\n\n private _addPlayerBindings() {\n const {kalturaPlayer} = this._options;\n\n kalturaPlayer.addEventListener(kalturaPlayer.Event.TIME_UPDATE, () => {\n this._updateComponents();\n });\n\n kalturaPlayer.addEventListener(kalturaPlayer.Event.MEDIA_LOADED, () => {\n this._updateCachedCanvas();\n this._updateComponents();\n });\n\n kalturaPlayer.addEventListener(kalturaPlayer.Event.LOADED_DATA, () => {\n this._updateCachedCanvas();\n this._updateComponents();\n });\n\n this._options.presetManager.on(\n PresetManagerEventTypes.VideoResizeEvent,\n () => {\n this._updateCachedCanvas();\n this._updateComponents();\n }\n );\n\n this._options.presetManager.on(\n PresetManagerEventTypes.PresetResizeEvent,\n () => {\n this._updateCachedCanvas();\n this._updateComponents();\n }\n );\n }\n}\n","import {h, render} from 'preact';\nimport {getContribLogger} from '@playkit-js-contrib/common';\nimport {PresetItemData, RelativeToTypes} from './preset-item-data';\nimport {ManagedComponent} from './components/managed-component';\nimport {ContribLogger} from '@playkit-js-contrib/common';\nimport {InjectedComponent} from './components/injected-component/injected-component';\nexport interface PresetItemOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n data: PresetItemData;\n}\n\nexport interface PresetItemProps {}\n\nexport interface KalturaPlayerPresetComponent {\n label: string;\n presets: string[];\n container: string;\n get: () => () => ManagedComponent;\n afterComponent?: string;\n beforeComponent?: string;\n replaceComponent?: string;\n}\n\nexport class PresetItem {\n private _options: PresetItemOptions;\n private _logger: ContribLogger;\n\n constructor(options: PresetItemOptions) {\n this._options = options;\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'PresetItem',\n context: options.data.label,\n });\n this._logger.debug('executed', {\n method: 'constructor',\n data: {\n options,\n },\n });\n this._logger.info(`created item ${options.data.label}`, {\n method: 'constructor',\n });\n }\n\n get playerConfig(): KalturaPlayerPresetComponent[] {\n const configs: KalturaPlayerPresetComponent[] = [];\n\n for (const presetType in this._options.data.presetAreas) {\n const presetContainer = this._options.data.presetAreas[presetType];\n const {relativeTo} = this._options.data;\n\n if (!presetContainer) {\n this._logger.warn(\n `Cannot register component to core player using the preset manager for preset ${presetType}. preset area name is missing. Ignoring this request.`,\n {\n method: 'playerConfig',\n }\n );\n continue;\n }\n\n const result: KalturaPlayerPresetComponent = {\n label: this._options.data.label,\n presets: [presetType],\n container: presetContainer,\n get: this._render,\n };\n\n if (relativeTo) {\n switch (relativeTo.type) {\n case RelativeToTypes.After:\n result['afterComponent'] = relativeTo.name;\n break;\n case RelativeToTypes.Before:\n result['beforeComponent'] = relativeTo.name;\n break;\n case RelativeToTypes.Replace:\n result['replaceComponent'] = relativeTo.name;\n break;\n }\n }\n\n configs.push(result);\n }\n\n return configs;\n }\n\n private _render = (): any => {\n if (this._options.data.isolateComponent) {\n const {\n data: {label, fillContainer},\n } = this._options;\n\n return (\n <InjectedComponent\n label={label}\n fillContainer={fillContainer || false}\n onCreate={this._onCreate}\n onDestroy={this._onDestroy}\n />\n );\n }\n\n return this._options.data.renderChild();\n };\n\n private _onDestroy = (options: {\n context?: any;\n parent: HTMLElement;\n }): void => {\n // TODO sakal handle destroy\n if (!options.parent) {\n this._logger.warn(`missing parent argument, aborting element removal`, {\n method: '_onDestroy',\n });\n return;\n }\n\n this._logger.info(`remove injected contrib preset component`, {\n method: '_onDestroy',\n });\n\n render(null, options.parent);\n };\n\n private _onCreate = (options: {context?: any; parent: HTMLElement}): void => {\n try {\n if (!options.parent) {\n this._logger.warn(\n `missing parent argument, aborting element creation`,\n {\n method: '_create',\n }\n );\n return;\n }\n const child = this._options.data.renderChild();\n\n if (!child) {\n this._logger.warn(\n `child renderer result is invalid, expected element got undefined|null`,\n {\n method: '_create',\n }\n );\n return;\n }\n\n this._logger.info(`inject contrib preset component`, {\n method: '_create',\n });\n render(child, options.parent);\n } catch (error) {\n this._logger.error(`failed to create injected component.`, {\n method: '_onCreate',\n });\n }\n };\n}\n","import {h, Component} from 'preact';\nimport * as styles from './injected-component.scss';\nimport {getContribLogger} from '@playkit-js-contrib/common';\n\nconst logger = getContribLogger({\n module: 'contrib-ui',\n class: 'InjectedComponent',\n});\n\nexport interface InjectedComponentProps {\n onCreate: (options: {parent: HTMLDivElement}) => void;\n onDestroy: (options: {parent: HTMLDivElement}) => void;\n label: string;\n fillContainer: boolean;\n}\n\nclass InjectedComponent extends Component<InjectedComponentProps> {\n _root = null;\n\n shouldComponentUpdate(): boolean {\n return false;\n }\n\n componentDidMount(): void {\n const {onCreate, label} = this.props;\n\n if (!onCreate) {\n logger.warn(`Cannot inject item, missing 'onCreate' method`, {\n data: {\n label,\n },\n });\n return;\n }\n\n const parentElement = this._root;\n if (!parentElement) {\n logger.warn(`Cannot inject item, ailed to create parent component`, {\n data: {\n label,\n },\n });\n return;\n }\n\n logger.debug(`inject component`, {\n data: {\n label,\n },\n });\n\n onCreate({parent: parentElement});\n }\n\n componentWillUnmount(): void {\n const {onDestroy, label} = this.props;\n const parentElement = this._root;\n\n if (!parentElement || !onDestroy) {\n return;\n }\n\n onDestroy({parent: parentElement});\n\n logger.debug(`destroy injected component`, {\n data: {\n label,\n },\n });\n }\n\n render() {\n const {label, fillContainer} = this.props;\n const className = fillContainer ? styles.fillContainer : '';\n return (\n <div\n data-contrib-injected={label}\n className={className}\n ref={ref => (this._root = ref)}\n />\n );\n }\n}\n\nexport {InjectedComponent};\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./injected-component.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contribinjected-component__fill-container___2LHoe{width:100%;height:100%;overflow:hidden}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/injected-component/injected-component.scss\"],\"names\":[],\"mappings\":\"AAAA,mDACE,UAAW,CACX,WAAY,CACZ,eAAgB\",\"file\":\"injected-component.scss\",\"sourcesContent\":[\".fill-container {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fill-container\": \"contribinjected-component__fill-container___2LHoe\",\n\t\"fillContainer\": \"contribinjected-component__fill-container___2LHoe\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","export * from './ui-player-adapter';\n","import {h, Component} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\n\nexport interface UIPlayerAdapterProps {\n player: KalturaPlayerTypes.Player;\n onMount: (player: KalturaPlayerTypes.Player) => void;\n onUnmount: (player: KalturaPlayerTypes.Player) => void;\n}\n\n@KalturaPlayer.ui.components.withPlayer\nexport class UIPlayerAdapter extends Component<UIPlayerAdapterProps> {\n static defaultProps = {\n player: null,\n };\n\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'UIPlayerAdapter',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n\n this.props.onMount(this.props.player);\n }\n\n componentWillUnmount(): void {\n this.props.onUnmount(this.props.player);\n\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render(props: any) {\n return null;\n }\n}\n","import {ComponentChild, h} from 'preact';\nimport {UpperBarItem} from './upper-bar-item';\nimport {UpperBarItemData} from './upper-bar-item-data';\nimport {UpperBar} from './components/upper-bar';\nimport {PresetManager} from './preset-manager';\nimport {ArrayUtils, ObjectUtils} from '@playkit-js-contrib/common';\nimport {ManagedComponent} from './components/managed-component';\nimport {PresetsUtils} from './presets-utils';\nimport UpperBarConfig = KalturaPlayerContribTypes.UpperBarConfig;\nimport {getContribConfig} from './contrib-utils';\nimport {IconsMenu} from './components/icons-menu';\n\nconst DefaultPluginOrder: {[pluginName: string]: number} = {\n Navigation: 10,\n 'Q&A': 20,\n Moderation: 30,\n Transcript: 40,\n 'Download transcript': 50,\n Share: 70,\n Playlist: 80,\n Info: 90,\n Related: 100,\n Quiz: 110,\n Layout: 120,\n 'Source Selector': 140,\n Polls: 150,\n};\n\nconst {\n components: {PLAYER_SIZE},\n} = KalturaPlayer.ui;\n\nexport interface UpperBarManagerOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n presetManager: PresetManager;\n}\n\ninterface IconsMenuConfig {\n iconsOrder: Record<string, number>;\n}\n\nconst defaultUpperBarConfig: UpperBarConfig = {\n presetAreasMapping: {\n Playback: {\n TopBarRightControls: 'TopBarRightControls',\n },\n Live: {\n TopBarRightControls: 'TopBarRightControls',\n },\n },\n};\n\nconst acceptableTypes = ['TopBarRightControls'];\n\nexport class UpperBarManager {\n private _rootElement: ManagedComponent | null;\n private _items: UpperBarItem[] = [];\n private _options: UpperBarManagerOptions;\n private _upperBarConfig: UpperBarConfig;\n private _iconsMenuConfig: IconsMenuConfig;\n\n constructor(options: UpperBarManagerOptions) {\n this._options = options;\n\n this._upperBarConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.upperBar',\n defaultUpperBarConfig,\n {\n explicitMerge: ['presetAreasMapping'],\n }\n );\n this._iconsMenuConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.iconsMenu',\n {iconsOrder: {}}\n );\n\n const groupedPresets = PresetsUtils.groupPresetAreasByType({\n presetAreasMapping: this._upperBarConfig.presetAreasMapping,\n acceptableTypes,\n });\n\n this._options.presetManager.add({\n label: 'upper-bar-manager',\n presetAreas: groupedPresets['TopBarRightControls'],\n renderChild: this._renderChild,\n });\n }\n\n private _renderChild = (): ComponentChild => {\n return (\n <ManagedComponent\n label={'upper-bar-manager'}\n renderChildren={playerSize => this._renderItems(playerSize)}\n isShown={() => true}\n updateOnPlayerSizeChanged\n ref={ref => (this._rootElement = ref)}\n />\n );\n };\n\n private _renderItems = (playerSize: string) => {\n const {upperBarItems, iconMenuItems} = this._prepareUpperBarItems(\n playerSize\n );\n\n const isIconMenuVisible = !!(upperBarItems.length && iconMenuItems.length);\n\n if (isIconMenuVisible) {\n const itemOptions = {\n kalturaPlayer: this._options.kalturaPlayer,\n data: {\n label: 'Icon-menu',\n onClick: () => {},\n renderItem: () => <IconsMenu content={iconMenuItems} />,\n },\n };\n const iconMenu = new UpperBarItem(itemOptions);\n upperBarItems.push(iconMenu);\n }\n\n const upperBarContent = upperBarItems.map(item => item.renderChild({}));\n\n return <UpperBar>{upperBarContent}</UpperBar>;\n };\n\n /**\n * initialize new upper bar item\n * @param item\n */\n add(data: UpperBarItemData): UpperBarItem {\n // TODO: for now list of icons order loads from embeded config, ex:\n // contrib: {\n // ui: {\n // fonts: { ... },\n // iconsMenu: {\n // iconsOrder: {\n // 'Report Video': 41,\n // Info: 50,\n // 'Q&A': 60,\n // }\n // }\n // }\n // };\n const itemOptions = {\n kalturaPlayer: this._options.kalturaPlayer,\n data,\n order: ObjectUtils.get(\n this._iconsMenuConfig,\n `iconsOrder.${data.label}`,\n DefaultPluginOrder[data.label] || Infinity\n ),\n };\n const item = new UpperBarItem(itemOptions);\n this._items.push(item);\n this._items = ArrayUtils.sortByKey(this._items, '_options.order').reverse();\n this.update();\n return item;\n }\n\n remove(itemToRemove: UpperBarItem): void {\n const itemIndex = ArrayUtils.findIndex(this._items, item => {\n return item === itemToRemove;\n });\n if (itemIndex === -1) return;\n\n this._items.splice(itemIndex, 1);\n this.update();\n }\n\n update() {\n if (this._rootElement) {\n this._rootElement.update();\n }\n }\n\n _prepareUpperBarItems(\n playerSize: string\n ): {\n upperBarItems: UpperBarItem[];\n iconMenuItems: UpperBarItem[];\n } {\n const iconMenuItems = [...this._items];\n let upperBarItems = [];\n switch (playerSize) {\n case PLAYER_SIZE.TINY:\n upperBarItems = [];\n break;\n case PLAYER_SIZE.EXTRA_SMALL:\n case PLAYER_SIZE.SMALL:\n upperBarItems = iconMenuItems.splice(0, 2);\n break;\n default:\n upperBarItems = iconMenuItems.splice(0, 4);\n }\n return {\n upperBarItems,\n iconMenuItems,\n };\n }\n\n /**\n * remove all ui manager items\n */\n reset(): void {\n this._items.forEach((item: UpperBarItem) => {\n this.remove(item);\n });\n }\n}\n","export {UpperBar} from './upper-bar';\n","import {h, Component} from 'preact';\nimport * as styles from './_upper-bar.scss';\nimport {getContribLogger} from '@playkit-js-contrib/common';\nimport {ContribLogger} from '@playkit-js-contrib/common';\n\nexport interface UpperBarProps {}\n\nexport class UpperBar extends Component<UpperBarProps> {\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'UpperBar',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render(props: any) {\n if (this._logger) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n }\n return <div className={styles.root}>{this.props.children}</div>;\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_upper-bar.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_upper-bar__root___1T--i{display:inline-flex;flex-direction:row}.contrib_upper-bar__root___1T--i .upper-bar-icon{cursor:pointer}.contrib_upper-bar__root___1T--i>*{margin-left:10px}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/upper-bar/_upper-bar.scss\"],\"names\":[],\"mappings\":\"AAAA,iCAKE,mBAAoB,CACpB,kBAAmB,CANrB,iDAEI,cAAe,CAFnB,mCASI,gBAAiB\",\"file\":\"_upper-bar.scss\",\"sourcesContent\":[\".root {\\n :global(.upper-bar-icon) {\\n cursor: pointer;\\n }\\n\\n display: inline-flex;\\n flex-direction: row;\\n\\n &>* {\\n margin-left: 10px; // TODO sakal improve\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"root\": \"contrib_upper-bar__root___1T--i\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","export * from './icons-menu';\n","import {h, Component} from 'preact';\nimport * as styles from './_icons-menu.scss';\nimport {getContribLogger} from '@playkit-js-contrib/common';\nimport {ContribLogger} from '@playkit-js-contrib/common';\nimport {\n Popover,\n PopoverVerticalPositions,\n PopoverHorizontalPositions,\n KeyboardKeys,\n} from '../popover';\nimport {PopoverMenu, PopoverMenuItem} from '../popover/popover-menu';\nimport {UpperBarItem} from '../../upper-bar-item';\n\nexport interface IconsMenuProps {\n content: UpperBarItem[];\n}\n\nexport class IconsMenu extends Component<IconsMenuProps> {\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'IconMenu',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n private _onKeyDown = (e: KeyboardEvent, callBack: Function) => {\n if (e.keyCode !== KeyboardKeys.Enter && e.keyCode !== KeyboardKeys.Esc) {\n // don't stopPropagation on ESC and Enter pressed as it prevent the popup closing\n e.stopPropagation();\n }\n switch (e.keyCode) {\n case KeyboardKeys.Enter:\n callBack();\n break;\n }\n };\n\n private _getPopoverMenuOptions = (): PopoverMenuItem[] => {\n return this.props.content.map((item: UpperBarItem) => {\n const {\n renderChild,\n _options: {\n data: {label, onClick},\n },\n } = item;\n return {\n customRenderer: () => {\n return (\n <div\n tabIndex={1}\n role=\"button\"\n onKeyDown={(e: KeyboardEvent) => this._onKeyDown(e, onClick)}\n onClick={onClick}\n className={styles.iconMenuItem}>\n <div\n aria-hidden=\"true\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation();\n }}>\n {renderChild({})}\n </div>\n <span className={styles.itemLabel}>{label}</span>\n </div>\n );\n },\n };\n });\n };\n\n private _popoverContent = () => {\n return <PopoverMenu options={this._getPopoverMenuOptions()} />;\n };\n\n render(props: IconsMenuProps) {\n if (this._logger) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n }\n\n return (\n // TODO - consider replace with core drop-down if possible\n <Popover\n className=\"icons-menu\"\n verticalPosition={PopoverVerticalPositions.Bottom}\n horizontalPosition={PopoverHorizontalPositions.Left}\n content={this._popoverContent()}>\n <button className={styles.iconMenu} tabIndex={1} />\n </Popover>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_icons-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"./assets/more.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_icons-menu__icon-menu___186vH{width:32px;height:32px;opacity:0.8;border:none;padding:0;cursor:pointer;background-color:inherit;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.contrib_icons-menu__icon-menu___186vH:hover,.contrib_icons-menu__icon-menu___186vH:focus{opacity:1}.contrib_icons-menu__icon-menu-item___t1NfQ{opacity:0.8;display:flex;align-items:center;height:36px;margin-bottom:1px;padding:0 8px;min-width:228px;border-radius:4px;background-color:#222222}.contrib_icons-menu__icon-menu-item___t1NfQ:focus{opacity:1;background-color:#333333}.contrib_icons-menu__icon-menu-item___t1NfQ:hover{opacity:1;background-color:#666666}.contrib_icons-menu__icon-menu-item___t1NfQ .contrib_icons-menu__item-label___1VK4q{margin-left:2px;font-size:15px}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/icons-menu/_icons-menu.scss\"],\"names\":[],\"mappings\":\"AAAA,uCACI,UAAW,CACX,WAAY,CACZ,WAAY,CACZ,WAAY,CACZ,SAAU,CACV,cAAe,CACf,wBAAyB,CACzB,2BAA4B,CAC5B,0BAA2B,CAC3B,uBAAwB,CACxB,wDAA0C,CAX9C,0FAcM,SAAU,CACX,4CAIH,WAAY,CASZ,YAAa,CACb,kBAAmB,CACnB,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,eAAgB,CAChB,iBAAkB,CAClB,wBAAyB,CAjB3B,kDAGI,SAAU,CACV,wBAAyB,CAJ7B,kDAOI,SAAU,CACV,wBAAyB,CAR7B,oFAmBI,eAAgB,CAChB,cAAe\",\"file\":\"_icons-menu.scss\",\"sourcesContent\":[\".icon-menu {\\n width: 32px;\\n height: 32px;\\n opacity: 0.8;\\n border: none;\\n padding: 0;\\n cursor: pointer;\\n background-color: inherit;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: contain;\\n background-image: url('./assets/more.svg');\\n &:hover,\\n &:focus {\\n opacity: 1;\\n }\\n}\\n\\n.icon-menu-item {\\n opacity: 0.8;\\n &:focus {\\n opacity: 1;\\n background-color: #333333;\\n }\\n &:hover {\\n opacity: 1;\\n background-color: #666666;\\n }\\n display: flex;\\n align-items: center;\\n height: 36px;\\n margin-bottom: 1px;\\n padding: 0 8px;\\n min-width: 228px;\\n border-radius: 4px;\\n background-color: #222222;\\n .item-label {\\n margin-left: 2px;\\n font-size: 15px;\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"icon-menu\": \"contrib_icons-menu__icon-menu___186vH\",\n\t\"iconMenu\": \"contrib_icons-menu__icon-menu___186vH\",\n\t\"icon-menu-item\": \"contrib_icons-menu__icon-menu-item___t1NfQ\",\n\t\"iconMenuItem\": \"contrib_icons-menu__icon-menu-item___t1NfQ\",\n\t\"item-label\": \"contrib_icons-menu__item-label___1VK4q\",\n\t\"itemLabel\": \"contrib_icons-menu__item-label___1VK4q\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import {h, Component, ComponentChild} from 'preact';\nimport * as styles from './popover.scss';\n\nexport enum PopoverVerticalPositions {\n Top = 'top',\n Bottom = 'bottom',\n}\nexport enum PopoverHorizontalPositions {\n Left = 'left',\n Right = 'right',\n}\nexport enum PopoverTriggerMode {\n Click = 'click',\n Hover = 'hover',\n}\n\nexport enum KeyboardKeys {\n Esc = 27,\n Enter = 13,\n Tab = 9,\n Space = 32,\n End = 35,\n Home = 36,\n}\n\nconst CLOSE_ON_HOVER_DELAY = 500;\n\nconst defaultProps = {\n verticalPosition: PopoverVerticalPositions.Top,\n horizontalPosition: PopoverHorizontalPositions.Left,\n triggerMode: PopoverTriggerMode.Click,\n className: 'popover',\n closeOnEsc: true,\n closeOnClick: true,\n};\n\ninterface PopoverProps {\n onClose?: () => void;\n onOpen?: () => void;\n closeOnClick: boolean;\n closeOnEsc: boolean;\n verticalPosition: PopoverVerticalPositions;\n horizontalPosition: PopoverHorizontalPositions;\n className: string;\n triggerMode: PopoverTriggerMode;\n content: ComponentChild;\n children: ComponentChild;\n}\n\ninterface PopoverState {\n open: boolean;\n}\n\n/**\n * Popover renders popup with a target.\n * Properties description:\n * onOpen - function that will be executed when popover opens;\n * onClose - function that will be executed when popover closes;\n * closeOnClick - close the popover on mouse click;\n * verticalPosition - vertical position of popover relative to target (\"top\" or \"bottom\"), default - \"top\";\n * horizontalPosition - horizontal position of popover relative to target (\"left\" or \"right\"), default - \"left\";\n * !!! known limitation of popover positions: if popover opens beyond the visible area of the player - the popover will be overlapped by player\n * className - popover class, can be use for popover styling, default - 'popover';\n * closeOnEsc - handle ESC keyboard pressed event and close popover, default - true;\n * triggerMode - popover support 2 ways for opening: click (keyPress) and mouse hover (\"click\" or \"hover\"), default - \"click\";\n * content - content of popover. Can be any valid Preact node, ex:\n * <select>\n * <option>Option 1</option>\n * ...\n * <option>Option n</option>\n * </select>\n * children - popover target. Can be any valid Preact node, ex:\n * <button>\n * <i className=\"icon\" />\n * </button>\n */\n\nexport class Popover extends Component<PopoverProps, PopoverState> {\n private _closeTimeout: any = null;\n private _controlElement = null;\n static defaultProps = {\n ...defaultProps,\n };\n state = {\n open: false,\n };\n\n componentWillUnmount() {\n this._removeListeners();\n }\n\n private _clearTimeout = () => {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = null;\n };\n\n private _handleMouseEvent = (event: MouseEvent) => {\n if (\n !this._controlElement.contains(event.target) &&\n this.props.closeOnClick\n ) {\n this._closePopover();\n }\n };\n\n private _handleKeyboardEvent = (event: KeyboardEvent) => {\n if (\n this._controlElement.contains(event.target) &&\n event.keyCode === KeyboardKeys.Enter\n ) {\n // handle Enter key pressed on Target icon to prevent triggering of _closePopover twice\n return;\n }\n if (\n (this.props.closeOnEsc && event.keyCode === KeyboardKeys.Esc) ||\n event.keyCode === KeyboardKeys.Enter\n ) {\n // handle if ESC or Enter button presesd\n this._closePopover();\n }\n };\n\n private _openPopover = () => {\n const {onOpen} = this.props;\n this._clearTimeout();\n this.setState({open: true}, () => {\n this._addListeners();\n if (onOpen) {\n onOpen();\n }\n });\n };\n\n private _closePopover = () => {\n const {onClose} = this.props;\n this._clearTimeout();\n this.setState({open: false}, () => {\n this._removeListeners();\n if (onClose) {\n onClose();\n }\n });\n };\n\n private _togglePopover = (e: MouseEvent | KeyboardEvent) => {\n if (this.state.open) {\n this._closePopover();\n } else {\n this._openPopover();\n }\n };\n private _handleMouseEnter = () => {\n if (!this.state.open) {\n this._openPopover();\n }\n };\n private _handleMouseLeave = () => {\n this._closeTimeout = setTimeout(this._closePopover, CLOSE_ON_HOVER_DELAY);\n };\n private _handleHoverOnPopover = () => {\n if (this.state.open && this._closeTimeout) {\n this._clearTimeout();\n } else {\n this._closePopover();\n }\n };\n private _addListeners = () => {\n document.addEventListener('click', this._handleMouseEvent);\n document.addEventListener('keydown', this._handleKeyboardEvent);\n };\n private _removeListeners = () => {\n document.removeEventListener('click', this._handleMouseEvent);\n document.removeEventListener('keydown', this._handleKeyboardEvent);\n };\n private _getHoverEvents = () => {\n if (this.props.triggerMode === PopoverTriggerMode.Hover) {\n return {\n targetEvents: {\n onMouseEnter: this._handleMouseEnter,\n onMouseLeave: this._handleMouseLeave,\n },\n popoverEvents: {\n onMouseEnter: this._handleHoverOnPopover,\n onMouseLeave: this._handleHoverOnPopover,\n },\n };\n }\n return {targetEvents: {onClick: this._togglePopover}, popoverEvents: {}};\n };\n render(props: PopoverProps) {\n if (!props.content || !props.children) {\n return null;\n }\n const {targetEvents, popoverEvents} = this._getHoverEvents();\n return (\n <div className={styles.popoverContainer}>\n <div\n className=\"popover-anchor-container\"\n ref={node => {\n this._controlElement = node;\n }}\n {...targetEvents}>\n {props.children}\n </div>\n {this.state.open && (\n <div\n aria-expanded=\"true\"\n className={[\n props.className,\n styles.popoverComponent,\n styles[props.verticalPosition],\n styles[props.horizontalPosition],\n ].join(' ')}\n {...popoverEvents}>\n {props.content}\n </div>\n )}\n </div>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./popover.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contribpopover__popover-container___35CJw{position:relative}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX{background-color:#222222;border-radius:4px;position:absolute;right:0px;font-size:15px;display:block}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX.contribpopover__visible___21aRy{visibility:visible;opacity:1;z-index:10}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX.contribpopover__top___SCpk8{bottom:100%;margin-bottom:6px}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX.contribpopover__bottom___1gFrU{top:100%;margin-top:6px}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX.contribpopover__right___zCEB3{left:0px}.contribpopover__popover-container___35CJw .contribpopover__popover-component___BuiEX.contribpopover__left___2H-Oh{right:0px}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/popover/popover.scss\"],\"names\":[],\"mappings\":\"AAAA,2CACI,iBAAkB,CADtB,sFAGQ,wBAAyB,CACzB,iBAAkB,CAClB,iBAAkB,CAClB,SAAU,CACV,cAAe,CACf,aAAc,CARtB,sHAUY,kBAAmB,CACnB,SAAU,CACV,UAAW,CAZvB,kHAeY,WAAY,CACZ,iBAAkB,CAhB9B,qHAmBY,QAAS,CACT,cAAe,CApB3B,oHAuBY,QAAS,CAvBrB,mHA0BY,SAAU\",\"file\":\"popover.scss\",\"sourcesContent\":[\".popover-container {\\n position: relative;\\n .popover-component {\\n background-color: #222222;\\n border-radius: 4px;\\n position: absolute;\\n right: 0px;\\n font-size: 15px;\\n display: block;\\n &.visible {\\n visibility: visible;\\n opacity: 1;\\n z-index: 10;\\n }\\n &.top {\\n bottom: 100%;\\n margin-bottom: 6px;\\n }\\n &.bottom {\\n top: 100%;\\n margin-top: 6px;\\n }\\n &.right {\\n left: 0px;\\n }\\n &.left {\\n right: 0px;\\n }\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-container\": \"contribpopover__popover-container___35CJw\",\n\t\"popoverContainer\": \"contribpopover__popover-container___35CJw\",\n\t\"popover-component\": \"contribpopover__popover-component___BuiEX\",\n\t\"popoverComponent\": \"contribpopover__popover-component___BuiEX\",\n\t\"visible\": \"contribpopover__visible___21aRy\",\n\t\"top\": \"contribpopover__top___SCpk8\",\n\t\"bottom\": \"contribpopover__bottom___1gFrU\",\n\t\"right\": \"contribpopover__right___zCEB3\",\n\t\"left\": \"contribpopover__left___2H-Oh\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import {h, Component, ComponentChild} from 'preact';\nimport * as styles from './popover-menu.scss';\n\nexport interface PopoverMenuItem {\n label?: string;\n onMenuChosen?: Function;\n customRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\ninterface PopoverMenuProps {\n options: Array<PopoverMenuItem>;\n itemRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\n/**\n * Popover menu renders list of options.\n * options example:\n * [\n * {label: 'option_1', onMenuChosen: () => console.log('selected first')},\n * {label: 'option_2', onMenuChosen: () => console.log('selected second')}\n * ]\n * In case when 'itemRenderer' properdy hasn't provided - PopoverMenu renders\n * div with class \"popover-menu-item\" that contain label for the current option.\n * Default render of options can be changed by providing 'itemRenderer' - it should be\n * function that takes current option and returns valid 'preact' node.\n * If some option need to be rendered with a different method - specific render\n * method can be provided with 'customRenderer' property for the current option.\n * option example with specific render method:\n * { label: 'specific render', onMenuChosen: () => {}, customRenderer: el => (<span>{el.label}</span>)}\n */\n\nexport class PopoverMenu extends Component<PopoverMenuProps> {\n render(props: any) {\n return (\n <div className={styles.popoverMenu}>\n {props.options.map((el: PopoverMenuItem) => {\n if (el.customRenderer) {\n return el.customRenderer(el);\n }\n if (props.itemRenderer) {\n return props.itemRenderer(el);\n }\n return (\n <div\n className=\"popover-menu-item\"\n onClick={() => el.onMenuChosen(el)}>\n {el.label}\n </div>\n );\n })}\n </div>\n );\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contribpopover-menu__popover-menu___3upQr{padding-top:6px;padding-bottom:6px}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/popover/popover-menu.scss\"],\"names\":[],\"mappings\":\"AAAA,2CACI,eAAgB,CAChB,kBAAmB\",\"file\":\"popover-menu.scss\",\"sourcesContent\":[\".popover-menu {\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-menu\": \"contribpopover-menu__popover-menu___3upQr\",\n\t\"popoverMenu\": \"contribpopover-menu__popover-menu___3upQr\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import {Component, h} from 'preact';\nimport * as styles from './_kitchen-sink-container.scss';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\n\nexport interface KitchenSinkContainerRendererProps {}\n\nexport class KitchenSinkContainer extends Component<\n KitchenSinkContainerRendererProps\n> {\n static defaultProps = {\n updateSidePanelMode: () => {},\n };\n\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'KitchenSinkContainer',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render(props: any) {\n if (this._logger) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n }\n\n return <div className={styles.root}>{this.props.children}</div>;\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_kitchen-sink-container.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_kitchen-sink-container__root___3bxzN{width:100%;height:100%}.playkit-side-panel-content>div{width:100%;height:100%}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/kitchen-sink-container/_kitchen-sink-container.scss\"],\"names\":[],\"mappings\":\"AAAA,8CACE,UAAW,CACX,WAAY,CACb,gCAKG,UAAW,CACX,WAAY\",\"file\":\"_kitchen-sink-container.scss\",\"sourcesContent\":[\".root {\\n width: 100%;\\n height: 100%;\\n}\\n\\n/* TODO should fix in player and remove */\\n:global(.playkit-side-panel-content) {\\n & > div {\\n width: 100%;\\n height: 100%;\\n }\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"root\": \"contrib_kitchen-sink-container__root___3bxzN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","export * from './kitchen-sink-adapter';\n","import {h, Component} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport {\n KitchenSinkExpandModes,\n KitchenSinkPositions,\n} from '../../kitchen-sink-item-data';\n\nexport interface KitchenSinkAdapterProps {\n updateSidePanelMode: (\n position: SidePanelPositions,\n sidePanelMode: SidePanelModes\n ) => void;\n sidePanelsModes?: SidePanelModes;\n}\n\nexport enum SidePanelPositions {\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom',\n Right = 'right',\n}\n\nexport enum SidePanelModes {\n AlongSideTheVideo = 'alongside',\n Hidden = 'hidden',\n OverTheVideo = 'over',\n}\n\nconst mapStateToProps = state => {\n return {\n sidePanelsModes: state.shell.sidePanelsModes,\n };\n};\n\n@KalturaPlayer.ui.redux.connect(\n mapStateToProps,\n KalturaPlayer.ui.utils.bindActions(KalturaPlayer.ui.reducers.shell.actions),\n null,\n {\n forwardRef: true,\n }\n)\nexport class KitchenSinkAdapter extends Component<KitchenSinkAdapterProps> {\n static defaultProps = {\n updateSidePanelMode: () => {},\n };\n\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'KitchenSinkAdapter',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n public expand(position: KitchenSinkPositions, mode: KitchenSinkExpandModes) {\n this.props.updateSidePanelMode(\n this._convertToAdapterPositionEnum(position),\n this._convertToAdapterModeEnum(mode)\n );\n }\n\n public getSidePanelMode(\n position: KitchenSinkPositions\n ): KitchenSinkExpandModes {\n if (!this.props.sidePanelsModes) return KitchenSinkExpandModes.Hidden;\n return this._convertToKitchenSinkModeEnum(\n this.props.sidePanelsModes[this._convertToAdapterPositionEnum(position)]\n );\n }\n\n public collapse(position: KitchenSinkPositions) {\n this.props.updateSidePanelMode(\n this._convertToAdapterPositionEnum(position),\n SidePanelModes.Hidden\n );\n }\n\n render(props: any) {\n return null;\n }\n\n private _convertToAdapterPositionEnum(\n position: KitchenSinkPositions\n ): SidePanelPositions {\n return position === KitchenSinkPositions.Top\n ? SidePanelPositions.Top\n : position === KitchenSinkPositions.Bottom\n ? SidePanelPositions.Bottom\n : position === KitchenSinkPositions.Right\n ? SidePanelPositions.Right\n : SidePanelPositions.Left;\n }\n\n private _convertToAdapterModeEnum(\n mode: KitchenSinkExpandModes\n ): SidePanelModes {\n return mode === KitchenSinkExpandModes.AlongSideTheVideo\n ? SidePanelModes.AlongSideTheVideo\n : mode === KitchenSinkExpandModes.OverTheVideo\n ? SidePanelModes.OverTheVideo\n : SidePanelModes.Hidden;\n }\n\n private _convertToKitchenSinkModeEnum(\n mode: SidePanelModes\n ): KitchenSinkExpandModes {\n return mode === SidePanelModes.AlongSideTheVideo\n ? KitchenSinkExpandModes.AlongSideTheVideo\n : mode === SidePanelModes.OverTheVideo\n ? KitchenSinkExpandModes.OverTheVideo\n : KitchenSinkExpandModes.Hidden;\n }\n}\n","export * from './kitchen-sink';\n","import {Component, h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport * as styles from './_kitchen-sink.scss';\n\nexport interface KitchenSinkProps {\n isActive: boolean;\n kitchenSinkConfig: KalturaPlayerContribTypes.KitchenSinkConfig;\n}\n\nexport class KitchenSink extends Component<KitchenSinkProps> {\n static defaultProps = {\n isActive: false,\n };\n\n private _logger: ContribLogger | null = null;\n\n componentDidMount(): void {\n this._logger = getContribLogger({\n module: 'contrib-ui',\n class: 'KitchenSink',\n });\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n if (!this._logger) {\n return;\n }\n\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render(props: any) {\n if (this._logger) {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n }\n\n const {backgroundColor, blur} = this.props.kitchenSinkConfig.theme;\n\n return (\n <div className={this._getClass()}>\n <div\n className={styles.backgroundLayout}\n style={`\n background-color:${backgroundColor}; \n backdrop-filter: blur(${blur});\n `}\n />\n <div className={styles.children}>{this.props.children}</div>\n </div>\n );\n }\n\n private _getClass(): string {\n return styles.root + ' ' + (this.props.isActive ? styles.active : '');\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_kitchen-sink.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_kitchen-sink__root___2dg28{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%;transition:opacity 500ms ease-in-out;opacity:0;z-index:-1}.contrib_kitchen-sink__root___2dg28.contrib_kitchen-sink__active___2Xv8g{opacity:1;z-index:0}.contrib_kitchen-sink__children___UBMYE{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%}.contrib_kitchen-sink__background-layout___2pJ-a{width:100%;height:100%}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/kitchen-sink/_kitchen-sink.scss\"],\"names\":[],\"mappings\":\"AAAA,oCACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,eAAgB,CAChB,UAAW,CACX,WAAY,CACZ,oCAAqC,CACrC,SAAU,CACV,UAAW,CATb,yEAYI,SAAU,CACV,SAAU,CACX,wCAID,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,eAAgB,CAChB,UAAW,CACX,WAAY,CACb,iDAGC,UAAW,CACX,WAAY\",\"file\":\"_kitchen-sink.scss\",\"sourcesContent\":[\".root {\\n position: absolute;\\n top: 0;\\n left: 0;\\n overflow: hidden;\\n width: 100%;\\n height: 100%;\\n transition: opacity 500ms ease-in-out;\\n opacity: 0;\\n z-index: -1;\\n\\n &.active {\\n opacity: 1;\\n z-index: 0;\\n }\\n}\\n\\n.children {\\n position: absolute;\\n top: 0;\\n left: 0;\\n overflow: hidden;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.background-layout {\\n width: 100%;\\n height: 100%;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"root\": \"contrib_kitchen-sink__root___2dg28\",\n\t\"active\": \"contrib_kitchen-sink__active___2Xv8g\",\n\t\"children\": \"contrib_kitchen-sink__children___UBMYE\",\n\t\"background-layout\": \"contrib_kitchen-sink__background-layout___2pJ-a\",\n\t\"backgroundLayout\": \"contrib_kitchen-sink__background-layout___2pJ-a\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import axios from 'axios';\nimport {getContribLogger, ObjectUtils} from '@playkit-js-contrib/common';\nimport PlayerConfig = KalturaPlayerTypes.PlayerConfig;\nimport FontsConfig = KalturaPlayerContribTypes.FontsConfig;\nimport TestingFontOptions = KalturaPlayerContribTypes.TestingFontOptions;\nimport {getContribConfig} from './contrib-utils';\n\nexport interface FontManagerOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n}\n\nconst logger = getContribLogger({\n module: 'ui',\n class: 'FontManager',\n});\n\nconst fontKeyPrefix = 'contrib-plugins-font-';\n\nconst defaultFontsConfig: FontsConfig = {\n fontFamily: 'Lato, sans-serif',\n testingFont: {\n text: 'abcdefghiiiiiiiiijklmnopqrstuvwwwwwwwwwwxyz0123456789',\n size: 72,\n fontName: 'monospace',\n },\n};\n\n//shared property for indicating current loaded fontFamily to support multiple contrib managers in a single page\n// ( multiple players instances )\nlet currentFontFamily = '';\n\nexport class FontManager {\n private _fontConfig: FontsConfig;\n\n constructor(options: FontManagerOptions) {\n this._fontConfig = getContribConfig(\n options.kalturaPlayer,\n 'ui.fonts',\n defaultFontsConfig\n );\n }\n\n public loadFont(): void {\n // a previous request for loading a font was already made\n if (this._isFontLoaded()) return;\n const {fontFamily} = this._fontConfig;\n try {\n // override player font style\n this._overrideCorePlayerFontStyles();\n // making sure no additional calls for loading font will be accepted\n currentFontFamily = fontFamily;\n // download font data if needed\n this._handleFontDownloadProcess();\n } catch (err) {\n logger.warn(\n `Failed to load font and override core player style with ${fontFamily}`,\n {\n method: 'loadFont',\n data: {\n error: err,\n },\n }\n );\n }\n }\n\n public reset(): void {}\n\n private _overrideCorePlayerFontStyles(): void {\n const {fontFamily} = this._fontConfig;\n const fontCss = `.kaltura-player-container {\n font-family: inherit;\n } \n .playkit-player {\n font-family: ${fontFamily};\n }\n .playkit-player .playkit-player-gui {\n font-family: ${fontFamily};\n }\n button, textarea {\n font-family: inherit;\n }`;\n const lastHeadChild = (\n document.head || document.getElementsByTagName('head')[0]\n ).lastElementChild;\n const style = document.createElement('style');\n //adding as last child\n lastHeadChild.parentNode.insertBefore(style, lastHeadChild.nextSibling);\n style.appendChild(document.createTextNode(fontCss));\n logger.info(\n `Overridden Core player font-family style with: ${fontFamily}`,\n {\n method: '_overrideCorePlayerFontStyles',\n }\n );\n }\n\n private _handleFontDownloadProcess(): void {\n const {downloadData, testingFont} = this._fontConfig;\n if (!downloadData) return;\n if (!downloadData.name || !downloadData.url) {\n //download data object is incomplete\n logger.warn(\n 'Configuration provided for contrib.ui.fonts.downloadData is invalid' +\n ' (did you remember to provide both url and name?).',\n {\n method: 'loadFont',\n }\n );\n return;\n }\n // font exists in the system, no need to load / download it\n if (this._checkFontExistence(downloadData.name, testingFont)) {\n logger.info(\n `Font ${downloadData.name} already exists, no need to reload it`,\n {\n method: 'loadFont',\n }\n );\n return;\n }\n // download and inject font\n this._downloadAndCacheFont(downloadData.name, downloadData.url).then(\n fontData => {\n if (fontData) {\n this._injectFontRawStyle(downloadData.name, fontData);\n }\n }\n );\n }\n\n private _checkFontExistence(\n fontName,\n testingOptions: TestingFontOptions\n ): boolean {\n try {\n // creating an in-memory Canvas element\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n // the text whose final pixel size we want to measure\n const text = testingOptions.text;\n const fontSize = `${testingOptions.size}px`;\n // baseline font\n context.font = `${fontSize} ${testingOptions.fontName}`;\n // size of the baseline text\n const baselineSize = context.measureText(text).width;\n // specifying the font whose existence we want to check\n context.font = `${fontSize} ${fontName},${testingOptions.fontName}`;\n // checking the size of the font we want to check\n const newSize = context.measureText(text).width;\n // If the size of the two text instances is the same, the font does not exist\n // because it is being rendered using the same font\n return newSize !== baselineSize;\n } catch (err) {\n logger.warn(\n `Failed to determine if font ${fontName} exists in the system.`,\n {\n method: '_checkFontExistence',\n data: {\n error: err,\n },\n }\n );\n return false;\n }\n }\n\n private _downloadAndCacheFont(\n fontName: string,\n url: string\n ): Promise<string | null> {\n // try to load cached font data from localStorage\n const cachedFontData = this._loadFontFromLocalStorage(fontName);\n if (cachedFontData && cachedFontData !== '') {\n return Promise.resolve(cachedFontData);\n }\n\n // download font and cache to localStorage\n return axios\n .get(url)\n .then((result: any) => {\n if (\n result.data &&\n typeof result.data === 'string' &&\n result.data !== ''\n ) {\n logger.info(`font ${fontName} was downloaded successfully`, {\n method: '_downloadAndCacheFont',\n });\n this._saveFontToLocalStorage(`${fontName}`, result.data);\n return result.data;\n }\n // got an unexpected result\n logger.warn(\n `failed to downloaded font ${fontName} due to an unexpected font data`,\n {\n method: '_downloadAndCacheFont',\n data: {\n error: result.data ? result.data : 'empty font data',\n },\n }\n );\n return null;\n })\n .catch(err => {\n logger.warn(`Failed to download font ${fontName}`, {\n method: '_downloadFont',\n data: {\n error: err,\n },\n });\n return null;\n });\n }\n\n private _injectFontRawStyle(fontName: string, fontData: string): void {\n try {\n const style = document.createElement('style');\n style.innerHTML = fontData;\n (document.head || document.getElementsByTagName('head')[0]).appendChild(\n style\n );\n logger.info(`font \"${fontName}\" raw data style was injected`, {\n method: '_injectFontRawStyle',\n });\n } catch (err) {\n logger.warn(\n `Failed to inject font ${fontName} data to core player style.`,\n {\n method: '_injectFontRawStyle',\n data: {\n error: err,\n },\n }\n );\n }\n }\n\n private _loadFontFromLocalStorage(fontName: string): string | null {\n try {\n return localStorage.getItem(`${fontKeyPrefix}${fontName}`);\n } catch (err) {\n logger.warn(\n `Failed to load font \"${fontName}\" data, key: ${fontKeyPrefix}${fontName} from localStorage`,\n {\n method: '_loadFontFromLocalStorage',\n data: {\n error: err,\n },\n }\n );\n return null;\n }\n }\n\n private _saveFontToLocalStorage(fontName: string, fontValue: string): void {\n try {\n localStorage.setItem(`${fontKeyPrefix}${fontName}`, fontValue);\n logger.info(`font \"${fontName}\" was cached into localStorage`, {\n method: '_saveFontToLocalStorage',\n });\n } catch (err) {\n logger.warn(`Failed to cache font \"${fontName}\" into localStorage`, {\n method: '_saveFontToLocalStorage',\n data: {\n error: err,\n },\n });\n }\n }\n\n private _isFontLoaded(): boolean {\n if (currentFontFamily === '') return false;\n if (currentFontFamily !== this._fontConfig.fontFamily) {\n logger.warn(\n `This request for loading font will be ignored since\n an earlier call for loading ${this._fontConfig.fontFamily} was made.`,\n {\n method: '_isFontLoaded',\n }\n );\n }\n return true;\n }\n}\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get';\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import {ScaleCalculation, scaleVideo} from './scale-video';\nimport {CuepointEngine} from '@playkit-js-contrib/common';\nimport {PlayerSize, VideoSize} from './common.types';\nimport {getContribLogger} from '@playkit-js-contrib/common';\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\nenum ChangeTypes {\n Show = 'show',\n Hide = 'hide',\n}\ntype ChangeData<T extends FloatingCuepoint> = {\n time: number;\n type: ChangeTypes;\n cuePoint: T;\n};\n\nconst reasonableSeekThreshold = 2000;\n\nexport interface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface FloatingCuepoint {\n id: string;\n startTime: number;\n endTime?: number;\n rawLayout: {\n relativeX: number;\n relativeY: number;\n relativeWidth: number;\n relativeHeight: number;\n stageWidth: number;\n stageHeight: number;\n };\n layout: Layout;\n}\n\nexport type RawFloatingCuepoint = Omit<FloatingCuepoint, 'layout'>;\n\nexport interface FloatingCuepoint extends RawFloatingCuepoint {}\n\nconst logger = getContribLogger({\n module: 'contrib-ui',\n class: 'CuepointFloatingEngine',\n});\n\nexport class CuepointFloatingEngine<\n TRaw extends RawFloatingCuepoint,\n T extends FloatingCuepoint\n> extends CuepointEngine<T> {\n private playerSize: PlayerSize | null = null;\n private videoSize: VideoSize | null = null;\n\n constructor(cuepoints: TRaw[]) {\n super(cuepoints as any); // NOTICE: it is the responsability of this engine not to return cuepoint without layout\n }\n\n public updateLayout(\n playerSize: PlayerSize | null,\n videoSize: VideoSize | null\n ) {\n this.videoSize = videoSize;\n this.playerSize = playerSize;\n\n this.recalculateCuepointLayout();\n return this.getCurrentCuepointSnapshot();\n }\n\n private _calculateLayout(\n cuepoint: TRaw,\n scaleCalculation: ScaleCalculation\n ): Layout {\n const {rawLayout} = cuepoint;\n return {\n x: scaleCalculation.left + rawLayout.relativeX * scaleCalculation.width,\n y: scaleCalculation.top + rawLayout.relativeY * scaleCalculation.height,\n width: rawLayout.relativeWidth * scaleCalculation.width,\n height: rawLayout.relativeHeight * scaleCalculation.height,\n };\n }\n\n private recalculateCuepointLayout(): void {\n logger.debug('calculating cuepoint layout based on video/player sizes', {\n method: 'recalculateCuepointLayout',\n });\n\n if (!this.playerSize || !this.videoSize) {\n logger.warn('missing video/player sizes, hide all cuepoint', {\n method: 'recalculateCuepointLayout',\n });\n this.enabled = false;\n return;\n }\n\n const {width: playerWidth, height: playerHeight} = this.playerSize;\n const {width: videoWidth, height: videoHeight} = this.videoSize;\n const canCalcaulateLayout =\n playerWidth && playerHeight && videoWidth && videoHeight;\n\n if (!canCalcaulateLayout) {\n logger.warn('missing video/player sizes, hide all cuepoint', {\n method: 'recalculateCuepointLayout',\n });\n this.enabled = false;\n return;\n }\n\n const scaleCalculation = scaleVideo(\n videoWidth,\n videoHeight,\n playerWidth,\n playerHeight,\n true\n );\n\n logger.debug('recalculate cuepoint layout based on new sizes', {\n method: 'recalculateCuepointLayout',\n data: {\n scaleCalculation,\n },\n });\n\n (this.cuepoints || []).forEach(cuepoint => {\n cuepoint.layout = this._calculateLayout(\n cuepoint as any,\n scaleCalculation\n );\n });\n\n this.enabled = true;\n }\n}\n","export function downloadContent(content: string, name: string): void {\n const blob = new Blob([content], {type: 'text/plain;charset=utf-8;'});\n const anchor = document.createElement('a');\n if (window.navigator.msSaveBlob) {\n // IE\n window.navigator.msSaveOrOpenBlob(blob, name);\n return;\n }\n if (navigator.userAgent.search('Firefox') !== -1) {\n // Firefox\n anchor.style.display = 'none';\n anchor.setAttribute(\n 'href',\n 'data:text/plain;charset=utf-8,' + encodeURIComponent(content)\n );\n } else {\n // Chrome\n anchor.setAttribute('href', URL.createObjectURL(blob));\n }\n anchor.setAttribute('target', '_blank');\n anchor.setAttribute('download', name);\n anchor.click();\n anchor.remove();\n}\n\nexport function printContent(content: string): void {\n const printWindow = window.open('', '', 'width=400,height=600');\n if (printWindow) {\n printWindow.document.write(content);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n\nexport function timeSince(date: any) {\n if (typeof date !== 'object') {\n date = new Date(date);\n }\n const currentDate: any = new Date();\n const seconds = Math.floor((currentDate - date) / 1000);\n let intervalType;\n let interval = Math.floor(seconds / 31536000);\n if (interval >= 1) {\n intervalType = 'year';\n } else {\n interval = Math.floor(seconds / 2592000);\n if (interval >= 1) {\n intervalType = 'month';\n } else {\n interval = Math.floor(seconds / 86400);\n if (interval >= 1) {\n intervalType = 'day';\n } else {\n interval = Math.floor(seconds / 3600);\n if (interval >= 1) {\n intervalType = 'hour';\n } else {\n interval = Math.floor(seconds / 60);\n if (interval >= 1) {\n intervalType = 'minute';\n } else {\n interval = -1;\n intervalType = 'a moment';\n }\n }\n }\n }\n }\n\n if (interval > 1 || interval === 0) {\n intervalType += 's';\n }\n\n return `${interval >= 0 ? interval : ''} ${intervalType} ago`;\n}\n","import {ComponentChild, h} from 'preact';\nimport {OverlayItem} from './overlay-item';\nimport {OverlayItemData, OverlayPositions} from './overlay-item-data';\nimport {PresetManager} from './preset-manager';\nimport {ObjectUtils} from '@playkit-js-contrib/common';\nimport {ManagedComponent} from './components/managed-component';\nimport {OverlayItemContainer} from './components/overlay-item-container';\nimport {PresetsUtils} from './presets-utils';\nimport OverlayConfig = KalturaPlayerContribTypes.OverlayConfig;\nimport {getContribConfig} from './contrib-utils';\n\nexport interface OverlayManagerOptions {\n presetManager: PresetManager;\n kalturaPlayer: KalturaPlayerTypes.Player;\n}\n\nconst defaultOverlayConfig: OverlayConfig = {\n presetAreasMapping: {\n Playback: {\n PlayerArea: 'PlayerArea',\n },\n Live: {\n PlayerArea: 'PlayerArea',\n },\n },\n};\n\nconst acceptableTypes = ['PlayerArea'];\n\nexport class OverlayManager {\n private _items: Record<OverlayPositions, OverlayItem[]> = {\n [OverlayPositions.PlayerArea]: [],\n };\n\n private _componentRef: Record<OverlayPositions, ManagedComponent | null> = {\n [OverlayPositions.PlayerArea]: null,\n };\n\n private _options: OverlayManagerOptions;\n private _overlayConfig: OverlayConfig;\n\n constructor(private options: OverlayManagerOptions) {\n this._options = options;\n\n this._overlayConfig = getContribConfig(\n this._options.kalturaPlayer,\n 'ui.overlay',\n defaultOverlayConfig,\n {\n explicitMerge: ['presetAreasMapping'],\n }\n );\n\n const groupedPresets = PresetsUtils.groupPresetAreasByType({\n presetAreasMapping: this._overlayConfig.presetAreasMapping,\n acceptableTypes,\n });\n\n this.options.presetManager.add({\n label: 'overlay-manager',\n fillContainer: true,\n presetAreas: groupedPresets['PlayerArea'],\n renderChild: () => this._renderChild(OverlayPositions.PlayerArea),\n });\n }\n\n /**\n * initialize new overlay ui item\n * @param item\n */\n add(data: OverlayItemData): OverlayItem | null {\n const {presetManager} = this._options;\n\n const itemOptions = {\n presetManager,\n ...this.options,\n data,\n };\n\n const item = new OverlayItem(itemOptions);\n this._items[data.position].unshift(item);\n this._updateComponents(data.position);\n return item;\n }\n\n remove(item: OverlayItem) {\n const positionItems = this._items[item.data.position];\n const itemIndex = positionItems.indexOf(item);\n if (itemIndex > -1) {\n positionItems[itemIndex].destroy();\n positionItems.splice(itemIndex, 1);\n\n if (itemIndex === 0) {\n this._updateComponents(item.data.position);\n }\n } else {\n console.warn(`couldn't remove ${item} since it wasn't found`);\n }\n }\n\n reset(): void {\n const allItems = [...this._items.PlayerArea];\n allItems.forEach(item => {\n try {\n item.destroy();\n } catch (e) {\n // TODO log error\n console.warn(e);\n }\n });\n\n this._items.PlayerArea = [];\n }\n\n private _renderItems = (position: OverlayPositions) => {\n const items = this._items[position];\n\n if (items.length === 0) {\n return null;\n }\n\n return (\n <OverlayItemContainer\n renderContent={() => this._items[position][0].renderOverlayChild({})}\n />\n );\n };\n\n private _renderChild = (position: OverlayPositions): ComponentChild => {\n return (\n <ManagedComponent\n label={'overlay-manager'}\n renderChildren={() => this._renderItems(position)}\n isShown={() => true}\n ref={ref => (this._componentRef[position] = ref)}\n />\n );\n };\n\n private _updateComponents(position?: OverlayPositions) {\n if (\n this._componentRef.PlayerArea &&\n (!position || position === OverlayPositions.PlayerArea)\n ) {\n this._componentRef.PlayerArea.update();\n }\n }\n}\n","export {OverlayItemContainer} from './overlay-item-container';\n","import {Component, ComponentChild, h} from 'preact';\nimport {ContribLogger, getContribLogger} from '@playkit-js-contrib/common';\nimport * as styles from './_overlay-item-container.scss';\n\nexport interface OverlayContainerProps {\n renderContent: () => ComponentChild;\n}\n\nexport class OverlayItemContainer extends Component<OverlayContainerProps> {\n private _logger: ContribLogger = getContribLogger({\n module: 'contrib-ui',\n class: 'OverlayContainer',\n });\n\n componentDidMount(): void {\n this._logger.info(`mount component`, {\n method: 'componentDidMount',\n });\n }\n\n componentWillUnmount(): void {\n this._logger.info(`unmount component`, {\n method: 'componentWillUnmount',\n });\n }\n\n render() {\n this._logger.trace(`render component`, {\n method: 'render',\n });\n const content = this.props.renderContent();\n if (!content) {\n return null;\n }\n return <div className={styles.overlayItemContainer}>{content}</div>;\n }\n}\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/sass-loader/dist/cjs.js!./_overlay-item-container.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".contrib_overlay-item-container__overlayItemContainer___1YRFl{position:absolute;z-index:6;top:0;bottom:0;left:0;right:0;width:100%;height:100%}\\n\", \"\",{\"version\":3,\"sources\":[\"/Users/jonathangold/Desktop/dev/playkit-js-contrib/packages/ui/src/components/overlay-item-container/_overlay-item-container.scss\"],\"names\":[],\"mappings\":\"AAAA,8DACE,iBAAkB,CAClB,SAAU,CACV,KAAM,CACN,QAAS,CACT,MAAO,CACP,OAAQ,CACR,UAAW,CACX,WAAY\",\"file\":\"_overlay-item-container.scss\",\"sourcesContent\":[\".overlayItemContainer {\\n position: absolute;\\n z-index: 6;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n}\\n\"]}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"overlayItemContainer\": \"contrib_overlay-item-container__overlayItemContainer___1YRFl\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\nexport class KalturaClientException extends Error {\n constructor(public code: string, public message: string, public args?: any) {\n super(message);\n\n // Set the prototype explicitly.\n Object.setPrototypeOf(this, KalturaClientException.prototype);\n }\n}","import { KalturaResponse } from \"./kaltura-response\";\nimport { KalturaRequestBase, KalturaRequestBaseArgs } from \"./kaltura-request-base\";\nimport { KalturaAPIException } from './kaltura-api-exception';\nimport { KalturaObjectBase } from './kaltura-object-base';\nimport { KalturaRequestOptions, KalturaRequestOptionsArgs } from './kaltura-request-options';\nimport { environment } from '../environment';\n\nexport interface KalturaRequestArgs extends KalturaRequestBaseArgs\n{\n\n}\n\n\nexport abstract class KalturaRequest<T> extends KalturaRequestBase {\n\n private __requestOptions__: KalturaRequestOptions;\n protected callback: (response: KalturaResponse<T>) => void;\n private responseType : string;\n private responseSubType : string;\n protected _responseConstructor : { new() : KalturaObjectBase}; // NOTICE: this property is not used directly. It is here to force import of that type for bundling issues.\n\n constructor(data : KalturaRequestBaseArgs, {responseType, responseSubType, responseConstructor} : {responseType : string, responseSubType? : string, responseConstructor : { new() : KalturaObjectBase} } ) {\n super(data);\n this.responseSubType = responseSubType;\n this.responseType = responseType;\n this._responseConstructor = responseConstructor;\n }\n\n setCompletion(callback: (response: KalturaResponse<T>) => void): this {\n this.callback = callback;\n return this;\n }\n\n private _unwrapResponse(response: any): any {\n if (environment.response.nestedResponse) {\n if (response && response.hasOwnProperty('result')) {\n if (response.result.hasOwnProperty('error')) {\n return response.result.error;\n } else {\n return response.result;\n }\n } else if (response && response.hasOwnProperty('error')) {\n return response.error;\n }\n }\n\n return response;\n }\n\n handleResponse(response: any): KalturaResponse<T> {\n let responseResult: any;\n let responseError: any;\n\n try {\n const unwrappedResponse = this._unwrapResponse(response);\n let responseObject = null;\n\n if (unwrappedResponse) {\n if (unwrappedResponse instanceof KalturaAPIException)\n {\n // handle situation when multi request propagated actual api exception object.\n responseObject = unwrappedResponse;\n }else if (unwrappedResponse.objectType === 'KalturaAPIException') {\n responseObject = new KalturaAPIException(\n unwrappedResponse.message,\n unwrappedResponse.code,\n unwrappedResponse.args\n );\n } else {\n responseObject = super._parseResponseProperty(\n \"\",\n {\n type: this.responseType,\n subType: this.responseSubType\n },\n unwrappedResponse\n );\n }\n }\n\n if (!responseObject && this.responseType !== 'v') {\n responseError = new KalturaAPIException(`server response is undefined, expected '${this.responseType} / ${this.responseSubType}'`, 'client::response_type_error', null);\n } else if (responseObject instanceof KalturaAPIException) {\n // got exception from library\n responseError = responseObject;\n }else {\n responseResult = responseObject;\n }\n } catch (ex) {\n responseError = new KalturaAPIException(ex.message, 'client::general_error', null);\n }\n\n\n const result = new KalturaResponse<T>(responseResult, responseError);\n\n if (this.callback) {\n try {\n this.callback(result);\n } catch (ex) {\n // do nothing by design\n }\n }\n\n return result;\n }\n\n setRequestOptions(optionArgs: KalturaRequestOptionsArgs): this;\n setRequestOptions(options: KalturaRequestOptions): this;\n setRequestOptions(arg: KalturaRequestOptionsArgs | KalturaRequestOptions): this {\n this.__requestOptions__ = arg instanceof KalturaRequestOptions ? arg : new KalturaRequestOptions(arg);\n return this;\n }\n\n getRequestOptions(): KalturaRequestOptions {\n return this.__requestOptions__;\n }\n\n buildRequest(defaultRequestOptions: KalturaRequestOptions): {} {\n const requestOptionsObject = this.__requestOptions__ ? this.__requestOptions__.toRequestObject() : {};\n const defaultRequestOptionsObject = defaultRequestOptions ? defaultRequestOptions.toRequestObject() : {};\n\n return Object.assign(\n {},\n defaultRequestOptionsObject,\n requestOptionsObject,\n this.toRequestObject()\n );\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"common\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"common\"] = factory();\n\telse\n\t\troot[\"playkit\"] = root[\"playkit\"] || {}, root[\"playkit\"][\"contrib\"] = root[\"playkit\"][\"contrib\"] || {}, root[\"playkit\"][\"contrib\"][\"common\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 62);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","module.exports = false;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = {};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.3.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = require('../internals/global');\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","export class ObjectUtils {\n /**\n * @param {T} data - The data to copy.\n * @returns {T} - The copied data.\n */\n public static copyDeep<T extends Record<string, any>>(data: T): T {\n let node;\n if (Array.isArray(data)) {\n node = data.length > 0 ? data.slice(0) : [];\n node.forEach((e, i) => {\n if (\n (typeof e === 'object' && e !== {}) ||\n (Array.isArray(e) && e.length > 0)\n ) {\n node[i] = ObjectUtils.copyDeep(e);\n }\n });\n } else if (typeof data === 'object') {\n node = Object.assign({}, data);\n Object.keys(node).forEach(key => {\n if (\n (typeof node[key] === 'object' && node[key] !== {}) ||\n (Array.isArray(node[key]) && node[key].length > 0)\n ) {\n node[key] = ObjectUtils.copyDeep(node[key]);\n }\n });\n } else {\n node = data;\n }\n return node;\n }\n\n /**\n * @param {T} item - The item to check.\n * @returns {T} - Whether the item is an object.\n */\n public static isObject(item: any) {\n return item && typeof item === 'object' && !Array.isArray(item);\n }\n\n /**\n * @param {T} target - The target object.\n * @param {T} sources - The objects to merge.\n * @returns {T} - The merged object.\n */\n public static mergeDeep<T extends Record<string, any>>(\n target: Partial<T>,\n sources: Partial<T>[],\n extra?: {explicitMerge?: string[]}\n ): Partial<T> {\n if (!sources.length) {\n return target;\n }\n\n const explicitMerge: string[] = (extra ? extra.explicitMerge : null) || [];\n const source = sources.shift();\n if (ObjectUtils.isObject(target) && ObjectUtils.isObject(source)) {\n for (const key in source) {\n if (ObjectUtils.isObject(source[key])) {\n if (!target[key]) Object.assign(target, {[key]: {}});\n\n if (explicitMerge.indexOf(key) !== -1) {\n target[key] = ObjectUtils.explicitFlatMerge<any>(\n target[key],\n source[key]\n );\n } else {\n ObjectUtils.mergeDeep(target[key], [source[key]], extra);\n }\n } else {\n Object.assign(target, {[key]: source[key]});\n }\n }\n }\n return ObjectUtils.mergeDeep(target, sources, extra);\n }\n\n public static mergeDefaults<T extends Record<string, any>>(\n source: Partial<T>,\n defaults: T,\n extra?: {explicitMerge?: string[]}\n ): T {\n return ObjectUtils.mergeDeep({}, [defaults, source], extra) as T;\n }\n\n /**\n * source properties will override all equivalent properties in target. null or empty objects properties in source\n * will cause the removal of these properties in target.\n * all other data will be merged\n * @param initialObject\n * @param source\n */\n public static explicitFlatMerge<T extends Record<string, any>>(\n initialObject: Partial<T>,\n source: Partial<T>\n ): any {\n const result = {...initialObject};\n Object.keys(source).forEach(key => {\n if (source[key] === null || Object.keys(source[key]).length === 0) {\n delete result[key];\n } else {\n // @ts-ignore\n // https://github.com/microsoft/TypeScript/issues/31661\n result[key] = source[key];\n }\n });\n return result;\n }\n\n public static get(\n obj: Record<string, any>,\n path: string,\n defaultValue: any\n ): any {\n function stringToPath(path: string) {\n const output = [];\n // Split to an array with dot notation\n path.split('.').forEach(item => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach(key => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n return output;\n }\n\n // Get the path as an array\n const pathArray = stringToPath(path);\n\n let current = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < pathArray.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[pathArray[i]]) return defaultValue;\n\n // Otherwise, update the current value\n current = current[pathArray[i]];\n }\n\n return current;\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar userAgent = require('../internals/user-agent');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","import {Logger, LogLevel} from './js-logger.types';\nfunction isJSLogger(logger: any): logger is JSLogger {\n return logger && 'setLevel' in logger;\n}\n\nexport interface ContribLogger {\n debug(message: string, context: MessageOptions): void;\n info(message: string, context: MessageOptions): void;\n trace(message: string, context: MessageOptions): void;\n warn(message: string, context: MessageOptions): void;\n error(message: string, context: MessageOptions): void;\n}\n\nfunction getPlayerLogger(options: {\n kalturaPlayer?: any;\n loggerName?: string;\n}): JSLogger | null {\n const {kalturaPlayer, loggerName} = options;\n\n const getLoggerFn = kalturaPlayer\n ? kalturaPlayer.getLogger\n : KalturaPlayer.ui.utils.getLogger;\n\n if (!getLoggerFn) {\n return null;\n }\n const logger = getLoggerFn(loggerName);\n\n if (!isJSLogger(logger)) {\n return null;\n }\n\n return logger;\n}\n\nexport class NoopLogger implements ContribLogger {\n debug(message: string, context: MessageOptions): void {}\n info(message: string, context: MessageOptions): void {}\n trace(message: string, context: MessageOptions): void {}\n warn(message: string, context: MessageOptions): void {}\n error(message: string, context: MessageOptions): void {}\n}\n\nconst globalLogger = getPlayerLogger({});\nconst defaultNoopLogger = new NoopLogger();\n\ninterface JSLogger extends Logger {}\ntype LoggerMethods = 'debug' | 'trace' | 'warn' | 'error' | 'info';\n\nexport class ProxyLogger implements ContribLogger {\n constructor(\n private _logger: JSLogger,\n private _defaultOptions: LoggerOptions\n ) {}\n\n private _log(\n loggerMethod: LoggerMethods,\n level: LogLevel,\n message: string,\n messageContext: MessageOptions\n ): void {\n const className = messageContext.class || this._defaultOptions.class || '_';\n const module = this._defaultOptions.module || '';\n const method = messageContext.method ? `.${messageContext.method}()` : '';\n const context = this._defaultOptions.context\n ? `'${this._defaultOptions.context}'`\n : '';\n\n const formattedMessage = `[${module}::${className}(${context})${method}] ${message}`;\n\n if (messageContext.data) {\n (this._logger as any)[loggerMethod](\n formattedMessage,\n messageContext.data\n );\n } else {\n (this._logger as any)[loggerMethod](formattedMessage);\n }\n }\n\n debug(message: string, context: MessageOptions): void {\n if (!globalLogger) {\n return;\n }\n this._log('debug', globalLogger.DEBUG, message, context);\n }\n info(message: string, context: MessageOptions): void {\n if (!globalLogger) {\n return;\n }\n this._log('info', globalLogger.INFO, message, context);\n }\n trace(message: string, context: MessageOptions): void {\n if (!globalLogger) {\n return;\n }\n this._log('trace', globalLogger.TRACE, message, context);\n }\n warn(message: string, context: MessageOptions): void {\n if (!globalLogger) {\n return;\n }\n this._log('warn', globalLogger.WARN, message, context);\n }\n error(message: string, context: MessageOptions): void {\n if (!globalLogger) {\n return;\n }\n this._log('error', globalLogger.ERROR, message, context);\n }\n}\n\nexport interface LoggerOptions {\n class?: string;\n module?: string;\n context?: string;\n}\n\nexport interface MessageOptions {\n class?: string;\n method?: string;\n data?: Record<string, any>;\n}\n\nexport function getContribLogger(\n options: {kalturaPlayer?: any} & LoggerOptions = {}\n): ContribLogger {\n const {kalturaPlayer} = options;\n\n const loggerName = `${\n kalturaPlayer ? kalturaPlayer._playerId : 'global'\n }_contrib`;\n const logger = getPlayerLogger({kalturaPlayer, loggerName});\n\n if (!logger) {\n return defaultNoopLogger;\n }\n\n return new ProxyLogger(logger, options);\n}\n\nexport function enableLogIfNeeded() {\n try {\n if (document.URL.indexOf('debugKalturaPlayer') !== -1) {\n const logger = getPlayerLogger({});\n\n if (!logger) {\n return;\n }\n\n logger.setLevel(logger.TRACE);\n }\n } catch (e) {\n // do nothing\n }\n}\n","import {v5 as uuidV5, v1 as uuidV1} from 'uuid';\n\nexport class UUID {\n //timestamp\n public static uuidV1() {\n return uuidV1();\n }\n\n /**\n * usage example: uuidV5('domain', uuidV1())\n * @param name\n * @param namespace should be UUID string or a 16 byte array\n */\n public static uuidV5(name: string, namespace: string) {\n return uuidV5(name, namespace);\n }\n\n /**\n * generate uuidV1 as numbers only\n */\n public static numberedUuidV1(): string {\n const uuid = UUID.uuidV1();\n let numStr = '';\n\n for (let i = 0; i < uuid.length; i++) {\n const char = uuid.charAt(i);\n numStr += Number.isNaN(+char) ? char.charCodeAt(0) : char;\n }\n\n return numStr;\n }\n}\n","/// <reference path=\"./global.d.ts\" />\nimport 'core-js/features/promise';\nimport 'core-js/features/object/assign';\nimport 'core-js/features/object/keys';\n\nNumber.isNaN =\n Number.isNaN ||\n function (value) {\n return value !== null && (value != value || +value != value);\n };\n\nexport * from './cuepoint-engine';\nexport * from './player-contrib-registry';\nexport * from './kaltura-live-services';\nexport * from './events-manager';\nexport * from './contrib-logger';\nexport * from './uuid';\nexport * from './debouce';\nexport * from './object-utils';\nexport * from './kaltura-player-utils';\nexport * from './array-utils';\n","module.exports = require('../../es/promise');\n\nrequire('../../modules/esnext.aggregate-error');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.any');\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n return '[object ' + classof(this) + ']';\n} : test.toString;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n createNonEnumerableProperty(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar anObject = require('../internals/an-object');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalAggregateErrorState = InternalStateModule.getterFor('AggregateError');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(message), getPrototypeOf(that));\n }\n var errorsArray = [];\n iterate(errors, errorsArray.push, errorsArray);\n if (DESCRIPTORS) setInternalState(that, { errors: errorsArray, type: 'AggregateError' });\n else that.errors = errorsArray;\n if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError'),\n toString: createPropertyDescriptor(5, function toString() {\n var name = anObject(this).name;\n name = name === undefined ? 'AggregateError' : String(name);\n var message = this.message;\n message = message === undefined ? '' : String(message);\n return name + ': ' + message;\n })\n});\n\nif (DESCRIPTORS) defineProperty.f($AggregateError.prototype, 'errors', {\n get: function () {\n return getInternalAggregateErrorState(this).errors;\n },\n configurable: true\n});\n\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","// TODO: Remove from `core-js@4`\nrequire('./es.promise.all-settled.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://github.com/tc39/proposal-promise-any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n errors.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (e) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = e;\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","module.exports = require('../../es/object/assign');\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","module.exports = require('../../es/object/keys');\n","require('../../modules/es.object.keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.keys;\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","import {getContribLogger} from './contrib-logger';\n\nenum ChangeTypes {\n Show = 'show',\n Hide = 'hide',\n}\n\ntype ChangeData<T extends Cuepoint> = {\n time: number;\n type: ChangeTypes;\n cuePoint: T;\n};\n\nconst DefaultReasonableSeekThreshold = 2000;\n\nexport interface Cuepoint {\n startTime: number;\n endTime?: number;\n}\n\nexport interface CuepointEngineOptions {\n reasonableSeekThreshold: number;\n}\n\nexport interface UpdateTimeResponse<T extends Cuepoint> {\n snapshot?: T[];\n delta?: {\n show: T[];\n hide: T[];\n };\n}\n\nconst logger = getContribLogger({\n module: 'contrib-common',\n class: 'CuepointEngine',\n});\n\nexport class CuepointEngine<T extends Cuepoint> {\n protected _cuepoints: T[];\n private reasonableSeekThreshold: number;\n private isFirstTime = true;\n protected enabled = true;\n private lastHandledTime: number | null = null;\n private lastHandledTimeIndex: number | null = null;\n private nextTimeToHandle: number | null = null;\n private cuepointChanges: ChangeData<T>[] = [];\n\n constructor(cuepoints: T[], options?: CuepointEngineOptions) {\n logger.debug('executed', {\n method: 'ctor',\n });\n this.reasonableSeekThreshold = Math.max(\n DefaultReasonableSeekThreshold,\n (options && options.reasonableSeekThreshold) || 0\n );\n this._cuepoints = cuepoints;\n this.prepareCuepoint();\n }\n\n get cuepoints(): T[] {\n return [...this._cuepoints];\n }\n\n public getSnapshot(time: number): T[] {\n const timeIndex = this.findClosestLastIndexByTime(time);\n logger.debug(`create snapshot based on time ${time}`, {\n method: 'getSnapshot',\n data: {\n timeIndex,\n },\n });\n return this.createCuepointSnapshot(timeIndex);\n }\n\n public updateTime(\n currentTime: number,\n forceSnapshot = false,\n filter?: (item: T) => boolean\n ): UpdateTimeResponse<T> {\n const {isFirstTime, lastHandledTime, nextTimeToHandle} = this;\n\n if (this.cuepointChanges.length === 0) {\n if (isFirstTime) {\n logger.info(`cuepoint list empty. will always return empty snapshot`, {\n method: 'updateTime',\n });\n this.isFirstTime = false;\n }\n return {snapshot: []};\n }\n\n const userSeeked =\n !isFirstTime &&\n lastHandledTime !== null &&\n nextTimeToHandle !== null &&\n (lastHandledTime > currentTime ||\n currentTime - nextTimeToHandle > this.reasonableSeekThreshold);\n const hasChangesToHandle =\n isFirstTime ||\n (this.lastHandledTime !== null && this.lastHandledTime > currentTime) ||\n (this.nextTimeToHandle != null && currentTime >= this.nextTimeToHandle);\n const closestChangeIndex = this.findClosestLastIndexByTime(currentTime);\n const closestChangeTime =\n closestChangeIndex < 0\n ? 0\n : this.cuepointChanges[closestChangeIndex].time;\n\n if (!hasChangesToHandle) {\n if (forceSnapshot) {\n return {\n snapshot: this.createCuepointSnapshot(closestChangeIndex, filter),\n };\n }\n\n return {delta: this.createEmptyDelta()};\n }\n\n logger.debug(\n `has changes to handle. check if need to return snapshot instead of delta based on provided new time`,\n {\n method: 'updateTime',\n data: {\n currentTime,\n closestChangeIndex,\n closestChangeTime,\n lastHandledTime,\n nextTimeToHandle,\n isFirstTime,\n },\n }\n );\n\n if (isFirstTime || forceSnapshot || userSeeked) {\n logger.debug(\n `some conditions doesn't allow returning delta, return snapshot instead`,\n {\n method: 'updateTime',\n data: {isFirstTime, userSeeked, forceSnapshot},\n }\n );\n\n const snapshot = this.createCuepointSnapshot(closestChangeIndex, filter);\n this.updateInternals(closestChangeTime, closestChangeIndex);\n\n return {snapshot};\n }\n\n const delta = this.createCuepointDelta(closestChangeIndex, filter);\n this.updateInternals(closestChangeTime, closestChangeIndex);\n\n return {delta};\n }\n\n protected getCurrentCuepointSnapshot(): T[] {\n return this.lastHandledTimeIndex\n ? this.createCuepointSnapshot(this.lastHandledTimeIndex)\n : [];\n }\n\n private createCuepointSnapshot(\n targetIndex: number,\n filter?: (item: T) => boolean\n ): T[] {\n if (\n !this.enabled ||\n targetIndex < 0 ||\n !this.cuepointChanges ||\n this.cuepointChanges.length === 0\n ) {\n logger.debug(`resulted with empty snapshot`, {\n method: 'createCuepointSnapshot',\n data: {\n targetIndex,\n enabled: this.enabled,\n cuepointCount: (this.cuepointChanges || []).length,\n },\n });\n return [];\n }\n\n let snapshot: T[] = [];\n\n for (let index = 0; index <= targetIndex; index++) {\n const item = this.cuepointChanges[index];\n const cuepointIndex = snapshot.indexOf(item.cuePoint);\n if (item.type === ChangeTypes.Show) {\n if (cuepointIndex === -1) {\n snapshot.push(item.cuePoint);\n }\n } else {\n if (cuepointIndex !== -1) {\n snapshot.splice(cuepointIndex, 1);\n }\n }\n }\n\n logger.debug(`resulted snapshot`, {\n method: 'createCuepointSnapshot',\n data: {snapshot},\n });\n\n if (filter) {\n snapshot = snapshot.filter(filter);\n }\n\n return snapshot;\n }\n\n private createCuepointDelta(\n targetIndex: number,\n filter?: (item: T) => boolean\n ): {show: T[]; hide: T[]} {\n if (\n !this.enabled ||\n !this.cuepointChanges ||\n this.cuepointChanges.length === 0\n ) {\n logger.debug(`resulted with empty delta`, {\n method: 'createCuepointDelta',\n data: {\n enabled: this.enabled,\n cuepointCount: (this.cuepointChanges || []).length,\n },\n });\n return this.createEmptyDelta();\n }\n\n const {lastHandledTimeIndex} = this;\n\n if (lastHandledTimeIndex === null) {\n logger.debug(`invalid internal state. resulted with empty delta`, {\n method: 'createCuepointDelta',\n });\n return this.createEmptyDelta();\n }\n\n let newCuepoint: T[] = [];\n let removedCuepoint: T[] = [];\n\n logger.info(`find cuepoint that were added or removed`, {\n method: 'createCuepointDelta',\n });\n for (let index = lastHandledTimeIndex + 1; index <= targetIndex; index++) {\n const item = this.cuepointChanges[index];\n const cuepointIndex = newCuepoint.indexOf(item.cuePoint);\n if (item.type === ChangeTypes.Show) {\n if (cuepointIndex === -1) {\n newCuepoint.push(item.cuePoint);\n }\n } else {\n if (cuepointIndex !== -1) {\n logger.info(\n `cuepoint was marked with type ${item.type} at ${item.time}. remove from new cuepoint list as it wasn't visible yet`,\n {\n method: 'createCuepointDelta',\n data: {cuepoint: item.cuePoint},\n }\n );\n\n newCuepoint.splice(cuepointIndex, 1);\n } else if (removedCuepoint.indexOf(item.cuePoint) === -1) {\n logger.info(\n `cuepoint was marked with type ${item.type} at ${item.time}. add to removed cuepoint list`,\n {\n method: 'createCuepointDelta',\n data: {cuepoint: item.cuePoint},\n }\n );\n removedCuepoint.push(item.cuePoint);\n }\n }\n }\n\n logger.debug(`resulted delta`, {\n method: 'createCuepointDelta',\n data: {\n newCuepoint,\n removedCuepoint,\n },\n });\n\n if (filter) {\n newCuepoint = newCuepoint.filter(filter);\n removedCuepoint = removedCuepoint.filter(filter);\n }\n\n return {show: newCuepoint, hide: removedCuepoint};\n }\n\n private updateInternals(time: number, timeIndex: number) {\n const {cuepointChanges} = this;\n\n if (!cuepointChanges || cuepointChanges.length === 0) {\n return;\n }\n\n const isIndexOfLastChange = timeIndex >= cuepointChanges.length - 1;\n const isIndexBeforeTheFirstChange = timeIndex === null;\n this.lastHandledTime = time;\n this.lastHandledTimeIndex = timeIndex;\n this.nextTimeToHandle = isIndexBeforeTheFirstChange\n ? cuepointChanges[0].time\n : isIndexOfLastChange\n ? cuepointChanges[cuepointChanges.length - 1].time\n : cuepointChanges[timeIndex + 1].time;\n this.isFirstTime = false;\n }\n\n private createEmptyDelta(): {\n show: T[];\n hide: T[];\n } {\n return {show: [], hide: []};\n }\n\n private binarySearch(items: ChangeData<T>[], value: number): number | null {\n if (!items || items.length === 0) {\n // empty array, no index to return\n return null;\n }\n\n if (value < items[0].time) {\n // value less then the first item. return -1\n return -1;\n }\n if (value > items[items.length - 1].time) {\n // value bigger then the last item, return last item index\n return items.length - 1;\n }\n\n let lo = 0;\n let hi = items.length - 1;\n\n while (lo <= hi) {\n const mid = Math.floor((hi + lo + 1) / 2);\n\n if (value < items[mid].time) {\n hi = mid - 1;\n } else if (value > items[mid].time) {\n lo = mid + 1;\n } else {\n return mid;\n }\n }\n\n return Math.min(lo, hi); // return the lowest index which represent the last visual item\n }\n\n private findClosestLastIndexByTime(time: number): number {\n const changes = this.cuepointChanges;\n let closestIndex = this.binarySearch(changes, time);\n\n if (closestIndex === null) {\n return -1;\n }\n\n const changesLength = changes.length;\n while (\n closestIndex < changesLength - 1 &&\n changes[closestIndex + 1].time === time\n ) {\n closestIndex++;\n }\n\n return closestIndex;\n }\n\n private prepareCuepoint() {\n (this._cuepoints || []).forEach(cuepoint => {\n if (\n cuepoint.startTime !== null &&\n typeof cuepoint.startTime !== 'undefined' &&\n cuepoint.startTime >= 0\n ) {\n this.cuepointChanges.push({\n time: cuepoint.startTime,\n type: ChangeTypes.Show,\n cuePoint: cuepoint as T, // NOTICE: it is the responsability of this engine not to return cuepoint without layout\n });\n }\n\n if (\n cuepoint.endTime !== null &&\n typeof cuepoint.endTime !== 'undefined' &&\n cuepoint.endTime >= 0\n ) {\n this.cuepointChanges.push({\n time: cuepoint.endTime,\n type: ChangeTypes.Hide,\n cuePoint: cuepoint as T, // NOTICE: it is the responsability of this engine not to return cuepoint without layout\n });\n }\n });\n\n this.cuepointChanges.sort((a, b) => {\n return a.time < b.time ? -1 : a.time === b.time ? 0 : 1;\n });\n\n logger.debug(`tracking ${this.cuepointChanges.length} changes`, {\n method: 'prepareCuepoint',\n data: {\n changes: this.cuepointChanges,\n },\n });\n }\n}\n","export class PlayerContribRegistry {\n private _cache: Record<string, {instance: any}> = {};\n\n static get(player: any): PlayerContribRegistry {\n player.__contrib__ = player.__contrib__ || {};\n player.__contrib__.services =\n player.__contrib__.services || new PlayerContribRegistry();\n return player.__contrib__.services;\n }\n\n private constructor() {}\n\n public get(token: string): any {\n const result = this._cache[token];\n\n if (!result) {\n throw new Error(`cannot find resource with token ${token}`);\n }\n\n return result;\n }\n\n public register<T>(token: string, creator: () => T): T {\n let requestedResource = this._cache[token];\n\n if (!requestedResource) {\n requestedResource = this._cache[token] = {\n instance: creator(),\n };\n }\n\n return requestedResource.instance;\n }\n}\n","import {UUID} from './uuid';\n\nconst HashSeparatorText = 'HashSeparator';\n\nexport class KalturaLiveServices {\n public static getAnonymousUserId(userId: string): string {\n if (typeof Storage === 'undefined') {\n // No web storage Support, just generate and return a anonymous user id\n return KalturaLiveServices._generateAnonymousUserId(userId);\n }\n\n // Web storage is supported\n let anonymousUserId;\n anonymousUserId = localStorage.getItem('anonymousUserId');\n\n if (!anonymousUserId) {\n anonymousUserId = KalturaLiveServices._generateAnonymousUserId(userId);\n localStorage.setItem('anonymousUserId', anonymousUserId);\n }\n\n return anonymousUserId;\n }\n\n private static _generateAnonymousUserId(userId: string) {\n return `##${userId}${HashSeparatorText}${UUID.numberedUuidV1()}##`;\n }\n}\n","export type Handler<T> = (event: T) => void;\nexport type WildcardHandler = (event: any) => void;\n\nexport interface Event {\n type: string;\n}\n\nexport class EventsManager<T extends Event> {\n private _eventListeners: Record<string, Handler<any>[]> = {};\n private _wildcardEventListeners: WildcardHandler[] = [];\n\n on<TEvent extends Event>(\n type: TEvent['type'],\n handler: Handler<TEvent>\n ): void;\n on(type: '*', handler: WildcardHandler): void;\n on(type: string, handler: any): void {\n if (type === '*') {\n this._wildcardEventListeners.push(handler);\n return;\n }\n\n (this._eventListeners[type] || (this._eventListeners[type] = [])).push(\n handler\n );\n }\n\n off<TEvent extends Event>(\n type: TEvent['type'],\n handler: Handler<TEvent>\n ): void;\n off(type: '*', handler: WildcardHandler): void;\n off(type: string, handler: any): void {\n if (type === '*') {\n this._wildcardEventListeners.splice(\n this._wildcardEventListeners.indexOf(handler) >>> 0,\n 1\n );\n return;\n }\n\n const eventListeners = this._eventListeners[type];\n\n if (!eventListeners) {\n return;\n }\n\n eventListeners.splice(eventListeners.indexOf(handler) >>> 0, 1);\n }\n\n emit(event: T): void {\n (this._eventListeners[event.type] || []).slice().map(handler => {\n handler(event);\n });\n this._wildcardEventListeners.slice().map(handler => {\n handler(event);\n });\n }\n}\n","/**\n * A function that emits a side effect and does not return anything.\n */\ntype Procedure = (...args: any[]) => void;\n\ntype Options = {\n isImmediate: boolean;\n};\n\nexport function debounce<F extends Procedure>(\n func: F,\n waitMilliseconds = 50,\n options: Options = {\n isImmediate: false,\n }\n): F {\n let timeoutId: any;\n\n return function (this: any, ...args: any[]) {\n const doLater = () => {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(this, args);\n }\n };\n\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(doLater, waitMilliseconds);\n\n if (shouldCallNow) {\n func.apply(this, args);\n }\n } as any;\n}\n","import {ObjectUtils} from './object-utils';\n\nexport class KalturaPlayerUtils {\n static getPlayerConfig<T>(\n player: KalturaPlayerTypes.Player,\n configPath: string,\n baseConfig: T,\n options: {explicitMerge: string[]}\n ): T {\n const playerContribConfig = ObjectUtils.get(player.config, configPath, {});\n\n return ObjectUtils.mergeDefaults<T>(\n playerContribConfig as any,\n baseConfig,\n options\n );\n }\n}\n","import {ObjectUtils} from './object-utils';\n\nexport class ArrayUtils {\n public static findIndex<T>(\n arr: Array<T>,\n comparator: (item: T) => boolean\n ): number {\n let index = 0;\n while (index < arr.length) {\n if (comparator(arr[index])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n public static sortByKey<T>(array: Array<T>, key: string): Array<T> {\n return array.sort((a, b) => {\n const x = ObjectUtils.get(a, key, null);\n const y = ObjectUtils.get(b, key, null);\n return x < y ? -1 : x > y ? 1 : 0;\n });\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","\"use strict\";\n\nmodule.exports = function escape(url, needQuotes) {\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || needQuotes) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"';\n }\n\n return url;\n};","export type CancelFn = () => void;\nexport type ResolveFn<T> = (value: T | null) => any | void;\nexport type RejectFn = (reason: Error) => any | void;\n\nexport class CancelableAction<T>\n{\n static resolve<T>(result: T): CancelableAction<T> {\n return new CancelableAction<T>((resolve) => {\n resolve(result);\n });\n }\n\n static reject<T>(error: Error): CancelableAction<T> {\n return new CancelableAction<T>((resolve, reject) => {\n reject(error);\n });\n }\n\n private _executors : {resolve: ResolveFn<T>, reject: RejectFn}[] = [];\n private _onCancel : CancelFn | void;\n constructor(executor : (resolve : ResolveFn<T>, reject : RejectFn, action?: CancelableAction<T>) => CancelFn | void)\n {\n this._onCancel = executor(this._onResolve.bind(this), this._onReject.bind(this), this);\n }\n\n private _onResolve(value? : T ) : void\n {\n this._notifyExecutor(value);\n }\n\n private _onReject(reason? : Error ) : void\n {\n this._notifyExecutor(reason);\n }\n\n private _notifyExecutor(value : T | Error) : void{\n const nextExecutor = this._executors.length > 0 ? this._executors.splice(0,1)[0] : null;\n let newValue : any;\n if (nextExecutor)\n {\n try {\n if (value instanceof Error) {\n if (nextExecutor.reject) {\n newValue = nextExecutor.reject(value);\n }else {\n this._handleErrorOriginatedFromExecuter(value);\n }\n } else {\n if (nextExecutor.resolve) {\n newValue = nextExecutor.resolve(<T>value);\n }\n }\n\n\n if (newValue instanceof CancelableAction)\n {\n newValue.then(this._onResolve.bind(this), this._onReject.bind(this));\n return;\n }else if (newValue instanceof Promise)\n {\n newValue.then(this._onResolve.bind(this), this._onReject.bind(this));\n return;\n }else {\n newValue = typeof newValue === 'undefined' ? value : newValue;\n this._notifyExecutor(newValue);\n }\n }catch(e)\n {\n this._handleErrorOriginatedFromExecuter(e);\n }\n }\n }\n\n private _handleErrorOriginatedFromExecuter(reason : any) : void {\n if (this._executors.length > 0)\n {\n this._notifyExecutor(reason);\n }else {\n throw reason;\n }\n }\n\n cancel() : void {\n if (this._onCancel) {\n this._onCancel();\n }\n }\n\n then(resolve: ResolveFn<T>, reject: RejectFn): this\n {\n this._executors.push({resolve, reject});\n return this;\n }\n\n catch(reject: RejectFn) : this\n {\n this._executors.push({resolve: null, reject});\n return this;\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","import { KalturaRequestBase } from '../api/kaltura-request-base';\nimport { KalturaClientOptions } from '../kaltura-client-options';\nimport { KalturaRequestOptions, KalturaRequestOptionsArgs } from '../api/kaltura-request-options';\nimport { KalturaMultiRequest } from '../api/kaltura-multi-request';\nimport { KalturaRequest } from '../api/kaltura-request';\nimport { KalturaFileRequest } from '../api/kaltura-file-request';\nimport { CancelableAction } from '../cancelable-action';\nimport { KalturaAPIException } from '../api/kaltura-api-exception';\nimport { KalturaClientException } from '../api/kaltura-client-exception';\nimport { environment } from '../environment';\n\n\nexport function createEndpoint(request: KalturaRequestBase, options: KalturaClientOptions, service: string, action?: string, additionalQueryparams?: {} ): string {\n\tconst endpoint = options.endpointUrl;\n\tconst clientTag = createClientTag(request, options);\n\tlet url = `${endpoint}/api_v3/service/${service}`;\n\n\tif (action) {\n\t\turl += `/action/${action}`;\n\t}\n\n\tconst queryparams = {\n\t\t...(additionalQueryparams || {}),\n\t\t...(clientTag ? {clientTag} : {})\n\t};\n\n\treturn buildUrl(url, queryparams);\n}\n\nexport function buildUrl(url: string, querystring?: {}) {\n\tlet formattedUrl = (url).trim();\n\tif (!querystring) {\n\t\treturn formattedUrl;\n\t}\n\tconst urlHasQuerystring = formattedUrl.indexOf('?') !== -1;\n\tconst formattedQuerystring = _buildQuerystring(querystring);\n\treturn `${formattedUrl}${urlHasQuerystring ? '&' : '?'}${formattedQuerystring}`;\n}\n\nfunction _buildQuerystring(data: {}, prefix?: string) {\n\tlet str = [], p;\n\tfor (p in data) {\n\t\tif (data.hasOwnProperty(p)) {\n\t\t\tlet k = prefix ? prefix + \"[\" + p + \"]\" : p, v = data[p];\n\t\t\tstr.push((v !== null && typeof v === \"object\") ?\n\t\t\t\t_buildQuerystring(v, k) :\n\t\t\t\tencodeURIComponent(k) + \"=\" + encodeURIComponent(v));\n\t\t}\n\t}\n\treturn str.join(\"&\");\n\n}\n\nexport function createClientTag(request: KalturaRequestBase, options: KalturaClientOptions)\n{\n const networkTag = (request.getNetworkTag() || \"\").trim();\n const clientTag = (options.clientTag || \"\").trim() || \"ng-app\";\n\n if (networkTag && networkTag.length)\n {\n return `${clientTag}_${networkTag}`;\n }else {\n return clientTag;\n }\n}\n\nexport function buildQuerystring(data: {}, prefix?: string) {\n let str = [], p;\n for (p in data) {\n if (data.hasOwnProperty(p)) {\n let k = prefix ? prefix + \"[\" + p + \"]\" : p, v = data[p];\n str.push((v !== null && typeof v === \"object\") ?\n buildQuerystring(v, k) :\n encodeURIComponent(k) + \"=\" + encodeURIComponent(v));\n }\n }\n return str.join(\"&\");\n\n}\n\nexport function getHeaders(): any {\n return {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n };\n}\n\nexport function prepareParameters(request: KalturaRequest<any> | KalturaMultiRequest | KalturaFileRequest, options: KalturaClientOptions, defaultRequestOptions: KalturaRequestOptions): any {\n\n return Object.assign(\n {},\n request.buildRequest(defaultRequestOptions),\n {\n\t apiVersion: environment.request.apiVersion,\n format: 1\n }\n );\n}\n\nexport function createCancelableAction<T>(data : { endpoint : string, headers : any, body : any} ) : CancelableAction<T> {\n\tconst result = new CancelableAction<T>((resolve, reject) => {\n\t\tconst xhr = new XMLHttpRequest();\n\t\tlet isComplete = false;\n\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState === 4) {\n\t\t\t\tif (isComplete) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tisComplete = true;\n\n\t\t\t\tlet resp;\n\n\t\t\t\ttry {\n\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\tresp = JSON.parse(xhr.response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresp = new KalturaClientException('client::requre-failure', xhr.responseText || 'failed to transmit request');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tresp = new Error(xhr.responseText);\n\t\t\t\t}\n\n\t\t\t\tif (resp instanceof Error || resp instanceof KalturaAPIException) {\n\t\t\t\t\treject(resp);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(resp);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\txhr.open('POST', data.endpoint);\n\n\t\tif (data.headers) {\n\t\t\tObject.keys(data.headers).forEach(headerKey => {\n\t\t\t\tconst headerValue = data.headers[headerKey];\n\t\t\t\txhr.setRequestHeader(headerKey, headerValue);\n\t\t\t});\n\t\t}\n\n\t\txhr.send(JSON.stringify(data.body));\n\n\t\treturn () => {\n\t\t\tif (!isComplete) {\n\t\t\t\tisComplete = true;\n\t\t\t\txhr.abort();\n\t\t\t}\n\t\t};\n\t});\n\n\treturn result;\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","import { KalturaObjectBase, KalturaObjectBaseArgs } from './kaltura-object-base';\nimport { KalturaRequestOptions, KalturaRequestOptionsArgs } from './kaltura-request-options';\n\n\nexport interface KalturaRequestBaseArgs extends KalturaObjectBaseArgs {\n}\n\n\nexport class KalturaRequestBase extends KalturaObjectBase {\n\n private _networkTag: string;\n\n constructor(data: KalturaRequestBaseArgs) {\n super(data);\n }\n\n setNetworkTag(tag: string): this {\n if (!tag || tag.length > 10) {\n console.warn(`cannot set network tag longer than 10 characters. ignoring tag '${tag}`);\n } else {\n this._networkTag = tag;\n }\n\n return this;\n }\n\n getNetworkTag(): string {\n return this._networkTag;\n }\n}\n\n","export interface Environment {\n request: {\n apiVersion: string,\n avoidQueryString: boolean,\n fileFormatValue: number\n }\n response: {\n nestedResponse: boolean,\n customErrorInHttp500: boolean\n };\n}\n\nexport const environment: Environment = {\n request: {\n apiVersion: '16.11.0',\n avoidQueryString: false,\n fileFormatValue: 1\n },\n response: {\n nestedResponse: false,\n customErrorInHttp500: false\n }\n}","\nimport { KalturaObjectMetadata } from './kaltura-object-base';\nimport { KalturaBaseResponseProfile } from './types/KalturaBaseResponseProfile';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from './kaltura-object-base';\n\nexport interface KalturaRequestOptionsArgs extends KalturaObjectBaseArgs {\n acceptedTypes? : {new(...args: any[]) : KalturaObjectBase}[];\n\tpartnerId? : number;\n\tks? : string;\n\tresponseProfile? : KalturaBaseResponseProfile;\n}\n\n\nexport class KalturaRequestOptions extends KalturaObjectBase {\n\n acceptedTypes : {new(...args: any[]) : KalturaObjectBase}[];\n\tpartnerId : number;\n\tks : string;\n\tresponseProfile : KalturaBaseResponseProfile;\n\n constructor(data? : KalturaRequestOptionsArgs)\n {\n super(data);\n if (typeof this.acceptedTypes === 'undefined') this.acceptedTypes = [];\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n partnerId : { type : 'n' },\n\t\t\t\tks : { type : 's' },\n\t\t\t\tresponseProfile : { type : 'o', subTypeConstructor : KalturaBaseResponseProfile, subType : 'KalturaBaseResponseProfile' }\n }\n );\n return result;\n }\n}\n","import { xml2js } from \"xml-js\";\nimport { Cuepoint } from \"@playkit-js-contrib/common\";\nimport { KalturaRequest, KalturaRequestArgs } from 'kaltura-typescript-client/api/kaltura-request';\nimport { KalturaObjectMetadata } from 'kaltura-typescript-client/api/kaltura-object-base';\n\nexport const HOUR = 3600; // seconds in 1 hour\n\nexport interface CaptionItem extends Cuepoint {\n text: string;\n id: number;\n}\n\nexport const toSeconds = (val: any, vtt = false): number => {\n const regex = vtt\n ? /(\\d+):(\\d{2}):(\\d{2}).(\\d{2,3}|\\d{2})/\n : /(\\d+):(\\d{2}):(\\d{2}),((\\d{2,3}|\\d{2}|\\d{1}))?/;\n const parts: any | null[] = regex.exec(val);\n if (parts === null) {\n return 0;\n } \n \n for (var i = 1; i < 5; i++) {\n parts[i] = parseInt(parts[i], 10);\n if (isNaN(parts[i])) {\n parts[i] = 0;\n }\n }\n // hours + minutes + seconds + ms\n return parts[1] * HOUR + parts[2] * 60 + parts[3] + parts[4] / 1000;\n};\n\nexport const getCaptionsByFormat = (captions: any, captionsFormat: string): CaptionItem[] => {\n const format = captionsFormat.toLowerCase();\n // const a = fromSrt(captions);\n switch (format) {\n case \"1\":\n return fromSrt(captions);\n case \"2\":\n // strip 'span' from the p tags, they break the parser and no time (now) to write a parser\n captions = captions\n .replace(/<span[^>]+\\?>/i, \"\")\n .replace(/<\\/span>/i, \"\")\n .replace(/<br><\\/br>/g, \" \") // remove <br></br>'s as it breaks the parser too.\n .replace(/<[//]{0,1}(SPAN|span)[^><]*>/g, \"\");\n return TTML2Obj(captions);\n case \"3\":\n return fromVtt(captions);\n default:\n return [];\n }\n};\n\nconst fromVtt = (data: string): CaptionItem[] => {\n let source: string | string[] = data.replace(/\\r/g, \"\");\n // remove webvtt metadata first line/s if exist \n // the 200 is optimization - no point break all string to lines and join them together\n let linesBefore = source.substring(0, 200);\n const linesAfter = source.substring(200);\n const lines = linesBefore.split(/\\r?\\n/);\n for (let i = 0; i < 4 ; i++) {\n // find first numeric char \n if (!/^\\d+$/.test(linesBefore[0].charAt(0))) {\n // first char in the line is not numeric - this line needs to be removed\n lines.shift()\n }\n }\n // re-join\n linesBefore = lines.join(\"\\n\");\n source = linesBefore + linesAfter;\n // parse \n const regex = /(\\d+)?\\n?(\\d{2}:\\d{2}:\\d{2}[,.]\\d{3}) --> (\\d{2}:\\d{2}:\\d{2}[,.]\\d{3}).*\\n/g;\n source = source.split(regex);\n source.shift();\n const result = [];\n for (let i = 0; i < source.length; i += 4) {\n result.push({\n id: result.length + 1,\n startTime: toSeconds(source[i + 1].trim(), true),\n endTime: toSeconds(source[i + 2].trim(), true),\n text: source[i + 3].trim()\n });\n }\n return result;\n};\n\nconst fromSrt = (data: string): CaptionItem[] => {\n let source: string | string[] = data.replace(/\\r/g, \"\");\n const regex = /(\\d+)?\\n?(\\d{2}:\\d{2}:\\d{2}[,.]\\d{3}) --> (\\d{2}:\\d{2}:\\d{2}[,.]\\d{3}).*\\n/g;\n source = source.split(regex);\n source.shift();\n const result = [];\n for (let i = 0; i < source.length; i += 4) {\n result.push({\n id: result.length + 1,\n startTime: toSeconds(source[i + 1].trim()),\n endTime: toSeconds(source[i + 2].trim()),\n text: source[i + 3].trim()\n });\n }\n return result;\n};\n\nexport const TTML2Obj = (ttml: any): CaptionItem[] => {\n const data: any = xml2js(ttml, { compact: true });\n // need only captions for showing. they located in tt.body.div.p.\n const chapters = data.tt.body.div.p;\n const correctData = chapters.map((item: any, index: number) => {\n const { begin, end, ...otherAttributes } = item._attributes;\n // convert time to 00:00:00.000 to 00:00:00,000\n const endTime = end.replace(/\\./g, \",\");\n const startTime = begin.replace(/\\./g, \",\");\n const prepareObj = {\n id: index + 1,\n endTime: toSeconds(endTime),\n startTime: toSeconds(startTime),\n text: (Array.isArray(item._text) ? item._text.join(\" \") : item._text) || \"\"\n // all non-required\n // otherAttributes: otherAttributes\n };\n return prepareObj;\n });\n return correctData;\n};\n\nconst pad = (number: number) => {\n if (number < 10) {\n return `0${number}`;\n }\n return number;\n};\n\nconst makeHoursString = (seconds: number): string => {\n const hours = Math.floor(seconds / HOUR)\n if (hours >= 1) {\n return `${hours}:`\n }\n return \"\";\n};\n\nexport const secontsToTime = (seconds: number, longerThanHour: boolean): string => {\n const date = new Date(0);\n date.setSeconds(seconds);\n return `${longerThanHour ? makeHoursString(seconds) : \"\"}${pad(date.getUTCMinutes())}:${pad(date.getUTCSeconds())}`;\n};\n\nexport function getConfigValue(value: any, condition: (value: any) => boolean, defaultValue: any) {\n let result = defaultValue;\n if (typeof condition === \"function\" && condition(value)) {\n result = value;\n }\n return result;\n}\n\nexport function isBoolean(value: any) {\n return typeof value === \"boolean\";\n}\n\nexport function makePlainText(captions: Array<CaptionItem>): string {\n return captions.reduce((acc: string, next: CaptionItem) => {\n return `${acc} ${next.text}`;\n }, \"\");\n}\n\n\n// KalturaClient uses custom CaptionAssetServeAction method,\n// once KalturaFileRequest is fixed remove custom CaptionAssetServeAction and use\n// CaptionAssetServeAction from \"kaltura-typescript-client/api/types/CaptionAssetServeAction\"\ninterface CaptionAssetServeActionArgs extends KalturaRequestArgs {\n captionAssetId : string;\n }\nexport class CaptionAssetServeAction extends KalturaRequest<{url: string}> {\n captionAssetId: any;\n constructor(data: CaptionAssetServeActionArgs)\n {\n super(data, { responseType: 'v', responseSubType: '', responseConstructor: null } as any);\n }\n protected _getMetadata(): KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n service : { type : 'c', default : 'caption_captionasset' },\n action : { type : 'c', default : 'serve' },\n captionAssetId : { type : 's' }\n }\n );\n return result;\n }\n }\n\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var isArray = require('./array-helper').isArray;\r\n\r\nmodule.exports = {\r\n\r\n copyOptions: function (options) {\r\n var key, copy = {};\r\n for (key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n copy[key] = options[key];\r\n }\r\n }\r\n return copy;\r\n },\r\n\r\n ensureFlagExists: function (item, options) {\r\n if (!(item in options) || typeof options[item] !== 'boolean') {\r\n options[item] = false;\r\n }\r\n },\r\n\r\n ensureSpacesExists: function (options) {\r\n if (!('spaces' in options) || (typeof options.spaces !== 'number' && typeof options.spaces !== 'string')) {\r\n options.spaces = 0;\r\n }\r\n },\r\n\r\n ensureAlwaysArrayExists: function (options) {\r\n if (!('alwaysArray' in options) || (typeof options.alwaysArray !== 'boolean' && !isArray(options.alwaysArray))) {\r\n options.alwaysArray = false;\r\n }\r\n },\r\n\r\n ensureKeyExists: function (key, options) {\r\n if (!(key + 'Key' in options) || typeof options[key + 'Key'] !== 'string') {\r\n options[key + 'Key'] = options.compact ? '_' + key : key;\r\n }\r\n },\r\n\r\n checkFnExists: function (key, options) {\r\n return key + 'Fn' in options;\r\n }\r\n\r\n};\r\n","module.exports = {\r\n\r\n isArray: function(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n // fallback for older browsers like IE 8\r\n return Object.prototype.toString.call( value ) === '[object Array]';\r\n }\r\n\r\n};\r\n","import { KalturaResponse } from \"./kaltura-response\";\nimport { KalturaRequest } from \"./kaltura-request\";\nimport { KalturaRequestBase } from \"./kaltura-request-base\";\n\nimport { KalturaMultiResponse } from \"./kaltura-multi-response\";\nimport { KalturaAPIException } from \"./kaltura-api-exception\";\nimport { KalturaObjectMetadata } from './kaltura-object-base';\nimport { KalturaRequestOptions } from './kaltura-request-options';\nimport { environment } from '../environment';\n\n\nexport class KalturaMultiRequest extends KalturaRequestBase {\n\n protected callback: (response: KalturaMultiResponse) => void;\n\n requests: KalturaRequest<any>[] = [];\n\n constructor(...args: KalturaRequest<any>[]) {\n super({});\n this.requests = args;\n }\n\n buildRequest(defaultRequestOptions: KalturaRequestOptions): {} {\n const result = super.toRequestObject();\n\n for (let i = 0, length = this.requests.length; i < length; i++) {\n result[i] = this.requests[i].buildRequest(defaultRequestOptions);\n }\n\n return result;\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n service : { default : 'multirequest', type : 'c' }\n });\n\n return result;\n\n }\n\n private _unwrapResponse(response: any): any {\n if (environment.response.nestedResponse) {\n if (response && response.hasOwnProperty('result')) {\n return response.result;\n } else if (response && response.hasOwnProperty('error')) {\n return response.error;\n }\n }\n\n return response;\n }\n\n setCompletion(callback: (response: KalturaMultiResponse) => void): KalturaMultiRequest {\n this.callback = callback;\n return this;\n }\n\n handleResponse(responses: any): KalturaMultiResponse {\n const kalturaResponses: KalturaResponse<any>[] = [];\n\n const unwrappedResponse = this._unwrapResponse(responses);\n let responseObject = null;\n\n if (!unwrappedResponse || !(unwrappedResponse instanceof Array) || unwrappedResponse.length !== this.requests.length) {\n const response = new KalturaAPIException(`server response is invalid, expected array of ${this.requests.length}`, 'client::response_type_error', null);\n for (let i = 0, len = this.requests.length; i < len; i++) {\n kalturaResponses.push(this.requests[i].handleResponse(response));\n }\n }\n else {\n\n for (let i = 0, len = this.requests.length; i < len; i++) {\n const serverResponse = unwrappedResponse[i];\n kalturaResponses.push(this.requests[i].handleResponse(serverResponse));\n }\n\n if (this.callback) {\n try {\n this.callback(new KalturaMultiResponse(kalturaResponses));\n } catch (ex) {\n // do nothing by design\n }\n }\n }\n\n return new KalturaMultiResponse(kalturaResponses);\n }\n}\n","import { KalturaResponse } from \"./kaltura-response\";\nimport { KalturaAPIException } from './kaltura-api-exception';\n\nexport class KalturaMultiResponse extends Array<KalturaResponse<any>> {\n constructor(results: KalturaResponse<any>[] = []) {\n super();\n\n if (new.target) {\n // Set the prototype explicitly - see: https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n if (results && results.length > 0) {\n this.push(...results);\n }\n }\n\n public hasErrors(): boolean {\n return this.filter(result => result.error).length > 0;\n }\n\n public getFirstError(): KalturaAPIException {\n let result: KalturaAPIException = null;\n for (let i = 0; i < this.length; i++) {\n result = this[i].error;\n\n if (result) {\n break;\n }\n }\n return result;\n }\n\n\n}\n","import { KalturaAPIException } from \"./kaltura-api-exception\";\n\nexport class KalturaResponse<T> {\n\n constructor(public result : T, public error : KalturaAPIException)\n {\n\n\n }\n}\n","import { KalturaRequest, KalturaRequestArgs } from \"./kaltura-request\";\nimport { KalturaObjectBase } from \"./kaltura-object-base\";\n\nexport type ProgressCallback = (loaded: number, total: number) => void;\n\nexport interface KalturaUploadRequestArgs extends KalturaRequestArgs {\n uploadedFileSize?: number;\n}\n\nexport class KalturaUploadRequest<T> extends KalturaRequest<T> {\n private _progressCallback: ProgressCallback;\n public uploadedFileSize: number = 0;\n\n constructor(data: KalturaUploadRequestArgs, {responseType, responseSubType, responseConstructor}: { responseType: string, responseSubType?: string, responseConstructor: { new(): KalturaObjectBase } }) {\n super(data, {responseType, responseSubType, responseConstructor});\n this.uploadedFileSize = data.uploadedFileSize;\n }\n\n setProgress(callback: ProgressCallback): this {\n this._progressCallback = callback;\n return this;\n }\n\n public _getProgressCallback(): ProgressCallback {\n return this._progressCallback;\n }\n\n public supportChunkUpload(): boolean {\n // chunk upload currently assume support according to request/reseponse properties. Should get this information from the client-generator directly.\n const {properties} = this._getMetadata();\n const responseSupportChunk = this._responseConstructor ? (new this._responseConstructor()).hasMetadataProperty(\"uploadedFileSize\") : false;\n return responseSupportChunk\n && !!properties[\"resume\"]\n && !!properties[\"resumeAt\"]\n && !!properties[\"finalChunk\"];\n }\n\n public getFileInfo(): { file: File, propertyName: string } {\n const metadataProperties = this._getMetadata().properties;\n const filePropertyName = Object.keys(metadataProperties).find(propertyName => metadataProperties[propertyName].type === \"f\");\n\n return filePropertyName ? { propertyName: filePropertyName, file: this[filePropertyName] } : null;\n }\n\n public toRequestObject(): {} {\n const result = super.toRequestObject();\n const { propertyName: filePropertyName } = this.getFileInfo();\n\n if (filePropertyName) {\n delete result[filePropertyName];\n }\n\n return result;\n }\n}","\n\nexport enum KalturaCaptionType {\n cap = '4',\n\tdfxp = '2',\n\tscc = '5',\n\tsrt = '1',\n\twebvtt = '3'\n}","\n\nexport enum KalturaCaptionAssetStatus {\n deleted=3,\n\terror=-1,\n\texporting=9,\n\timporting=7,\n\tqueued=0,\n\tready=2\n}","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaAssetBaseFilter, KalturaAssetBaseFilterArgs } from './KalturaAssetBaseFilter';\n\nexport interface KalturaAssetFilterArgs extends KalturaAssetBaseFilterArgs {\n typeIn? : string;\n}\n\n\nexport class KalturaAssetFilter extends KalturaAssetBaseFilter {\n\n typeIn : string;\n\n constructor(data? : KalturaAssetFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaAssetFilter' },\n\t\t\t\ttypeIn : { type : 's' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaAssetFilter',KalturaAssetFilter);\n","var sax = require('sax');\r\nvar expat /*= require('node-expat');*/ = { on: function () { }, parse: function () { } };\r\nvar helper = require('./options-helper');\r\nvar isArray = require('./array-helper').isArray;\r\n\r\nvar options;\r\nvar pureJsParser = true;\r\nvar currentElement;\r\n\r\nfunction validateOptions(userOptions) {\r\n options = helper.copyOptions(userOptions);\r\n helper.ensureFlagExists('ignoreDeclaration', options);\r\n helper.ensureFlagExists('ignoreInstruction', options);\r\n helper.ensureFlagExists('ignoreAttributes', options);\r\n helper.ensureFlagExists('ignoreText', options);\r\n helper.ensureFlagExists('ignoreComment', options);\r\n helper.ensureFlagExists('ignoreCdata', options);\r\n helper.ensureFlagExists('ignoreDoctype', options);\r\n helper.ensureFlagExists('compact', options);\r\n helper.ensureFlagExists('alwaysChildren', options);\r\n helper.ensureFlagExists('addParent', options);\r\n helper.ensureFlagExists('trim', options);\r\n helper.ensureFlagExists('nativeType', options);\r\n helper.ensureFlagExists('nativeTypeAttributes', options);\r\n helper.ensureFlagExists('sanitize', options);\r\n helper.ensureFlagExists('instructionHasAttributes', options);\r\n helper.ensureFlagExists('captureSpacesBetweenElements', options);\r\n helper.ensureAlwaysArrayExists(options);\r\n helper.ensureKeyExists('declaration', options);\r\n helper.ensureKeyExists('instruction', options);\r\n helper.ensureKeyExists('attributes', options);\r\n helper.ensureKeyExists('text', options);\r\n helper.ensureKeyExists('comment', options);\r\n helper.ensureKeyExists('cdata', options);\r\n helper.ensureKeyExists('doctype', options);\r\n helper.ensureKeyExists('type', options);\r\n helper.ensureKeyExists('name', options);\r\n helper.ensureKeyExists('elements', options);\r\n helper.ensureKeyExists('parent', options);\r\n helper.checkFnExists('doctype', options);\r\n helper.checkFnExists('instruction', options);\r\n helper.checkFnExists('cdata', options);\r\n helper.checkFnExists('comment', options);\r\n helper.checkFnExists('text', options);\r\n helper.checkFnExists('instructionName', options);\r\n helper.checkFnExists('elementName', options);\r\n helper.checkFnExists('attributeName', options);\r\n helper.checkFnExists('attributeValue', options);\r\n helper.checkFnExists('attributes', options);\r\n return options;\r\n}\r\n\r\nfunction nativeType(value) {\r\n var nValue = Number(value);\r\n if (!isNaN(nValue)) {\r\n return nValue;\r\n }\r\n var bValue = value.toLowerCase();\r\n if (bValue === 'true') {\r\n return true;\r\n } else if (bValue === 'false') {\r\n return false;\r\n }\r\n return value;\r\n}\r\n\r\nfunction addField(type, value) {\r\n var key;\r\n if (options.compact) {\r\n if (\r\n !currentElement[options[type + 'Key']] &&\r\n (isArray(options.alwaysArray) ? options.alwaysArray.indexOf(options[type + 'Key']) !== -1 : options.alwaysArray)\r\n ) {\r\n currentElement[options[type + 'Key']] = [];\r\n }\r\n if (currentElement[options[type + 'Key']] && !isArray(currentElement[options[type + 'Key']])) {\r\n currentElement[options[type + 'Key']] = [currentElement[options[type + 'Key']]];\r\n }\r\n if (type + 'Fn' in options && typeof value === 'string') {\r\n value = options[type + 'Fn'](value, currentElement);\r\n }\r\n if (type === 'instruction' && ('instructionFn' in options || 'instructionNameFn' in options)) {\r\n for (key in value) {\r\n if (value.hasOwnProperty(key)) {\r\n if ('instructionFn' in options) {\r\n value[key] = options.instructionFn(value[key], key, currentElement);\r\n } else {\r\n var temp = value[key];\r\n delete value[key];\r\n value[options.instructionNameFn(key, temp, currentElement)] = temp;\r\n }\r\n }\r\n }\r\n }\r\n if (isArray(currentElement[options[type + 'Key']])) {\r\n currentElement[options[type + 'Key']].push(value);\r\n } else {\r\n currentElement[options[type + 'Key']] = value;\r\n }\r\n } else {\r\n if (!currentElement[options.elementsKey]) {\r\n currentElement[options.elementsKey] = [];\r\n }\r\n var element = {};\r\n element[options.typeKey] = type;\r\n if (type === 'instruction') {\r\n for (key in value) {\r\n if (value.hasOwnProperty(key)) {\r\n break;\r\n }\r\n }\r\n element[options.nameKey] = 'instructionNameFn' in options ? options.instructionNameFn(key, value, currentElement) : key;\r\n if (options.instructionHasAttributes) {\r\n element[options.attributesKey] = value[key][options.attributesKey];\r\n if ('instructionFn' in options) {\r\n element[options.attributesKey] = options.instructionFn(element[options.attributesKey], key, currentElement);\r\n }\r\n } else {\r\n if ('instructionFn' in options) {\r\n value[key] = options.instructionFn(value[key], key, currentElement);\r\n }\r\n element[options.instructionKey] = value[key];\r\n }\r\n } else {\r\n if (type + 'Fn' in options) {\r\n value = options[type + 'Fn'](value, currentElement);\r\n }\r\n element[options[type + 'Key']] = value;\r\n }\r\n if (options.addParent) {\r\n element[options.parentKey] = currentElement;\r\n }\r\n currentElement[options.elementsKey].push(element);\r\n }\r\n}\r\n\r\nfunction manipulateAttributes(attributes) {\r\n if ('attributesFn' in options && attributes) {\r\n attributes = options.attributesFn(attributes, currentElement);\r\n }\r\n if ((options.trim || 'attributeValueFn' in options || 'attributeNameFn' in options || options.nativeTypeAttributes) && attributes) {\r\n var key;\r\n for (key in attributes) {\r\n if (attributes.hasOwnProperty(key)) {\r\n if (options.trim) attributes[key] = attributes[key].trim();\r\n if (options.nativeTypeAttributes) {\r\n attributes[key] = nativeType(attributes[key]);\r\n }\r\n if ('attributeValueFn' in options) attributes[key] = options.attributeValueFn(attributes[key], key, currentElement);\r\n if ('attributeNameFn' in options) {\r\n var temp = attributes[key];\r\n delete attributes[key];\r\n attributes[options.attributeNameFn(key, attributes[key], currentElement)] = temp;\r\n }\r\n }\r\n }\r\n }\r\n return attributes;\r\n}\r\n\r\nfunction onInstruction(instruction) {\r\n var attributes = {};\r\n if (instruction.body && (instruction.name.toLowerCase() === 'xml' || options.instructionHasAttributes)) {\r\n var attrsRegExp = /([\\w:-]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\w+))\\s*/g;\r\n var match;\r\n while ((match = attrsRegExp.exec(instruction.body)) !== null) {\r\n attributes[match[1]] = match[2] || match[3] || match[4];\r\n }\r\n attributes = manipulateAttributes(attributes);\r\n }\r\n if (instruction.name.toLowerCase() === 'xml') {\r\n if (options.ignoreDeclaration) {\r\n return;\r\n }\r\n currentElement[options.declarationKey] = {};\r\n if (Object.keys(attributes).length) {\r\n currentElement[options.declarationKey][options.attributesKey] = attributes;\r\n }\r\n if (options.addParent) {\r\n currentElement[options.declarationKey][options.parentKey] = currentElement;\r\n }\r\n } else {\r\n if (options.ignoreInstruction) {\r\n return;\r\n }\r\n if (options.trim) {\r\n instruction.body = instruction.body.trim();\r\n }\r\n var value = {};\r\n if (options.instructionHasAttributes && Object.keys(attributes).length) {\r\n value[instruction.name] = {};\r\n value[instruction.name][options.attributesKey] = attributes;\r\n } else {\r\n value[instruction.name] = instruction.body;\r\n }\r\n addField('instruction', value);\r\n }\r\n}\r\n\r\nfunction onStartElement(name, attributes) {\r\n var element;\r\n if (typeof name === 'object') {\r\n attributes = name.attributes;\r\n name = name.name;\r\n }\r\n attributes = manipulateAttributes(attributes);\r\n if ('elementNameFn' in options) {\r\n name = options.elementNameFn(name, currentElement);\r\n }\r\n if (options.compact) {\r\n element = {};\r\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\r\n element[options.attributesKey] = {};\r\n var key;\r\n for (key in attributes) {\r\n if (attributes.hasOwnProperty(key)) {\r\n element[options.attributesKey][key] = attributes[key];\r\n }\r\n }\r\n }\r\n if (\r\n !(name in currentElement) &&\r\n (isArray(options.alwaysArray) ? options.alwaysArray.indexOf(name) !== -1 : options.alwaysArray)\r\n ) {\r\n currentElement[name] = [];\r\n }\r\n if (currentElement[name] && !isArray(currentElement[name])) {\r\n currentElement[name] = [currentElement[name]];\r\n }\r\n if (isArray(currentElement[name])) {\r\n currentElement[name].push(element);\r\n } else {\r\n currentElement[name] = element;\r\n }\r\n } else {\r\n if (!currentElement[options.elementsKey]) {\r\n currentElement[options.elementsKey] = [];\r\n }\r\n element = {};\r\n element[options.typeKey] = 'element';\r\n element[options.nameKey] = name;\r\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\r\n element[options.attributesKey] = attributes;\r\n }\r\n if (options.alwaysChildren) {\r\n element[options.elementsKey] = [];\r\n }\r\n currentElement[options.elementsKey].push(element);\r\n }\r\n element[options.parentKey] = currentElement; // will be deleted in onEndElement() if !options.addParent\r\n currentElement = element;\r\n}\r\n\r\nfunction onText(text) {\r\n if (options.ignoreText) {\r\n return;\r\n }\r\n if (!text.trim() && !options.captureSpacesBetweenElements) {\r\n return;\r\n }\r\n if (options.trim) {\r\n text = text.trim();\r\n }\r\n if (options.nativeType) {\r\n text = nativeType(text);\r\n }\r\n if (options.sanitize) {\r\n text = text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\r\n }\r\n addField('text', text);\r\n}\r\n\r\nfunction onComment(comment) {\r\n if (options.ignoreComment) {\r\n return;\r\n }\r\n if (options.trim) {\r\n comment = comment.trim();\r\n }\r\n addField('comment', comment);\r\n}\r\n\r\nfunction onEndElement(name) {\r\n var parentElement = currentElement[options.parentKey];\r\n if (!options.addParent) {\r\n delete currentElement[options.parentKey];\r\n }\r\n currentElement = parentElement;\r\n}\r\n\r\nfunction onCdata(cdata) {\r\n if (options.ignoreCdata) {\r\n return;\r\n }\r\n if (options.trim) {\r\n cdata = cdata.trim();\r\n }\r\n addField('cdata', cdata);\r\n}\r\n\r\nfunction onDoctype(doctype) {\r\n if (options.ignoreDoctype) {\r\n return;\r\n }\r\n doctype = doctype.replace(/^ /, '');\r\n if (options.trim) {\r\n doctype = doctype.trim();\r\n }\r\n addField('doctype', doctype);\r\n}\r\n\r\nfunction onError(error) {\r\n error.note = error; //console.error(error);\r\n}\r\n\r\nmodule.exports = function (xml, userOptions) {\r\n\r\n var parser = pureJsParser ? sax.parser(true, {}) : parser = new expat.Parser('UTF-8');\r\n var result = {};\r\n currentElement = result;\r\n\r\n options = validateOptions(userOptions);\r\n\r\n if (pureJsParser) {\r\n parser.opt = {strictEntities: true};\r\n parser.onopentag = onStartElement;\r\n parser.ontext = onText;\r\n parser.oncomment = onComment;\r\n parser.onclosetag = onEndElement;\r\n parser.onerror = onError;\r\n parser.oncdata = onCdata;\r\n parser.ondoctype = onDoctype;\r\n parser.onprocessinginstruction = onInstruction;\r\n } else {\r\n parser.on('startElement', onStartElement);\r\n parser.on('text', onText);\r\n parser.on('comment', onComment);\r\n parser.on('endElement', onEndElement);\r\n parser.on('error', onError);\r\n //parser.on('startCdata', onStartCdata);\r\n //parser.on('endCdata', onEndCdata);\r\n //parser.on('entityDecl', onEntityDecl);\r\n }\r\n\r\n if (pureJsParser) {\r\n parser.write(xml).close();\r\n } else {\r\n if (!parser.parse(xml)) {\r\n throw new Error('XML parsing error: ' + parser.getError());\r\n }\r\n }\r\n\r\n if (result[options.elementsKey]) {\r\n var temp = result[options.elementsKey];\r\n delete result[options.elementsKey];\r\n result[options.elementsKey] = temp;\r\n delete result.text;\r\n }\r\n\r\n return result;\r\n\r\n};\r\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var helper = require('./options-helper');\nvar isArray = require('./array-helper').isArray;\n\nvar currentElement, currentElementName;\n\nfunction validateOptions(userOptions) {\n var options = helper.copyOptions(userOptions);\n helper.ensureFlagExists('ignoreDeclaration', options);\n helper.ensureFlagExists('ignoreInstruction', options);\n helper.ensureFlagExists('ignoreAttributes', options);\n helper.ensureFlagExists('ignoreText', options);\n helper.ensureFlagExists('ignoreComment', options);\n helper.ensureFlagExists('ignoreCdata', options);\n helper.ensureFlagExists('ignoreDoctype', options);\n helper.ensureFlagExists('compact', options);\n helper.ensureFlagExists('indentText', options);\n helper.ensureFlagExists('indentCdata', options);\n helper.ensureFlagExists('indentAttributes', options);\n helper.ensureFlagExists('indentInstruction', options);\n helper.ensureFlagExists('fullTagEmptyElement', options);\n helper.ensureFlagExists('noQuotesForNativeAttributes', options);\n helper.ensureSpacesExists(options);\n if (typeof options.spaces === 'number') {\n options.spaces = Array(options.spaces + 1).join(' ');\n }\n helper.ensureKeyExists('declaration', options);\n helper.ensureKeyExists('instruction', options);\n helper.ensureKeyExists('attributes', options);\n helper.ensureKeyExists('text', options);\n helper.ensureKeyExists('comment', options);\n helper.ensureKeyExists('cdata', options);\n helper.ensureKeyExists('doctype', options);\n helper.ensureKeyExists('type', options);\n helper.ensureKeyExists('name', options);\n helper.ensureKeyExists('elements', options);\n helper.checkFnExists('doctype', options);\n helper.checkFnExists('instruction', options);\n helper.checkFnExists('cdata', options);\n helper.checkFnExists('comment', options);\n helper.checkFnExists('text', options);\n helper.checkFnExists('instructionName', options);\n helper.checkFnExists('elementName', options);\n helper.checkFnExists('attributeName', options);\n helper.checkFnExists('attributeValue', options);\n helper.checkFnExists('attributes', options);\n helper.checkFnExists('fullTagEmptyElement', options);\n return options;\n}\n\nfunction writeIndentation(options, depth, firstLine) {\n return (!firstLine && options.spaces ? '\\n' : '') + Array(depth + 1).join(options.spaces);\n}\n\nfunction writeAttributes(attributes, options, depth) {\n if (options.ignoreAttributes) {\n return '';\n }\n if ('attributesFn' in options) {\n attributes = options.attributesFn(attributes, currentElementName, currentElement);\n }\n var key, attr, attrName, quote, result = [];\n for (key in attributes) {\n if (attributes.hasOwnProperty(key) && attributes[key] !== null && attributes[key] !== undefined) {\n quote = options.noQuotesForNativeAttributes && typeof attributes[key] !== 'string' ? '' : '\"';\n attr = '' + attributes[key]; // ensure number and boolean are converted to String\n attr = attr.replace(/\"/g, '&quot;');\n attrName = 'attributeNameFn' in options ? options.attributeNameFn(key, attr, currentElementName, currentElement) : key;\n result.push((options.spaces && options.indentAttributes? writeIndentation(options, depth+1, false) : ' '));\n result.push(attrName + '=' + quote + ('attributeValueFn' in options ? options.attributeValueFn(attr, key, currentElementName, currentElement) : attr) + quote);\n }\n }\n if (attributes && Object.keys(attributes).length && options.spaces && options.indentAttributes) {\n result.push(writeIndentation(options, depth, false));\n }\n return result.join('');\n}\n\nfunction writeDeclaration(declaration, options, depth) {\n currentElement = declaration;\n currentElementName = 'xml';\n return options.ignoreDeclaration ? '' : '<?' + 'xml' + writeAttributes(declaration[options.attributesKey], options, depth) + '?>';\n}\n\nfunction writeInstruction(instruction, options, depth) {\n if (options.ignoreInstruction) {\n return '';\n }\n var key;\n for (key in instruction) {\n if (instruction.hasOwnProperty(key)) {\n break;\n }\n }\n var instructionName = 'instructionNameFn' in options ? options.instructionNameFn(key, instruction[key], currentElementName, currentElement) : key;\n if (typeof instruction[key] === 'object') {\n currentElement = instruction;\n currentElementName = instructionName;\n return '<?' + instructionName + writeAttributes(instruction[key][options.attributesKey], options, depth) + '?>';\n } else {\n var instructionValue = instruction[key] ? instruction[key] : '';\n if ('instructionFn' in options) instructionValue = options.instructionFn(instructionValue, key, currentElementName, currentElement);\n return '<?' + instructionName + (instructionValue ? ' ' + instructionValue : '') + '?>';\n }\n}\n\nfunction writeComment(comment, options) {\n return options.ignoreComment ? '' : '<!--' + ('commentFn' in options ? options.commentFn(comment, currentElementName, currentElement) : comment) + '-->';\n}\n\nfunction writeCdata(cdata, options) {\n return options.ignoreCdata ? '' : '<![CDATA[' + ('cdataFn' in options ? options.cdataFn(cdata, currentElementName, currentElement) : cdata.replace(']]>', ']]]]><![CDATA[>')) + ']]>';\n}\n\nfunction writeDoctype(doctype, options) {\n return options.ignoreDoctype ? '' : '<!DOCTYPE ' + ('doctypeFn' in options ? options.doctypeFn(doctype, currentElementName, currentElement) : doctype) + '>';\n}\n\nfunction writeText(text, options) {\n if (options.ignoreText) return '';\n text = '' + text; // ensure Number and Boolean are converted to String\n text = text.replace(/&amp;/g, '&'); // desanitize to avoid double sanitization\n text = text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n return 'textFn' in options ? options.textFn(text, currentElementName, currentElement) : text;\n}\n\nfunction hasContent(element, options) {\n var i;\n if (element.elements && element.elements.length) {\n for (i = 0; i < element.elements.length; ++i) {\n switch (element.elements[i][options.typeKey]) {\n case 'text':\n if (options.indentText) {\n return true;\n }\n break; // skip to next key\n case 'cdata':\n if (options.indentCdata) {\n return true;\n }\n break; // skip to next key\n case 'instruction':\n if (options.indentInstruction) {\n return true;\n }\n break; // skip to next key\n case 'doctype':\n case 'comment':\n case 'element':\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElement(element, options, depth) {\n currentElement = element;\n currentElementName = element.name;\n var xml = [], elementName = 'elementNameFn' in options ? options.elementNameFn(element.name, element) : element.name;\n xml.push('<' + elementName);\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = element[options.elementsKey] && element[options.elementsKey].length || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(element.name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n if (element[options.elementsKey] && element[options.elementsKey].length) {\n xml.push(writeElements(element[options.elementsKey], options, depth + 1));\n currentElement = element;\n currentElementName = element.name;\n }\n xml.push(options.spaces && hasContent(element, options) ? '\\n' + Array(depth + 1).join(options.spaces) : '');\n xml.push('</' + elementName + '>');\n } else {\n xml.push('/>');\n }\n return xml.join('');\n}\n\nfunction writeElements(elements, options, depth, firstLine) {\n return elements.reduce(function (xml, element) {\n var indent = writeIndentation(options, depth, firstLine && !xml);\n switch (element.type) {\n case 'element': return xml + indent + writeElement(element, options, depth);\n case 'comment': return xml + indent + writeComment(element[options.commentKey], options);\n case 'doctype': return xml + indent + writeDoctype(element[options.doctypeKey], options);\n case 'cdata': return xml + (options.indentCdata ? indent : '') + writeCdata(element[options.cdataKey], options);\n case 'text': return xml + (options.indentText ? indent : '') + writeText(element[options.textKey], options);\n case 'instruction':\n var instruction = {};\n instruction[element[options.nameKey]] = element[options.attributesKey] ? element : element[options.instructionKey];\n return xml + (options.indentInstruction ? indent : '') + writeInstruction(instruction, options, depth);\n }\n }, '');\n}\n\nfunction hasContentCompact(element, options, anyContent) {\n var key;\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n switch (key) {\n case options.parentKey:\n case options.attributesKey:\n break; // skip to next key\n case options.textKey:\n if (options.indentText || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.cdataKey:\n if (options.indentCdata || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.instructionKey:\n if (options.indentInstruction || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.doctypeKey:\n case options.commentKey:\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElementCompact(element, name, options, depth, indent) {\n currentElement = element;\n currentElementName = name;\n var elementName = 'elementNameFn' in options ? options.elementNameFn(name, element) : name;\n if (typeof element === 'undefined' || element === null || element === '') {\n return 'fullTagEmptyElementFn' in options && options.fullTagEmptyElementFn(name, element) || options.fullTagEmptyElement ? '<' + elementName + '></' + elementName + '>' : '<' + elementName + '/>';\n }\n var xml = [];\n if (name) {\n xml.push('<' + elementName);\n if (typeof element !== 'object') {\n xml.push('>' + writeText(element,options) + '</' + elementName + '>');\n return xml.join('');\n }\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = hasContentCompact(element, options, true) || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n } else {\n xml.push('/>');\n return xml.join('');\n }\n }\n xml.push(writeElementsCompact(element, options, depth + 1, false));\n currentElement = element;\n currentElementName = name;\n if (name) {\n xml.push((indent ? writeIndentation(options, depth, false) : '') + '</' + elementName + '>');\n }\n return xml.join('');\n}\n\nfunction writeElementsCompact(element, options, depth, firstLine) {\n var i, key, nodes, xml = [];\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n nodes = isArray(element[key]) ? element[key] : [element[key]];\n for (i = 0; i < nodes.length; ++i) {\n switch (key) {\n case options.declarationKey: xml.push(writeDeclaration(nodes[i], options, depth)); break;\n case options.instructionKey: xml.push((options.indentInstruction ? writeIndentation(options, depth, firstLine) : '') + writeInstruction(nodes[i], options, depth)); break;\n case options.attributesKey: case options.parentKey: break; // skip\n case options.textKey: xml.push((options.indentText ? writeIndentation(options, depth, firstLine) : '') + writeText(nodes[i], options)); break;\n case options.cdataKey: xml.push((options.indentCdata ? writeIndentation(options, depth, firstLine) : '') + writeCdata(nodes[i], options)); break;\n case options.doctypeKey: xml.push(writeIndentation(options, depth, firstLine) + writeDoctype(nodes[i], options)); break;\n case options.commentKey: xml.push(writeIndentation(options, depth, firstLine) + writeComment(nodes[i], options)); break;\n default: xml.push(writeIndentation(options, depth, firstLine) + writeElementCompact(nodes[i], key, options, depth, hasContentCompact(nodes[i], options)));\n }\n firstLine = firstLine && !xml.length;\n }\n }\n }\n return xml.join('');\n}\n\nmodule.exports = function (js, options) {\n options = validateOptions(options);\n var xml = [];\n currentElement = js;\n currentElementName = '_root_';\n if (options.compact) {\n xml.push(writeElementsCompact(js, options, 0, true));\n } else {\n if (js[options.declarationKey]) {\n xml.push(writeDeclaration(js[options.declarationKey], options, 0));\n }\n if (js[options.elementsKey] && js[options.elementsKey].length) {\n xml.push(writeElements(js[options.elementsKey], options, 0, !xml.length));\n }\n }\n return xml.join('');\n};\n","import \"./transcript-plugin\";\n","import { h } from \"preact\";\nimport {\n ContribPluginManager,\n OnMediaLoad,\n OnMediaUnload,\n OnPluginSetup,\n ContribServices,\n ContribPluginData,\n ContribPluginConfigs\n} from \"@playkit-js-contrib/plugin\";\nimport {\n getContribLogger,\n ObjectUtils\n} from \"@playkit-js-contrib/common\";\nimport * as styles from './transcript-plugin.scss';\nimport {\n KalturaClient,\n KalturaClientException,\n KalturaAPIException\n} from \"kaltura-typescript-client\";\n\nimport {\n KitchenSinkContentRendererProps,\n KitchenSinkItem,\n KitchenSinkPositions,\n KitchenSinkExpandModes,\n downloadContent,\n printContent,\n UpperBarItem\n} from \"@playkit-js-contrib/ui\";\nimport { KalturaCaptionAssetFilter } from \"kaltura-typescript-client/api/types/KalturaCaptionAssetFilter\";\nimport { CaptionAssetListAction } from \"kaltura-typescript-client/api/types/CaptionAssetListAction\";\nimport { KalturaCaptionAsset } from \"kaltura-typescript-client/api/types/KalturaCaptionAsset\";\n\nimport { Transcript } from \"./components/transcript\";\nimport {\n getCaptionsByFormat,\n CaptionItem,\n getConfigValue,\n isBoolean,\n makePlainText,\n CaptionAssetServeAction,\n} from \"./utils\";\nimport { DownloadPrintMenu } from \"./components/download-print-menu\";\n\nconst pluginName = `playkit-js-transcript`;\n\nconst logger = getContribLogger({\n class: \"TranscriptPlugin\",\n module: \"transcript-plugin\"\n});\n\nconst { get } = ObjectUtils;\n\ninterface TranscriptPluginConfig {\n expandOnFirstPlay: boolean;\n showTime: boolean;\n position: KitchenSinkPositions;\n scrollOffset: number; // distance between top border of transcript container and active caption on auto-scroll\n searchDebounceTimeout: number; // debounce on search\n searchNextPrevDebounceTimeout: number; // debounce on jump between prev/next search result\n downloadDisabled: boolean; // disable download menu\n printDisabled: boolean; // disable print menu\n expandMode: KitchenSinkExpandModes; // over or pushing the player\n}\n\nexport class TranscriptPlugin implements OnMediaLoad, OnPluginSetup, OnMediaUnload {\n private _kitchenSinkItem: KitchenSinkItem | null = null;\n private _upperBarItem: UpperBarItem | null = null;\n private _isLoading = false;\n private _hasError = false;\n private _entryId = \"\";\n private _captionsList: KalturaCaptionAsset[] = []; // list of captions\n private _captions: CaptionItem[] = []; // parsed captions\n private _kalturaClient = new KalturaClient();\n private _transcriptLanguage = \"default\";\n private _triggeredByKeyboard = false;\n\n constructor(\n private _contribServices: ContribServices,\n private _configs: ContribPluginConfigs<TranscriptPluginConfig>,\n private _player: KalturaPlayerTypes.Player\n ) {}\n\n onPluginSetup(): void {\n const { playerConfig } = this._configs;\n\n this._kalturaClient.setOptions({\n clientTag: \"playkit-js-transcript\",\n endpointUrl: playerConfig.provider.env.serviceUrl\n });\n\n this._kalturaClient.setDefaultRequestOptions({\n ks: playerConfig.provider.ks ? playerConfig.provider.ks : playerConfig.session.ks\n });\n \n this._player.addEventListener(this._player.Event.TIME_UPDATE, this._onTimeUpdate);\n this._player.addEventListener(this._player.Event.TEXT_TRACK_CHANGED, this._loadCaptions);\n this._player.addEventListener(this._player.Event.RESIZE, this._updateKitchenSink);\n }\n\n onRegisterUI(): void {}\n\n onMediaLoad(): void {\n const { playerConfig } = this._configs;\n this._entryId = playerConfig.sources.id;\n this._getCaptionsList();\n }\n\n onMediaUnload(): void {\n this._reset();\n }\n\n private _reset(): void {\n if (this._kitchenSinkItem) {\n this._contribServices.kitchenSinkManager.remove(this._kitchenSinkItem);\n this._kitchenSinkItem = null;\n }\n if (this._upperBarItem) {\n this._contribServices.upperBarManager.remove(this._upperBarItem);\n this._upperBarItem = null;\n }\n this._captionsList = [];\n this._captions = [];\n this._isLoading = false;\n this._hasError = false;\n this._entryId = \"\";\n this._transcriptLanguage = \"default\";\n }\n\n private _initKitchensinkAndUpperBarItems(): void {\n if (!this._upperBarItem && !this._kitchenSinkItem) {\n this._addPopoverIcon();\n this._addKitchenSinkItem();\n }\n }\n\n private _addPopoverIcon(): void {\n const { downloadDisabled, printDisabled } = this._configs.pluginConfig;\n this._upperBarItem = this._contribServices.upperBarManager.add({\n label: \"Download transcript\",\n onClick: () => {},\n renderItem: () => (\n <DownloadPrintMenu\n onDownload={this._handleDownload}\n onPrint={this._handlePrint}\n downloadDisabled={getConfigValue(downloadDisabled, isBoolean, false)}\n printDisabled={getConfigValue(printDisabled, isBoolean, false)}\n dropdownAriaLabel={`Download or print ${\n this._captionsList.length > 1 ? \"current \" : \"\"\n }transcript`}\n printButtonAriaLabel={`Print ${\n this._captionsList.length > 1 ? \"current \" : \"\"\n }transcript`}\n downloadButtonAriaLabel={`Download ${\n this._captionsList.length > 1 ? \"current \" : \"\"\n }transcript`}\n />\n )\n });\n }\n\n private _handleIconClick = (event: MouseEvent) => {\n this._triggeredByKeyboard = event.x === 0 && event.y === 0;\n }\n\n private _addKitchenSinkItem(): void {\n const { expandMode, position, expandOnFirstPlay } = this._configs.pluginConfig;\n this._kitchenSinkItem = this._contribServices.kitchenSinkManager.add({\n label: \"Transcript\",\n expandMode: expandMode === KitchenSinkExpandModes.OverTheVideo ?\n KitchenSinkExpandModes.OverTheVideo :\n KitchenSinkExpandModes.AlongSideTheVideo,\n renderIcon: () => (\n <button\n className={styles.pluginButton}\n tabIndex={1}\n onClick={this._handleIconClick}\n >\n <div className={styles.transcriptIcon} />\n </button>\n ),\n position: getConfigValue(\n position,\n position =>\n typeof position === \"string\" &&\n (position === KitchenSinkPositions.Bottom ||\n position === KitchenSinkPositions.Right),\n KitchenSinkPositions.Bottom\n ),\n renderContent: this._renderKitchenSinkContent\n });\n\n if (expandOnFirstPlay) {\n this._kitchenSinkItem.activate();\n }\n }\n\n private _onTimeUpdate = (): void => {\n this._updateKitchenSink();\n };\n\n private _updateKitchenSink() {\n if (this._kitchenSinkItem) {\n this._kitchenSinkItem.update();\n }\n }\n\n private _initLoading() {\n if (!this._isLoading || this._hasError) {\n this._isLoading = true;\n this._hasError = false;\n this._updateKitchenSink();\n }\n }\n\n private _onError = (error?: Error, message?: string, method?: string) => {\n let msg: string = message || \"Error message not defined\";\n if (error instanceof KalturaClientException) {\n msg = `${msg} (network error etc)`;\n } else if (error instanceof KalturaAPIException) {\n msg = `${msg} (api exception)`;\n }\n logger.error(msg, {\n method: method || \"Method not defined\",\n data: {\n error\n }\n });\n this._isLoading = false;\n this._hasError = true;\n this._updateKitchenSink();\n };\n\n private _loadCaptions = (event?: {}): void => {\n if (!this._entryId) {\n return;\n }\n this._getCaptionsByLang(event);\n };\n\n private _getCaptionsList = (): void => {\n const filter: KalturaCaptionAssetFilter = new KalturaCaptionAssetFilter({ entryIdEqual: this._entryId});\n const request = new CaptionAssetListAction({ filter });\n this._initLoading();\n this._kalturaClient.request(request).then(\n data => {\n if (data && Array.isArray(data.objects) && data.objects.length > 0) {\n // cover both displayOnPlayer=true, as well as non-existence of the attribute\n this._captionsList = data.objects.filter(caption => caption.displayOnPlayer !== false)\n this._loadCaptions();\n } else {\n this._onError(undefined, \"Data is empty\", \"_getCaptionsList\");\n }\n },\n err => {\n this._onError(err, \"Failed to fetch captions list\", \"_getCaptionsList\");\n }\n );\n };\n\n private _filterCaptionAssetsByProperty = (\n list: KalturaCaptionAsset[],\n match: string | null,\n property: string\n ): KalturaCaptionAsset[] => {\n return list.filter((kalturaCaptionAsset: KalturaCaptionAsset) => {\n return get(kalturaCaptionAsset, property, null) === match;\n });\n }\n\n private _findCaptionAsset = (\n event: string | Record<string, any>\n ): KalturaCaptionAsset => {\n if (typeof event === 'string') {\n const filteredByLang = this._filterCaptionAssetsByProperty(this._captionsList, event, 'languageCode');\n // take first captions from caption-list when caption language is not defined\n return filteredByLang[0] ? filteredByLang[0] : this._captionsList[0];\n }\n const filteredByLang = this._filterCaptionAssetsByProperty(\n this._captionsList,\n get(event, 'payload.selectedTextTrack._language', null),\n 'languageCode'\n );\n if (filteredByLang.length === 1) {\n return filteredByLang[0];\n }\n const filteredByLabel = this._filterCaptionAssetsByProperty(\n filteredByLang,\n get(event, 'payload.selectedTextTrack._label', null),\n 'label'\n );\n if (filteredByLang.length === 1) {\n return filteredByLabel[0];\n }\n\n const index: number = get(event, 'payload.selectedTextTrack._id', -1);\n const filteredByIndex = this._captionsList[index];\n // take first captions from caption-list when caption language is not defined\n return filteredByIndex ? filteredByIndex : this._captionsList[0];\n };\n\n private _getCaptionsByLang = (\n event: string | Record<string, any> = get(this._configs, 'playerConfig.playback.textLanguage', \"\")\n ): void => {\n if (\n (typeof event === \"string\" ?\n event :\n get(event, 'payload.selectedTextTrack._language', null)\n ) === \"off\" && this._captions.length\n ) {\n // prevent loading of captions when user select \"off\" captions option\n return;\n }\n if (this._captionsList && this._captionsList.length > 0) {\n const captionAsset: KalturaCaptionAsset = this._findCaptionAsset(event);\n if (captionAsset) {\n this._transcriptLanguage = captionAsset.language;\n this._initLoading();\n this._initKitchensinkAndUpperBarItems();\n this._loadCaptionsAsset(captionAsset);\n } else {\n this._onError(\n undefined,\n \"Current video doesn't have captions in selected language\",\n \"_getCaptionsByLang\"\n );\n }\n } else {\n this._onError(undefined, \"Current video doesn't have captions\", \"_getCaptionsByLang\");\n }\n };\n\n private _loadCaptionsAsset = (captionAsset: KalturaCaptionAsset) => {\n\n // CaptionAssetServeAction should be imported from \"kaltura-typescript-client/api/types/CaptionAssetServeAction\"\n // replace CaptionAssetServeAction while client fixed (https://kaltura.atlassian.net/browse/FEV-470)\n const request = new CaptionAssetServeAction({ captionAssetId: captionAsset.id });\n\n this._kalturaClient.request(request).then(\n data => {\n this._getCaptionData(data, captionAsset);\n },\n err => {\n // remove getting captions from error while client fixed (https://kaltura.atlassian.net/browse/FEV-470)\n this._getCaptionData(err, captionAsset);\n // this._onError(err, \"Failed to fetch caption asset\", \"_loadCaptionsAsset\");\n }\n )\n };\n\n private _getCaptionData = (data: any, captionAsset: KalturaCaptionAsset) => {\n const rawCaptions = get(data, 'error.message', data);\n if (rawCaptions) {\n this._captions = this._parseCaptions(rawCaptions, captionAsset);\n this._isLoading = false;\n this._updateKitchenSink();\n } else {\n this._onError(undefined, \"Captions data is empty\", \"_loadCaptionsAsset\");\n }\n }\n\n private _parseCaptions = (data: string, captionAsset: KalturaCaptionAsset): CaptionItem[] => {\n try {\n const captionFormat = this._getCaptionFormat(captionAsset);\n if (data.toString().indexOf(\"Error: \") === 0) {\n // remove this condition once client fixed \n data = data.toString().replace(\"Error: \", \"\");\n }\n return getCaptionsByFormat(data, captionFormat);\n } catch(err) {\n this._onError(err, \"Failed to parse the caption file\", \"_parseCaptions\");\n }\n return [];\n };\n\n private _getCaptionFormat = (captionAsset: KalturaCaptionAsset): string => {\n const selectedLanguage: Record<string, any> =\n this._captionsList &&\n captionAsset &&\n (this._captionsList.find((item: KalturaCaptionAsset) => item.id === captionAsset.id) || {});\n return get(selectedLanguage, 'format', '');\n };\n\n private _seekTo = (time: number) => {\n this._player.currentTime = time;\n };\n\n private _handleDownload = () => {\n const { playerConfig } = this._configs;\n if (this._captions) {\n const entryMetadata = get(playerConfig, 'sources.metadata', {});\n downloadContent(\n makePlainText(this._captions),\n `${this._transcriptLanguage}${\n entryMetadata.name ? `-${entryMetadata.name}` : \"\"\n }.txt`\n );\n }\n };\n\n private _handlePrint = () => {\n if (this._captions) {\n printContent(makePlainText(this._captions));\n }\n };\n\n private _renderKitchenSinkContent = (props: KitchenSinkContentRendererProps) => {\n const {\n showTime,\n scrollOffset,\n searchDebounceTimeout,\n searchNextPrevDebounceTimeout\n } = this._configs.pluginConfig;\n return (\n <Transcript\n {...props}\n showTime={getConfigValue(showTime, isBoolean, true)}\n scrollOffset={getConfigValue(scrollOffset, Number.isInteger, 0)}\n searchDebounceTimeout={getConfigValue(searchDebounceTimeout, Number.isInteger, 250)}\n searchNextPrevDebounceTimeout={getConfigValue(\n searchNextPrevDebounceTimeout,\n Number.isInteger,\n 100\n )}\n onSeek={this._seekTo}\n captions={this._captions}\n isLoading={this._isLoading}\n hasError={this._hasError}\n onRetryLoad={this._loadCaptions}\n currentTime={this._player.currentTime}\n videoDuration={this._player.duration}\n kitchenSinkActive={!!this._kitchenSinkItem?.isActive()}\n toggledWithEnter={this._triggeredByKeyboard}\n />\n );\n };\n}\n\nContribPluginManager.registerPlugin(\n pluginName,\n (data: ContribPluginData<TranscriptPluginConfig>) => {\n return new TranscriptPlugin(data.contribServices, data.configs, data.player);\n },\n {\n defaultConfig: {\n expandMode: KitchenSinkExpandModes.AlongSideTheVideo,\n expandOnFirstPlay: true,\n showTime: true,\n position: KitchenSinkPositions.Bottom,\n scrollOffset: 0,\n searchDebounceTimeout: 250,\n searchNextPrevDebounceTimeout: 100,\n downloadDisabled: false,\n printDisabled: false\n }\n }\n);\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@playkit-js-contrib/common\"), require(\"@playkit-js-contrib/ui\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"plugin\", [\"@playkit-js-contrib/common\", \"@playkit-js-contrib/ui\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"plugin\"] = factory(require(\"@playkit-js-contrib/common\"), require(\"@playkit-js-contrib/ui\"));\n\telse\n\t\troot[\"playkit\"] = root[\"playkit\"] || {}, root[\"playkit\"][\"contrib\"] = root[\"playkit\"][\"contrib\"] || {}, root[\"playkit\"][\"contrib\"][\"plugin\"] = factory(root[\"@playkit-js-contrib/common\"], root[\"@playkit-js-contrib/ui\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__9__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import {PresetManager} from '@playkit-js-contrib/ui';\n\nexport interface ContribPlugin {}\n\nexport interface OnRegisterPresetsComponents {\n onRegisterPresetsComponents(presetManager: PresetManager): void;\n}\n\nexport function hasOnRegisterPresetsComponents(\n plugin: any\n): plugin is OnRegisterPresetsComponents {\n return 'onRegisterPresetsComponents' in plugin;\n}\n\nexport interface OnPluginSetup {\n onPluginSetup(): void;\n}\n\nexport function hasOnPluginSetup(plugin: any): plugin is OnPluginSetup {\n return 'onPluginSetup' in plugin;\n}\n\nexport interface OnPluginDestroy {\n onPluginDestroy(): void;\n}\n\nexport function hasOnPluginDestroy(plugin: any): plugin is OnPluginDestroy {\n return 'OnPluginDestroy' in plugin;\n}\n\nexport interface OnMediaLoad {\n onMediaLoad(): void;\n}\n\nexport function hasOnMediaLoad(plugin: any): plugin is OnMediaLoad {\n return 'onMediaLoad' in plugin;\n}\n\nexport interface OnMediaUnload {\n onMediaUnload(): void;\n}\n\nexport function hasOnMediaUnload(plugin: any): plugin is OnMediaUnload {\n return 'onMediaUnload' in plugin;\n}\n","import {ContribServices} from './contrib-services';\nimport {\n ContribPlugin,\n hasOnMediaLoad,\n hasOnMediaUnload,\n hasOnPluginDestroy,\n hasOnPluginSetup,\n hasOnRegisterPresetsComponents,\n} from './contrib-plugin';\n\nexport class CorePlugin<\n TContribPlugin extends ContribPlugin = ContribPlugin\n> extends KalturaPlayer.core.BasePlugin {\n static defaultConfig = {};\n static isValid(player: any) {\n return true;\n }\n\n protected _contribPlugin!: TContribPlugin;\n protected _contribServices!: ContribServices;\n\n constructor(...args: any[]) {\n super(...args);\n this.player.addEventListener(\n this.player.Event.MEDIA_LOADED,\n this.handleMediaLoaded\n );\n }\n\n setContribContext(context: {\n contribPlugin: TContribPlugin;\n contribServices: ContribServices;\n }) {\n this._contribPlugin = context.contribPlugin;\n this._contribServices = context.contribServices;\n }\n\n private _wasSetupExecuted = false;\n private _wasSetupFailed = false;\n\n getUIComponents(): any[] {\n if (hasOnRegisterPresetsComponents(this._contribPlugin)) {\n try {\n this._contribPlugin.onRegisterPresetsComponents(\n this._contribServices.presetManager\n );\n } catch (e) {\n console.error(`failed to register contrib presets components`, {\n error: e.message,\n });\n }\n }\n\n return this._contribServices.presetManager.registerComponents();\n }\n\n handleMediaLoaded = () => {\n if (!this._wasSetupExecuted) {\n if (hasOnPluginSetup(this._contribPlugin)) {\n try {\n this._contribPlugin.onPluginSetup();\n } catch (e) {\n this._wasSetupFailed = true;\n console.error(`failed to execute plugin setup, suspend plugin`, {\n error: e.message,\n });\n }\n }\n this._wasSetupExecuted = true;\n }\n\n if (this._wasSetupFailed) {\n return;\n }\n\n if (hasOnMediaLoad(this._contribPlugin)) {\n try {\n this._contribPlugin.onMediaLoad();\n } catch (e) {\n console.error(`failure during media load `, {error: e.message});\n }\n }\n };\n\n public destroy() {\n this.reset();\n this.player.removeEventListener(\n this.player.Event.MEDIA_LOADED,\n this.handleMediaLoaded\n );\n\n if (hasOnPluginDestroy(this._contribPlugin)) {\n try {\n this._contribPlugin.onPluginDestroy();\n } catch (e) {\n console.error(`failure during plugin destroy`, {error: e.message});\n }\n }\n }\n\n public reset() {\n if (hasOnMediaUnload(this._contribPlugin)) {\n try {\n this._contribPlugin.onMediaUnload();\n } catch (e) {\n console.error(`failure during media unload`, {error: e.message});\n }\n }\n }\n}\n","import {\n ContribPluginFactory,\n CorePluginFactory,\n} from './contrib-plugin-manager';\n\nexport type PluginFactories = {\n contribPluginFactory: ContribPluginFactory<any>;\n corePluginFactory: CorePluginFactory;\n defaultConfig: Record<string, any>;\n};\n\nexport class ContribPluginFactories {\n static factories: Record<string, PluginFactories> = {};\n}\n","import {PlayerContribRegistry} from '@playkit-js-contrib/common';\nimport {\n FloatingManager,\n UpperBarManager,\n KitchenSinkManager,\n PresetManager,\n BannerManager,\n BannerManagerOptions,\n ToastManager,\n ToastManagerOptions,\n FontManager,\n FontManagerOptions,\n OverlayManager,\n} from '@playkit-js-contrib/ui';\nimport {enableLogIfNeeded} from '@playkit-js-contrib/common';\n\nexport interface ContribServicesOptions {\n kalturaPlayer: KalturaPlayerTypes.Player;\n}\n\nfunction getPlayerContribRegistry(\n kalturaPlayer: KalturaPlayerTypes.Player\n): PlayerContribRegistry {\n return PlayerContribRegistry.get(kalturaPlayer);\n}\n\n// TODO SAKAL find more suitable location\nenableLogIfNeeded();\n\nexport class ContribServices {\n static get(options: ContribServicesOptions): ContribServices {\n const playerContribRegistry = getPlayerContribRegistry(\n options.kalturaPlayer\n );\n return playerContribRegistry.register('ContribServices', () => {\n return new ContribServices(playerContribRegistry, options);\n });\n }\n\n private _toastManager: ToastManager;\n private _overlayManager: OverlayManager;\n private _bannerManager: BannerManager;\n private _floatingManager: FloatingManager;\n private _kitchenSinkManager: KitchenSinkManager;\n private _upperBarManager: UpperBarManager;\n private _presetManager: PresetManager;\n private _fontManager: FontManager;\n\n constructor(\n private _playerContribRegistry: PlayerContribRegistry,\n private _options: ContribServicesOptions\n ) {\n this._initialize();\n this._addListeners();\n }\n\n private _addListeners = (): void => {\n const kalturaPlayer = this._options.kalturaPlayer;\n kalturaPlayer.addEventListener(\n kalturaPlayer.Event.PLAYER_RESET,\n this.reset\n );\n kalturaPlayer.addEventListener(\n kalturaPlayer.Event.PLAYER_DESTROY,\n this._removeListeners\n );\n };\n\n private _removeListeners = (): void => {\n const kalturaPlayer = this._options.kalturaPlayer;\n kalturaPlayer.removeEventListener(\n kalturaPlayer.Event.PLAYER_RESET,\n this.reset\n );\n kalturaPlayer.removeEventListener(\n kalturaPlayer.Event.PLAYER_DESTROY,\n this._removeListeners\n );\n };\n\n private _initialize() {\n // TODO sakal use DI instead\n const kalturaPlayer = this._options.kalturaPlayer;\n\n const presetManager = new PresetManager({\n kalturaPlayer,\n });\n\n const fontManager = new FontManager({\n kalturaPlayer,\n });\n\n const upperBarManager = new UpperBarManager({\n kalturaPlayer,\n presetManager: presetManager,\n });\n\n const floatingManager = new FloatingManager({\n kalturaPlayer,\n presetManager,\n });\n\n const overlayManager = new OverlayManager({\n presetManager,\n kalturaPlayer,\n });\n\n const bannerManager = new BannerManager({\n kalturaPlayer,\n floatingManager,\n });\n\n const toastManager = new ToastManager({\n floatingManager,\n });\n\n const kitchenSinkManager = new KitchenSinkManager({\n kalturaPlayer,\n presetManager,\n upperBarManager,\n });\n\n fontManager.loadFont();\n\n this._toastManager = toastManager;\n this._overlayManager = overlayManager;\n this._bannerManager = bannerManager;\n this._floatingManager = floatingManager;\n this._kitchenSinkManager = kitchenSinkManager;\n this._upperBarManager = upperBarManager;\n this._presetManager = presetManager;\n this._fontManager = fontManager;\n }\n\n public get presetManager(): PresetManager {\n return this._presetManager;\n }\n\n public get upperBarManager(): UpperBarManager {\n return this._upperBarManager;\n }\n\n public get kitchenSinkManager(): KitchenSinkManager {\n return this._kitchenSinkManager;\n }\n\n public get floatingManager(): FloatingManager {\n return this._floatingManager;\n }\n\n public get overlayManager(): OverlayManager {\n return this._overlayManager;\n }\n\n public get bannerManager(): BannerManager {\n return this._bannerManager;\n }\n\n public get toastManager(): ToastManager {\n return this._toastManager;\n }\n\n public get fontManager(): FontManager {\n return this._fontManager;\n }\n\n reset = (): void => {\n this._toastManager.reset();\n this._overlayManager.reset();\n this._bannerManager.reset();\n this._floatingManager.reset();\n this._kitchenSinkManager.reset();\n this._upperBarManager.reset();\n };\n\n public getPlayerKS(): string | null {\n const {session} = this._options.kalturaPlayer.config;\n return session && session.ks ? session.ks : null;\n }\n}\n","import {CorePlugin} from './core-plugin';\n\nexport class ContribPluginConfigs<TPluginConfig extends Record<string, any>> {\n constructor(\n private _player: KalturaPlayerTypes.Player,\n private _corePlugin: CorePlugin\n ) {}\n\n get playerConfig(): KalturaPlayerTypes.PlayerConfig &\n DeepPartial<KalturaPlayerContribTypes.ContribConfig> {\n return this._player.config;\n }\n\n get pluginConfig(): TPluginConfig {\n return this._corePlugin.config;\n }\n}\n","export * from './contrib-plugin';\nexport * from './core-plugin';\nexport * from './contrib-plugin-manager';\nexport * from './contrib-services';\nexport * from './contrib-plugin-configs';\n","import {ContribPluginFactories} from './contrib-plugin-factories';\nimport {CorePluginProxy} from './core-plugin-proxy';\nimport {CorePlugin} from './core-plugin';\nimport {ContribServices} from './contrib-services';\nimport {ContribPlugin} from './contrib-plugin';\nimport {ContribPluginConfigs} from './contrib-plugin-configs';\n\nexport type ContribPluginData<TConfig extends Record<string, any>> = {\n corePlugin: CorePlugin;\n contribServices: ContribServices;\n configs: ContribPluginConfigs<TConfig>;\n player: KalturaPlayerTypes.Player;\n};\n\nexport type ContribPluginFactory<TConfig> = (\n data: ContribPluginData<TConfig>\n) => ContribPlugin;\nexport type CorePluginFactory = (...args: any[]) => CorePlugin;\n\nfunction createCorePlugin(...args: any[]) {\n return new CorePlugin(...args);\n}\n\nexport class ContribPluginManager {\n static registerPlugin<TConfig extends Record<string, any>>(\n pluginName: string,\n contribPluginFactory: ContribPluginFactory<TConfig>,\n overrides?: {\n corePluginFactory?: CorePluginFactory;\n defaultConfig?: TConfig;\n }\n ) {\n ContribPluginFactories.factories[pluginName] = {\n contribPluginFactory,\n corePluginFactory:\n (overrides ? overrides.corePluginFactory : null) || createCorePlugin,\n defaultConfig: (overrides ? overrides.defaultConfig : null) || {},\n };\n KalturaPlayer.core.registerPlugin(pluginName, CorePluginProxy);\n }\n}\n","import {CorePlugin} from './core-plugin';\nimport {ContribPlugin} from './contrib-plugin';\nimport {ContribPluginFactories} from './contrib-plugin-factories';\nimport {ContribServices} from './contrib-services';\nimport {getContribLogger} from '@playkit-js-contrib/common';\nimport {ContribPluginConfigs} from './contrib-plugin-configs';\n\nconst _logger = getContribLogger({\n module: 'contrib-plugin',\n class: 'core-plugin-proxy',\n});\n\nexport class CorePluginProxy extends KalturaPlayer.core.BasePlugin {\n static isValid(player: any) {\n return true;\n }\n\n static createPlugin(name: string, player: any, config: any): any {\n const pluginFactories = ContribPluginFactories.factories[name];\n\n if (!pluginFactories) {\n _logger.error('cannot find requested contrib plugin', {\n data: {\n pluginName: name,\n },\n });\n throw new Error(`cannot find contrib plugin factory named '${name}`);\n }\n\n try {\n const corePluginConfig = KalturaPlayer.core.utils.Object.mergeDeep(\n {},\n pluginFactories.defaultConfig || {},\n config\n );\n const contribServices = ContribServices.get({kalturaPlayer: player});\n\n const corePlugin = pluginFactories.corePluginFactory(\n name,\n player,\n corePluginConfig\n );\n\n const contribPlugin = pluginFactories.contribPluginFactory({\n corePlugin,\n contribServices,\n configs: new ContribPluginConfigs<any>(player, corePlugin),\n player,\n });\n\n corePlugin.setContribContext({contribPlugin, contribServices});\n\n _logger.info('created contrib plugin', {\n data: {\n pluginName: name,\n },\n });\n\n return corePlugin;\n } catch (e) {\n _logger.error('failed to create contrib plugin', {\n data: {\n pluginName: name,\n error: e,\n },\n });\n throw e;\n }\n }\n\n protected _contribPlugin!: ContribPlugin;\n\n setPluginContext(contribPlugin: ContribPlugin) {\n this._contribPlugin = contribPlugin;\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","\nvar content = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--6-1!../node_modules/sass-loader/dist/cjs.js!./transcript-plugin.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../node_modules/css-loader/dist/cjs.js??ref--6-1!../node_modules/sass-loader/dist/cjs.js!./transcript-plugin.scss\", function() {\n\t\tvar newContent = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--6-1!../node_modules/sass-loader/dist/cjs.js!./transcript-plugin.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"./assets/transcript-icon.svg\"));\nvar ___CSS_LOADER_URL___1___ = urlEscape(require(\"./assets/transcript-icon-over.svg\"));\n\n// Module\nexports.push([module.id, \".src-transcript-plugin__transcriptIcon--3qwtV{top:3px;left:2px;position:relative;background-image:url(\" + ___CSS_LOADER_URL___0___ + \");background-repeat:no-repeat;cursor:pointer}:active>.src-transcript-plugin__transcriptIcon--3qwtV{background-image:url(\" + ___CSS_LOADER_URL___1___ + \")}:disabled>.src-transcript-plugin__transcriptIcon--3qwtV{opacity:0.4}.src-transcript-plugin__pluginButton--3ar22,.src-transcript-plugin__transcriptIcon--3qwtV{min-height:36px;min-width:36px;opacity:0.8}.src-transcript-plugin__pluginButton--3ar22{padding:0;border:none;background:none}.src-transcript-plugin__pluginButton--3ar22:hover,.src-transcript-plugin__pluginButton--3ar22:active{border-radius:4px;background-color:rgba(0,0,0,0.8)}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"transcriptIcon\": \"src-transcript-plugin__transcriptIcon--3qwtV\",\n\t\"pluginButton\": \"src-transcript-plugin__pluginButton--3ar22\"\n};","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/transcript%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/transcript' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M23.1111111,19 C23.6020309,19 24,19.4477153 24,20 C24,20.5522847 23.6020309,21 23.1111111,21 L8.88888889,21 C8.39796911,21 8,20.5522847 8,20 C8,19.4477153 8.39796911,19 8.88888889,19 L23.1111111,19 Z M24.8695652,3 C26.5984566,3 28,4.24720677 28,5.78571429 L28,26.2142857 C28,27.7527932 26.5984566,29 24.8695652,29 L7.13043478,29 C5.40154339,29 4,27.7527932 4,26.2142857 L4,5.78571429 C4,4.24720677 5.40154339,3 7.13043478,3 L24.8695652,3 Z M26,17 L6,17 L6,26.0833333 C6,26.5895944 6.47127921,27 7.05263158,27 L24.9473684,27 C25.5287208,27 26,26.5895944 26,26.0833333 L26,17 Z M8.88888889,23 L23.1111111,23 C23.6020309,23 24,23.4477153 24,24 C24,24.5128358 23.6568532,24.9355072 23.2147743,24.9932723 L23.1111111,25 L8.88888889,25 C8.39796911,25 8,24.5522847 8,24 C8,23.4871642 8.34314684,23.0644928 8.78522567,23.0067277 L8.88888889,23 L23.1111111,23 L8.88888889,23 Z M24.9473684,5 L7.05263158,5 C6.47127921,5 6,5.41040565 6,5.91666667 L6,15 L26,15 L26,5.91666667 C26,5.41040565 25.5287208,5 24.9473684,5 Z' id='Shape' fill='%23ffffff'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/transcript%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/transcript' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M23.1111111,19 C23.6020309,19 24,19.4477153 24,20 C24,20.5522847 23.6020309,21 23.1111111,21 L8.88888889,21 C8.39796911,21 8,20.5522847 8,20 C8,19.4477153 8.39796911,19 8.88888889,19 L23.1111111,19 Z M24.8695652,3 C26.5984566,3 28,4.24720677 28,5.78571429 L28,26.2142857 C28,27.7527932 26.5984566,29 24.8695652,29 L7.13043478,29 C5.40154339,29 4,27.7527932 4,26.2142857 L4,5.78571429 C4,4.24720677 5.40154339,3 7.13043478,3 L24.8695652,3 Z M26,17 L6,17 L6,26.0833333 C6,26.5895944 6.47127921,27 7.05263158,27 L24.9473684,27 C25.5287208,27 26,26.5895944 26,26.0833333 L26,17 Z M8.88888889,23 L23.1111111,23 C23.6020309,23 24,23.4477153 24,24 C24,24.5128358 23.6568532,24.9355072 23.2147743,24.9932723 L23.1111111,25 L8.88888889,25 C8.39796911,25 8,24.5522847 8,24 C8,23.4871642 8.34314684,23.0644928 8.78522567,23.0067277 L8.88888889,23 L23.1111111,23 L8.88888889,23 Z M24.9473684,5 L7.05263158,5 C6.47127921,5 6,5.41040565 6,5.91666667 L6,15 L26,15 L26,5.91666667 C26,5.41040565 25.5287208,5 24.9473684,5 Z' id='Shape' fill='%2301ACCD'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","export * from './api/index';\nexport * from './cancelable-action';\nexport * from './kaltura-client-options';\nexport * from './kaltura-client-service';\n","export { KalturaClientException } from './kaltura-client-exception';\nexport { KalturaAPIException } from './kaltura-api-exception';\nexport { KalturaMultiRequest } from './kaltura-multi-request';\nexport { KalturaMultiResponse } from './kaltura-multi-response';\nexport { KalturaRequest } from './kaltura-request';\nexport { KalturaRequestBase } from './kaltura-request-base';\nexport { KalturaUploadRequest } from './kaltura-upload-request';\nexport { KalturaResponse } from './kaltura-response';\nexport { KalturaTypesFactory } from './kaltura-types-factory';\nexport * from './kaltura-request-options';\n","\nexport class KalturaClientUtils\n{\n static fromServerDate(value : number) : Date\n {\n return (value ? new Date(value * 1000) : null);\n }\n\n static toServerDate(value : Date) : number\n {\n return value ? Math.round(value.getTime() / 1000) : null;\n }\n\n static getStartDateValue(value : Date) : Date\n {\n\t if (value) {\n\t\t value.setHours(0);\n\t\t value.setMinutes(0);\n\t\t value.setSeconds(0);\n\t\t return value;\n\t }else{\n\t \treturn null;\n\t }\n }\n\n static getEndDateValue(value : Date) : Date\n {\n\t if (value) {\n\t value.setHours(23);\n\t\t value.setMinutes(59);\n\t\t value.setSeconds(59);\n\t return value;\n\t }else{\n\t\t return null;\n\t }\n }\n}\n","\nexport enum LogLevels\n{\n info = 0,\n warn = 1,\n error = 2,\n none = 100\n}\n\nexport const LoggerSettings = {\n logLevel : LogLevels.warn\n};\n\nexport class KalturaLogger\n{\n constructor(private _name: string)\n {\n }\n\n warn(message: string): void\n {\n if (LoggerSettings.logLevel <= LogLevels.warn)\n {\n console.warn(`[kaltura-client/${this._name}]: ${message}`);\n }\n }\n\n info(message: string): void\n {\n if (LoggerSettings.logLevel <= LogLevels.info)\n {\n console.info(`[kaltura-client/${this._name}]: ${message}`);\n }\n }\n\n error(message: string): void\n {\n if (LoggerSettings.logLevel <= LogLevels.error)\n {\n console.error(`[kaltura-client/${this._name}]: ${message}`);\n }\n }\n}\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaBaseResponseProfileArgs extends KalturaObjectBaseArgs {\n \n}\n\n\nexport class KalturaBaseResponseProfile extends KalturaObjectBase {\n\n \n\n constructor(data? : KalturaBaseResponseProfileArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaBaseResponseProfile' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaBaseResponseProfile',KalturaBaseResponseProfile);\n","import { KalturaRequest } from './api/kaltura-request';\nimport { KalturaMultiRequest } from './api/kaltura-multi-request';\nimport { KalturaMultiResponse } from './api/kaltura-multi-response';\nimport { KalturaFileRequest } from './api/kaltura-file-request';\nimport { KalturaUploadRequest } from './api/kaltura-upload-request';\nimport { KalturaRequestAdapter } from './adapters/kaltura-request-adapter';\nimport { KalturaFileRequestAdapter } from './adapters/kaltura-file-request-adapter';\nimport { KalturaClientOptions } from './kaltura-client-options';\nimport { KalturaMultiRequestAdapter } from './adapters/kaltura-multi-request-adapter';\nimport { KalturaClientException } from './api/kaltura-client-exception';\nimport { KalturaUploadRequestAdapter } from './adapters/kaltura-upload-request-adapter';\nimport {\n KalturaRequestOptions,\n KalturaRequestOptionsArgs\n} from './api/kaltura-request-options';\nimport { CancelableAction } from './cancelable-action';\n\nexport class KalturaClient {\n\n private _defaultRequestOptions: KalturaRequestOptions;\n\n constructor(private _options?: KalturaClientOptions,\n defaultRequestOptionsArgs?: KalturaRequestOptionsArgs) {\n this._defaultRequestOptions = new KalturaRequestOptions(defaultRequestOptionsArgs || {});\n }\n\n public appendOptions(options: KalturaClientOptions): void {\n if (!options) {\n throw new KalturaClientException('client::append_options',`missing required argument 'options'`);\n }\n\n this._options = Object.assign(\n this._options || {}, options\n );\n }\n\n public setOptions(options: KalturaClientOptions): void {\n if (!options) {\n throw new KalturaClientException('client::set_options',`missing required argument 'options'`);\n }\n\n this._options = options;\n }\n\n public appendDefaultRequestOptions(args: KalturaRequestOptionsArgs): void {\n if (!args) {\n throw new KalturaClientException('client::append_default_request_options',`missing required argument 'args'`);\n }\n\n this._defaultRequestOptions = Object.assign(\n this._defaultRequestOptions || new KalturaRequestOptions(), new KalturaRequestOptions(args)\n );\n }\n\n public setDefaultRequestOptions(args: KalturaRequestOptionsArgs): void {\n if (!args) {\n throw new KalturaClientException('client::set_default_request_options',`missing required argument 'args'`);\n }\n\n this._defaultRequestOptions = new KalturaRequestOptions(args);\n }\n\n private _validateOptions(): Error | null {\n if (!this._options) {\n return new KalturaClientException('client::missing_options','cannot transmit request, missing client options (did you forgot to provide options manually?)');\n }\n\n if (!this._options.endpointUrl) {\n return new KalturaClientException('client::missing_options', `cannot transmit request, missing 'endpointUrl' in client options`);\n }\n\n if (!this._options.clientTag) {\n return new KalturaClientException('client::missing_options', `cannot transmit request, missing 'clientTag' in client options`);\n }\n\n return null;\n }\n\n public request<T>(request: KalturaRequest<T>): CancelableAction<T>;\n public request<T>(request: KalturaFileRequest): CancelableAction<{ url: string }>;\n public request<T>(request: KalturaRequest<T> | KalturaFileRequest): CancelableAction<T | { url: string }> {\n\n const optionsViolationError = this._validateOptions();\n\n if (optionsViolationError) {\n return CancelableAction.reject(optionsViolationError);\n }\n\n if (request instanceof KalturaFileRequest) {\n return new KalturaFileRequestAdapter().transmit(request, this._options, this._defaultRequestOptions);\n\n } else if (request instanceof KalturaUploadRequest) {\n return new KalturaUploadRequestAdapter(this._options, this._defaultRequestOptions).transmit(request);\n }\n else if (request instanceof KalturaRequest) {\n return new KalturaRequestAdapter().transmit(request, this._options, this._defaultRequestOptions);\n } else {\n return CancelableAction.reject(new KalturaClientException(\"client::request_type_error\", 'unsupported request type requested'));\n }\n }\n\n public multiRequest(requests: KalturaRequest<any>[]): CancelableAction<KalturaMultiResponse>\n public multiRequest(request: KalturaMultiRequest): CancelableAction<KalturaMultiResponse>;\n public multiRequest(arg: KalturaMultiRequest | KalturaRequest<any>[]): CancelableAction<KalturaMultiResponse> {\n const optionsViolationError = this._validateOptions();\n if (optionsViolationError) {\n return CancelableAction.reject(optionsViolationError);\n }\n\n const request = arg instanceof KalturaMultiRequest ? arg : (arg instanceof Array ? new KalturaMultiRequest(...arg) : null);\n if (!request) {\n return CancelableAction.reject(new KalturaClientException('client::invalid_request', `Expected argument of type Array or KalturaMultiRequest`));\n }\n\n const containsFileRequest = request.requests.some(item => item instanceof KalturaFileRequest);\n if (containsFileRequest) {\n return CancelableAction.reject(new KalturaClientException('client::invalid_request', `multi-request not support requests of type 'KalturaFileRequest', use regular request instead`));\n } else {\n return new KalturaMultiRequestAdapter().transmit(request, this._options, this._defaultRequestOptions);\n }\n }\n}\n","import { KalturaObjectBase } from \"./kaltura-object-base\";\nimport { KalturaRequestBase, KalturaRequestBaseArgs } from './kaltura-request-base';\nimport { KalturaRequest, KalturaRequestArgs } from './kaltura-request';\n\n\n\nexport interface KalturaFileRequestArgs extends KalturaRequestArgs {\n}\n\nexport class KalturaFileRequest extends KalturaRequest<{url: string}> {\n\n constructor(data: KalturaFileRequestArgs) {\n super(data, {responseType : 'v', responseSubType : '', responseConstructor : null });\n }\n\n}","import { KalturaRequest } from '../api/kaltura-request';\nimport { KalturaAPIException } from '../api/kaltura-api-exception';\nimport { KalturaClientException } from '../api/kaltura-client-exception';\nimport { KalturaRequestOptions } from '../api/kaltura-request-options';\nimport { KalturaClientOptions } from '../kaltura-client-options';\nimport { createCancelableAction, createEndpoint, getHeaders, prepareParameters } from './utils';\nimport { CancelableAction } from '../cancelable-action';\n\nexport class KalturaRequestAdapter {\n\n constructor() {\n }\n\n public transmit<T>(request: KalturaRequest<T>, clientOptions: KalturaClientOptions, defaultRequestOptions: KalturaRequestOptions): CancelableAction<T> {\n\n const parameters = prepareParameters(request, clientOptions, defaultRequestOptions);\n\n const { service, action, ...body } = parameters;\n\n const endpoint = createEndpoint(request, clientOptions, service, action);\n\n return <any>createCancelableAction<T>({endpoint, headers: getHeaders(), body})\n .then(result => {\n try {\n const response = request.handleResponse(result);\n\n if (response.error) {\n throw response.error;\n } else {\n return response.result;\n }\n } catch (error) {\n if (error instanceof KalturaClientException || error instanceof KalturaAPIException) {\n throw error;\n } else {\n const errorMessage = error instanceof Error ? error.message : typeof error === 'string' ? error : null;\n throw new KalturaClientException('client::response-unknown-error', errorMessage || 'Failed to parse response');\n }\n }\n },\n error => {\n const errorMessage = error instanceof Error ? error.message : typeof error === 'string' ? error : null;\n throw new KalturaClientException(\"client::request-network-error\", errorMessage || 'Error connecting to server');\n });\n }\n}\n","import { KalturaFileRequest } from '../api/kaltura-file-request';\nimport { KalturaRequestOptions, KalturaRequestOptionsArgs } from '../api/kaltura-request-options';\nimport { buildQuerystring, createClientTag, createEndpoint, prepareParameters } from './utils';\nimport { KalturaClientOptions } from '../kaltura-client-options';\nimport { CancelableAction } from '../cancelable-action';\n\n\nexport class KalturaFileRequestAdapter {\n\n public transmit(request: KalturaFileRequest, clientOptions: KalturaClientOptions, defaultRequestOptions: KalturaRequestOptions): CancelableAction<{ url: string }> {\n const parameters = prepareParameters(request, clientOptions, defaultRequestOptions);\n const { service, action, ...queryparams } = parameters;\n const endpointUrl = createEndpoint(request, clientOptions, service, action, queryparams);\n\n return CancelableAction.resolve({url: endpointUrl});\n }\n}\n","import { KalturaMultiRequest } from '../api/kaltura-multi-request';\nimport { KalturaMultiResponse } from '../api/kaltura-multi-response';\nimport { createCancelableAction, createEndpoint, getHeaders, prepareParameters } from './utils';\nimport { KalturaAPIException } from '../api/kaltura-api-exception';\nimport { KalturaClientException } from '../api/kaltura-client-exception';\nimport { KalturaRequestOptions } from '../api/kaltura-request-options';\nimport { KalturaClientOptions } from '../kaltura-client-options';\nimport { CancelableAction } from '../cancelable-action';\n\nexport class KalturaMultiRequestAdapter {\n constructor() {\n }\n\n transmit(request: KalturaMultiRequest, clientOptions: KalturaClientOptions, defaultRequestOptions: KalturaRequestOptions): CancelableAction<KalturaMultiResponse> {\n\n const parameters = prepareParameters(request, clientOptions, defaultRequestOptions);\n\n const { service, action, ...body } = parameters;\n const endpoint = createEndpoint(request, clientOptions, service, action);\n\n return <any>(createCancelableAction<KalturaMultiResponse>({endpoint, headers: getHeaders(), body})\n .then(result => {\n try {\n return request.handleResponse(result);\n } catch (error) {\n if (error instanceof KalturaClientException || error instanceof KalturaAPIException) {\n throw error;\n } else {\n const errorMessage = error instanceof Error ? error.message : typeof error === 'string' ? error : null;\n throw new KalturaClientException('client::multi-response-unknown-error', errorMessage || 'Failed to parse response');\n }\n }\n },\n error => {\n const errorMessage = error instanceof Error ? error.message : typeof error === 'string' ? error : null;\n throw new KalturaClientException(\"client::multi-request-network-error\", errorMessage || 'Error connecting to server');\n }));\n }\n}\n","import { KalturaUploadRequest } from '../api/kaltura-upload-request';\nimport { buildQuerystring, createEndpoint, prepareParameters } from './utils';\nimport { KalturaClientException } from '../api/kaltura-client-exception';\nimport { KalturaRequestOptions } from '../api/kaltura-request-options';\nimport { KalturaClientOptions } from '../kaltura-client-options';\nimport { KalturaAPIException } from '../api/kaltura-api-exception';\nimport { CancelableAction } from '../cancelable-action';\n\ninterface UploadByChunksData {\n enabled: boolean;\n resume: boolean;\n resumeAt: number;\n finalChunk: boolean;\n}\nexport class KalturaUploadRequestAdapter {\n private _chunkUploadSupported(request: KalturaUploadRequest<any>): boolean {\n // SUPPORTED BY BROWSER?\n // Check if these features are support by the browser:\n // - File object type\n // - Blob object type\n // - FileList object type\n // - slicing files\n const supportedByBrowser = (\n (typeof(File) !== 'undefined')\n &&\n (typeof(Blob) !== 'undefined')\n &&\n (typeof(FileList) !== 'undefined')\n &&\n (!!(<any>Blob.prototype)['webkitSlice'] || !!(<any>Blob.prototype)['mozSlice'] || !!(<any>Blob.prototype).slice || false)\n );\n const supportedByRequest = request.supportChunkUpload();\n const enabledInClient = !this.clientOptions.chunkFileDisabled;\n\n return enabledInClient && supportedByBrowser && supportedByRequest;\n }\n\n constructor(public clientOptions: KalturaClientOptions, public defaultRequestOptions: KalturaRequestOptions)\n {\n\n }\n\n transmit(request: KalturaUploadRequest<any>): CancelableAction<any> {\n return new CancelableAction((resolve, reject, action) => {\n const uploadedFileSize = !isNaN(request.uploadedFileSize) && isFinite(request.uploadedFileSize) && request.uploadedFileSize > 0 ? request.uploadedFileSize : 0;\n const data: UploadByChunksData = {\n enabled: this._chunkUploadSupported(request),\n resume: !!uploadedFileSize,\n finalChunk: false,\n resumeAt: uploadedFileSize\n };\n\n let activeAction: CancelableAction<any>;\n\n const handleChunkUploadError = reason => {\n activeAction = null;\n reject(reason);\n };\n\n const handleChunkUploadSuccess = result => {\n if (!data.enabled || data.finalChunk) {\n activeAction = null;\n\n try {\n const response = request.handleResponse(result);\n\n if (response.error) {\n reject(response.error);\n } else {\n resolve(response.result);\n }\n } catch (error) {\n if (error instanceof KalturaClientException || error instanceof KalturaAPIException) {\n reject(error);\n } else {\n const errorMessage = error instanceof Error ? error.message : typeof error === 'string' ? error : null;\n reject(new KalturaClientException('client::response-unknown-error', errorMessage || 'Failed to parse response'));\n }\n }\n\n\n } else {\n activeAction = this._chunkUpload(request, data).then(handleChunkUploadSuccess, handleChunkUploadError);\n }\n };\n\n activeAction = this._chunkUpload(request, data)\n .then(handleChunkUploadSuccess, handleChunkUploadError);\n\n\n return() =>\n {\n if (activeAction) {\n activeAction.cancel();\n activeAction = null;\n }\n };\n });\n }\n\n private _getFormData(filePropertyName: string, fileName: string, fileChunk: File | Blob): FormData {\n const result = new FormData();\n result.append(\"fileName\", fileName);\n result.append(filePropertyName, fileChunk);\n return result;\n }\n\n private _chunkUpload(request: KalturaUploadRequest<any>, uploadChunkData: UploadByChunksData): CancelableAction<any> {\n return new CancelableAction((resolve, reject) => {\n const parameters = prepareParameters(request, this.clientOptions, this.defaultRequestOptions);\n\n let isComplete = false;\n const {propertyName, file} = request.getFileInfo();\n let data = this._getFormData(propertyName, file.name, file);\n\n let fileStart = 0;\n\n if (uploadChunkData.enabled) {\n\t let actualChunkFileSize: number = null;\n const userChunkFileSize = this.clientOptions ? this.clientOptions.chunkFileSize : null;\n\n if (userChunkFileSize && Number.isFinite(userChunkFileSize) && !Number.isNaN(userChunkFileSize)) {\n\t if (userChunkFileSize < 1e5) {\n\t\t console.warn(`user requested for invalid upload chunk size '${userChunkFileSize}'. minimal value 100Kb. using minimal value 100Kb instead`);\n\t\t actualChunkFileSize = 1e5;\n\t } else {\n console.log(`using user requetsed chunk size '${userChunkFileSize}'`);\n actualChunkFileSize = userChunkFileSize;\n }\n } else {\n console.log(`using default chunk size 5Mb`);\n actualChunkFileSize = 5e6; // default\n }\n\n uploadChunkData.finalChunk = (file.size - uploadChunkData.resumeAt) <= actualChunkFileSize;\n\n fileStart = uploadChunkData.resumeAt;\n const fileEnd = uploadChunkData.finalChunk ? file.size : fileStart + actualChunkFileSize;\n\n data = this._getFormData(propertyName, file.name, file.slice(fileStart, fileEnd, file.type));\n\n parameters.resume = uploadChunkData.resume;\n parameters.resumeAt = uploadChunkData.resumeAt;\n parameters.finalChunk = uploadChunkData.finalChunk;\n } else {\n console.log(`chunk upload not supported by browser or by request. Uploading the file as-is`);\n }\n\n const { service, action, ...queryparams } = parameters;\n const endpointUrl = createEndpoint(request, this.clientOptions, service, action, queryparams);\n\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (isComplete) {\n return;\n }\n isComplete = true;\n let resp;\n\n try {\n if (xhr.status === 200) {\n resp = JSON.parse(xhr.response);\n } else {\n resp = new KalturaClientException('client::upload-failure', xhr.responseText || 'failed to upload file');\n }\n } catch (e) {\n resp = new KalturaClientException('client::upload-failure', e.message || 'failed to upload file')\n }\n\n if (resp instanceof Error) {\n reject(resp);\n } else {\n if (uploadChunkData.enabled) {\n if (typeof resp.uploadedFileSize === \"undefined\" || resp.uploadedFileSize === null) {\n reject(new KalturaClientException('client::upload-failure', `uploaded chunk of file failed, expected response with property 'uploadedFileSize'`));\n return;\n } else if (!uploadChunkData.finalChunk) {\n uploadChunkData.resumeAt = Number(resp.uploadedFileSize);\n uploadChunkData.resume = true;\n }\n }\n\n resolve(resp);\n }\n }\n };\n\n const progressCallback = request._getProgressCallback();\n if (progressCallback) {\n xhr.upload.addEventListener(\"progress\", e => {\n if (e.lengthComputable) {\n progressCallback.apply(request, [e.loaded + fileStart, file.size]);\n } else {\n // Unable to compute progress information since the total size is unknown\n }\n }, false);\n }\n\n xhr.open(\"POST\", endpointUrl);\n xhr.send(data);\n\n return () => {\n if (!isComplete) {\n isComplete = true;\n xhr.abort();\n }\n };\n });\n }\n}\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaCaptionAssetBaseFilter, KalturaCaptionAssetBaseFilterArgs } from './KalturaCaptionAssetBaseFilter';\n\nexport interface KalturaCaptionAssetFilterArgs extends KalturaCaptionAssetBaseFilterArgs {\n \n}\n\n\nexport class KalturaCaptionAssetFilter extends KalturaCaptionAssetBaseFilter {\n\n \n\n constructor(data? : KalturaCaptionAssetFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaCaptionAssetFilter' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaCaptionAssetFilter',KalturaCaptionAssetFilter);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaCaptionType } from './KalturaCaptionType';\nimport { KalturaCaptionAssetStatus } from './KalturaCaptionAssetStatus';\nimport { KalturaAssetFilter, KalturaAssetFilterArgs } from './KalturaAssetFilter';\n\nexport interface KalturaCaptionAssetBaseFilterArgs extends KalturaAssetFilterArgs {\n captionParamsIdEqual? : number;\n\tcaptionParamsIdIn? : string;\n\tformatEqual? : KalturaCaptionType;\n\tformatIn? : string;\n\tstatusEqual? : KalturaCaptionAssetStatus;\n\tstatusIn? : string;\n\tstatusNotIn? : string;\n}\n\n\nexport class KalturaCaptionAssetBaseFilter extends KalturaAssetFilter {\n\n captionParamsIdEqual : number;\n\tcaptionParamsIdIn : string;\n\tformatEqual : KalturaCaptionType;\n\tformatIn : string;\n\tstatusEqual : KalturaCaptionAssetStatus;\n\tstatusIn : string;\n\tstatusNotIn : string;\n\n constructor(data? : KalturaCaptionAssetBaseFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaCaptionAssetBaseFilter' },\n\t\t\t\tcaptionParamsIdEqual : { type : 'n' },\n\t\t\t\tcaptionParamsIdIn : { type : 's' },\n\t\t\t\tformatEqual : { type : 'es', subTypeConstructor : KalturaCaptionType, subType : 'KalturaCaptionType' },\n\t\t\t\tformatIn : { type : 's' },\n\t\t\t\tstatusEqual : { type : 'en', subTypeConstructor : KalturaCaptionAssetStatus, subType : 'KalturaCaptionAssetStatus' },\n\t\t\t\tstatusIn : { type : 's' },\n\t\t\t\tstatusNotIn : { type : 's' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaCaptionAssetBaseFilter',KalturaCaptionAssetBaseFilter);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaRelatedFilter, KalturaRelatedFilterArgs } from './KalturaRelatedFilter';\n\nexport interface KalturaAssetBaseFilterArgs extends KalturaRelatedFilterArgs {\n idEqual? : string;\n\tidIn? : string;\n\tentryIdEqual? : string;\n\tentryIdIn? : string;\n\tpartnerIdEqual? : number;\n\tpartnerIdIn? : string;\n\tsizeGreaterThanOrEqual? : number;\n\tsizeLessThanOrEqual? : number;\n\ttagsLike? : string;\n\ttagsMultiLikeOr? : string;\n\ttagsMultiLikeAnd? : string;\n\tcreatedAtGreaterThanOrEqual? : Date;\n\tcreatedAtLessThanOrEqual? : Date;\n\tupdatedAtGreaterThanOrEqual? : Date;\n\tupdatedAtLessThanOrEqual? : Date;\n\tdeletedAtGreaterThanOrEqual? : Date;\n\tdeletedAtLessThanOrEqual? : Date;\n}\n\n\nexport class KalturaAssetBaseFilter extends KalturaRelatedFilter {\n\n idEqual : string;\n\tidIn : string;\n\tentryIdEqual : string;\n\tentryIdIn : string;\n\tpartnerIdEqual : number;\n\tpartnerIdIn : string;\n\tsizeGreaterThanOrEqual : number;\n\tsizeLessThanOrEqual : number;\n\ttagsLike : string;\n\ttagsMultiLikeOr : string;\n\ttagsMultiLikeAnd : string;\n\tcreatedAtGreaterThanOrEqual : Date;\n\tcreatedAtLessThanOrEqual : Date;\n\tupdatedAtGreaterThanOrEqual : Date;\n\tupdatedAtLessThanOrEqual : Date;\n\tdeletedAtGreaterThanOrEqual : Date;\n\tdeletedAtLessThanOrEqual : Date;\n\n constructor(data? : KalturaAssetBaseFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaAssetBaseFilter' },\n\t\t\t\tidEqual : { type : 's' },\n\t\t\t\tidIn : { type : 's' },\n\t\t\t\tentryIdEqual : { type : 's' },\n\t\t\t\tentryIdIn : { type : 's' },\n\t\t\t\tpartnerIdEqual : { type : 'n' },\n\t\t\t\tpartnerIdIn : { type : 's' },\n\t\t\t\tsizeGreaterThanOrEqual : { type : 'n' },\n\t\t\t\tsizeLessThanOrEqual : { type : 'n' },\n\t\t\t\ttagsLike : { type : 's' },\n\t\t\t\ttagsMultiLikeOr : { type : 's' },\n\t\t\t\ttagsMultiLikeAnd : { type : 's' },\n\t\t\t\tcreatedAtGreaterThanOrEqual : { type : 'd' },\n\t\t\t\tcreatedAtLessThanOrEqual : { type : 'd' },\n\t\t\t\tupdatedAtGreaterThanOrEqual : { type : 'd' },\n\t\t\t\tupdatedAtLessThanOrEqual : { type : 'd' },\n\t\t\t\tdeletedAtGreaterThanOrEqual : { type : 'd' },\n\t\t\t\tdeletedAtLessThanOrEqual : { type : 'd' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaAssetBaseFilter',KalturaAssetBaseFilter);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaFilter, KalturaFilterArgs } from './KalturaFilter';\n\nexport interface KalturaRelatedFilterArgs extends KalturaFilterArgs {\n \n}\n\n\nexport class KalturaRelatedFilter extends KalturaFilter {\n\n \n\n constructor(data? : KalturaRelatedFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaRelatedFilter' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaRelatedFilter',KalturaRelatedFilter);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaSearchItem } from './KalturaSearchItem';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaFilterArgs extends KalturaObjectBaseArgs {\n orderBy? : string;\n\tadvancedSearch? : KalturaSearchItem;\n}\n\n\nexport class KalturaFilter extends KalturaObjectBase {\n\n orderBy : string;\n\tadvancedSearch : KalturaSearchItem;\n\n constructor(data? : KalturaFilterArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaFilter' },\n\t\t\t\torderBy : { type : 's' },\n\t\t\t\tadvancedSearch : { type : 'o', subTypeConstructor : KalturaSearchItem, subType : 'KalturaSearchItem' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaFilter',KalturaFilter);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaSearchItemArgs extends KalturaObjectBaseArgs {\n \n}\n\n\nexport class KalturaSearchItem extends KalturaObjectBase {\n\n \n\n constructor(data? : KalturaSearchItemArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaSearchItem' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaSearchItem',KalturaSearchItem);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaCaptionAssetListResponse } from './KalturaCaptionAssetListResponse';\n\nimport { KalturaAssetFilter } from './KalturaAssetFilter';\nimport { KalturaFilterPager } from './KalturaFilterPager';\nimport { KalturaRequest, KalturaRequestArgs } from '../kaltura-request';\n\nexport interface CaptionAssetListActionArgs extends KalturaRequestArgs {\n filter? : KalturaAssetFilter;\n\tpager? : KalturaFilterPager;\n}\n\n/**\n * Build request payload for service 'captionAsset' action 'list'.\n *\n * Usage: List caption Assets by filter and pager\n *\n * Server response type: KalturaCaptionAssetListResponse\n * Server failure response type: KalturaAPIException\n * @class\n * @extends KalturaRequest\n */\nexport class CaptionAssetListAction extends KalturaRequest<KalturaCaptionAssetListResponse> {\n\n filter : KalturaAssetFilter;\n\tpager : KalturaFilterPager;\n\n constructor(data? : CaptionAssetListActionArgs)\n {\n super(data, {responseType : 'o', responseSubType : 'KalturaCaptionAssetListResponse', responseConstructor : KalturaCaptionAssetListResponse });\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n service : { type : 'c', default : 'caption_captionasset' },\n\t\t\t\taction : { type : 'c', default : 'list' },\n\t\t\t\tfilter : { type : 'o', subTypeConstructor : KalturaAssetFilter, subType : 'KalturaAssetFilter' },\n\t\t\t\tpager : { type : 'o', subTypeConstructor : KalturaFilterPager, subType : 'KalturaFilterPager' }\n }\n );\n return result;\n }\n}\n\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaCaptionAsset } from './KalturaCaptionAsset';\nimport { KalturaListResponse, KalturaListResponseArgs } from './KalturaListResponse';\n\nexport interface KalturaCaptionAssetListResponseArgs extends KalturaListResponseArgs {\n \n}\n\n\nexport class KalturaCaptionAssetListResponse extends KalturaListResponse {\n\n readonly objects : KalturaCaptionAsset[];\n\n constructor(data? : KalturaCaptionAssetListResponseArgs)\n {\n super(data);\n if (typeof this.objects === 'undefined') this.objects = [];\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaCaptionAssetListResponse' },\n\t\t\t\tobjects : { type : 'a', readOnly : true, subTypeConstructor : KalturaCaptionAsset, subType : 'KalturaCaptionAsset' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaCaptionAssetListResponse',KalturaCaptionAssetListResponse);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaLanguage } from './KalturaLanguage';\nimport { KalturaLanguageCode } from './KalturaLanguageCode';\nimport { KalturaNullableBoolean } from './KalturaNullableBoolean';\nimport { KalturaCaptionType } from './KalturaCaptionType';\nimport { KalturaCaptionAssetStatus } from './KalturaCaptionAssetStatus';\nimport { KalturaAsset, KalturaAssetArgs } from './KalturaAsset';\n\nexport interface KalturaCaptionAssetArgs extends KalturaAssetArgs {\n captionParamsId? : number;\n\tlanguage? : KalturaLanguage;\n\tisDefault? : KalturaNullableBoolean;\n\tlabel? : string;\n\tformat? : KalturaCaptionType;\n\tparentId? : string;\n\taccuracy? : number;\n\tdisplayOnPlayer? : boolean;\n\tassociatedTranscriptIds? : string;\n}\n\n\nexport class KalturaCaptionAsset extends KalturaAsset {\n\n captionParamsId : number;\n\tlanguage : KalturaLanguage;\n\treadonly languageCode : KalturaLanguageCode;\n\tisDefault : KalturaNullableBoolean;\n\tlabel : string;\n\tformat : KalturaCaptionType;\n\treadonly status : KalturaCaptionAssetStatus;\n\tparentId : string;\n\taccuracy : number;\n\tdisplayOnPlayer : boolean;\n\tassociatedTranscriptIds : string;\n\n constructor(data? : KalturaCaptionAssetArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaCaptionAsset' },\n\t\t\t\tcaptionParamsId : { type : 'n' },\n\t\t\t\tlanguage : { type : 'es', subTypeConstructor : KalturaLanguage, subType : 'KalturaLanguage' },\n\t\t\t\tlanguageCode : { type : 'es', readOnly : true, subTypeConstructor : KalturaLanguageCode, subType : 'KalturaLanguageCode' },\n\t\t\t\tisDefault : { type : 'en', subTypeConstructor : KalturaNullableBoolean, subType : 'KalturaNullableBoolean' },\n\t\t\t\tlabel : { type : 's' },\n\t\t\t\tformat : { type : 'es', subTypeConstructor : KalturaCaptionType, subType : 'KalturaCaptionType' },\n\t\t\t\tstatus : { type : 'en', readOnly : true, subTypeConstructor : KalturaCaptionAssetStatus, subType : 'KalturaCaptionAssetStatus' },\n\t\t\t\tparentId : { type : 's' },\n\t\t\t\taccuracy : { type : 'n' },\n\t\t\t\tdisplayOnPlayer : { type : 'b' },\n\t\t\t\tassociatedTranscriptIds : { type : 's' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaCaptionAsset',KalturaCaptionAsset);\n","\n\nexport enum KalturaLanguage {\n aa = 'Afar',\n\taal = 'Afade',\n\tab = 'Abkhazian',\n\tabe = 'Abnaki Western',\n\tabq = 'Abaza',\n\tabu = 'Abure',\n\tace = 'Achinese',\n\tacf = 'Saint Lucian Creole French',\n\tacn = 'Achang',\n\tact = 'Achterhooks',\n\tacv = 'Achumawi',\n\tadj = 'Adioukrou',\n\tadt = 'Adynyamathanha',\n\tady = 'Adyghe; Adygei',\n\taf = 'Afrikaans',\n\tagq = 'Aghem',\n\tagr = 'Aguaruna',\n\tagu = 'Aguacateco',\n\tagx = 'Aghul',\n\taii = 'Assyrian Neo-Aramaic',\n\tain = 'Ainu (Japan)',\n\takk = 'Akkadian',\n\takl = 'Aklanon',\n\taku = 'Akum',\n\takz = 'Alabama',\n\talc = 'Qawasqar',\n\tale = 'Aleut',\n\talg = 'Algonquian languages',\n\taln = 'Albanian (Gheg)',\n\talq = 'Algonquin',\n\tals = 'Albanian (Tosk)',\n\talt = 'Altai (Southern)',\n\tam = 'Amharic',\n\tame = 'Yanesha',\n\tamw = 'Western Neo-Aramaic',\n\tang = 'Old English',\n\tapj = 'Apache (Jicarilla)',\n\tapw = 'Apache (Western)',\n\tar = 'Arabic',\n\tarb = 'Arabic (standard)',\n\tarc = 'Aramaic',\n\tari = 'Arikara',\n\tarn = 'Araucanian',\n\tarp = 'Arapaho',\n\tasb = 'Assiniboine',\n\tast = 'Asturian',\n\tas = 'Assamese',\n\tath = 'Athapascan languages',\n\tatj = 'Atikamekw',\n\tauc = 'Waorani',\n\tavk = 'Kotava',\n\tawa = 'Awadhi',\n\tay = 'Aymara',\n\taz = 'Azerbaijani',\n\tba = 'Bashkir',\n\tbal = 'Baluchi',\n\tban = 'Balinese',\n\tbar = 'Bavarian',\n\tbas = 'Basa (Cameroon)',\n\tbcc = 'Balochi Southern',\n\tbcr = 'Babine',\n\tbdj = 'Bai',\n\tbe = 'Byelorussian (Belarusian)',\n\tbea = 'Beaver',\n\tbej = 'Beja',\n\tbem = 'Bemba (Zambia)',\n\tbew = 'Betawi',\n\tbfq = 'Badaga',\n\tbft = 'Balti',\n\tbg = 'Bulgarian',\n\tbh = 'Bihari',\n\tbhb = 'Bhili',\n\tbho = 'Bhojpuri',\n\tbi = 'Bislama',\n\tbik = 'Bikol',\n\tbin = 'Bini',\n\tbla = 'Siksika',\n\tbn = 'Bengali (Bangla)',\n\tbo = 'Tibetan',\n\tbpy = 'Bishnupriya Manipuri',\n\tbr = 'Breton',\n\tbua = 'Buriat',\n\tbug = 'Buginese',\n\tbT = 'Arabic Tunisian Spoken',\n\tca = 'Catalan',\n\tcaa = 'Chor',\n\tcad = 'Caddo',\n\tcaf = 'Carrier Southern',\n\tcay = 'Cayuga',\n\tcdo = 'Min Dong Chinese',\n\tceb = 'Cebuano',\n\tchc = 'Catawba',\n\tchg = 'Chagatai',\n\tchm = 'Mari (Russia)',\n\tchn = 'Chinook jargon',\n\tcho = 'Choctaw',\n\tchp = 'Chipewyan',\n\tchr = 'Cherokee',\n\tchy = 'Cheyenne',\n\tcic = 'Chickasaw',\n\tcim = 'Cimbrian',\n\tciw = 'Chippewa',\n\tcjs = 'Shor',\n\tcjy = 'Jinyu Chinese',\n\tckt = 'Chukot',\n\tclc = 'Chilcotin',\n\tcld = 'Chaldean Neo-Aramaic',\n\tclm = 'Clallam Klallam',\n\tcmn = 'Mandarin Chinese',\n\tco = 'Corsican',\n\tcoc = 'Cocopa',\n\tcoj = 'Cochimi',\n\tcom = 'Comanche',\n\tcoo = 'Comox',\n\tcop = 'Coptic',\n\tcr = 'Cree',\n\tcrg = 'Michif',\n\tcrh = 'Crimean Tatar',\n\tcrx = 'Carrier',\n\tcs = 'Czech',\n\tcsb = 'Kashubian',\n\tcup = 'Cupeo',\n\tcy = 'Welsh',\n\tczh = 'Huizhou Chinese',\n\tda = 'Danish',\n\tdak = 'Dakota',\n\tdar = 'Dargwa',\n\tddo = 'Tsez',\n\tde = 'German',\n\tdel = 'Delaware',\n\tdgr = 'Dogrib',\n\tdhv = 'Dehu',\n\tdih = 'Kumiai',\n\tdin = 'Dinka',\n\tdje = 'Zarma',\n\tdlg = 'Dolgan',\n\tdng = 'Dungan',\n\tdoh = 'Dong',\n\tdoi = 'Dogri (generic)',\n\tdsb = 'Sorbian Lower',\n\tdua = 'Duala',\n\tdyu = 'Dyula',\n\tdz = 'Bhutani',\n\teee = 'E',\n\tegl = 'Emilian',\n\tel = 'Greek',\n\ten = 'English',\n\tenm = 'English Middle (1100-1500)',\n\tenGb = 'English (British)',\n\tenUs = 'English (American)',\n\teo = 'Esperanto',\n\tes = 'Spanish',\n\tesXl = 'Spanish (Latin America)',\n\tet = 'Estonian',\n\teu = 'Basque',\n\teve = 'Even',\n\tevn = 'Evenki',\n\tfa = 'Farsi',\n\tfan = 'Fang (Equatorial Guinea)',\n\tfax = 'Fala',\n\tfi = 'Finnish',\n\tfil = 'Filipino',\n\tfit = 'Finnish (Tornedalen)',\n\tfj = 'Fiji',\n\tfo = 'Faeroese',\n\tfon = 'Fon',\n\tfr = 'French',\n\tfrk = 'Frankish',\n\tfrp = 'Franco-Prove',\n\tfrr = 'Frisian Northern',\n\tfrCa = 'French (Canada)',\n\tfuc = 'Pulaar',\n\tfur = 'Friulian',\n\tfvr = 'Fur',\n\tfy = 'Frisian',\n\tga = 'Irish',\n\tgaa = 'Ga',\n\tgag = 'Gagauz',\n\tgan = 'Gan',\n\tgbz = 'Dari Zoroastrian',\n\tgd = 'Gaelic (Scottish)',\n\tgdm = 'Laal',\n\tgeh = 'German Hutterite',\n\tgez = 'Geez',\n\tgil = 'Gilbertese',\n\tgit = 'Gitxsan',\n\tgl = 'Galician',\n\tgld = 'Nanai',\n\tgn = 'Guarani',\n\tgom = 'Konkani Goan',\n\tgrc = 'Greek Ancient (to 1453)',\n\tgsw = 'Swiss German Alemannic Alsatian',\n\tgu = 'Gujarati',\n\tgv = 'Gaelic (Manx)',\n\tgwi = 'Gwichin',\n\tha = 'Hausa',\n\thaa = 'Han',\n\thai = 'Haida',\n\thak = 'Hakka',\n\thas = 'Haisla',\n\thaw = 'Hawaiian',\n\the = 'Hebrew',\n\thei = 'Heiltsuk',\n\thi = 'Hindi',\n\thid = 'Hidatsa',\n\thil = 'Hiligaynon',\n\thkk = 'Hokkien',\n\thmn = 'Hmong',\n\thni = 'Hani',\n\thnn = 'Hainanese',\n\thop = 'Hopi',\n\thr = 'Croatian',\n\thsb = 'Sorbian Upper',\n\thu = 'Hungarian',\n\thur = 'Halkomelem',\n\thy = 'Armenian',\n\tia = 'Interlingua',\n\tid = 'Indonesian',\n\tie = 'Interlingue',\n\tik = 'Inupiak',\n\tikt = 'Inuinnaqtun',\n\tilo = 'Iloko',\n\tin = 'Indonesian',\n\tinh = 'Ingush',\n\tiro = 'Iroquoian languages',\n\tis = 'Icelandic',\n\tit = 'Italian',\n\titl = 'Itelmen',\n\tiu = 'Inuktitut',\n\tiw = 'Hebrew',\n\tizh = 'Ingrian',\n\tja = 'Japanese',\n\tjbo = 'Lojban',\n\tjct = 'Judeo-Crimean Tatar',\n\tjge = 'Judeo-Georgian',\n\tji = 'Yiddish',\n\tjut = 'Jutish',\n\tjv = 'Javanese',\n\tka = 'Georgian',\n\tkaa = 'Karakalpak',\n\tkab = 'Kabyle',\n\tkaj = 'Jju',\n\tkap = 'Bezhta',\n\tkaw = 'Kawi',\n\tkbd = 'Kabardian',\n\tkca = 'Khanty',\n\tkdr = 'Karaim',\n\tkea = 'Kabuverdianu',\n\tkfa = 'Kodava',\n\tkfr = 'Kachchi',\n\tkha = 'Khasi',\n\tkic = 'Kickapoo',\n\tkim = 'Karagas',\n\tkio = 'Kiowa',\n\tkjh = 'Khakas',\n\tkjv = 'Kaikavian literary language (Kajkavian)',\n\tkk = 'Kazakh',\n\tkkz = 'Kaska',\n\tkl = 'Greenlandic',\n\tklj = 'Khalaj Turkic',\n\tkm = 'Cambodian',\n\tkn = 'Kannada',\n\tknn = 'Konkani (specific)',\n\tko = 'Korean',\n\tkoi = 'Komi-Permyak',\n\tkok = 'Konkani (generic)',\n\tkos = 'Kosraean',\n\tkpe = 'Kpelle',\n\tkpo = 'Ikposo',\n\tkpy = 'Koryak',\n\tkrc = 'Karachay-Balkar',\n\tkrl = 'Karelian',\n\tks = 'Kashmiri',\n\tksh = 'Colognian',\n\tksk = 'Kansa',\n\tku = 'Kurdish',\n\tkum = 'Kumyk',\n\tkut = 'Kutenai',\n\tkwk = 'Kwakiutl',\n\tkxm = 'Khmer Northern',\n\tky = 'Kirghiz',\n\tla = 'Latin',\n\tlad = 'Ladino',\n\tlah = 'Lahnda',\n\tlb = 'Luxembourgish (Letzeburgesch)',\n\tlbe = 'Lak',\n\tlez = 'Lezghian',\n\tlhu = 'Lahu',\n\tli = 'Limburgish ( Limburger)',\n\tlif = 'Limbu',\n\tlij = 'Ligurian',\n\tlil = 'Lillooet',\n\tlki = 'Laki',\n\tlkt = 'Lakota',\n\tlld = 'Ladin',\n\tlmo = 'Lombard',\n\tln = 'Lingala',\n\tlo = 'Laothian',\n\tlom = 'Loma (Liberia)',\n\tloz = 'Lozi',\n\tlt = 'Lithuanian',\n\tlua = 'Luba-Lulua',\n\tlud = 'Ludian',\n\tlun = 'Lunda',\n\tluo = 'Luo (Kenya and Tanzania)',\n\tluq = 'Lucumi',\n\tlut = 'Lushootseed',\n\tlv = 'Latvian (Lettish)',\n\tlzz = 'Laz',\n\tmad = 'Madurese',\n\tmag = 'Magahi',\n\tmai = 'Maithili',\n\tmas = 'Masai',\n\tmdf = 'Moksha',\n\tmen = 'Mende (Sierra Leone)',\n\tmez = 'Menominee',\n\tmfe = 'Morisyen',\n\tmfy = 'Mayo',\n\tmg = 'Malagasy',\n\tmhq = 'Mandan',\n\tmi = 'Maori',\n\tmic = 'Micmac',\n\tmid = 'Mandaic',\n\tmin = 'Minangkabau',\n\tmk = 'Macedonian',\n\tml = 'Malayalam',\n\tmn = 'Mongolian',\n\tmnc = 'Manchu',\n\tmni = 'Meitei',\n\tmnp = 'Min Bei Chinese',\n\tmns = 'Mansi',\n\tmnw = 'Mon',\n\tmo = 'Moldavian',\n\tmoe = 'Montagnais',\n\tmoh = 'Mohawk',\n\tmos = 'Mossi',\n\tmr = 'Marathi',\n\tmrw = 'Maranao',\n\tms = 'Malay',\n\tmt = 'Maltese',\n\tmtq = 'Muong',\n\tmu = 'Multilingual',\n\tmus = 'Creek',\n\tmwl = 'Mirandese',\n\tmwr = 'Marwari',\n\tmxi = 'Mozarabic',\n\tmy = 'Burmese',\n\tmyp = 'Pirah',\n\tmyv = 'Erzya',\n\tmzb = 'Tumzabt',\n\tna = 'Nauru',\n\tnap = 'Neapolitan',\n\tnaq = 'Nama (Namibia)',\n\tncg = 'Nisgaa',\n\tnds = 'Low German Low Saxon',\n\tne = 'Nepali',\n\tnew = 'Newari Nepal Bhasa',\n\tnio = 'Nganasan',\n\tniu = 'Niuean',\n\tniv = 'Gilyak Nivkh',\n\tnl = 'Dutch',\n\tno = 'Norwegian',\n\tnod = 'Thai (Northern)',\n\tnog = 'Nogai',\n\tnon = 'Norse Old',\n\tnov = 'Novial',\n\tnsk = 'Naskapi',\n\tnso = 'Northern Sotho Pedi Sepedi',\n\tnym = 'Nyamwezi',\n\tnyo = 'Nyoro',\n\tnys = 'Nyungah',\n\toc = 'Occitan',\n\toj = 'Ojibwe, Ojibwa',\n\tojb = 'Ojibwa Northwestern',\n\tojc = 'Ojibwa Central',\n\tojg = 'Ojibwa Eastern',\n\tojs = 'Ojibwa Severn',\n\tojw = 'Ojibwa Western',\n\toka = 'Okanagan',\n\tom = 'Oromo (Afan, Galla)',\n\tone = 'Oneida',\n\tono = 'Onondaga',\n\tood = 'Tohono Oodham',\n\tor = 'Oriya',\n\tota = 'Turkish Ottoman',\n\totw = 'Ottawa',\n\tpa = 'Punjabi',\n\tpag = 'Pangasinan',\n\tpam = 'Pampanga',\n\tpap = 'Papiamento',\n\tpau = 'Palauan',\n\tpcd = 'Picard',\n\tpdc = 'German Pennsylvania',\n\tpdt = 'Plautdietsch',\n\tpes = 'Western Farsi',\n\tpfl = 'Pfaelzisch',\n\tpih = 'Pitcairn-Norfolk',\n\tpl = 'Polish',\n\tpms = 'Piedmontese',\n\tpnt = 'Pontic',\n\tpot = 'Potawatomi',\n\tppi = 'Paipai',\n\tpqm = 'Malecite-Passamaquoddy',\n\tprd = 'Dari (Persian)',\n\tprg = 'Prussian',\n\tprp = 'Persian',\n\tprs = 'Persian (Dari)',\n\tps = 'Pashto (Pushto)',\n\tpt = 'Portuguese',\n\tptBr = 'Portuguese (Brazil)',\n\tqtz = 'Reserved for local use.',\n\tqu = 'Quechua',\n\tquc = 'Quich Central',\n\tqxq = 'Qashqai',\n\trap = 'Rapanui',\n\trar = 'Rarotongan',\n\trcf = 'Runion Creole French',\n\trgn = 'Romagnol',\n\trm = 'Rhaeto-Romance',\n\trme = 'Angloromani',\n\trmf = 'Romani Kalo Finnish',\n\trmo = 'Romani Sinte',\n\trn = 'Kirundi (Rundi)',\n\tro = 'Romanian',\n\trom = 'Romany',\n\tru = 'Russian',\n\true = 'Rusyn',\n\truo = 'Romanian Istro',\n\trup = 'Aromanian',\n\truq = 'Romanian Megleno',\n\trw = 'Kinyarwanda (Ruanda)',\n\tryu = 'Okinawan Central',\n\tsa = 'Sanskrit',\n\tsah = 'Sakha',\n\tsal = 'Salishan languages',\n\tsam = 'Aramaic Samaritan',\n\tsat = 'Santali',\n\tscn = 'Sicilian',\n\tsco = 'Scots',\n\tscs = 'Slavey North',\n\tsd = 'Sindhi',\n\tsdc = 'Sardinian Sassarese',\n\tsec = 'Sechelt',\n\tsee = 'Seneca',\n\tsei = 'Seri',\n\tsek = 'Sekani',\n\tsel = 'Selkup',\n\tsg = 'Sangro',\n\tsh = 'Serbo-Croatian',\n\tshh = 'Shoshoni',\n\tshi = 'Tachelhit',\n\tshs = 'Shuswap',\n\tshy = 'Tachawit',\n\tsi = 'Sinhalese',\n\tsid = 'Sidamo',\n\tsjd = 'Sami Kildin',\n\tsjw = 'Shawnee',\n\tsk = 'Slovak',\n\tsl = 'Slovenian',\n\tslr = 'Salar',\n\tsm = 'Samoan',\n\tsma = 'Southern Sami',\n\tsmi = 'Sami languages',\n\tsmj = 'Lule Sami',\n\tsmn = 'Inari Sami',\n\tsms = 'Skolt Sami',\n\tsn = 'Shona',\n\tsnk = 'Soninke',\n\tso = 'Somali',\n\tsq = 'Albanian',\n\tsr = 'Serbian',\n\tsrm = 'Saramaccan',\n\tsrn = 'Sranan',\n\tss = 'Siswati',\n\tst = 'Sesotho',\n\tsto = 'Stoney',\n\tstq = 'Saterland Frisian',\n\tstr = 'Salish Straits',\n\tsu = 'Sundanese',\n\tsux = 'Sumerian',\n\tsv = 'Swedish',\n\tsva = 'Svan',\n\tsw = 'Swahili (Kiswahili)',\n\tswb = 'Comorian',\n\tswg = 'Swabian',\n\tswl = 'Swedish Sign Language',\n\tsxu = 'Saxon Upper',\n\tsyr = 'Syriac',\n\tszl = 'Silesian',\n\tta = 'Tamil',\n\ttab = 'Tabassaran',\n\ttaq = 'Tamasheq',\n\ttar = 'Tarahumara Central',\n\ttbw = 'Tagbanwa',\n\ttce = 'Southern Tutchone',\n\ttcx = 'Toda',\n\ttcy = 'Tulu',\n\ttdd = 'Tai Na',\n\tte = 'Telugu',\n\tteo = 'Teo Chew',\n\ttet = 'Tetum',\n\ttg = 'Tajik',\n\ttgx = 'Tagish',\n\tth = 'Thai',\n\tthp = 'Thompson',\n\ttht = 'Tahltan',\n\tti = 'Tigrinya',\n\ttig = 'Tigre',\n\ttk = 'Turkmen',\n\ttl = 'Tagalog',\n\ttlh = 'Klingon tlhIngan-Hol',\n\ttli = 'Tlingit',\n\ttly = 'Talysh',\n\ttn = 'Setswana',\n\tto = 'Tonga',\n\ttog = 'Tonga (Nyasa)',\n\ttpi = 'Tok Pisin',\n\ttpn = 'Tupinamb',\n\ttr = 'Turkish',\n\ttrv = 'Seediq',\n\tts = 'Tsonga',\n\ttsi = 'Tsimshian',\n\ttt = 'Tatar',\n\tttq = 'Tamajaq Tawallammat',\n\ttts = 'Thai Northeastern',\n\tttt = 'Tat Muslim',\n\ttum = 'Tumbuka',\n\ttus = 'Tuscarora',\n\ttuv = 'Turkana',\n\ttvl = 'Tuvalu',\n\ttw = 'Twi',\n\ttyv = 'Tuvinian',\n\ttzm = 'Tamazight Central Atlas',\n\tuby = 'Ubykh',\n\tudi = 'Udi',\n\tudm = 'Udmurt',\n\tug = 'Uighur',\n\tuk = 'Ukrainian',\n\tun = 'Undefined',\n\tur = 'Urdu',\n\tuum = 'Urum',\n\tuz = 'Uzbek',\n\tvec = 'Venetian',\n\tvep = 'Veps',\n\tvi = 'Vietnamese',\n\tvo = 'Volapuk',\n\tvor = 'Voro',\n\tvot = 'Votic',\n\tvro = 'Vro',\n\twar = 'Waray (Philippines)',\n\twiy = 'Wiyot',\n\two = 'Wolof',\n\twuu = 'Wu Chinese',\n\twym = 'Wymysorys',\n\txal = 'Kalmyk Oirat',\n\txh = 'Xhosa',\n\txmf = 'Mingrelian',\n\txsl = 'Slavey South',\n\txsv = 'Sudovian',\n\tyi = 'Yiddish',\n\tyo = 'Yoruba',\n\tyue = 'Cantonese',\n\tzai = 'Zapotec Isthmus',\n\tzh = 'Chinese',\n\tzhTw = 'Taiwanese Mandarin',\n\tzu = 'Zulu',\n\tzxx = 'No linguistic content'\n}","\n\nexport enum KalturaLanguageCode {\n aa = 'aa',\n\tab = 'ab',\n\taf = 'af',\n\talg = 'alg',\n\tam = 'am',\n\tar = 'ar',\n\tas = 'as',\n\tath = 'ath',\n\tay = 'ay',\n\taz = 'az',\n\tba = 'ba',\n\tbe = 'be',\n\tbg = 'bg',\n\tbh = 'bh',\n\tbi = 'bi',\n\tbla = 'bla',\n\tbn = 'bn',\n\tbo = 'bo',\n\tbr = 'br',\n\tca = 'ca',\n\tco = 'co',\n\tcr = 'cr',\n\tcrg = 'crg',\n\tcs = 'cs',\n\tcy = 'cy',\n\tda = 'da',\n\tde = 'de',\n\tdz = 'dz',\n\tel = 'el',\n\ten = 'en',\n\tenGb = 'en_gb',\n\tenUs = 'en_us',\n\teo = 'eo',\n\tes = 'es',\n\tesXl = 'es_xl',\n\tet = 'et',\n\teu = 'eu',\n\tfa = 'fa',\n\tfi = 'fi',\n\tfj = 'fj',\n\tfo = 'fo',\n\tfr = 'fr',\n\tfrCa = 'fr_ca',\n\tfy = 'fy',\n\tga = 'ga',\n\tgd = 'gd',\n\tgl = 'gl',\n\tgn = 'gn',\n\tgu = 'gu',\n\tgv = 'gv',\n\tha = 'ha',\n\the = 'he',\n\thi = 'hi',\n\thr = 'hr',\n\thu = 'hu',\n\thy = 'hy',\n\tia = 'ia',\n\tid = 'id',\n\tie = 'ie',\n\tik = 'ik',\n\tikt = 'ikt',\n\tin = 'in',\n\tiro = 'iro',\n\tis = 'is',\n\tit = 'it',\n\tiu = 'iu',\n\tiw = 'iw',\n\tja = 'ja',\n\tji = 'ji',\n\tjv = 'jv',\n\tka = 'ka',\n\tkk = 'kk',\n\tkl = 'kl',\n\tkm = 'km',\n\tkn = 'kn',\n\tko = 'ko',\n\tks = 'ks',\n\tku = 'ku',\n\tky = 'ky',\n\tla = 'la',\n\tlb = 'lb',\n\tli = 'li',\n\tln = 'ln',\n\tlo = 'lo',\n\tlt = 'lt',\n\tlv = 'lv',\n\tmg = 'mg',\n\tmi = 'mi',\n\tmic = 'mic',\n\tmk = 'mk',\n\tml = 'ml',\n\tmn = 'mn',\n\tmo = 'mo',\n\tmoe = 'moe',\n\tmr = 'mr',\n\tms = 'ms',\n\tmt = 'mt',\n\tmu = 'mu',\n\tmy = 'my',\n\tna = 'na',\n\tne = 'ne',\n\tnl = 'nl',\n\tno = 'no',\n\toc = 'oc',\n\toj = 'oj',\n\tojs = 'ojs',\n\tojw = 'ojw',\n\toka = 'oka',\n\tom = 'om',\n\tor = 'or',\n\tpa = 'pa',\n\tpl = 'pl',\n\tps = 'ps',\n\tpt = 'pt',\n\tptBr = 'pt_br',\n\tqu = 'qu',\n\trm = 'rm',\n\trn = 'rn',\n\tro = 'ro',\n\tru = 'ru',\n\trw = 'rw',\n\tsa = 'sa',\n\tsal = 'sal',\n\tsd = 'sd',\n\tsg = 'sg',\n\tsh = 'sh',\n\tsi = 'si',\n\tsk = 'sk',\n\tsl = 'sl',\n\tsm = 'sm',\n\tsmi = 'smi',\n\tsn = 'sn',\n\tso = 'so',\n\tsq = 'sq',\n\tsr = 'sr',\n\tss = 'ss',\n\tst = 'st',\n\tsu = 'su',\n\tsv = 'sv',\n\tsw = 'sw',\n\tta = 'ta',\n\ttce = 'tce',\n\tte = 'te',\n\ttg = 'tg',\n\tth = 'th',\n\tti = 'ti',\n\ttk = 'tk',\n\ttl = 'tl',\n\ttn = 'tn',\n\tto = 'to',\n\ttr = 'tr',\n\tts = 'ts',\n\ttt = 'tt',\n\ttw = 'tw',\n\tug = 'ug',\n\tuk = 'uk',\n\tun = 'un',\n\tur = 'ur',\n\tuz = 'uz',\n\tvi = 'vi',\n\tvo = 'vo',\n\two = 'wo',\n\txh = 'xh',\n\tyi = 'yi',\n\tyo = 'yo',\n\tzh = 'zh',\n\tzhTw = 'zh_tw',\n\tzu = 'zu',\n\tzxx = 'zxx'\n}","\n\nexport enum KalturaNullableBoolean {\n falseValue=0,\n\tnullValue=-1,\n\ttrueValue=1\n}","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaAssetArgs extends KalturaObjectBaseArgs {\n tags? : string;\n\tfileExt? : string;\n\tpartnerData? : string;\n\tpartnerDescription? : string;\n\tactualSourceAssetParamsIds? : string;\n}\n\n\nexport class KalturaAsset extends KalturaObjectBase {\n\n readonly id : string;\n\treadonly entryId : string;\n\treadonly partnerId : number;\n\treadonly version : number;\n\treadonly size : number;\n\ttags : string;\n\tfileExt : string;\n\treadonly createdAt : Date;\n\treadonly updatedAt : Date;\n\treadonly deletedAt : Date;\n\treadonly description : string;\n\tpartnerData : string;\n\tpartnerDescription : string;\n\tactualSourceAssetParamsIds : string;\n\treadonly sizeInBytes : number;\n\n constructor(data? : KalturaAssetArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaAsset' },\n\t\t\t\tid : { type : 's', readOnly : true },\n\t\t\t\tentryId : { type : 's', readOnly : true },\n\t\t\t\tpartnerId : { type : 'n', readOnly : true },\n\t\t\t\tversion : { type : 'n', readOnly : true },\n\t\t\t\tsize : { type : 'n', readOnly : true },\n\t\t\t\ttags : { type : 's' },\n\t\t\t\tfileExt : { type : 's' },\n\t\t\t\tcreatedAt : { type : 'd', readOnly : true },\n\t\t\t\tupdatedAt : { type : 'd', readOnly : true },\n\t\t\t\tdeletedAt : { type : 'd', readOnly : true },\n\t\t\t\tdescription : { type : 's', readOnly : true },\n\t\t\t\tpartnerData : { type : 's' },\n\t\t\t\tpartnerDescription : { type : 's' },\n\t\t\t\tactualSourceAssetParamsIds : { type : 's' },\n\t\t\t\tsizeInBytes : { type : 'n', readOnly : true }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaAsset',KalturaAsset);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaListResponseArgs extends KalturaObjectBaseArgs {\n \n}\n\n\nexport class KalturaListResponse extends KalturaObjectBase {\n\n readonly totalCount : number;\n\n constructor(data? : KalturaListResponseArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaListResponse' },\n\t\t\t\ttotalCount : { type : 'n', readOnly : true }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaListResponse',KalturaListResponse);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaPager, KalturaPagerArgs } from './KalturaPager';\n\nexport interface KalturaFilterPagerArgs extends KalturaPagerArgs {\n \n}\n\n\nexport class KalturaFilterPager extends KalturaPager {\n\n \n\n constructor(data? : KalturaFilterPagerArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaFilterPager' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaFilterPager',KalturaFilterPager);\n","\nimport { KalturaObjectMetadata } from '../kaltura-object-base';\nimport { KalturaTypesFactory } from '../kaltura-types-factory';\nimport { KalturaObjectBase, KalturaObjectBaseArgs } from '../kaltura-object-base';\n\nexport interface KalturaPagerArgs extends KalturaObjectBaseArgs {\n pageSize? : number;\n\tpageIndex? : number;\n}\n\n\nexport class KalturaPager extends KalturaObjectBase {\n\n pageSize : number;\n\tpageIndex : number;\n\n constructor(data? : KalturaPagerArgs)\n {\n super(data);\n }\n\n protected _getMetadata() : KalturaObjectMetadata\n {\n const result = super._getMetadata();\n Object.assign(\n result.properties,\n {\n objectType : { type : 'c', default : 'KalturaPager' },\n\t\t\t\tpageSize : { type : 'n' },\n\t\t\t\tpageIndex : { type : 'n' }\n }\n );\n return result;\n }\n}\n\nKalturaTypesFactory.registerType('KalturaPager',KalturaPager);\n","export * from \"./transcript\";\n","import { h, Component } from \"preact\";\nimport { KeyboardKeys } from \"@playkit-js-contrib/ui\";\nimport * as styles from \"./transcript.scss\";\nimport { getContribLogger, CuepointEngine, debounce } from \"@playkit-js-contrib/common\";\nimport { Spinner } from \"../spinner\";\nimport { CaptionItem } from \"../../utils\";\nimport { Search } from \"../search\";\nimport { CaptionList } from \"../caption-list\";\n\nexport interface TranscriptProps {\n onSeek(time: number): void;\n onClose: () => void;\n onRetryLoad: () => void;\n isLoading: boolean;\n hasError: boolean;\n captions: CaptionItem[];\n showTime: boolean;\n currentTime: number;\n scrollOffset: number;\n searchDebounceTimeout: number;\n searchNextPrevDebounceTimeout: number;\n videoDuration: number;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n}\n\ninterface TranscriptState {\n isAutoScrollEnabled: boolean;\n search: string;\n activeSearchIndex: number;\n searchMap: Record<number, Record<string, number>>;\n totalSearchResults: number;\n highlightedMap: Record<number, true>;\n searchLength: number;\n widgetWidth: number;\n}\n\nconst initialSearch = {\n search: \"\",\n activeSearchIndex: 1,\n searchMap: {},\n totalSearchResults: 0,\n searchLength: 0\n};\n\nconst logger = getContribLogger({\n class: \"Transcript\",\n module: \"transcript-plugin\"\n});\n\nconst SEARCHBAR_HEIGHT = 38; // height of search bar with margins\n\nexport class Transcript extends Component<TranscriptProps, TranscriptState> {\n private _transcriptListRef: HTMLElement | null = null;\n private _captionListRef: any = null;\n private _skipTranscriptButtonRef: HTMLDivElement | null = null;\n private _autoscrollButtonRef: HTMLDivElement | null = null;\n private _preventScrollEvent: boolean = false;\n private _scrollToSearchMatchEnabled: boolean = false;\n private _widgetRootRef: HTMLElement | null = null;\n private _engine: CuepointEngine<CaptionItem> | null = null;\n\n private _widgetHeight: number = 0;\n private _topAutoscrollEdge: number = 0;\n private _bottomAutoscrollEdge: number = 0;\n private _thirdOfWidgetHeight: number = 0;\n\n private _log = (msg: string, method: string) => {\n logger.trace(msg, {\n method: method || \"Method not defined\"\n });\n };\n private _silence = false;\n state: TranscriptState = {\n isAutoScrollEnabled: true,\n highlightedMap: {},\n widgetWidth: 0,\n ...initialSearch\n };\n\n componentDidMount(): void {\n this._log(\"Creating engine\", \"componentDidMount\");\n this._createEngine();\n }\n\n componentDidUpdate(\n previousProps: Readonly<TranscriptProps>,\n previousState: Readonly<TranscriptState>\n ): void {\n const { captions, currentTime } = this.props;\n const { search } = this.state;\n if (previousProps.captions !== captions) {\n this._log(\"Re-creating engine\", \"componentDidUpdate\");\n this._createEngine();\n this.setState({ search: \"\", isAutoScrollEnabled: true });\n }\n\n if (previousProps.currentTime !== currentTime) {\n this._syncVisibleTranscript();\n }\n\n if (previousState.search !== search) {\n this._debounced.findSearchMatches();\n }\n\n this._setWidgetSize();\n }\n\n componentWillUnmount(): void {\n this._log(\"Removing engine\", \"componentWillUnmount\");\n this._engine = null;\n }\n\n private _createEngine = () => {\n const { captions } = this.props;\n if (!captions || captions.length === 0) {\n this._engine = null;\n return;\n }\n this._engine = new CuepointEngine<CaptionItem>(captions);\n this._syncVisibleTranscript();\n };\n\n private _syncVisibleTranscript = (forceSnapshot = false) => {\n const { currentTime } = this.props;\n this.setState((state: TranscriptState) => {\n if (!this._engine) {\n return {\n highlightedMap: {}\n };\n }\n\n const transcriptUpdate = this._engine.updateTime(currentTime, forceSnapshot);\n if (transcriptUpdate.snapshot) {\n this._silence = false;\n const highlightedMap = transcriptUpdate.snapshot.reduce((acc, item) => {\n return { ...acc, [item.id]: true };\n }, {});\n return {\n highlightedMap\n };\n }\n\n if (!transcriptUpdate.delta) {\n return state;\n }\n\n const { show, hide } = transcriptUpdate.delta;\n\n if (show.length === 0 && hide.length > 0) {\n this._silence = true;\n return state;\n }\n\n if (show.length > 0 || hide.length > 0) {\n let newHighlightedMap: Record<number, true> = {};\n if (this._silence) {\n this._silence = false;\n } else {\n newHighlightedMap = { ...state.highlightedMap };\n }\n show.forEach((caption: CaptionItem) => {\n newHighlightedMap[caption.id] = true;\n });\n\n hide.forEach((caption: CaptionItem) => {\n delete newHighlightedMap[caption.id];\n });\n\n return {\n highlightedMap: newHighlightedMap\n };\n }\n return state;\n });\n };\n\n private _enableAutoScroll = (event: any) => {\n event.preventDefault();\n if (this.state.isAutoScrollEnabled) {\n return;\n }\n if (\n event.type === \"click\" ||\n event.keyCode === KeyboardKeys.Space ||\n event.keyCode === KeyboardKeys.Enter\n ) {\n this._preventScrollEvent = true;\n this.setState({\n isAutoScrollEnabled: true\n });\n if (event.type !== \"click\") {\n this._skipTranscriptButtonRef?.focus();\n }\n }\n };\n\n private _renderScrollToButton = () => {\n const { isAutoScrollEnabled } = this.state;\n return (\n <div\n role=\"button\"\n className={`${styles.autoscrollButton} ${isAutoScrollEnabled ? \"\" : styles.autoscrollButtonVisible}`}\n onClick={this._enableAutoScroll}\n onKeyDown={this._enableAutoScroll}\n tabIndex={isAutoScrollEnabled ? -1 : 1}\n ref={node => {\n this._autoscrollButtonRef = node;\n }}\n />\n );\n };\n\n private _onSearch = (search: string) => {\n this.setState({ search });\n };\n\n private _findSearchMatches = () => {\n this.setState((state: TranscriptState) => {\n if (!state.search) {\n return { ...initialSearch };\n }\n let index = 0;\n const loSearch = state.search.toLowerCase();\n const searchMap: Record<number, Record<number, number>> = {};\n this.props.captions.forEach((caption: CaptionItem) => {\n const text = caption.text.toLowerCase();\n const regex = new RegExp(loSearch, \"gi\");\n let result;\n const indices = [];\n while ((result = regex.exec(text))) {\n indices.push(result.index);\n }\n indices.forEach((i: number) => {\n index++;\n searchMap[caption.id] = { ...searchMap[caption.id], [index]: i };\n });\n });\n return {\n searchMap,\n totalSearchResults: index,\n activeSearchIndex: 1,\n searchLength: loSearch.length\n };\n });\n };\n\n private _setActiveSearchIndex = (index: number) => {\n this._scrollToSearchMatchEnabled = true;\n this.setState({\n activeSearchIndex: index,\n isAutoScrollEnabled: false\n });\n };\n\n private _getHeaderStyles = (): string => {\n const { widgetWidth } = this.state;\n if (widgetWidth >= 692) {\n return \"\";\n }\n if (widgetWidth >= 649) {\n return styles.mediumWidth;\n }\n return styles.smallWidth;\n }\n\n private _renderHeader = () => {\n const { toggledWithEnter, kitchenSinkActive } = this.props;\n const { search, activeSearchIndex, totalSearchResults } = this.state;\n return (\n <div className={[styles.header, this._getHeaderStyles()].join(' ')}>\n <Search\n onChange={this._onSearch}\n onSearchIndexChange={this._debounced.onActiveSearchIndexChange}\n value={search}\n activeSearchIndex={activeSearchIndex}\n totalSearchResults={totalSearchResults}\n toggledWithEnter={toggledWithEnter}\n kitchenSinkActive={kitchenSinkActive}\n />\n </div>\n );\n };\n\n private _handleKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === KeyboardKeys.Tab && !event.shiftKey) {\n this.setState({\n isAutoScrollEnabled: false\n });\n const captionRef = this._captionListRef?._currentCaptionRef?._hotspotRef;\n if (captionRef) {\n event.preventDefault();\n captionRef.focus();\n }\n } else if (\n event.keyCode === KeyboardKeys.Enter ||\n event.keyCode === KeyboardKeys.Space\n ) {\n event.preventDefault();\n this._autoscrollButtonRef?.focus();\n }\n };\n\n private _renderSkipTranscriptButton = () => {\n return (\n <div\n role=\"button\"\n ref={(node) => {\n this._skipTranscriptButtonRef = node;\n }}\n className={styles.skipTranscriptButton}\n onKeyDown={this._handleKeyDown}\n tabIndex={1}\n >\n Skip transcript\n </div>\n );\n };\n\n private _renderTranscript = () => {\n const { captions, hasError, onRetryLoad, showTime, videoDuration } = this.props;\n const {\n isAutoScrollEnabled,\n searchMap,\n activeSearchIndex,\n highlightedMap,\n searchLength\n } = this.state;\n if (!captions || !captions.length) {\n return null;\n }\n\n if (hasError) {\n return (\n <div className={styles.errorWrapper}>\n <div className={styles.errorIcon} />\n <p className={styles.errorMainText}>Whoops!</p>\n <p className={styles.errorDescriptionText}>\n Failed to get transcript, please try again\n {/* <button\n className={styles.retryButton}\n onClick={onRetryLoad}\n >\n Retry\n </button> */}\n </p>\n </div>\n );\n }\n\n const captionProps = {\n showTime,\n searchLength,\n scrollTo: this._scrollTo,\n scrollToSearchMatch: this._scrollToSearchMatch,\n videoDuration\n };\n\n return (\n <CaptionList\n ref={node => {\n this._captionListRef = node;\n }}\n highlightedMap={highlightedMap}\n captions={captions}\n seekTo={this._handleSeek}\n isAutoScrollEnabled={isAutoScrollEnabled}\n searchMap={searchMap}\n activeSearchIndex={activeSearchIndex}\n captionProps={captionProps}\n />\n );\n };\n\n private _setWidgetSize = () => {\n if (this._widgetRootRef) {\n const { width, height, top } = this._widgetRootRef.getBoundingClientRect();\n if (this.state.widgetWidth !== width) {\n this.setState({\n widgetWidth: width\n })\n }\n if (this._widgetHeight !== height) {\n this._widgetHeight = height;\n this._thirdOfWidgetHeight = height / 3;\n this._topAutoscrollEdge = Math.floor(this._thirdOfWidgetHeight + SEARCHBAR_HEIGHT);\n this._bottomAutoscrollEdge = Math.ceil((this._thirdOfWidgetHeight * 2) + SEARCHBAR_HEIGHT);\n }\n }\n }\n\n private _renderLoading = () => {\n return (\n <div className={styles.loadingWrapper}>\n <Spinner />\n </div>\n );\n };\n\n private _scrollTo = (el: HTMLElement) => {\n if (this._transcriptListRef) {\n this._preventScrollEvent = true;\n const { top } = el.getBoundingClientRect();\n if (top >= this._topAutoscrollEdge || top <= this._bottomAutoscrollEdge) {\n this._transcriptListRef.scrollTop = el.offsetTop - (this._thirdOfWidgetHeight - SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _scrollToSearchMatch = (el: HTMLElement) => {\n if (this._transcriptListRef && this._scrollToSearchMatchEnabled) {\n this._scrollToSearchMatchEnabled = false;\n this._preventScrollEvent = true;\n this._transcriptListRef.scrollTop = el.offsetTop - SEARCHBAR_HEIGHT;\n }\n }\n\n private _onScroll = () => {\n if (this._preventScrollEvent) {\n this._preventScrollEvent = false;\n return;\n }\n this.setState({\n isAutoScrollEnabled: false\n });\n };\n\n private _handleSeek = (caption: CaptionItem) => {\n const { onSeek } = this.props;\n const selection = window.getSelection();\n if (selection && selection.type !== \"Range\") {\n onSeek(caption.startTime);\n }\n };\n\n private _debounced = {\n findSearchMatches: debounce(this._findSearchMatches, this.props.searchDebounceTimeout),\n onActiveSearchIndexChange: debounce(\n this._setActiveSearchIndex,\n this.props.searchNextPrevDebounceTimeout\n )\n };\n\n private _handleEsc = (event: KeyboardEvent) => {\n if (event.keyCode === KeyboardKeys.Esc) {\n this.props.onClose();\n }\n };\n\n private _handleClose = (event: any) => {\n if (\n event.type === \"click\" ||\n event.keyCode === KeyboardKeys.Space ||\n event.keyCode === KeyboardKeys.Enter\n ) {\n this.props.onClose();\n }\n };\n\n render(props: TranscriptProps) {\n const { isLoading, kitchenSinkActive } = props;\n return (\n <div\n className={`${styles.root} ${kitchenSinkActive ? '' : styles.hidden}`}\n ref={node => {\n this._widgetRootRef = node;\n }}\n onKeyUp={this._handleEsc}\n >\n <div className={styles.globalContainer}>\n {this._renderHeader()}\n <div\n role=\"button\"\n className={styles.closeButton}\n tabIndex={1}\n onClick={this._handleClose}\n onKeyUp={this._handleClose}\n />\n {!isLoading && this._renderSkipTranscriptButton()}\n <div\n className={styles.body}\n onScroll={this._onScroll}\n ref={node => {\n this._transcriptListRef = node;\n }}\n >\n {isLoading ? this._renderLoading() : this._renderTranscript()}\n </div>\n {this._renderScrollToButton()}\n </div>\n </div>\n );\n }\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"../../assets/close.svg\"));\nvar ___CSS_LOADER_URL___1___ = urlEscape(require(\"../../assets/error.svg\"));\nvar ___CSS_LOADER_URL___2___ = urlEscape(require(\"../../assets/arrow-up.svg\"));\n\n// Module\nexports.push([module.id, \".src-components-transcript-transcript__body--lMbLS::-webkit-scrollbar{width:4px}.src-components-transcript-transcript__body--lMbLS::-webkit-scrollbar-track{background:rgba(33,33,33,0.9)}.src-components-transcript-transcript__body--lMbLS::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(255,255,255,0.3)}.src-components-transcript-transcript__hidden--1z7Bq{visibility:hidden}.src-components-transcript-transcript__root--12Kv-{display:flex;justify-content:center;padding:8px 4px 8px 0px;color:#fff;height:100%;width:100%;position:absolute;background-color:rgba(0,0,0,0.631373)}.src-components-transcript-transcript__root--12Kv- .src-components-transcript-transcript__skip-transcript-button--WNMp2{position:absolute;top:-1000px;z-index:1;display:flex;align-items:center;justify-content:center;width:120px;height:32px;border-radius:16px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.3);border:solid 1px #01accd;background-color:#222;font-size:15px;line-height:1.27;color:#fff}.src-components-transcript-transcript__root--12Kv- .src-components-transcript-transcript__skip-transcript-button--WNMp2:focus{top:46px;right:12px;outline:none !important}.src-components-transcript-transcript__global-container--2G2rz{height:100%;display:flex;flex-direction:column;max-width:599px;width:100%}.src-components-transcript-transcript__header--2YEtK{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:6px;padding-left:16px;font-size:16px}.src-components-transcript-transcript__header--2YEtK.src-components-transcript-transcript__small-width--3WUOi{padding-right:44px}.src-components-transcript-transcript__header--2YEtK.src-components-transcript-transcript__medium-width--2A1Af{padding-right:22px}.src-components-transcript-transcript__close-button--2E5N0{position:absolute;top:8px;right:0;width:32px;height:32px;min-width:32px;margin:0 8px;cursor:pointer;background-image:url(\" + ___CSS_LOADER_URL___0___ + \");background-color:transparent;border:none;padding:0}.src-components-transcript-transcript__body--lMbLS{position:relative;padding-top:1px;flex:1;overflow-y:auto;text-align:center;overflow-x:hidden}.src-components-transcript-transcript__loading-wrapper--1AgI_,.src-components-transcript-transcript__error-wrapper--1N65k{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#999}.src-components-transcript-transcript__loading-wrapper--1AgI_ .src-components-transcript-transcript__error-icon--OVBW3,.src-components-transcript-transcript__error-wrapper--1N65k .src-components-transcript-transcript__error-icon--OVBW3{width:100%;height:100%;max-width:184px;max-height:184px;background-size:contain;background-repeat:no-repeat;background-position:center;background-image:url(\" + ___CSS_LOADER_URL___1___ + \")}.src-components-transcript-transcript__loading-wrapper--1AgI_ .src-components-transcript-transcript__error-main-text--203kH,.src-components-transcript-transcript__error-wrapper--1N65k .src-components-transcript-transcript__error-main-text--203kH{font-size:1.3em;margin-top:8px;margin-bottom:2px}.src-components-transcript-transcript__loading-wrapper--1AgI_ .src-components-transcript-transcript__error-description-text--1GSAk,.src-components-transcript-transcript__error-wrapper--1N65k .src-components-transcript-transcript__error-description-text--1GSAk{margin:0}.src-components-transcript-transcript__loading-wrapper--1AgI_ .src-components-transcript-transcript__retry-button--2vZRQ,.src-components-transcript-transcript__error-wrapper--1N65k .src-components-transcript-transcript__retry-button--2vZRQ{width:30px;padding:0;margin-left:20px;border:none;background:inherit;color:white;cursor:pointer}.src-components-transcript-transcript__autoscroll-button--1fuPg{opacity:0;position:absolute;right:12px;bottom:12px;width:32px;height:32px;padding:0;border:none;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,0.5);background-color:#01819a;background-position:center;background-repeat:no-repeat;background-size:22px;background-image:url(\" + ___CSS_LOADER_URL___2___ + \");cursor:pointer;z-index:1}.src-components-transcript-transcript__autoscroll-button-visible--JpOQp{opacity:1}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"body\": \"src-components-transcript-transcript__body--lMbLS\",\n\t\"hidden\": \"src-components-transcript-transcript__hidden--1z7Bq\",\n\t\"root\": \"src-components-transcript-transcript__root--12Kv-\",\n\t\"skip-transcript-button\": \"src-components-transcript-transcript__skip-transcript-button--WNMp2\",\n\t\"skipTranscriptButton\": \"src-components-transcript-transcript__skip-transcript-button--WNMp2\",\n\t\"global-container\": \"src-components-transcript-transcript__global-container--2G2rz\",\n\t\"globalContainer\": \"src-components-transcript-transcript__global-container--2G2rz\",\n\t\"header\": \"src-components-transcript-transcript__header--2YEtK\",\n\t\"small-width\": \"src-components-transcript-transcript__small-width--3WUOi\",\n\t\"smallWidth\": \"src-components-transcript-transcript__small-width--3WUOi\",\n\t\"medium-width\": \"src-components-transcript-transcript__medium-width--2A1Af\",\n\t\"mediumWidth\": \"src-components-transcript-transcript__medium-width--2A1Af\",\n\t\"close-button\": \"src-components-transcript-transcript__close-button--2E5N0\",\n\t\"closeButton\": \"src-components-transcript-transcript__close-button--2E5N0\",\n\t\"loading-wrapper\": \"src-components-transcript-transcript__loading-wrapper--1AgI_\",\n\t\"loadingWrapper\": \"src-components-transcript-transcript__loading-wrapper--1AgI_\",\n\t\"error-wrapper\": \"src-components-transcript-transcript__error-wrapper--1N65k\",\n\t\"errorWrapper\": \"src-components-transcript-transcript__error-wrapper--1N65k\",\n\t\"error-icon\": \"src-components-transcript-transcript__error-icon--OVBW3\",\n\t\"errorIcon\": \"src-components-transcript-transcript__error-icon--OVBW3\",\n\t\"error-main-text\": \"src-components-transcript-transcript__error-main-text--203kH\",\n\t\"errorMainText\": \"src-components-transcript-transcript__error-main-text--203kH\",\n\t\"error-description-text\": \"src-components-transcript-transcript__error-description-text--1GSAk\",\n\t\"errorDescriptionText\": \"src-components-transcript-transcript__error-description-text--1GSAk\",\n\t\"retry-button\": \"src-components-transcript-transcript__retry-button--2vZRQ\",\n\t\"retryButton\": \"src-components-transcript-transcript__retry-button--2vZRQ\",\n\t\"autoscroll-button\": \"src-components-transcript-transcript__autoscroll-button--1fuPg\",\n\t\"autoscrollButton\": \"src-components-transcript-transcript__autoscroll-button--1fuPg\",\n\t\"autoscroll-button-visible\": \"src-components-transcript-transcript__autoscroll-button-visible--JpOQp\",\n\t\"autoscrollButtonVisible\": \"src-components-transcript-transcript__autoscroll-button-visible--JpOQp\"\n};","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/Close%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/Close' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Crect id='Bounds' x='0' y='0' width='32' height='32'%3E%3C/rect%3E %3Cpath d='M17.9113162,16 L24.6072325,9.30408374 C25.1313645,8.77995172 25.1287183,7.92687249 24.6009229,7.3990771 C24.0694478,6.86760201 23.220227,6.86845682 22.6959163,7.39276754 L16,14.0886838 L9.30408374,7.39276754 C8.77995172,6.86863552 7.92687249,6.8712817 7.3990771,7.3990771 C6.86760201,7.93055219 6.86845682,8.77977302 7.39276754,9.30408374 L14.0886838,16 L7.39276754,22.6959163 C6.86863552,23.2200483 6.8712817,24.0731275 7.3990771,24.6009229 C7.93055219,25.132398 8.77977302,25.1315432 9.30408374,24.6072325 L16,17.9113162 L22.6959163,24.6072325 C23.2200483,25.1313645 24.0731275,25.1287183 24.6009229,24.6009229 C25.132398,24.0694478 25.1315432,23.220227 24.6072325,22.6959163 L17.9113162,16 Z' id='Close' fill='rgba(255,255,255,0.8)'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='184px' height='184px' viewBox='0 0 184 184' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIL/ Error%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='IL/-Error' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Ccircle id='Oval' fill='%23333333' cx='92' cy='92' r='92'%3E%3C/circle%3E %3Cpath d='M86.8445942,41 C98.1281098,41 107.894768,46.3707345 112.610486,54.1896075 L112.772795,54.4651697 C121.905986,54.9935965 129.089492,60.510023 129.089492,67.2372881 C129.089492,67.4828605 129.07992,67.7268193 129.06103,67.9689809 C143.527428,69.1244669 154.803778,78.4637688 154.803778,89.8135593 C154.803778,101.945102 141.920543,111.779661 126.028268,111.779661 C122.218304,111.779661 118.581281,111.214432 115.253251,110.187831 C110.482744,111.936312 104.172429,113 97.2527575,113 C90.6076765,113 84.5245506,112.019057 79.8270144,110.392971 C76.2815407,111.290993 72.4601472,111.779661 68.4772473,111.779661 C49.8799037,111.779661 34.8037779,101.125556 34.8037779,87.9830508 C34.8037779,77.4055553 44.569383,68.439928 58.0766538,65.3432099 C58.0715743,65.1615713 58.069084,64.9793312 58.069084,64.7966102 C58.069084,51.6541053 70.9523188,41 86.8445942,41 Z' id='Combined-Shape' fill='%231A7080'%3E%3C/path%3E %3Cpath d='M83.1492849,135.070223 C82.1325765,138.189187 86.1421275,140.443183 88.278329,137.95355 L112.039401,110.261242 C113.708897,108.315531 112.326427,105.307692 109.76264,105.307692 L102.55417,105.307692 L108.530391,92.2483573 C109.439682,90.2613598 107.987631,88 105.802461,88 L90.6745782,88 C89.4360625,88 88.3248534,88.7610908 87.8773011,89.9159147 L79.0065008,112.805338 C78.2445332,114.771451 79.6951774,116.889423 81.8037779,116.889423 L89.0757959,116.889423 L83.1492849,135.070223 Z' id='Path-8' fill='%23333333' fill-rule='nonzero'%3E%3C/path%3E %3Cpolygon id='Path-8' fill='%23999999' points='90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91'%3E%3C/polygon%3E %3Cpolygon id='Path-8' fill='%2301ACCD' opacity='0.5' points='90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91'%3E%3C/polygon%3E %3Cpath d='M86.9135883,41 C90.3885178,41 93.7197752,41.5049061 96.8044095,42.4302153 C80.0521708,44.2102049 67.0736479,56.714855 67.0736479,71.8761372 C67.0736479,72.1038764 67.0765763,72.331016 67.0824019,72.557529 C51.5088979,76.3414085 40.1641521,87.1546035 39.7216459,99.9991784 C36.6015945,96.4151247 34.8037779,92.202078 34.8037779,87.6945045 C34.8037779,77.1820037 44.5822685,68.2714617 58.1073807,65.1937351 C58.1024214,65.013137 58.0999284,64.8320391 58.0999284,64.6504633 C58.0999284,51.5886731 71.0002433,41 86.9135883,41 Z' id='Combined-Shape' fill='%23222222' opacity='0.3'%3E%3C/path%3E %3Cpath d='M90.8028945,22 L90.8028945,29.0476864 C90.8028945,29.5999712 91.2506097,30.0476864 91.8028945,30.0476864 C92.3551792,30.0476864 92.8028945,29.5999712 92.8028945,29.0476864 L92.8028945,22 C92.8028945,21.4477153 92.3551792,21 91.8028945,21 C91.2506097,21 90.8028945,21.4477153 90.8028945,22 Z M126.112197,30.8515352 L121.582032,36.2503762 C121.22703,36.6734508 121.282214,37.3042064 121.705288,37.6592082 C122.128363,38.01421 122.759119,37.9590261 123.114121,37.5359514 L127.644286,32.1371104 C127.999288,31.7140357 127.944104,31.0832801 127.521029,30.7282783 C127.097955,30.3732765 126.467199,30.4284605 126.112197,30.8515352 Z M152.431974,58.6783398 L145.491357,59.9021577 C144.947463,59.9980609 144.584295,60.5167193 144.680198,61.0606136 C144.776101,61.6045079 145.294759,61.9676764 145.838654,61.8717732 L152.77927,60.6479553 C153.323164,60.552052 153.686333,60.0333936 153.59043,59.4894993 C153.494526,58.945605 152.975868,58.5824365 152.431974,58.6783398 Z M30.826519,60.6479553 L37.7671352,61.8717732 C38.3110295,61.9676764 38.8296879,61.6045079 38.9255912,61.0606136 C39.0214944,60.5167193 38.6583259,59.9980609 38.1144316,59.9021577 L31.1738154,58.6783398 C30.6299211,58.5824365 30.1112627,58.945605 30.0153594,59.4894993 C29.9194562,60.0333936 30.2826247,60.552052 30.826519,60.6479553 Z M55.9615029,32.1371104 L60.4916684,37.5359514 C60.8466702,37.9590261 61.4774258,38.01421 61.9005005,37.6592082 C62.3235751,37.3042064 62.3787591,36.6734508 62.0237573,36.2503762 L57.4935918,30.8515352 C57.13859,30.4284605 56.5078344,30.3732765 56.0847597,30.7282783 C55.6616851,31.0832801 55.6065011,31.7140357 55.9615029,32.1371104 Z' id='Path-9' fill='%2301ACCD' fill-rule='nonzero' opacity='0.5'%3E%3C/path%3E %3Cg id='Oval-Copy-5' opacity='0.3' transform='translate(80.000000, 166.000000)' fill='%2301ACCD'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,-5.32907052e-15 3.3015873,-5.32907052e-15 C1.47817098,-5.32907052e-15 1.07647224e-12,1.4883507 1.07647224e-12,3.32432432 C1.07647224e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy-3'%3E%3C/path%3E %3C/g%3E %3Cg id='Path-Copy-4' opacity='0.9' transform='translate(100.000000, 146.000000)' fill='%2301ACCD'%3E %3Cpolygon id='Path-Copy-2' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Oval-2' opacity='0.5' transform='translate(39.000000, 115.000000)' fill='%2301ACCD'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval'%3E%3C/path%3E %3C/g%3E %3Cg id='Oval-Copy-4' opacity='0.8' transform='translate(60.000000, 139.000000)' fill='%2301ACCD'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,1.42108547e-14 3.3015873,1.42108547e-14 C1.47817098,1.42108547e-14 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy'%3E%3C/path%3E %3C/g%3E %3Cg id='Path-Copy-3' opacity='0.3' transform='translate(31.000000, 142.000000)' fill='%2301ACCD'%3E %3Cpolygon id='Path-Copy' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Oval-Copy-6' opacity='0.6' transform='translate(139.000000, 139.000000)' fill='%2301ACCD'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08713039e-12,1.4883507 1.08713039e-12,3.32432432 C1.08713039e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy-2'%3E%3C/path%3E %3C/g%3E %3Cg id='Path-2' opacity='0.4' transform='translate(122.000000, 122.000000)' fill='%2301ACCD'%3E %3Cpolygon id='Path' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='16px' height='16px' viewBox='0 0 16 16' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/16/Arrowline/up%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/16/Arrowline/up' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M8.0000393,2 C8.55232405,2 9.0000393,2.44771525 9.0000393,3 L9.0000393,3 L9,10.17 L11.216782,7.37830235 C11.5337243,6.97899674 12.0940739,6.88664831 12.5186429,7.14486093 L12.6217369,7.21674268 C13.054318,7.56009681 13.1266507,8.18911658 12.7832966,8.62169765 L12.7832966,8.62169765 L8.78329662,13.6611718 C8.3829349,14.165575 7.61714369,14.165575 7.21678198,13.6611718 L7.21678198,13.6611718 L3.21678198,8.62169765 C2.87342784,8.18911658 2.94576057,7.56009681 3.37834164,7.21674268 C3.81092272,6.87338855 4.43994248,6.94572127 4.78329662,7.37830235 L4.78329662,7.37830235 L7,10.17 L7.0000393,3 C7.0000393,2.48716416 7.38607949,2.06449284 7.88341817,2.00672773 Z' id='Combined-Shape' fill='%23ffffff' transform='translate(8.000039, 8.019737) scale(1, -1) translate(-8.000039, -8.019737) '%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","export * from \"./spinner\";","import { h, Component } from \"preact\";\nimport * as styles from \"./spinner.scss\";\n\nexport class Spinner extends Component {\n render() {\n return (\n <div className={styles.spinnerBall}>\n <div className={styles.bounceFrame} />\n </div>\n );\n }\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"../../assets/loader.svg\"));\n\n// Module\nexports.push([module.id, \".src-components-spinner-spinner__spinner-ball--2Um5B{position:relative;display:flex;align-items:center;width:100%;height:100%;max-width:184px;max-height:184px;margin:4px 0 8px 0;background-size:contain;background-repeat:no-repeat;background-position:center;background-image:url(\" + ___CSS_LOADER_URL___0___ + \");animation:src-components-spinner-spinner__icon-bounce--b5fbz 2.0s infinite ease-in-out}.src-components-spinner-spinner__bounce-frame--2SYy0{width:100%;height:100%;min-width:184px;min-height:184px;border-radius:50%;background-color:#cccccc;opacity:0.2;-webkit-animation:src-components-spinner-spinner__frame-bounce--3cZLg 2.0s infinite ease-in-out;animation:src-components-spinner-spinner__frame-bounce--3cZLg 2.0s infinite ease-in-out}@keyframes src-components-spinner-spinner__icon-bounce--b5fbz{0%,100%{opacity:0.3}50%{opacity:1}}@-webkit-keyframes src-components-spinner-spinner__frame-bounce--3cZLg{0%,100%{-webkit-transform:scale(1);opacity:0.1}50%{-webkit-transform:scale(1.3);opacity:0.1}}@keyframes src-components-spinner-spinner__frame-bounce--3cZLg{0%,100%{opacity:0.1;transform:scale(1);-webkit-transform:scale(1)}50%{opacity:0.25;transform:scale(1.3);-webkit-transform:scale(1.3)}}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"spinner-ball\": \"src-components-spinner-spinner__spinner-ball--2Um5B\",\n\t\"spinnerBall\": \"src-components-spinner-spinner__spinner-ball--2Um5B\",\n\t\"icon-bounce\": \"src-components-spinner-spinner__icon-bounce--b5fbz\",\n\t\"iconBounce\": \"src-components-spinner-spinner__icon-bounce--b5fbz\",\n\t\"bounce-frame\": \"src-components-spinner-spinner__bounce-frame--2SYy0\",\n\t\"bounceFrame\": \"src-components-spinner-spinner__bounce-frame--2SYy0\",\n\t\"frame-bounce\": \"src-components-spinner-spinner__frame-bounce--3cZLg\",\n\t\"frameBounce\": \"src-components-spinner-spinner__frame-bounce--3cZLg\"\n};","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='184px' height='184px' viewBox='0 0 184 184' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 58 (84663) - https://sketch.com --%3E %3Ctitle%3EIL/ transcript/ loder%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='IL/-transcript/-loder' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M131,37 C133.688755,37 135.881818,39.1223067 135.99538,41.7831104 L136,42 L136,142 C136,144.688755 133.877693,146.881818 131.21689,146.99538 L131,147 L54,147 C51.3112453,147 49.1181819,144.877693 49.0046195,142.21689 L49,142 L49,42 C49,39.3112453 51.1223067,37.1181819 53.7831104,37.0046195 L54,37 L131,37 Z M101.454542,126.814926 L63.4545421,126.814926 C62.3499726,126.814926 61.4545421,127.710356 61.4545421,128.814926 C61.4545421,129.919495 62.3499726,130.814926 63.4545421,130.814926 L63.4545421,130.814926 L101.454542,130.814926 C102.559112,130.814926 103.454542,129.919495 103.454542,128.814926 C103.454542,127.710356 102.559112,126.814926 101.454542,126.814926 L101.454542,126.814926 Z M115.288711,116.850282 L63.2887108,116.850282 C62.1841413,116.850282 61.2887108,117.745712 61.2887108,118.850282 C61.2887108,119.904643 62.1045886,120.768447 63.1394485,120.844796 L63.2887108,120.850282 L115.288711,120.850282 C116.39328,120.850282 117.288711,119.954851 117.288711,118.850282 C117.288711,117.745712 116.39328,116.850282 115.288711,116.850282 Z M97.011063,106.163706 L64.011063,106.163706 C62.9064935,106.163706 62.011063,107.059136 62.011063,108.163706 C62.011063,109.218068 62.8269408,110.081871 63.8618007,110.15822 L64.011063,110.163706 L97.011063,110.163706 C98.1156325,110.163706 99.011063,109.268275 99.011063,108.163706 C99.011063,107.059136 98.1156325,106.163706 97.011063,106.163706 Z M112.011284,95.3010779 L64.0112838,95.3010779 C62.9067143,95.3010779 62.0112838,96.1965084 62.0112838,97.3010779 C62.0112838,98.3554397 62.8271616,99.219243 63.8620215,99.2955922 L64.0112838,99.3010779 L112.011284,99.3010779 C113.115853,99.3010779 114.011284,98.4056474 114.011284,97.3010779 C114.011284,96.1965084 113.115853,95.3010779 112.011284,95.3010779 Z M96.7184437,84.7881504 L63.7184437,84.7881504 C62.6138742,84.7881504 61.7184437,85.6835809 61.7184437,86.7881504 C61.7184437,87.8425122 62.5343215,88.7063156 63.5691814,88.7826647 L63.7184437,88.7881504 L96.7184437,88.7881504 C97.8230132,88.7881504 98.7184437,87.8927199 98.7184437,86.7881504 C98.7184437,85.6835809 97.8230132,84.7881504 96.7184437,84.7881504 Z M108.741453,73.6650501 L63.7414529,73.6650501 C62.6368834,73.6650501 61.7414529,74.5604806 61.7414529,75.6650501 C61.7414529,76.7194119 62.5573307,77.5832152 63.5921905,77.6595644 L63.7414529,77.6650501 L108.741453,77.6650501 C109.846022,77.6650501 110.741453,76.7696196 110.741453,75.6650501 C110.741453,74.5604806 109.846022,73.6650501 108.741453,73.6650501 Z M92.456209,63.0652986 L63.456209,63.0652986 C62.3516395,63.0652986 61.456209,63.9607291 61.456209,65.0652986 C61.456209,66.1196603 62.2720867,66.9834637 63.3069466,67.0598128 L63.456209,67.0652986 L92.456209,67.0652986 C93.5607785,67.0652986 94.456209,66.1698681 94.456209,65.0652986 C94.456209,63.9607291 93.5607785,63.0652986 92.456209,63.0652986 Z M102.320762,52.7533578 L63.3207622,52.7533578 C62.2161927,52.7533578 61.3207622,53.6487883 61.3207622,54.7533578 C61.3207622,55.8077196 62.13664,56.6715229 63.1714998,56.7478721 L63.3207622,56.7533578 L102.320762,56.7533578 C103.425332,56.7533578 104.320762,55.8579273 104.320762,54.7533578 C104.320762,53.6487883 103.425332,52.7533578 102.320762,52.7533578 Z' id='Combined-Shape' fill='%23999999' transform='translate(92.500000, 92.000000) rotate(-10.000000) translate(-92.500000, -92.000000) '%3E%3C/path%3E %3Cg id='Oval-2' opacity='0.5' transform='translate(38.000000, 147.000000)' fill='%23999999'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval'%3E%3C/path%3E %3C/g%3E %3Cg id='Oval-Copy-8' opacity='0.8' transform='translate(147.000000, 93.000000)' fill='%23999999'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,1.42108547e-14 3.3015873,1.42108547e-14 C1.47817098,1.42108547e-14 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy'%3E%3C/path%3E %3C/g%3E %3Cg id='Oval-Copy-6' opacity='0.6' transform='translate(11.000000, 80.000000)' fill='%23999999'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08713039e-12,1.4883507 1.08713039e-12,3.32432432 C1.08713039e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy-2'%3E%3C/path%3E %3C/g%3E %3Cg id='Oval-Copy-5' opacity='0.3' transform='translate(56.000000, 25.000000)' fill='%23999999'%3E %3Cpath d='M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,-5.32907052e-15 3.3015873,-5.32907052e-15 C1.47817098,-5.32907052e-15 1.07647224e-12,1.4883507 1.07647224e-12,3.32432432 C1.07647224e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z' id='Oval-Copy-3'%3E%3C/path%3E %3C/g%3E %3Cg id='Path-2' opacity='0.4' transform='translate(88.000000, 164.000000)' fill='%23999999'%3E %3Cpolygon id='Path' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Path-2-Copy-3' opacity='0.4' transform='translate(15.000000, 57.000000)' fill='%23999999'%3E %3Cpolygon id='Path' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Path-Copy-5' opacity='0.3' transform='translate(129.000000, 155.000000)' fill='%23999999'%3E %3Cpolygon id='Path-Copy' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Path-Copy-4' opacity='0.9' transform='translate(77.000000, 12.000000)' fill='%23999999'%3E %3Cpolygon id='Path-Copy-2' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3Cg id='Path-Copy-6' opacity='0.9' transform='translate(146.000000, 56.000000)' fill='%23999999'%3E %3Cpolygon id='Path-Copy-2' points='5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0'%3E%3C/polygon%3E %3C/g%3E %3C/g%3E %3C/svg%3E\"","export * from \"./search\";","import { h, Component } from \"preact\";\nimport * as styles from \"./search.scss\";\n\nexport interface SearchProps {\n onChange(value: string): void;\n onSearchIndexChange(value: number): void;\n value: string;\n activeSearchIndex: number;\n totalSearchResults: number;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n}\n\ninterface SearchState {\n active: boolean;\n focused: boolean;\n}\n\nexport class Search extends Component<SearchProps, SearchState> {\n state: SearchState = {\n active: false,\n focused: false,\n };\n private _inputRef: null | HTMLInputElement = null;\n private _focusedByMouse = false;\n\n shouldComponentUpdate(\n nextProps: Readonly<SearchProps>,\n nextState: Readonly<SearchState>\n ) {\n const { value, activeSearchIndex, totalSearchResults, kitchenSinkActive } = this.props;\n if (\n value !== nextProps.value ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n totalSearchResults !== nextProps.totalSearchResults ||\n kitchenSinkActive !== nextProps.kitchenSinkActive ||\n this.state.active !== nextState.active\n ) {\n return true;\n }\n return false;\n }\n componentDidUpdate(previousProps: Readonly<SearchProps>): void {\n const { kitchenSinkActive, toggledWithEnter } = this.props;\n if (!previousProps.kitchenSinkActive && kitchenSinkActive && toggledWithEnter) {\n this._inputRef?.focus();\n }\n }\n private _handleOnChange = (e: any) => {\n this.props.onChange(e.target.value);\n };\n\n private _onClear = (event: MouseEvent) => {\n if (event.x !== 0 && event.y !== 0) {\n this._focusedByMouse = true;\n }\n this._inputRef?.focus();\n this.props.onChange(\"\");\n };\n\n private _onFocus = () => {\n this.setState({\n active: true,\n focused: !this._focusedByMouse,\n });\n this._focusedByMouse = false;\n }\n\n private _onBlur = () => {\n this.setState({\n active: false,\n focused: false\n });\n }\n\n private _goToNextSearchResult = () => {\n const { activeSearchIndex, totalSearchResults, onSearchIndexChange } = this.props;\n if (totalSearchResults === 0) {\n return;\n }\n let index = 0;\n if (activeSearchIndex !== totalSearchResults) {\n index = this.props.activeSearchIndex + 1;\n } else {\n index = 1;\n }\n onSearchIndexChange(index);\n };\n private _goToPrevSearchResult = () => {\n const { activeSearchIndex, totalSearchResults, onSearchIndexChange } = this.props;\n let index = 0;\n if (activeSearchIndex !== 1) {\n index = activeSearchIndex - 1;\n } else {\n index = totalSearchResults;\n }\n onSearchIndexChange(index);\n };\n\n _handleMouseDown = () => {\n this._focusedByMouse = true;\n };\n\n render() {\n const { value, activeSearchIndex, totalSearchResults } = this.props;\n return (\n <div className={[\n styles.searchWrapper,\n (value || this.state.active) ? styles.active : \"\",\n this.state.focused ? styles.focused : \"\",\n ].join(\" \")}>\n <div className={styles.searchIcon} />\n <input\n className={styles.searchInput}\n placeholder={\"Search in Transcript\"}\n value={value}\n onInput={this._handleOnChange}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n onMouseDown={this._handleMouseDown}\n tabIndex={1}\n ref={(node) => {\n this._inputRef = node;\n }}\n />\n {value && (\n <button\n className={styles.clearIcon}\n onClick={this._onClear}\n tabIndex={1}\n />\n )}\n {value && (\n <div className={styles.searchResults}>\n {`${\n totalSearchResults > 0\n ? `${activeSearchIndex}/${totalSearchResults}`\n : \"0/0\"\n }`}\n </div>\n )}\n <div className={styles.prevNextWrapper}>\n {value && (\n <button\n tabIndex={1}\n className={`${styles.prevNextButton} ${styles.prevButton} ${\n totalSearchResults === 0 ? styles.disabled : \"\"\n }`}\n onClick={this._goToPrevSearchResult}\n />\n )}\n {value && (\n <button\n tabIndex={1}\n className={`${styles.prevNextButton} ${styles.nextButton} ${\n totalSearchResults === 0 ? styles.disabled : \"\"\n }`}\n onClick={this._goToNextSearchResult}\n />\n )}\n </div>\n </div>\n );\n }\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./search.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./search.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./search.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"../../assets/search.svg\"));\nvar ___CSS_LOADER_URL___1___ = urlEscape(require(\"../../assets/up.svg\"));\nvar ___CSS_LOADER_URL___2___ = urlEscape(require(\"../../assets/down.svg\"));\nvar ___CSS_LOADER_URL___3___ = urlEscape(require(\"../../assets/clear.svg\"));\n\n// Module\nexports.push([module.id, \".src-components-search-search__search-wrapper--3by0K{display:flex;align-items:center;flex-grow:1;width:100%;max-width:599px;height:32px;background-color:rgba(255,255,255,0.24);border:solid 1px rgba(255,255,255,0.4);border-radius:4px}.src-components-search-search__search-wrapper--3by0K ::-moz-placeholder{opacity:1}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-icon--uIKE9{flex:0 0 32px;background-color:transparent;background-position:center;background-image:url(\" + ___CSS_LOADER_URL___0___ + \");width:32px;height:32px;margin:0 2px}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-results--3oNdk{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;margin:0 8px;font-size:12px;text-overflow:ellipsis}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__prev-next-wrapper--2V6sg{display:flex;flex-direction:column;justify-content:space-around;height:100%;margin-right:8px}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__prev-next-wrapper--2V6sg .src-components-search-search__prev-next-button--aH4JM{width:14px;height:6px;background-color:transparent;background-position:center;background-size:cover;border:none;cursor:pointer}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__prev-next-wrapper--2V6sg .src-components-search-search__prev-next-button--aH4JM.src-components-search-search__prev-button--4YIFQ{background-image:url(\" + ___CSS_LOADER_URL___1___ + \")}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__prev-next-wrapper--2V6sg .src-components-search-search__prev-next-button--aH4JM.src-components-search-search__next-button--3qhEz{background-image:url(\" + ___CSS_LOADER_URL___2___ + \")}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__prev-next-wrapper--2V6sg .src-components-search-search__prev-next-button--aH4JM.src-components-search-search__disabled--1d_Kq{opacity:0.4;cursor:default}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-input--gARpy{width:100%;flex-grow:1;flex-shrink:1;font-size:15px;padding:0 6px 1px 0;color:#ccc;background:transparent;border:none;overflow:hidden;text-overflow:ellipsis}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-input--gARpy:focus{outline:none !important}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-input--gARpy::placeholder{color:#ccc}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__search-input--gARpy::selection{background-color:#5b80a7}.src-components-search-search__search-wrapper--3by0K .src-components-search-search__clear-icon--1NED4{flex:0 0 32px;max-width:32px;max-height:32px;background-color:transparent;background-position:center;background-image:url(\" + ___CSS_LOADER_URL___3___ + \");width:32px;height:32px;border:none;cursor:pointer}.src-components-search-search__search-wrapper--3by0K.src-components-search-search__active--UjM8Q{color:#ccc;background:#000}.src-components-search-search__search-wrapper--3by0K.src-components-search-search__focused--1fj3o{box-shadow:0 0 0 1px #00cbff;border-radius:4px}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"search-wrapper\": \"src-components-search-search__search-wrapper--3by0K\",\n\t\"searchWrapper\": \"src-components-search-search__search-wrapper--3by0K\",\n\t\"search-icon\": \"src-components-search-search__search-icon--uIKE9\",\n\t\"searchIcon\": \"src-components-search-search__search-icon--uIKE9\",\n\t\"search-results\": \"src-components-search-search__search-results--3oNdk\",\n\t\"searchResults\": \"src-components-search-search__search-results--3oNdk\",\n\t\"prev-next-wrapper\": \"src-components-search-search__prev-next-wrapper--2V6sg\",\n\t\"prevNextWrapper\": \"src-components-search-search__prev-next-wrapper--2V6sg\",\n\t\"prev-next-button\": \"src-components-search-search__prev-next-button--aH4JM\",\n\t\"prevNextButton\": \"src-components-search-search__prev-next-button--aH4JM\",\n\t\"prev-button\": \"src-components-search-search__prev-button--4YIFQ\",\n\t\"prevButton\": \"src-components-search-search__prev-button--4YIFQ\",\n\t\"next-button\": \"src-components-search-search__next-button--3qhEz\",\n\t\"nextButton\": \"src-components-search-search__next-button--3qhEz\",\n\t\"disabled\": \"src-components-search-search__disabled--1d_Kq\",\n\t\"search-input\": \"src-components-search-search__search-input--gARpy\",\n\t\"searchInput\": \"src-components-search-search__search-input--gARpy\",\n\t\"clear-icon\": \"src-components-search-search__clear-icon--1NED4\",\n\t\"clearIcon\": \"src-components-search-search__clear-icon--1NED4\",\n\t\"active\": \"src-components-search-search__active--UjM8Q\",\n\t\"focused\": \"src-components-search-search__focused--1fj3o\"\n};","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/serch%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/serch' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M15.1578947,8 C19.1110908,8 22.3157895,11.2046986 22.3157895,15.1578947 C22.3157895,16.8311546 21.7416502,18.3703171 20.7796271,19.5891266 L24.5954583,23.4045417 C24.9243209,23.7334042 24.9243209,24.2665958 24.5954583,24.5954583 C24.2665958,24.9243209 23.7334042,24.9243209 23.4045417,24.5954583 L19.5891266,20.7796271 C18.3703171,21.7416502 16.8311546,22.3157895 15.1578947,22.3157895 C11.2046986,22.3157895 8,19.1110908 8,15.1578947 C8,11.2046986 11.2046986,8 15.1578947,8 Z M15.1578947,9.68421053 C12.1348624,9.68421053 9.68421053,12.1348624 9.68421053,15.1578947 C9.68421053,18.1809271 12.1348624,20.6315789 15.1578947,20.6315789 C18.1809271,20.6315789 20.6315789,18.1809271 20.6315789,15.1578947 C20.6315789,12.1348624 18.1809271,9.68421053 15.1578947,9.68421053 Z' id='Shape' fill='%23cccccc'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='16px' height='16px' viewBox='0 0 16 16' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/16/Arrow/ up%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/16/Arrow/-up' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M4.78325732,5.37830235 C4.43990319,4.94572127 3.81088342,4.87338855 3.37830235,5.21674268 C2.94572127,5.56009681 2.87338855,6.18911658 3.21674268,6.62169765 L7.21674268,11.6611718 C7.61710439,12.165575 8.38289561,12.165575 8.78325732,11.6611718 L12.7832573,6.62169765 C13.1266115,6.18911658 13.0542787,5.56009681 12.6216977,5.21674268 C12.1891166,4.87338855 11.5600968,4.94572127 11.2167427,5.37830235 L8,9.43097528 L4.78325732,5.37830235 Z' id='Path-2' fill='%23cccccc' transform='translate(8.000000, 8.519717) scale(1, -1) translate(-8.000000, -8.519717) '%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='16px' height='16px' viewBox='0 0 16 16' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/16/Arrow/down%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/16/Arrow/down' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M4.78325732,5.37830235 C4.43990319,4.94572127 3.81088342,4.87338855 3.37830235,5.21674268 C2.94572127,5.56009681 2.87338855,6.18911658 3.21674268,6.62169765 L7.21674268,11.6611718 C7.61710439,12.165575 8.38289561,12.165575 8.78325732,11.6611718 L12.7832573,6.62169765 C13.1266115,6.18911658 13.0542787,5.56009681 12.6216977,5.21674268 C12.1891166,4.87338855 11.5600968,4.94572127 11.2167427,5.37830235 L8,9.43097528 L4.78325732,5.37830235 Z' id='Path-2' fill='%23cccccc'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/Clere%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/Clere' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M16,8 C20.418278,8 24,11.581722 24,16 C24,20.418278 20.418278,24 16,24 C11.581722,24 8,20.418278 8,16 C8,11.581722 11.581722,8 16,8 Z M19.8665357,12.1334643 C19.6885833,11.9555119 19.4000655,11.9555119 19.2221131,12.1334643 L16,15.356 L12.7778869,12.1334643 L12.7064039,12.0750737 C12.5295326,11.9582924 12.2891726,11.977756 12.1334643,12.1334643 L12.0750737,12.2049473 C11.9582924,12.3818186 11.977756,12.6221786 12.1334643,12.7778869 L15.356,16 L12.1334643,19.2221131 C11.9555119,19.4000655 11.9555119,19.6885833 12.1334643,19.8665357 C12.3114167,20.0444881 12.5999345,20.0444881 12.7778869,19.8665357 L16,16.644 L19.2221131,19.8665357 L19.2935961,19.9249263 C19.4704674,20.0417076 19.7108274,20.022244 19.8665357,19.8665357 L19.9249263,19.7950527 C20.0417076,19.6181814 20.022244,19.3778214 19.8665357,19.2221131 L16.644,16 L19.8665357,12.7778869 C20.0444881,12.5999345 20.0444881,12.3114167 19.8665357,12.1334643 Z' id='Shape' fill='%23cccccc'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","export * from \"./captionList\";","import { h, Component } from \"preact\";\nimport { ObjectUtils } from \"@playkit-js-contrib/common\";\nimport { KeyboardKeys } from \"@playkit-js-contrib/ui\";\nimport { Caption, CaptionProps } from \"../caption\";\nimport * as styles from \"./captionList.scss\";\nimport { CaptionItem, HOUR } from \"../../utils\";\n\nconst { get } = ObjectUtils;\n\ninterface CaptionListProps {\n highlightedMap: Record<number, true>;\n captions: CaptionItem[];\n seekTo(caption: CaptionItem): void;\n isAutoScrollEnabled: boolean;\n searchMap: Record<number, Record<string, number>>;\n activeSearchIndex: number;\n captionProps: CaptionProps;\n}\n\nexport class CaptionList extends Component<CaptionListProps> {\n private _currentCaptionRef: any = null;\n private _firstCaptionRef: any = null;\n private _lastCaptionRef: any = null;\n shouldComponentUpdate(nextProps: Readonly<CaptionListProps>) {\n const {\n highlightedMap,\n captions,\n searchMap,\n activeSearchIndex,\n isAutoScrollEnabled,\n captionProps\n } = this.props\n if (\n highlightedMap !== nextProps.highlightedMap ||\n captions !== nextProps.captions ||\n searchMap !== nextProps.searchMap ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n isAutoScrollEnabled !== nextProps.isAutoScrollEnabled ||\n captionProps.videoDuration !== nextProps.captionProps.videoDuration\n ) {\n return true;\n }\n return false;\n }\n\n private _handleClick = (caption: CaptionItem) => () => {\n const { seekTo } = this.props;\n seekTo(caption);\n };\n\n private _getShouldScroll = (captionId: number) => {\n const { isAutoScrollEnabled, highlightedMap } = this.props;\n return isAutoScrollEnabled && highlightedMap[captionId];\n }\n\n private _getShouldScrollToSearchMatch = (captionId: number) => {\n const { isAutoScrollEnabled, searchMap, activeSearchIndex } = this.props;\n return !isAutoScrollEnabled && (searchMap[captionId] && searchMap[captionId][activeSearchIndex] !== undefined);\n }\n\n private _getSearchProps = (captionId: number) => {\n const { searchMap, activeSearchIndex, captionProps } = this.props;\n const searchProps: any = {};\n if (searchMap[captionId]) {\n searchProps.indexMap = searchMap[captionId];\n searchProps.activeSearchIndex = activeSearchIndex;\n searchProps.searchLength = captionProps.searchLength;\n }\n return searchProps;\n }\n\n private _getCaptionProps = (captionData: CaptionItem) => {\n const {\n highlightedMap,\n captionProps,\n isAutoScrollEnabled\n } = this.props;\n const { id } = captionData;\n const newCaptionProps = {\n showTime: captionProps.showTime,\n scrollTo: captionProps.scrollTo,\n scrollToSearchMatch: captionProps.scrollToSearchMatch,\n key: id,\n onClick: this._handleClick(captionData),\n caption: captionData,\n highlighted: highlightedMap[id],\n longerThanHour: captionProps.videoDuration >= HOUR,\n shouldScroll: this._getShouldScroll(id),\n shouldScrollToSearchMatch: this._getShouldScrollToSearchMatch(id),\n isAutoScrollEnabled,\n ...this._getSearchProps(id)\n }\n return newCaptionProps;\n }\n\n private _handleKeyUp = (event: KeyboardEvent) => {\n if (event.keyCode === KeyboardKeys.End) {\n this._lastCaptionRef?._hotspotRef?.focus();\n } else if (event.keyCode === KeyboardKeys.Home) {\n this._firstCaptionRef?._hotspotRef?.focus();\n }\n }\n\n render() {\n const { captions } = this.props;\n return (\n <div\n className={styles.transcriptWrapper}\n onKeyUp={this._handleKeyUp}\n >\n {captions.map((captionData, index) => {\n const captionProps = this._getCaptionProps(captionData);\n return (\n <Caption\n ref={node => {\n if (index === 0) {\n this._firstCaptionRef = node;\n } else if (index === captions.length - 1) {\n this._lastCaptionRef = node;\n }\n if (captionProps.highlighted) {\n this._currentCaptionRef = node;\n }\n }}\n {...captionProps}\n />\n )\n })}\n </div>\n );\n }\n}\n","export * from \"./caption\";","import { h, Component } from \"preact\";\nimport { KeyboardKeys } from \"@playkit-js-contrib/ui\";\nimport * as styles from \"./caption.scss\";\nimport { secontsToTime, CaptionItem } from \"../../utils\";\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\ninterface ExtendedCaptionProps extends CaptionProps {\n caption: CaptionItem;\n onClick(): void;\n highlighted: boolean;\n shouldScroll: boolean;\n shouldScrollToSearchMatch: boolean;\n indexMap: Record<string, number> | undefined;\n activeSearchIndex: number;\n longerThanHour: boolean;\n isAutoScrollEnabled: boolean;\n}\n\nexport class Caption extends Component<ExtendedCaptionProps> {\n private _hotspotRef: HTMLElement | null = null;\n\n componentDidUpdate() {\n if (this._hotspotRef && this.props.shouldScroll) {\n this.props.scrollTo(this._hotspotRef);\n } else if (this._hotspotRef && this.props.shouldScrollToSearchMatch) {\n this.props.scrollToSearchMatch(this._hotspotRef);\n }\n }\n\n shouldComponentUpdate(nextProps: ExtendedCaptionProps) {\n const {\n indexMap,\n highlighted,\n isAutoScrollEnabled,\n activeSearchIndex,\n longerThanHour,\n } = this.props;\n if (longerThanHour !== nextProps.longerThanHour) {\n return true;\n }\n if (highlighted !== nextProps.highlighted) {\n return true;\n }\n if (highlighted && isAutoScrollEnabled !== nextProps.isAutoScrollEnabled) {\n return true;\n }\n if (indexMap !== nextProps.indexMap) {\n return true;\n }\n if (indexMap && nextProps.indexMap && indexMap[activeSearchIndex] !== nextProps.indexMap[nextProps.activeSearchIndex]) {\n return true;\n }\n return false;\n }\n\n private _handleKeyPress = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if (\n keyCode === KeyboardKeys.Enter ||\n keyCode === KeyboardKeys.Space\n ) {\n event.preventDefault();\n this._gotoCurrentTime();\n return;\n }\n }\n\n private _handleClick = (event: MouseEvent) => {\n event.stopPropagation();\n this._hotspotRef?.focus();\n this._gotoCurrentTime();\n }\n\n private _gotoCurrentTime = () => {\n const { caption, onClick } = this.props;\n if (caption.text.length) {\n onClick();\n }\n }\n\n private _renderText = (text: string) => {\n const { activeSearchIndex, searchLength, indexMap } = this.props;\n let indexArray: string[] = [];\n if (indexMap) {\n indexArray = Object.keys(indexMap).sort((a, b) => Number(a) - Number(b));\n }\n if (text.length === 0) {\n return null;\n }\n return (\n <span className={styles.captionSpan}>\n {indexMap\n ? indexArray.map((el: string, index: number) => {\n const preSelected = index === 0 ? text.substring(0, indexMap[el]) : \"\";\n const selected = text.substring(\n indexMap[el],\n indexMap[el] + searchLength\n );\n const postSelected = text.substring(\n indexMap[el] + searchLength,\n index - 1 === indexArray.length\n ? text.length\n : indexMap[indexArray[index + 1]]\n );\n return (\n <span>\n {preSelected}\n <span\n className={\n Number(el) === activeSearchIndex\n ? styles.activeSearch\n : styles.highlightSearch\n }\n >\n {selected}\n </span>\n {postSelected}\n </span>\n );\n })\n : text}\n </span>\n );\n };\n\n render() {\n const { caption, highlighted, showTime, longerThanHour } = this.props;\n const { text, startTime } = caption;\n\n return (\n <div\n className={styles.caption}\n tabIndex={1}\n ref={node => {\n this._hotspotRef = node;\n }}\n onKeyDown={this._handleKeyPress}\n >\n {showTime && (\n <div className={styles.captionTime}>\n {secontsToTime(startTime, longerThanHour)}\n </div>\n )}\n <div\n onClick={this._handleClick}\n className={`${styles.captionContent} ${highlighted ? styles.highlighted : \"\"} ${showTime ? \"\" : styles.withoutTime}`}\n role=\"button\"\n >\n {this._renderText(text)}\n </div>\n </div>\n );\n }\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".src-components-caption-caption__caption--3XwrP{display:flex;justify-content:space-between;width:100%;margin-bottom:9px;margin-left:8px;color:#fff}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-time--2vI2E{flex-shrink:1;min-width:48px;align-items:flex-start;margin-right:8px;padding-top:2px;text-align:right;font-size:12px;color:#ccc}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE{flex-grow:1;font-size:14px;line-height:18px;text-align:left;user-select:text}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE:hover .src-components-caption-caption__caption-span--1H41N{background-color:#666}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE:hover.src-components-caption-caption__highlighted--1nPNq .src-components-caption-caption__caption-span--1H41N{color:#fff;background-color:#01819a;padding:0 2px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE.src-components-caption-caption__highlighted--1nPNq .src-components-caption-caption__caption-span--1H41N{color:#000;background-color:#01accd;padding:0 2px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE.src-components-caption-caption__without-time--3lzVv{margin-left:16px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__caption-span--1H41N{user-select:text;-ms-user-select:text;border-radius:2px;cursor:pointer}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__caption-span--1H41N::selection{background-color:#5b80a7;padding:0 2px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__caption-span--1H41N>span::selection{background-color:#5b80a7}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__highlight-search--1Vh4s{color:#000;background-color:#fdd304;border-radius:2px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__highlight-search--1Vh4s::selection{background-color:#5b80a7}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__active-search--YJY4d{color:#000;background-color:#1687ff;border-radius:2px}.src-components-caption-caption__caption--3XwrP .src-components-caption-caption__caption-content--2wYNE .src-components-caption-caption__active-search--YJY4d::selection{background-color:#5b80a7}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"caption\": \"src-components-caption-caption__caption--3XwrP\",\n\t\"caption-time\": \"src-components-caption-caption__caption-time--2vI2E\",\n\t\"captionTime\": \"src-components-caption-caption__caption-time--2vI2E\",\n\t\"caption-content\": \"src-components-caption-caption__caption-content--2wYNE\",\n\t\"captionContent\": \"src-components-caption-caption__caption-content--2wYNE\",\n\t\"caption-span\": \"src-components-caption-caption__caption-span--1H41N\",\n\t\"captionSpan\": \"src-components-caption-caption__caption-span--1H41N\",\n\t\"highlighted\": \"src-components-caption-caption__highlighted--1nPNq\",\n\t\"without-time\": \"src-components-caption-caption__without-time--3lzVv\",\n\t\"withoutTime\": \"src-components-caption-caption__without-time--3lzVv\",\n\t\"highlight-search\": \"src-components-caption-caption__highlight-search--1Vh4s\",\n\t\"highlightSearch\": \"src-components-caption-caption__highlight-search--1Vh4s\",\n\t\"active-search\": \"src-components-caption-caption__active-search--YJY4d\",\n\t\"activeSearch\": \"src-components-caption-caption__active-search--YJY4d\"\n};","/*jslint node:true */\r\n\r\nvar xml2js = require('./xml2js');\r\nvar xml2json = require('./xml2json');\r\nvar js2xml = require('./js2xml');\r\nvar json2xml = require('./json2xml');\r\n\r\nmodule.exports = {\r\n xml2js: xml2js,\r\n xml2json: xml2json,\r\n js2xml: js2xml,\r\n json2xml: json2xml\r\n};\r\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // &amp and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n parser.doctype += c\n if (c === ']') {\n parser.state = S.DOCTYPE\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n strictFail(parser, 'Unquoted attribute value')\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n parser[buffer] += parseEntity(parser)\n parser.entity = ''\n parser.state = returnState\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default:\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\n","var helper = require('./options-helper');\r\nvar xml2js = require('./xml2js');\r\n\r\nfunction validateOptions (userOptions) {\r\n var options = helper.copyOptions(userOptions);\r\n helper.ensureSpacesExists(options);\r\n return options;\r\n}\r\n\r\nmodule.exports = function(xml, userOptions) {\r\n var options, js, json, parentKey;\r\n options = validateOptions(userOptions);\r\n js = xml2js(xml, options);\r\n parentKey = 'compact' in options && options.compact ? '_parent' : 'parent';\r\n // parentKey = ptions.compact ? '_parent' : 'parent'; // consider this\r\n if ('addParent' in options && options.addParent) {\r\n json = JSON.stringify(js, function (k, v) { return k === parentKey? '_' : v; }, options.spaces);\r\n } else {\r\n json = JSON.stringify(js, null, options.spaces);\r\n }\r\n return json.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\r\n};\r\n","var js2xml = require('./js2xml.js');\r\n\r\nmodule.exports = function (json, options) {\r\n if (json instanceof Buffer) {\r\n json = json.toString();\r\n }\r\n var js = null;\r\n if (typeof (json) === 'string') {\r\n try {\r\n js = JSON.parse(json);\r\n } catch (e) {\r\n throw new Error('The JSON structure is invalid');\r\n }\r\n } else {\r\n js = json;\r\n }\r\n return js2xml(js, options);\r\n};\r\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".src-components-caption-list-captionList__transcript-wrapper--f0Xik{position:absolute;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:9px}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"transcript-wrapper\": \"src-components-caption-list-captionList__transcript-wrapper--f0Xik\",\n\t\"transcriptWrapper\": \"src-components-caption-list-captionList__transcript-wrapper--f0Xik\"\n};","export * from './download-print-menu';","import { h, Component, ComponentChild } from \"preact\";\nimport {\n Popover,\n PopoverHorizontalPositions,\n PopoverVerticalPositions,\n KeyboardKeys\n} from \"@playkit-js-contrib/ui\";\nimport { PopoverMenu, PopoverMenuItem } from \"../popover-menu\";\nimport * as styles from \"./download-print-menu.scss\";\n\ninterface DownloadPrintMenuProps {\n dropdownAriaLabel: string;\n printButtonAriaLabel: string;\n downloadButtonAriaLabel: string;\n onDownload: () => void;\n onPrint: () => void;\n downloadDisabled: boolean;\n printDisabled: boolean;\n}\n\ninterface ButtonProperties {\n [\"aria-label\"]: string;\n buttonStyles: string;\n onClick?: () => void;\n tabIndex?: number;\n iconStyles: string;\n}\n\ninterface DownloadPrintMenuState {\n popoverOpen: boolean;\n}\n\nexport class DownloadPrintMenu extends Component<DownloadPrintMenuProps, DownloadPrintMenuState> {\n static defaultProps = {\n dropdownAriaLabel: \"Download or print current transcript\",\n printButtonAriaLabel: \"Print current transcript\",\n downloadButtonAriaLabel: \"Download current transcript\"\n };\n state: DownloadPrintMenuState = {\n popoverOpen: false\n };\n\n private _onDownloadClicked = () => {\n this.props.onDownload();\n };\n\n private _onPrintClicked = () => {\n this.props.onPrint();\n };\n private _onKeyDown = (e: KeyboardEvent, callBack: Function) => {\n if (e.keyCode !== KeyboardKeys.Enter && e.keyCode !== KeyboardKeys.Esc) {\n // don't stopPropagation on ESC and Enter pressed as it prevent the popup closing\n e.stopPropagation();\n }\n switch (e.keyCode) {\n case 13: // Enter pressed\n callBack();\n break;\n }\n };\n private _popoverMenuItemRenderer = (el: PopoverMenuItem) => (\n <div\n tabIndex={1}\n role=\"button\"\n onClick={() => el.onMenuChosen()}\n onKeyDown={(e: KeyboardEvent) => this._onKeyDown(e, el.onMenuChosen)}\n className={styles.popoverMenuItem}\n >\n {el.label}\n </div>\n );\n\n private _getPopoverMenuOptions = () => {\n return [\n {\n label: this.props.downloadButtonAriaLabel,\n onMenuChosen: this._onDownloadClicked\n },\n {\n label: this.props.printButtonAriaLabel,\n onMenuChosen: this._onPrintClicked\n }\n ];\n };\n\n private _renderIcon = ({\n buttonStyles,\n tabIndex = 1,\n iconStyles,\n ...props\n }: ButtonProperties): ComponentChild => {\n return (\n <button className={buttonStyles} tabIndex={tabIndex} {...props}>\n <div className={iconStyles} />\n </button>\n );\n };\n\n private _popoverContent = () => {\n return (\n <PopoverMenu\n itemRenderer={this._popoverMenuItemRenderer}\n options={this._getPopoverMenuOptions()}\n />\n );\n };\n\n render(props: DownloadPrintMenuProps) {\n const { downloadDisabled, printDisabled } = props;\n if (!downloadDisabled && !printDisabled) {\n return (\n <Popover\n className=\"download-print-popover\"\n verticalPosition={PopoverVerticalPositions.Bottom}\n horizontalPosition={PopoverHorizontalPositions.Left}\n content={this._popoverContent()}\n >\n {this._renderIcon({\n [\"aria-label\"]: props.dropdownAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.downloadIcon].join(\" \")\n })}\n </Popover>\n );\n }\n if (!downloadDisabled && printDisabled) {\n return this._renderIcon({\n [\"aria-label\"]: props.downloadButtonAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.downloadIcon].join(\" \"),\n onClick: this._onDownloadClicked\n });\n }\n if (downloadDisabled && !printDisabled) {\n return this._renderIcon({\n [\"aria-label\"]: props.printButtonAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.printIcon].join(\" \"),\n onClick: this._onPrintClicked\n });\n }\n return null;\n }\n}\n","export * from './popover-menu';","import { h, Component, ComponentChild } from \"preact\";\nimport * as styles from \"./popover-menu.scss\";\n\nexport interface PopoverMenuItem {\n label: string;\n onMenuChosen: Function;\n customRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\ninterface PopoverMenuProps {\n options: Array<PopoverMenuItem>;\n itemRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\n/**\n * Popover menu renders list of options.\n * options example:\n * [\n * {label: 'option_1', onMenuChosen: () => console.log('selected first')},\n * {label: 'option_2', onMenuChosen: () => console.log('selected second')}\n * ]\n * In case when 'itemRenderer' properdy hasn't provided - PopoverMenu renders\n * div with class \"popover-menu-item\" that contain label for the current option.\n * Default render of options can be changed by providing 'itemRenderer' - it should be\n * function that takes current option and returns valid 'preact' node.\n * If some option need to be rendered with a different method - specific render\n * method can be provided with 'customRenderer' property for the current option.\n * option example with specific render method:\n * { label: 'specific render', onMenuChosen: () => {}, customRenderer: el => (<span>{el.label}</span>)}\n */\n\nexport class PopoverMenu extends Component<PopoverMenuProps> {\n render(props: any) {\n return (\n <div className={styles.popoverMenu}>\n {props.options.map((el: PopoverMenuItem) => {\n if (el.customRenderer) {\n return el.customRenderer(el);\n }\n if (props.itemRenderer) {\n return props.itemRenderer(el);\n }\n return (\n <div className=\"popover-menu-item\" onClick={() => el.onMenuChosen(el)}>\n {el.label}\n </div>\n );\n })}\n </div>\n );\n }\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".src-components-popover-menu-popover-menu__popover-menu--1g4DI{padding-top:6px;padding-bottom:6px}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"popover-menu\": \"src-components-popover-menu-popover-menu__popover-menu--1g4DI\",\n\t\"popoverMenu\": \"src-components-popover-menu-popover-menu__popover-menu--1g4DI\"\n};","\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./download-print-menu.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./download-print-menu.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/sass-loader/dist/cjs.js!./download-print-menu.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"../../assets/download.svg\"));\nvar ___CSS_LOADER_URL___1___ = urlEscape(require(\"../../assets/download-over.svg\"));\nvar ___CSS_LOADER_URL___2___ = urlEscape(require(\"../../assets/print.svg\"));\nvar ___CSS_LOADER_URL___3___ = urlEscape(require(\"../../assets/print-over.svg\"));\n\n// Module\nexports.push([module.id, \".src-components-download-print-menu-download-print-menu__download-print-button--p3A_x{display:inline-block;width:36px;height:36px;color:#fff;border:none;cursor:pointer;padding:0;opacity:0.8;background:none}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x:hover,.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x:active{border-radius:4px;background-color:rgba(0,0,0,0.8)}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x:focus{outline:1px solid #00cbff}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x .src-components-download-print-menu-download-print-menu__icon--3D6Bs{width:100%;height:100%;background-position:center;background-size:cover}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x .src-components-download-print-menu-download-print-menu__download-icon--zO2i1{background-image:url(\" + ___CSS_LOADER_URL___0___ + \")}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x .src-components-download-print-menu-download-print-menu__download-icon--zO2i1:active{background-image:url(\" + ___CSS_LOADER_URL___1___ + \")}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x .src-components-download-print-menu-download-print-menu__print-icon--3BgL1{background-image:url(\" + ___CSS_LOADER_URL___2___ + \")}.src-components-download-print-menu-download-print-menu__download-print-button--p3A_x .src-components-download-print-menu-download-print-menu__print-icon--3BgL1:active{background-image:url(\" + ___CSS_LOADER_URL___3___ + \")}.src-components-download-print-menu-download-print-menu__popover-menu-item--35vi-{display:flex;align-items:center;padding:9px 24px 9px 16px;white-space:nowrap;min-height:30px;line-height:18px;font-size:15px}.src-components-download-print-menu-download-print-menu__popover-menu-item--35vi-:hover{cursor:pointer;background-color:#666}.src-components-download-print-menu-download-print-menu__popover-menu-item--35vi-:focus{outline:1px solid #00cbff}\\n\", \"\"]);\n\n// Exports\nexports.locals = {\n\t\"download-print-button\": \"src-components-download-print-menu-download-print-menu__download-print-button--p3A_x\",\n\t\"downloadPrintButton\": \"src-components-download-print-menu-download-print-menu__download-print-button--p3A_x\",\n\t\"icon\": \"src-components-download-print-menu-download-print-menu__icon--3D6Bs\",\n\t\"download-icon\": \"src-components-download-print-menu-download-print-menu__download-icon--zO2i1\",\n\t\"downloadIcon\": \"src-components-download-print-menu-download-print-menu__download-icon--zO2i1\",\n\t\"print-icon\": \"src-components-download-print-menu-download-print-menu__print-icon--3BgL1\",\n\t\"printIcon\": \"src-components-download-print-menu-download-print-menu__print-icon--3BgL1\",\n\t\"popover-menu-item\": \"src-components-download-print-menu-download-print-menu__popover-menu-item--35vi-\",\n\t\"popoverMenuItem\": \"src-components-download-print-menu-download-print-menu__popover-menu-item--35vi-\"\n};","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/Download%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/Download' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M26,25 C26.5522847,25 27,25.4477153 27,26 C27,26.5522847 26.5522847,27 26,27 L26,27 L7,27 C6.44771525,27 6,26.5522847 6,26 C6,25.4477153 6.44771525,25 7,25 L7,25 Z M15.897,20.797 L15.817,20.73 L15.8163834,20.7298413 L8.34305882,13.7298413 C7.93997861,13.3522902 7.91928313,12.7194636 8.29683417,12.3163834 C8.67438521,11.9133032 9.30721188,11.8926077 9.71029209,12.2701587 L15.4996721,17.693 L15.5,6 C15.5,5.48716416 15.8860402,5.06449284 16.3833789,5.00672773 L16.5,5 C17.0522847,5 17.5,5.44771525 17.5,6 L17.4996721,17.694 L23.2951711,12.2699211 C23.6673663,11.9215418 24.2352038,11.9125649 24.6172049,12.230382 L24.7086128,12.3166371 C25.0860237,12.7198486 25.0651082,13.352668 24.6618968,13.7300789 L17.1833629,20.7300789 L17.1610165,20.7503813 L17.1610165,20.7503813 C17.1421868,20.7669999 17.1224361,20.7831339 17.102079,20.7985075 C17.0891381,20.8082894 17.0764369,20.8174134 17.0635772,20.826204 C17.0434306,20.8399634 17.0223437,20.8532674 17.0007451,20.8657864 C16.9872099,20.8736423 16.9734873,20.8811624 16.959633,20.8883367 L16.8877511,20.9220455 L16.8877511,20.9220455 C16.8756318,20.927087 16.8632234,20.9320132 16.8507409,20.9366814 C16.83028,20.9444208 16.8097352,20.9513578 16.7889039,20.9576336 C16.7705976,20.9630349 16.752126,20.968019 16.7335525,20.9724647 C16.6585039,20.9905214 16.5803589,21 16.5,21 C16.4170842,21 16.3365254,20.9899086 16.2594848,20.9708871 C16.2500284,20.9684434 16.2399293,20.9657886 16.2298654,20.9629733 C16.2028024,20.9554899 16.1769173,20.947049 16.1515197,20.9376057 C16.1370523,20.9321598 16.1223107,20.9262914 16.1076867,20.9200585 C16.0832011,20.9096448 16.0596143,20.8984375 16.036557,20.886357 C16.025923,20.8807972 16.0148138,20.8747205 16.0037984,20.8684173 C15.9792921,20.8543502 15.955966,20.8396537 15.9333153,20.8240474 L15.898,20.798 L15.897,20.797 Z M15.867,20.774 L15.888,20.79 L15.8735171,20.7794831 L15.8735171,20.7794831 L15.867,20.774 Z M15.817,20.73 L15.9035191,20.8027045 C15.8784859,20.7840722 15.8543541,20.7642966 15.831201,20.7434548 L15.817,20.73 Z' id='Combined-Shape' fill='%23ffffff'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 57.1 (83088) - https://sketch.com --%3E %3Ctitle%3EIcons/32/Download%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/Download' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M26,25 C26.5522847,25 27,25.4477153 27,26 C27,26.5522847 26.5522847,27 26,27 L26,27 L7,27 C6.44771525,27 6,26.5522847 6,26 C6,25.4477153 6.44771525,25 7,25 L7,25 Z M15.897,20.797 L15.817,20.73 L15.8163834,20.7298413 L8.34305882,13.7298413 C7.93997861,13.3522902 7.91928313,12.7194636 8.29683417,12.3163834 C8.67438521,11.9133032 9.30721188,11.8926077 9.71029209,12.2701587 L15.4996721,17.693 L15.5,6 C15.5,5.48716416 15.8860402,5.06449284 16.3833789,5.00672773 L16.5,5 C17.0522847,5 17.5,5.44771525 17.5,6 L17.4996721,17.694 L23.2951711,12.2699211 C23.6673663,11.9215418 24.2352038,11.9125649 24.6172049,12.230382 L24.7086128,12.3166371 C25.0860237,12.7198486 25.0651082,13.352668 24.6618968,13.7300789 L17.1833629,20.7300789 L17.1610165,20.7503813 L17.1610165,20.7503813 C17.1421868,20.7669999 17.1224361,20.7831339 17.102079,20.7985075 C17.0891381,20.8082894 17.0764369,20.8174134 17.0635772,20.826204 C17.0434306,20.8399634 17.0223437,20.8532674 17.0007451,20.8657864 C16.9872099,20.8736423 16.9734873,20.8811624 16.959633,20.8883367 L16.8877511,20.9220455 L16.8877511,20.9220455 C16.8756318,20.927087 16.8632234,20.9320132 16.8507409,20.9366814 C16.83028,20.9444208 16.8097352,20.9513578 16.7889039,20.9576336 C16.7705976,20.9630349 16.752126,20.968019 16.7335525,20.9724647 C16.6585039,20.9905214 16.5803589,21 16.5,21 C16.4170842,21 16.3365254,20.9899086 16.2594848,20.9708871 C16.2500284,20.9684434 16.2399293,20.9657886 16.2298654,20.9629733 C16.2028024,20.9554899 16.1769173,20.947049 16.1515197,20.9376057 C16.1370523,20.9321598 16.1223107,20.9262914 16.1076867,20.9200585 C16.0832011,20.9096448 16.0596143,20.8984375 16.036557,20.886357 C16.025923,20.8807972 16.0148138,20.8747205 16.0037984,20.8684173 C15.9792921,20.8543502 15.955966,20.8396537 15.9333153,20.8240474 L15.898,20.798 L15.897,20.797 Z M15.867,20.774 L15.888,20.79 L15.8735171,20.7794831 L15.8735171,20.7794831 L15.867,20.774 Z M15.817,20.73 L15.9035191,20.8027045 C15.8784859,20.7840722 15.8543541,20.7642966 15.831201,20.7434548 L15.817,20.73 Z' id='Combined-Shape' fill='%2301ACCD'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 59 (86127) - https://sketch.com --%3E %3Ctitle%3EIcons/32/print%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/print' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M21,3 C22.0543618,3 22.9181651,3.81587779 22.9945143,4.85073766 L23,5 L23,9 L26,9 C27.1045695,9 28,9.8954305 28,11 L28,21 C28,22.1045695 27.1045695,23 26,23 L23,23 L23,28 C23,29.1045695 22.1045695,30 21,30 L11,30 C9.8954305,30 9,29.1045695 9,28 L9,23 L6,23 C4.8954305,23 4,22.1045695 4,21 L4,11 C4,9.8954305 4.8954305,9 6,9 L9,9 L9,5 C9,3.9456382 9.81587779,3.08183488 10.8507377,3.00548574 L11,3 L21,3 Z M21,19 L11,19 L11,28 L21,28 L21,19 Z M26,11 L6,11 L6,21 L9,21 L9,19 C8.44771525,19 8,18.5522847 8,18 C8,17.4477153 8.44771525,17 9,17 L23,17 C23.5522847,17 24,17.4477153 24,18 C24,18.5522847 23.5522847,19 23,19 L23,21 L26,21 L26,11 Z M21,5 L11,5 L11,9 L21,9 L21,5 Z' id='Combined-Shape' fill='%23fff'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\"","module.exports = \"data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='32px' height='32px' viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 59 (86127) - https://sketch.com --%3E %3Ctitle%3EIcons/32/print%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cg id='Icons/32/print' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M21,3 C22.0543618,3 22.9181651,3.81587779 22.9945143,4.85073766 L23,5 L23,9 L26,9 C27.1045695,9 28,9.8954305 28,11 L28,21 C28,22.1045695 27.1045695,23 26,23 L23,23 L23,28 C23,29.1045695 22.1045695,30 21,30 L11,30 C9.8954305,30 9,29.1045695 9,28 L9,23 L6,23 C4.8954305,23 4,22.1045695 4,21 L4,11 C4,9.8954305 4.8954305,9 6,9 L9,9 L9,5 C9,3.9456382 9.81587779,3.08183488 10.8507377,3.00548574 L11,3 L21,3 Z M21,19 L11,19 L11,28 L21,28 L21,19 Z M26,11 L6,11 L6,21 L9,21 L9,19 C8.44771525,19 8,18.5522847 8,18 C8,17.4477153 8.44771525,17 9,17 L23,17 C23.5522847,17 24,17.4477153 24,18 C24,18.5522847 23.5522847,19 23,19 L23,21 L26,21 L26,11 Z M21,5 L11,5 L11,9 L21,9 L21,5 Z' id='Combined-Shape' fill='%2301ACCD'%3E%3C/path%3E %3C/g%3E %3C/svg%3E\""],"sourceRoot":""}
1
+ {"version":3,"file":"playkit-transcript.js","mappings":"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","sources":["./transcript/./components/caption-list/captionList.scss","./transcript/./components/caption/caption.scss","./transcript/./components/close-button/close-button.scss","./transcript/./components/download-print-menu/download-print-menu.scss","./transcript/./components/plugin-button/plugin-button.scss","./transcript/./components/popover-menu/popover-menu.scss","./transcript/./components/search/search.scss","./transcript/./components/spinner/spinner.scss","./transcript/./components/transcript/transcript.scss","./transcript/./utils/popover/popover.scss","./transcript/../node_modules/css-loader/dist/runtime/api.js","./transcript/../node_modules/css-loader/dist/runtime/getUrl.js","./transcript/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://KalturaPlayer.plugins.transcript/./components/caption-list/captionList.scss?ed8b","webpack://KalturaPlayer.plugins.transcript/./components/caption/caption.scss?0818","webpack://KalturaPlayer.plugins.transcript/./components/close-button/close-button.scss?8d4a","webpack://KalturaPlayer.plugins.transcript/./components/download-print-menu/download-print-menu.scss?252d","webpack://KalturaPlayer.plugins.transcript/./components/plugin-button/plugin-button.scss?1671","webpack://KalturaPlayer.plugins.transcript/./components/popover-menu/popover-menu.scss?30d2","webpack://KalturaPlayer.plugins.transcript/./components/search/search.scss?50d2","webpack://KalturaPlayer.plugins.transcript/./components/spinner/spinner.scss?84e4","webpack://KalturaPlayer.plugins.transcript/./components/transcript/transcript.scss?5d08","webpack://KalturaPlayer.plugins.transcript/./utils/popover/popover.scss?2fad","./transcript/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","./transcript/./components/a11y-wrapper/a11y-wrapper.ts","./transcript/./components/a11y-wrapper/index.ts","./transcript/./components/caption-list/captionList.tsx","./transcript/./components/caption-list/index.ts","./transcript/./components/caption/caption.tsx","./transcript/./components/caption/index.ts","./transcript/./components/close-button/index.tsx","./transcript/./components/download-print-menu/download-print-menu.tsx","./transcript/./components/download-print-menu/index.ts","./transcript/./components/icons/index.ts","./transcript/./components/plugin-button/plugin-button.tsx","./transcript/./components/popover-menu/index.ts","./transcript/./components/popover-menu/popover-menu.tsx","./transcript/./components/search/index.ts","./transcript/./components/search/search.tsx","./transcript/./components/spinner/index.ts","./transcript/./components/spinner/spinner.tsx","./transcript/./components/transcript/index.ts","./transcript/./components/transcript/transcript.tsx","./transcript/./transcript-plugin.tsx","./transcript/./types/index.ts","./transcript/./types/transcript-item-data.ts","./transcript/./types/types-ui.ts","./transcript/./utils/debounce.ts","./transcript/./utils/index.ts","./transcript/./utils/object-utils.ts","./transcript/./utils/popover/popover.tsx","./transcript/./utils/utils.ts","./transcript/external root \"KalturaPlayer.ui.preact\"","./transcript/external var [\"KalturaPlayer\"]","./transcript/webpack/bootstrap","./transcript/webpack/runtime/compat get default export","./transcript/webpack/runtime/define property getters","./transcript/webpack/runtime/global","./transcript/webpack/runtime/hasOwnProperty shorthand","./transcript/webpack/runtime/make namespace object","./transcript/webpack/runtime/publicPath","./transcript/webpack/runtime/jsonp chunk loading","./transcript/webpack/runtime/nonce","./transcript/./index.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".captionList__transcript-wrapper___Omf8T{position:absolute;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:9px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption-list/captionList.scss\"],\"names\":[],\"mappings\":\"AAAA,yCACE,iBAAkB,CAClB,UAAW,CACX,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,iBAAkB\",\"sourcesContent\":[\".transcript-wrapper {\\n position: absolute;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n padding-right: 9px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"transcript-wrapper\": \"captionList__transcript-wrapper___Omf8T\",\n\t\"transcriptWrapper\": \"captionList__transcript-wrapper___Omf8T\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".caption__caption___v5MZY{display:flex;justify-content:space-between;width:100%;margin-bottom:9px;margin-left:8px;color:#fff}.caption__caption___v5MZY .caption__caption-time___N5cw5{flex-shrink:1;min-width:48px;align-items:flex-start;margin-right:8px;padding-top:2px;text-align:right;font-size:12px;color:#ccc}.caption__caption___v5MZY .caption__caption-content___F1WTh{flex-grow:1;font-size:14px;line-height:18px;text-align:left;user-select:text}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover .caption__caption-span___cTewu{background-color:#666}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover.caption__highlighted___ikaKW .caption__caption-span___cTewu{color:#fff;background-color:#01819a;padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__highlighted___ikaKW .caption__caption-span___cTewu{color:#000;background-color:#01accd;padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__without-time___v7BWT{margin-left:16px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu{user-select:text;-ms-user-select:text;border-radius:2px;cursor:pointer}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu::selection{background-color:#5b80a7;padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu>span::selection{background-color:#5b80a7}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg{color:#000;background-color:#fdd304;border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg::selection{background-color:#5b80a7}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD{color:#000;background-color:#1687ff;border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD::selection{background-color:#5b80a7}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption/caption.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,0BACE,YAAa,CACb,6BAA8B,CAC9B,UAAW,CACX,iBAAkB,CAClB,eAAgB,CAChB,UCPmB,CDCrB,yDAQI,aAAc,CACd,cAAe,CACf,sBAAuB,CACvB,gBAAiB,CACjB,eAAgB,CAChB,gBAAiB,CACjB,cAAe,CACf,UCfgB,CDApB,4DAkBI,WAAY,CACZ,cAAe,CACf,gBAAiB,CACjB,eAAgB,CAChB,gBAAiB,CAtBrB,iGAyBQ,qBCtBgB,CDHxB,8HA6BU,UC9BW,CD+BX,wBCpBkC,CDqBlC,aAAc,CA/BxB,wHAqCQ,UChCa,CDiCb,wBCxCY,CDyCZ,aAAc,CAvCtB,0FA2CM,gBAAiB,CA3CvB,2FA8CM,gBAAiB,CACjB,oBAAqB,CACrB,iBAAkB,CAClB,cAAe,CAjDrB,sGAmDQ,wBC1CsB,CD2CtB,aAAc,CApDtB,2GAuDQ,wBC9CsB,CDT9B,+FA2DM,UCtDe,CDuDf,wBCrDoB,CDsDpB,iBAAkB,CA7DxB,0GA+DQ,wBCtDsB,CDT9B,4FAmEM,UC9De,CD+Df,wBC5D4B,CD6D5B,iBAAkB,CArExB,uGAuEQ,wBC9DsB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.caption {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 9px;\\n margin-left: 8px;\\n color: $white-color;\\n .caption-time {\\n flex-shrink: 1;\\n min-width: 48px;\\n align-items: flex-start;\\n margin-right: 8px;\\n padding-top: 2px;\\n text-align: right;\\n font-size: 12px;\\n color: $gray-color;\\n }\\n .caption-content {\\n flex-grow: 1;\\n font-size: 14px;\\n line-height: 18px;\\n text-align: left;\\n user-select: text;\\n &:hover {\\n .caption-span {\\n background-color: $semigray-color;\\n }\\n &.highlighted {\\n .caption-span {\\n color: $white-color;\\n background-color: $main-color-darken;\\n padding: 0 2px;\\n }\\n }\\n }\\n &.highlighted {\\n .caption-span {\\n color: $black-color;\\n background-color: $main-color;\\n padding: 0 2px;\\n }\\n }\\n &.without-time {\\n margin-left: 16px;\\n }\\n .caption-span {\\n user-select: text;\\n -ms-user-select: text;\\n border-radius: 2px;\\n cursor: pointer;\\n &::selection {\\n background-color: $text-selection-color;\\n padding: 0 2px;\\n }\\n & > span::selection {\\n background-color: $text-selection-color;\\n }\\n }\\n .highlight-search {\\n color: $black-color;\\n background-color: $text-match-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $text-selection-color;\\n }\\n }\\n .active-search {\\n color: $black-color;\\n background-color: $text-current-match-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $text-selection-color;\\n }\\n }\\n }\\n}\\n\",\"$main-color: #01accd;\\n$white-color: #ffffff;\\n$gray-color: #cccccc;\\n$darken-gray: #444444;\\n$darkgray-color: #333333;\\n$semigray-color: #666666;\\n$lightgray-color: #999999;\\n$black-color: #000000;\\n$semiblack-color: #222222;\\n$text-match-color: #fdd304;\\n$text-current-match-color: #1687ff;\\n$text-selection-color: #5b80a7;\\n$main-color-darken: darken($main-color, 10%);\\n$root-background: #000000a1;\\n$focus-color: #00cbff;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"caption\": \"caption__caption___v5MZY\",\n\t\"caption-time\": \"caption__caption-time___N5cw5\",\n\t\"captionTime\": \"caption__caption-time___N5cw5\",\n\t\"caption-content\": \"caption__caption-content___F1WTh\",\n\t\"captionContent\": \"caption__caption-content___F1WTh\",\n\t\"caption-span\": \"caption__caption-span___cTewu\",\n\t\"captionSpan\": \"caption__caption-span___cTewu\",\n\t\"highlighted\": \"caption__highlighted___ikaKW\",\n\t\"without-time\": \"caption__without-time___v7BWT\",\n\t\"withoutTime\": \"caption__without-time___v7BWT\",\n\t\"highlight-search\": \"caption__highlight-search___Rc4qg\",\n\t\"highlightSearch\": \"caption__highlight-search___Rc4qg\",\n\t\"active-search\": \"caption__active-search___yoZOD\",\n\t\"activeSearch\": \"caption__active-search___yoZOD\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".close-button__close-btn___vnv2i{position:absolute;top:13px;right:14px;width:24px;height:24px;padding:0;background-color:transparent;border:none;cursor:pointer}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/close-button/close-button.scss\"],\"names\":[],\"mappings\":\"AAAA,iCACE,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,UAAW,CACX,WAAY,CACZ,SAAU,CACV,4BAA6B,CAC7B,WAAY,CACZ,cAAe\",\"sourcesContent\":[\".close-btn {\\n position: absolute;\\n top: 13px;\\n right: 14px;\\n width: 24px;\\n height: 24px;\\n padding: 0;\\n background-color: transparent;\\n border: none;\\n cursor: pointer;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"close-btn\": \"close-button__close-btn___vnv2i\",\n\t\"closeBtn\": \"close-button__close-btn___vnv2i\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../assets/download.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../../assets/download-over.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../../assets/print.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../../assets/print-over.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".download-print-menu__download-print-button___lopD9{display:inline-block;width:36px;height:36px;color:#fff;border:none;cursor:pointer;padding:0;background:none;border-radius:4px;outline-offset:0 -1px}.download-print-menu__download-print-button___lopD9:hover,.download-print-menu__download-print-button___lopD9:active{border-radius:4px;background-color:rgba(0,0,0,0.8)}.download-print-menu__download-print-button___lopD9:focus{outline:1px solid #00cbff}.download-print-menu__download-print-button___lopD9 .download-print-menu__icon___fBxyb{width:100%;height:100%;background-position:center;background-size:cover}.download-print-menu__download-print-button___lopD9 .download-print-menu__download-icon___JnQEu{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.download-print-menu__download-print-button___lopD9 .download-print-menu__download-icon___JnQEu:active{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.download-print-menu__download-print-button___lopD9 .download-print-menu__print-icon___t8VI9{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.download-print-menu__download-print-button___lopD9 .download-print-menu__print-icon___t8VI9:active{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.download-print-menu__popover-menu-item___MkzGI{display:flex;align-items:center;padding:9px 24px 9px 16px;white-space:nowrap;min-height:30px;line-height:18px;font-size:15px}.download-print-menu__popover-menu-item___MkzGI:hover{cursor:pointer;background-color:#666}.download-print-menu__popover-menu-item___MkzGI:focus{outline:1px solid #00cbff}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/download-print-menu/download-print-menu.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,oDACE,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,UCLmB,CDMnB,WAAY,CACZ,cAAe,CACf,SAAU,CACV,eAAgB,CAChB,iBAAkB,CAClB,qBAAsB,CAVxB,qHAaI,iBAAkB,CAClB,gCAAoC,CAdxC,0DAiBI,yBCLiB,CDZrB,uFAoBI,UAAW,CACX,WAAY,CACZ,0BAA2B,CAC3B,qBAAsB,CAvB1B,gGA0BI,wDAAkD,CA1BtD,uGA4BM,wDAAuD,CA5B7D,6FAgCI,wDAA+C,CAhCnD,oGAkCM,wDAAoD,CACrD,gDAIH,YAAa,CACb,kBAAmB,CACnB,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,gBAAiB,CACjB,cAAe,CAPjB,sDASI,cAAe,CACf,qBC7CoB,CDmCxB,sDAaI,yBCvCiB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.download-print-button {\\n display: inline-block;\\n width: 36px;\\n height: 36px;\\n color: $white-color;\\n border: none;\\n cursor: pointer;\\n padding: 0;\\n background: none;\\n border-radius: 4px;\\n outline-offset: 0 -1px;\\n &:hover,\\n &:active {\\n border-radius: 4px;\\n background-color: rgba(0, 0, 0, 0.8);\\n }\\n &:focus {\\n outline: 1px solid $focus-color;\\n }\\n .icon {\\n width: 100%;\\n height: 100%;\\n background-position: center;\\n background-size: cover;\\n }\\n .download-icon {\\n background-image: url('../../assets/download.svg');\\n &:active {\\n background-image: url('../../assets/download-over.svg');\\n }\\n }\\n .print-icon {\\n background-image: url('../../assets/print.svg');\\n &:active {\\n background-image: url('../../assets/print-over.svg');\\n }\\n }\\n}\\n.popover-menu-item {\\n display: flex;\\n align-items: center;\\n padding: 9px 24px 9px 16px;\\n white-space: nowrap;\\n min-height: 30px;\\n line-height: 18px;\\n font-size: 15px;\\n &:hover {\\n cursor: pointer;\\n background-color: $semigray-color;\\n }\\n &:focus {\\n outline: 1px solid $focus-color;\\n }\\n}\\n\",\"$main-color: #01accd;\\n$white-color: #ffffff;\\n$gray-color: #cccccc;\\n$darken-gray: #444444;\\n$darkgray-color: #333333;\\n$semigray-color: #666666;\\n$lightgray-color: #999999;\\n$black-color: #000000;\\n$semiblack-color: #222222;\\n$text-match-color: #fdd304;\\n$text-current-match-color: #1687ff;\\n$text-selection-color: #5b80a7;\\n$main-color-darken: darken($main-color, 10%);\\n$root-background: #000000a1;\\n$focus-color: #00cbff;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"download-print-button\": \"download-print-menu__download-print-button___lopD9\",\n\t\"downloadPrintButton\": \"download-print-menu__download-print-button___lopD9\",\n\t\"icon\": \"download-print-menu__icon___fBxyb\",\n\t\"download-icon\": \"download-print-menu__download-icon___JnQEu\",\n\t\"downloadIcon\": \"download-print-menu__download-icon___JnQEu\",\n\t\"print-icon\": \"download-print-menu__print-icon___t8VI9\",\n\t\"printIcon\": \"download-print-menu__print-icon___t8VI9\",\n\t\"popover-menu-item\": \"download-print-menu__popover-menu-item___MkzGI\",\n\t\"popoverMenuItem\": \"download-print-menu__popover-menu-item___MkzGI\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".plugin-button__navigationPluginButton___aYKGm,.plugin-button__navigationPluginIcon___cMc2h{min-height:36px;min-width:36px}.plugin-button__pluginButton___hbzoA{display:flex;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:4px;cursor:pointer}.plugin-button__pluginButton___hbzoA.plugin-button__active___pVKh2{background-color:#444}.playkit-player .playkit-top-bar .playkit-right-controls{display:flex}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/plugin-button/plugin-button.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,4FAEE,eAAgB,CAChB,cAAe,CAChB,qCAGC,YAAa,CACb,UAAW,CACX,WAAY,CACZ,SAAU,CACV,sBAAuB,CACvB,WAAY,CACZ,iBAAkB,CAClB,cAAe,CARjB,mEAUI,qBCfiB,CDgBlB,yDAKD,YAAa\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.navigationPluginButton,\\n.navigationPluginIcon {\\n min-height: 36px;\\n min-width: 36px;\\n}\\n\\n.pluginButton {\\n display: flex;\\n width: 36px;\\n height: 36px;\\n padding: 0;\\n background: transparent;\\n border: none;\\n border-radius: 4px;\\n cursor: pointer;\\n &.active {\\n background-color: $darken-gray;\\n }\\n}\\n\\n// TODO: remove once core team fix alignment of plugin icons\\n:global(.playkit-player .playkit-top-bar .playkit-right-controls) {\\n display: flex;\\n}\\n\",\"$main-color: #01accd;\\n$white-color: #ffffff;\\n$gray-color: #cccccc;\\n$darken-gray: #444444;\\n$darkgray-color: #333333;\\n$semigray-color: #666666;\\n$lightgray-color: #999999;\\n$black-color: #000000;\\n$semiblack-color: #222222;\\n$text-match-color: #fdd304;\\n$text-current-match-color: #1687ff;\\n$text-selection-color: #5b80a7;\\n$main-color-darken: darken($main-color, 10%);\\n$root-background: #000000a1;\\n$focus-color: #00cbff;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"navigationPluginButton\": \"plugin-button__navigationPluginButton___aYKGm\",\n\t\"navigationPluginIcon\": \"plugin-button__navigationPluginIcon___cMc2h\",\n\t\"pluginButton\": \"plugin-button__pluginButton___hbzoA\",\n\t\"active\": \"plugin-button__active___pVKh2\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover-menu__popover-menu___GirVB{padding-top:6px;padding-bottom:6px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/popover-menu/popover-menu.scss\"],\"names\":[],\"mappings\":\"AAEA,oCACE,eAAgB,CAChB,kBAAmB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.popover-menu {\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-menu\": \"popover-menu__popover-menu___GirVB\",\n\t\"popoverMenu\": \"popover-menu__popover-menu___GirVB\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../assets/search.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../../assets/up.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../../assets/down.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../../assets/clear.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".search__search-wrapper___b302M{display:flex;align-items:center;flex-grow:1;width:100%;max-width:599px;height:32px;background-color:rgba(255,255,255,0.24);border:solid 1px rgba(255,255,255,0.4);border-radius:4px}.search__search-wrapper___b302M ::-moz-placeholder{opacity:1}.search__search-wrapper___b302M .search__search-icon___pdHf8{flex:0 0 32px;background-color:transparent;background-position:center;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");width:32px;height:32px;margin:0 2px}.search__search-wrapper___b302M .search__search-results___XnM2h{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;margin:0 8px;font-size:12px;text-overflow:ellipsis}.search__search-wrapper___b302M .search__prev-next-wrapper___aRLOB{display:flex;flex-direction:column;justify-content:space-around;height:100%;margin-right:8px}.search__search-wrapper___b302M .search__prev-next-wrapper___aRLOB .search__prev-next-button___eNGEo{width:14px;height:6px;background-color:transparent;background-position:center;background-size:cover;border:none;cursor:pointer}.search__search-wrapper___b302M .search__prev-next-wrapper___aRLOB .search__prev-next-button___eNGEo.search__prev-button___aL_2P{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.search__search-wrapper___b302M .search__prev-next-wrapper___aRLOB .search__prev-next-button___eNGEo.search__next-button___WmiHA{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.search__search-wrapper___b302M .search__prev-next-wrapper___aRLOB .search__prev-next-button___eNGEo.search__disabled___EegfA{opacity:0.4;cursor:default}.search__search-wrapper___b302M .search__search-input___vUcqo{width:100%;flex-grow:1;flex-shrink:1;font-size:15px;padding:0 6px 1px 0;color:#ccc;background:transparent;border:none;overflow:hidden;text-overflow:ellipsis}.search__search-wrapper___b302M .search__search-input___vUcqo:focus{outline:none !important}.search__search-wrapper___b302M .search__search-input___vUcqo::placeholder{color:#ccc}.search__search-wrapper___b302M .search__search-input___vUcqo::selection{background-color:#5b80a7}.search__search-wrapper___b302M .search__clear-icon___zbwig{flex:0 0 32px;max-width:32px;max-height:32px;background-color:transparent;background-position:center;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \");width:32px;height:32px;border:none;cursor:pointer}.search__search-wrapper___b302M.search__active___Dcstu{color:#ccc;background:#000}.search__search-wrapper___b302M.search__focused___taZHo{box-shadow:0 0 0 1px #00cbff;border-radius:4px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/search/search.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,gCAKE,YAAa,CACb,kBAAmB,CACnB,WAAY,CACZ,UAAW,CACX,eAAgB,CAChB,WAAY,CACZ,uCAA2C,CAC3C,sCAA0C,CAC1C,iBAAkB,CAbpB,mDAEI,SAAU,CAFd,6DAeI,aAAc,CACd,4BAA6B,CAC7B,0BAA2B,CAC3B,wDAAgD,CAChD,UAAW,CACX,WAAY,CACZ,YAAa,CArBjB,gEAwBI,YAAa,CACb,wBAAyB,CACzB,kBAAmB,CACnB,aAAc,CACd,YAAa,CACb,cAAe,CACf,sBAAuB,CA9B3B,mEAiCI,YAAa,CACb,qBAAsB,CACtB,4BAA6B,CAC7B,WAAY,CACZ,gBAAiB,CArCrB,qGAuCM,UAAW,CACX,UAAW,CACX,4BAA6B,CAC7B,0BAA2B,CAC3B,qBAAsB,CACtB,WAAY,CACZ,cAAe,CA7CrB,iIA+CQ,wDAA4C,CA/CpD,iIAkDQ,wDAA8C,CAlDtD,8HAqDQ,WAAY,CACZ,cAAe,CAtDvB,8DA2DI,UAAW,CACX,WAAY,CACZ,aAAc,CACd,cAAe,CACf,mBAAoB,CACpB,UChEgB,CDiEhB,sBAAuB,CACvB,WAAY,CACZ,eAAgB,CAChB,sBAAuB,CApE3B,oEAsEM,uBAAwB,CAtE9B,2EAyEM,UCzEc,CDApB,yEA4EM,wBCnEwB,CDT9B,4DAgFI,aAAc,CACd,cAAe,CACf,eAAgB,CAChB,4BAA6B,CAC7B,0BAA2B,CAC3B,wDAA+C,CAC/C,UAAW,CACX,WAAY,CACZ,WAAY,CACZ,cAAe,CAzFnB,uDA4FI,UC5FgB,CD6FhB,eCxFiB,CDLrB,wDAgGI,4BCpFiB,CDqFjB,iBAAkB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.search-wrapper {\\n ::-moz-placeholder {\\n opacity: 1;\\n }\\n\\n display: flex;\\n align-items: center;\\n flex-grow: 1;\\n width: 100%;\\n max-width: 599px;\\n height: 32px;\\n background-color: rgba(255, 255, 255, 0.24);\\n border: solid 1px rgba(255, 255, 255, 0.4);\\n border-radius: 4px;\\n .search-icon {\\n flex: 0 0 32px;\\n background-color: transparent;\\n background-position: center;\\n background-image: url('../../assets/search.svg');\\n width: 32px;\\n height: 32px;\\n margin: 0 2px;\\n }\\n .search-results {\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n flex-shrink: 0;\\n margin: 0 8px;\\n font-size: 12px;\\n text-overflow: ellipsis;\\n }\\n .prev-next-wrapper {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-around;\\n height: 100%;\\n margin-right: 8px;\\n .prev-next-button {\\n width: 14px;\\n height: 6px;\\n background-color: transparent;\\n background-position: center;\\n background-size: cover;\\n border: none;\\n cursor: pointer;\\n &.prev-button {\\n background-image: url('../../assets/up.svg');\\n }\\n &.next-button {\\n background-image: url('../../assets/down.svg');\\n }\\n &.disabled {\\n opacity: 0.4;\\n cursor: default;\\n }\\n }\\n }\\n .search-input {\\n width: 100%;\\n flex-grow: 1;\\n flex-shrink: 1;\\n font-size: 15px;\\n padding: 0 6px 1px 0;\\n color: $gray-color;\\n background: transparent;\\n border: none;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n &:focus {\\n outline: none !important; // prevent focus styles inherited from playkit-player.playkit-nav\\n }\\n &::placeholder {\\n color: $gray-color;\\n }\\n &::selection {\\n background-color: $text-selection-color;\\n }\\n }\\n .clear-icon {\\n flex: 0 0 32px;\\n max-width: 32px;\\n max-height: 32px;\\n background-color: transparent;\\n background-position: center;\\n background-image: url('../../assets/clear.svg');\\n width: 32px;\\n height: 32px;\\n border: none;\\n cursor: pointer;\\n }\\n &.active {\\n color: $gray-color;\\n background: $black-color;\\n }\\n &.focused {\\n box-shadow: 0 0 0 1px $focus-color;\\n border-radius: 4px;\\n }\\n}\\n\",\"$main-color: #01accd;\\n$white-color: #ffffff;\\n$gray-color: #cccccc;\\n$darken-gray: #444444;\\n$darkgray-color: #333333;\\n$semigray-color: #666666;\\n$lightgray-color: #999999;\\n$black-color: #000000;\\n$semiblack-color: #222222;\\n$text-match-color: #fdd304;\\n$text-current-match-color: #1687ff;\\n$text-selection-color: #5b80a7;\\n$main-color-darken: darken($main-color, 10%);\\n$root-background: #000000a1;\\n$focus-color: #00cbff;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"search-wrapper\": \"search__search-wrapper___b302M\",\n\t\"searchWrapper\": \"search__search-wrapper___b302M\",\n\t\"search-icon\": \"search__search-icon___pdHf8\",\n\t\"searchIcon\": \"search__search-icon___pdHf8\",\n\t\"search-results\": \"search__search-results___XnM2h\",\n\t\"searchResults\": \"search__search-results___XnM2h\",\n\t\"prev-next-wrapper\": \"search__prev-next-wrapper___aRLOB\",\n\t\"prevNextWrapper\": \"search__prev-next-wrapper___aRLOB\",\n\t\"prev-next-button\": \"search__prev-next-button___eNGEo\",\n\t\"prevNextButton\": \"search__prev-next-button___eNGEo\",\n\t\"prev-button\": \"search__prev-button___aL_2P\",\n\t\"prevButton\": \"search__prev-button___aL_2P\",\n\t\"next-button\": \"search__next-button___WmiHA\",\n\t\"nextButton\": \"search__next-button___WmiHA\",\n\t\"disabled\": \"search__disabled___EegfA\",\n\t\"search-input\": \"search__search-input___vUcqo\",\n\t\"searchInput\": \"search__search-input___vUcqo\",\n\t\"clear-icon\": \"search__clear-icon___zbwig\",\n\t\"clearIcon\": \"search__clear-icon___zbwig\",\n\t\"active\": \"search__active___Dcstu\",\n\t\"focused\": \"search__focused___taZHo\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../assets/loader.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".spinner__spinner-ball___bGl4C{position:relative;display:flex;align-items:center;width:100%;height:100%;max-width:184px;max-height:184px;margin:4px 0 8px 0;background-size:contain;background-repeat:no-repeat;background-position:center;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");animation:spinner__icon-bounce___zetv0 2s infinite ease-in-out}.spinner__bounce-frame___ci1vS{width:100%;height:100%;min-width:184px;min-height:184px;border-radius:50%;background-color:#cccccc;opacity:0.2;-webkit-animation:spinner__frame-bounce___nmvI_ 2s infinite ease-in-out;animation:spinner__frame-bounce___nmvI_ 2s infinite ease-in-out}@keyframes spinner__icon-bounce___zetv0{0%,100%{opacity:0.3}50%{opacity:1}}@-webkit-keyframes spinner__frame-bounce___nmvI_{0%,100%{-webkit-transform:scale(1);opacity:0.1}50%{-webkit-transform:scale(1.3);opacity:0.1}}@keyframes spinner__frame-bounce___nmvI_{0%,100%{opacity:0.1;transform:scale(1);-webkit-transform:scale(1)}50%{opacity:0.25;transform:scale(1.3);-webkit-transform:scale(1.3)}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/spinner/spinner.scss\"],\"names\":[],\"mappings\":\"AAAA,+BACE,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,gBAAiB,CACjB,kBAAmB,CACnB,uBAAwB,CACxB,2BAA4B,CAC5B,0BAA2B,CAC3B,wDAAgD,CAEhD,8DAA8C,CAC/C,+BAGC,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,gBAAiB,CACjB,iBAAkB,CAClB,wBAAyB,CACzB,WAAY,CAEZ,uEAAuD,CACvD,+DAA+C,CAChD,wCAGC,QAEE,WAAY,CAEd,IACE,SAAU,CAAA,CAId,iDACE,QAEE,0BAA2B,CAC3B,WAAY,CAEd,IACE,4BAA6B,CAC7B,WAAY,CAAA,CAIhB,yCACE,QAEE,WAAY,CACZ,kBAAmB,CACnB,0BAA2B,CAE7B,IACE,YAAa,CACb,oBAAqB,CACrB,4BAA6B,CAAA\",\"sourcesContent\":[\".spinner-ball {\\n position: relative;\\n display: flex;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n max-width: 184px;\\n max-height: 184px;\\n margin: 4px 0 8px 0;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-image: url('../../assets/loader.svg');\\n\\n animation: icon-bounce 2s infinite ease-in-out;\\n}\\n\\n.bounce-frame {\\n width: 100%;\\n height: 100%;\\n min-width: 184px;\\n min-height: 184px;\\n border-radius: 50%;\\n background-color: #cccccc;\\n opacity: 0.2;\\n\\n -webkit-animation: frame-bounce 2s infinite ease-in-out;\\n animation: frame-bounce 2s infinite ease-in-out;\\n}\\n\\n@keyframes icon-bounce {\\n 0%,\\n 100% {\\n opacity: 0.3;\\n }\\n 50% {\\n opacity: 1;\\n }\\n}\\n\\n@-webkit-keyframes frame-bounce {\\n 0%,\\n 100% {\\n -webkit-transform: scale(1);\\n opacity: 0.1;\\n }\\n 50% {\\n -webkit-transform: scale(1.3);\\n opacity: 0.1;\\n }\\n}\\n\\n@keyframes frame-bounce {\\n 0%,\\n 100% {\\n opacity: 0.1;\\n transform: scale(1);\\n -webkit-transform: scale(1);\\n }\\n 50% {\\n opacity: 0.25;\\n transform: scale(1.3);\\n -webkit-transform: scale(1.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"spinner-ball\": \"spinner__spinner-ball___bGl4C\",\n\t\"spinnerBall\": \"spinner__spinner-ball___bGl4C\",\n\t\"icon-bounce\": \"spinner__icon-bounce___zetv0\",\n\t\"iconBounce\": \"spinner__icon-bounce___zetv0\",\n\t\"bounce-frame\": \"spinner__bounce-frame___ci1vS\",\n\t\"bounceFrame\": \"spinner__bounce-frame___ci1vS\",\n\t\"frame-bounce\": \"spinner__frame-bounce___nmvI_\",\n\t\"frameBounce\": \"spinner__frame-bounce___nmvI_\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../assets/arrow-up.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".transcript__hidden___uGO_Y{visibility:hidden}.transcript__root___SEZlz{display:flex;justify-content:center;padding:8px 4px 8px 0px;color:#fff;height:100%;width:100%;position:absolute;background-color:rgba(0,0,0,0.631373);z-index:1}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC{position:absolute;top:-1000px;z-index:1;display:flex;align-items:center;justify-content:center;width:120px;height:32px;border-radius:16px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.3);border:solid 1px #01accd;background-color:#222;font-size:15px;line-height:1.27;color:#fff}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC:focus{top:46px;right:12px;outline:none !important}.transcript__root___SEZlz *{font-family:sans-serif;font-style:normal}.transcript__global-container___Sn7v8{height:100%;display:flex;flex-direction:column;max-width:599px;width:100%}.transcript__header___AgZkl{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:6px;padding-left:16px;font-size:16px}.transcript__header___AgZkl.transcript__small-width___XW2fb{padding-right:44px}.transcript__header___AgZkl.transcript__medium-width___jz_hP{padding-right:22px}.transcript__body___jTlBG{position:relative;padding-top:1px;flex:1;overflow-y:auto;text-align:center;overflow-x:hidden}.transcript__body___jTlBG::-webkit-scrollbar{width:4px}.transcript__body___jTlBG::-webkit-scrollbar-track{background:rgba(33,33,33,0.9)}.transcript__body___jTlBG::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(255,255,255,0.3)}.transcript__loading-wrapper___QFjK7,.transcript__error-wrapper___Qe39U{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#999}.transcript__loading-wrapper___QFjK7 .transcript__error-icon___no0DO,.transcript__error-wrapper___Qe39U .transcript__error-icon___no0DO{width:100%;height:100%;max-width:184px;max-height:184px;background-size:contain;background-repeat:no-repeat;background-position:center}.transcript__loading-wrapper___QFjK7 .transcript__error-main-text___VIVvd,.transcript__error-wrapper___Qe39U .transcript__error-main-text___VIVvd{font-size:1.3em;margin-top:8px;margin-bottom:2px}.transcript__loading-wrapper___QFjK7 .transcript__error-description-text___gg6yo,.transcript__error-wrapper___Qe39U .transcript__error-description-text___gg6yo{margin:0}.transcript__loading-wrapper___QFjK7 .transcript__retry-button___wCycN,.transcript__error-wrapper___Qe39U .transcript__retry-button___wCycN{width:30px;padding:0;margin-left:20px;border:none;background:inherit;color:white;cursor:pointer}.transcript__autoscroll-button___QWJaj{opacity:0;position:absolute;right:12px;bottom:25px;width:32px;height:32px;padding:0;border:none;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,0.5);background-color:#01819a;background-position:center;background-repeat:no-repeat;background-size:22px;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");cursor:pointer;z-index:1}.transcript__autoscroll-button-visible___BOE3n{opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/transcript/transcript.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,4BACE,iBAAkB,CACnB,0BAGC,YAAa,CACb,sBAAuB,CACvB,uBAAwB,CACxB,UCTmB,CDUnB,WAAY,CACZ,UAAW,CACX,iBAAkB,CAClB,qCCDyB,CDEzB,SAAU,CATZ,sEAWI,iBAAkB,CAClB,WAAY,CACZ,SAAU,CACV,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,WAAY,CACZ,WAAY,CACZ,kBAAmB,CACnB,sCAA0C,CAC1C,wBC3BgB,CD4BhB,qBCpBqB,CDqBrB,cAAe,CACf,gBAAiB,CACjB,UC9BiB,CDKrB,4EA2BM,QAAS,CACT,UAAW,CACX,uBAAwB,CA7B9B,4BAkCI,sBAAuB,CACvB,iBAAkB,CACnB,sCAID,WAAY,CACZ,YAAa,CACb,qBAAsB,CACtB,eAAgB,CAChB,UAAW,CACZ,4BAGC,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAC9B,UAAW,CACX,iBAAkB,CAClB,iBAAkB,CAClB,cAAe,CAPjB,4DASI,kBAAmB,CATvB,6DAYI,kBAAmB,CACpB,0BAID,iBAAkB,CAClB,eAAgB,CAChB,MAAO,CACP,eAAgB,CAChB,iBAAkB,CAClB,iBAAkB,CANpB,6CCnDI,SAAU,CDmDd,mDChDI,6BAAiC,CDgDrC,mDC7CI,iBAAkB,CAClB,sCAA0C,CDsD9C,wEAEE,WAAY,CACZ,UAAW,CACX,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,qBAAsB,CACtB,UCjFuB,CDyEzB,wIAUI,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,gBAAiB,CACjB,uBAAwB,CACxB,2BAA4B,CAC5B,0BAA2B,CAhB/B,kJAmBI,eAAgB,CAChB,cAAe,CACf,iBAAkB,CArBtB,gKAwBI,QAAS,CAxBb,4IA2BI,UAAW,CACX,SAAU,CACV,gBAAiB,CACjB,WAAY,CACZ,kBAAmB,CACnB,WAAY,CACZ,cAAe,CAChB,uCAID,SAAU,CACV,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,UAAW,CACX,WAAY,CACZ,SAAU,CACV,WAAY,CACZ,iBAAkB,CAClB,sCAA0C,CAC1C,wBAAyB,CACzB,0BAA2B,CAC3B,2BAA4B,CAC5B,oBAAqB,CACrB,wDAAkD,CAClD,cAAe,CACf,SAAU,CACX,+CAGC,SAAU\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.hidden {\\n visibility: hidden;\\n}\\n\\n.root {\\n display: flex;\\n justify-content: center;\\n padding: 8px 4px 8px 0px;\\n color: $white-color;\\n height: 100%;\\n width: 100%;\\n position: absolute;\\n background-color: $root-background;\\n z-index: 1;\\n .skip-transcript-button {\\n position: absolute;\\n top: -1000px;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 120px;\\n height: 32px;\\n border-radius: 16px;\\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);\\n border: solid 1px $main-color;\\n background-color: $semiblack-color;\\n font-size: 15px;\\n line-height: 1.27;\\n color: $white-color;\\n &:focus {\\n top: 46px;\\n right: 12px;\\n outline: none !important; // prevent focus styles inherited from playkit-player.playkit-nav\\n }\\n }\\n\\n * {\\n font-family: sans-serif;\\n font-style: normal;\\n }\\n}\\n\\n.global-container {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n max-width: 599px;\\n width: 100%;\\n}\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 6px;\\n padding-left: 16px;\\n font-size: 16px;\\n &.small-width {\\n padding-right: 44px;\\n }\\n &.medium-width {\\n padding-right: 22px;\\n }\\n}\\n\\n.body {\\n position: relative;\\n padding-top: 1px;\\n flex: 1;\\n overflow-y: auto;\\n text-align: center;\\n overflow-x: hidden;\\n @include plugin-scrollbar();\\n}\\n\\n.loading-wrapper,\\n.error-wrapper {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n color: $lightgray-color;\\n .error-icon {\\n width: 100%;\\n height: 100%;\\n max-width: 184px;\\n max-height: 184px;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center;\\n }\\n .error-main-text {\\n font-size: 1.3em;\\n margin-top: 8px;\\n margin-bottom: 2px;\\n }\\n .error-description-text {\\n margin: 0;\\n }\\n .retry-button {\\n width: 30px;\\n padding: 0;\\n margin-left: 20px;\\n border: none;\\n background: inherit;\\n color: white;\\n cursor: pointer;\\n }\\n}\\n\\n.autoscroll-button {\\n opacity: 0;\\n position: absolute;\\n right: 12px;\\n bottom: 25px;\\n width: 32px;\\n height: 32px;\\n padding: 0;\\n border: none;\\n border-radius: 50%;\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\\n background-color: #01819a;\\n background-position: center;\\n background-repeat: no-repeat;\\n background-size: 22px;\\n background-image: url('../../assets/arrow-up.svg');\\n cursor: pointer;\\n z-index: 1;\\n}\\n\\n.autoscroll-button-visible {\\n opacity: 1;\\n}\\n\",\"$main-color: #01accd;\\n$white-color: #ffffff;\\n$gray-color: #cccccc;\\n$darken-gray: #444444;\\n$darkgray-color: #333333;\\n$semigray-color: #666666;\\n$lightgray-color: #999999;\\n$black-color: #000000;\\n$semiblack-color: #222222;\\n$text-match-color: #fdd304;\\n$text-current-match-color: #1687ff;\\n$text-selection-color: #5b80a7;\\n$main-color-darken: darken($main-color, 10%);\\n$root-background: #000000a1;\\n$focus-color: #00cbff;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hidden\": \"transcript__hidden___uGO_Y\",\n\t\"root\": \"transcript__root___SEZlz\",\n\t\"skip-transcript-button\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"skipTranscriptButton\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"global-container\": \"transcript__global-container___Sn7v8\",\n\t\"globalContainer\": \"transcript__global-container___Sn7v8\",\n\t\"header\": \"transcript__header___AgZkl\",\n\t\"small-width\": \"transcript__small-width___XW2fb\",\n\t\"smallWidth\": \"transcript__small-width___XW2fb\",\n\t\"medium-width\": \"transcript__medium-width___jz_hP\",\n\t\"mediumWidth\": \"transcript__medium-width___jz_hP\",\n\t\"body\": \"transcript__body___jTlBG\",\n\t\"loading-wrapper\": \"transcript__loading-wrapper___QFjK7\",\n\t\"loadingWrapper\": \"transcript__loading-wrapper___QFjK7\",\n\t\"error-wrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"errorWrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"error-icon\": \"transcript__error-icon___no0DO\",\n\t\"errorIcon\": \"transcript__error-icon___no0DO\",\n\t\"error-main-text\": \"transcript__error-main-text___VIVvd\",\n\t\"errorMainText\": \"transcript__error-main-text___VIVvd\",\n\t\"error-description-text\": \"transcript__error-description-text___gg6yo\",\n\t\"errorDescriptionText\": \"transcript__error-description-text___gg6yo\",\n\t\"retry-button\": \"transcript__retry-button___wCycN\",\n\t\"retryButton\": \"transcript__retry-button___wCycN\",\n\t\"autoscroll-button\": \"transcript__autoscroll-button___QWJaj\",\n\t\"autoscrollButton\": \"transcript__autoscroll-button___QWJaj\",\n\t\"autoscroll-button-visible\": \"transcript__autoscroll-button-visible___BOE3n\",\n\t\"autoscrollButtonVisible\": \"transcript__autoscroll-button-visible___BOE3n\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover__popover-container___LdItq{position:relative}.popover__popover-container___LdItq .popover__popover-component___oMrLL{background-color:#222222;border-radius:4px;position:absolute;right:0px;font-size:15px;display:block}.popover__popover-container___LdItq .popover__popover-component___oMrLL.popover__visible___YLUUQ{visibility:visible;opacity:1;z-index:10}.popover__popover-container___LdItq .popover__popover-component___oMrLL.popover__top___z8MON{bottom:100%;margin-bottom:6px}.popover__popover-container___LdItq .popover__popover-component___oMrLL.popover__bottom___I_Me9{top:100%;margin-top:6px}.popover__popover-container___LdItq .popover__popover-component___oMrLL.popover__right___QEfhd{left:0px}.popover__popover-container___LdItq .popover__popover-component___oMrLL.popover__left___H2xaY{right:0px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./utils/popover/popover.scss\"],\"names\":[],\"mappings\":\"AAAA,oCACE,iBAAkB,CADpB,wEAGI,wBAAyB,CACzB,iBAAkB,CAClB,iBAAkB,CAClB,SAAU,CACV,cAAe,CACf,aAAc,CARlB,iGAUM,kBAAmB,CACnB,SAAU,CACV,UAAW,CAZjB,6FAeM,WAAY,CACZ,iBAAkB,CAhBxB,gGAmBM,QAAS,CACT,cAAe,CApBrB,+FAuBM,QAAS,CAvBf,8FA0BM,SAAU\",\"sourcesContent\":[\".popover-container {\\n position: relative;\\n .popover-component {\\n background-color: #222222;\\n border-radius: 4px;\\n position: absolute;\\n right: 0px;\\n font-size: 15px;\\n display: block;\\n &.visible {\\n visibility: visible;\\n opacity: 1;\\n z-index: 10;\\n }\\n &.top {\\n bottom: 100%;\\n margin-bottom: 6px;\\n }\\n &.bottom {\\n top: 100%;\\n margin-top: 6px;\\n }\\n &.right {\\n left: 0px;\\n }\\n &.left {\\n right: 0px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-container\": \"popover__popover-container___LdItq\",\n\t\"popoverContainer\": \"popover__popover-container___LdItq\",\n\t\"popover-component\": \"popover__popover-component___oMrLL\",\n\t\"popoverComponent\": \"popover__popover-component___oMrLL\",\n\t\"visible\": \"popover__visible___YLUUQ\",\n\t\"top\": \"popover__top___z8MON\",\n\t\"bottom\": \"popover__bottom___I_Me9\",\n\t\"right\": \"popover__right___QEfhd\",\n\t\"left\": \"popover__left___H2xaY\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n\n if (!url) {\n return url;\n }\n\n url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them\n\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./close-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./download-print-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./plugin-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./search.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./popover.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import {cloneElement, VNode} from 'preact';\n\nconst {ENTER, SPACE} = KalturaPlayer.ui.utils.KeyMap;\n\nexport type OnClickEvent = KeyboardEvent | MouseEvent;\nexport type OnClick = (e: OnClickEvent, byKeyboard?: boolean) => void;\n\ninterface A11yWrapperProps {\n children: VNode;\n onClick: OnClick;\n}\n\nexport const A11yWrapper = ({children, onClick}: A11yWrapperProps) => {\n return cloneElement(children, {\n onKeyDown: (e: KeyboardEvent) => {\n if ([SPACE, ENTER].includes(e.keyCode)) {\n e.preventDefault();\n onClick(e, true);\n }\n },\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n onClick(e);\n }\n });\n};\n","export * from './a11y-wrapper';\n","import {h, Component} from 'preact';\nimport {HOUR} from '../../utils';\nimport {Caption} from '../caption';\nimport * as styles from './captionList.scss';\nimport {HighlightedMap, CuePointData} from '../../types';\n\nconst {End, Home} = KalturaPlayer.ui.utils.KeyMap;\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\nexport interface Props {\n data: Array<CuePointData>;\n onSeek: (n: CuePointData) => void;\n autoScroll?: boolean;\n onScroll: (n: number) => void;\n widgetWidth: number;\n highlightedMap: HighlightedMap;\n showItemsIcons: boolean;\n listDataContainCaptions?: boolean;\n searchActive: boolean;\n isAutoScrollEnabled: boolean;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n captionProps: CaptionProps;\n}\nexport class CaptionList extends Component<Props> {\n private _currentCaptionRef: any = null;\n private _firstCaptionRef: any = null;\n private _lastCaptionRef: any = null;\n shouldComponentUpdate(nextProps: Readonly<Props>) {\n const {highlightedMap, data, searchMap, activeSearchIndex, isAutoScrollEnabled, captionProps} = this.props;\n if (\n highlightedMap !== nextProps.highlightedMap ||\n data !== nextProps.data ||\n searchMap !== nextProps.searchMap ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n isAutoScrollEnabled !== nextProps.isAutoScrollEnabled ||\n captionProps.videoDuration !== nextProps.captionProps.videoDuration\n ) {\n return true;\n }\n return false;\n }\n\n private _handleClick = (caption: CuePointData) => () => {\n const {onSeek} = this.props;\n onSeek(caption);\n };\n\n private _getShouldScroll = (captionId: string) => {\n const {isAutoScrollEnabled, highlightedMap} = this.props;\n return isAutoScrollEnabled && highlightedMap[captionId];\n };\n\n private _getShouldScrollToSearchMatch = (captionId: string) => {\n const {isAutoScrollEnabled, searchMap, activeSearchIndex} = this.props;\n return !isAutoScrollEnabled && searchMap[captionId] && searchMap[captionId][activeSearchIndex] !== undefined;\n };\n\n private _getSearchProps = (captionId: string) => {\n const {searchMap, activeSearchIndex, captionProps} = this.props;\n const searchProps: any = {};\n if (searchMap[captionId]) {\n searchProps.indexMap = searchMap[captionId];\n searchProps.activeSearchIndex = activeSearchIndex;\n searchProps.searchLength = captionProps.searchLength;\n }\n return searchProps;\n };\n\n private _getCaptionProps = (captionData: CuePointData) => {\n const {highlightedMap, captionProps, isAutoScrollEnabled} = this.props;\n const {id}: {id: string} = captionData;\n const newCaptionProps = {\n showTime: captionProps.showTime,\n scrollTo: captionProps.scrollTo,\n scrollToSearchMatch: captionProps.scrollToSearchMatch,\n key: id,\n onClick: this._handleClick(captionData),\n caption: captionData,\n highlighted: highlightedMap,\n longerThanHour: captionProps.videoDuration >= HOUR,\n shouldScroll: this._getShouldScroll(id),\n shouldScrollToSearchMatch: this._getShouldScrollToSearchMatch(id),\n isAutoScrollEnabled,\n ...this._getSearchProps(id)\n };\n return newCaptionProps;\n };\n\n private _handleKeyUp = (event: KeyboardEvent) => {\n if (event.keyCode === End) {\n this._lastCaptionRef?._hotspotRef?.focus();\n } else if (event.keyCode === Home) {\n this._firstCaptionRef?._hotspotRef?.focus();\n }\n };\n\n render() {\n const {data} = this.props;\n return (\n <div className={styles.transcriptWrapper} onKeyUp={this._handleKeyUp}>\n {data.map((captionData, index) => {\n const captionProps = this._getCaptionProps(captionData);\n return (\n <Caption\n ref={node => {\n if (index === 0) {\n this._firstCaptionRef = node;\n } else if (index === data.length - 1) {\n this._lastCaptionRef = node;\n }\n if (captionProps.highlighted) {\n this._currentCaptionRef = node;\n }\n }}\n {...captionProps}\n />\n );\n })}\n </div>\n );\n }\n}\n","export * from './captionList';\n","import * as styles from './caption.scss';\nimport {secontsToTime} from '../../utils';\nimport {CuePointData} from '../../types';\n\nconst {ENTER, Space} = KalturaPlayer.ui.utils.KeyMap;\n\nimport {Component, h} from 'preact';\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\ninterface ExtendedCaptionProps extends CaptionProps {\n caption: CuePointData;\n onClick: () => void;\n highlighted: boolean;\n shouldScroll: boolean;\n shouldScrollToSearchMatch: boolean;\n indexMap: Record<string, number> | undefined;\n activeSearchIndex: number;\n longerThanHour: boolean;\n isAutoScrollEnabled: boolean;\n}\n\nexport class Caption extends Component<ExtendedCaptionProps> {\n private _hotspotRef: HTMLElement | null = null;\n\n componentDidUpdate() {\n if (this._hotspotRef && this.props.shouldScroll) {\n this.props.scrollTo(this._hotspotRef);\n } else if (this._hotspotRef && this.props.shouldScrollToSearchMatch) {\n this.props.scrollToSearchMatch(this._hotspotRef);\n }\n }\n\n shouldComponentUpdate(nextProps: ExtendedCaptionProps) {\n const {indexMap, highlighted, isAutoScrollEnabled, activeSearchIndex, longerThanHour, caption} = this.props;\n if (longerThanHour !== nextProps.longerThanHour) {\n return true;\n }\n if (highlighted !== nextProps.highlighted) {\n return true;\n }\n if (highlighted && isAutoScrollEnabled !== nextProps.isAutoScrollEnabled) {\n return true;\n }\n if (indexMap !== nextProps.indexMap) {\n return true;\n }\n if (indexMap && nextProps.indexMap && indexMap[activeSearchIndex] !== nextProps.indexMap[nextProps.activeSearchIndex]) {\n return true;\n }\n return false;\n }\n\n private _handleKeyPress = (event: KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n if (keyCode === ENTER || keyCode === Space) {\n event.preventDefault();\n this._gotoCurrentTime();\n return;\n }\n };\n\n private _handleClick = (event: MouseEvent) => {\n event.stopPropagation();\n this._hotspotRef?.focus();\n this._gotoCurrentTime();\n };\n\n private _gotoCurrentTime = () => {\n const {caption, onClick} = this.props;\n if (caption.text.length) {\n onClick();\n }\n };\n\n private _renderText = (text: string) => {\n const {activeSearchIndex, searchLength, indexMap} = this.props;\n let indexArray: string[] = [];\n if (indexMap) {\n indexArray = Object.keys(indexMap).sort((a, b) => Number(a) - Number(b));\n }\n if (text?.length === 0) {\n return null;\n }\n return (\n <span className={styles.captionSpan}>\n {indexMap\n ? indexArray.map((el: string, index: number) => {\n const preSelected = index === 0 ? text.substring(0, indexMap[el]) : '';\n const selected = text.substring(indexMap[el], indexMap[el] + searchLength);\n const postSelected = text.substring(\n indexMap[el] + searchLength,\n index - 1 === indexArray.length ? text.length : indexMap[indexArray[index + 1]]\n );\n return (\n <span>\n {preSelected}\n <span className={Number(el) === activeSearchIndex ? styles.activeSearch : styles.highlightSearch}>{selected}</span>\n {postSelected}\n </span>\n );\n })\n : text}\n </span>\n );\n };\n\n render() {\n const {caption, highlighted, showTime, longerThanHour} = this.props;\n const {startTime, id} = caption;\n const isHighlighted = Object.keys(highlighted)[0] === id;\n\n return (\n <div\n className={styles.caption}\n tabIndex={1}\n ref={node => {\n this._hotspotRef = node;\n }}\n onKeyDown={this._handleKeyPress}\n >\n {showTime && <div className={styles.captionTime}>{secontsToTime(startTime, longerThanHour)}</div>}\n <div\n onClick={this._handleClick}\n className={`${styles.captionContent} ${isHighlighted ? styles.highlighted : ''} ${showTime ? '' : styles.withoutTime}`}\n role=\"button\"\n >\n {this._renderText(caption.text)}\n </div>\n </div>\n );\n }\n}\n","export * from './caption';\n","import {h} from 'preact';\nimport * as styles from './close-button.scss';\nimport {A11yWrapper} from '../a11y-wrapper/a11y-wrapper';\nimport {icons} from '../icons';\nconst {Icon} = KalturaPlayer.ui.components;\n\ninterface CloseButtonProps {\n onClick: () => void;\n}\n\nexport const CloseButton = (props: CloseButtonProps) => (\n <A11yWrapper onClick={props.onClick}>\n <button className={styles.closeBtn} tabIndex={1}>\n <Icon\n id=\"transcript-plugin-close-button\"\n height={icons.BigSize}\n width={icons.BigSize}\n viewBox={`0 0 ${icons.BigSize} ${icons.BigSize}`}\n path={icons.CLOSE_ICON}\n />\n </button>\n </A11yWrapper>\n);\n","import {h, Component, ComponentChild} from 'preact';\nimport {Popover, PopoverHorizontalPositions, PopoverVerticalPositions} from '../../utils';\nimport {PopoverMenu, PopoverMenuItem} from '../popover-menu';\nimport * as styles from './download-print-menu.scss';\n\nconst {ENTER, Esc} = KalturaPlayer.ui.utils.KeyMap;\n\nexport function downloadContent(content: string, name: string): void {\n const blob = new Blob([content], {type: 'text/plain;charset=utf-8;'});\n const anchor = document.createElement('a');\n const {navigator} = window as any;\n\n if (navigator.msSaveBlob) {\n // IE\n navigator.msSaveOrOpenBlob(blob, name);\n return;\n }\n if (navigator.userAgent.search('Firefox') !== -1) {\n // Firefox\n anchor.style.display = 'none';\n anchor.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content));\n } else {\n // Chrome\n anchor.setAttribute('href', URL.createObjectURL(blob));\n }\n anchor.setAttribute('target', '_blank');\n anchor.setAttribute('download', name);\n anchor.click();\n anchor.remove();\n}\n\nexport function printContent(content: string): void {\n const printWindow = window.open('', '', 'width=400,height=600');\n if (printWindow) {\n printWindow.document.write(content);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n\ninterface DownloadPrintMenuProps {\n dropdownAriaLabel: string;\n printButtonAriaLabel: string;\n downloadButtonAriaLabel: string;\n onDownload: () => void;\n onPrint: () => void;\n downloadDisabled: boolean;\n printDisabled: boolean;\n}\n\ninterface ButtonProperties {\n ['aria-label']: string;\n buttonStyles: string;\n onClick?: () => void;\n tabIndex?: number;\n iconStyles: string;\n}\n\ninterface DownloadPrintMenuState {\n popoverOpen: boolean;\n}\n\nexport class DownloadPrintMenu extends Component<DownloadPrintMenuProps, DownloadPrintMenuState> {\n static defaultProps = {\n dropdownAriaLabel: 'Download or print current transcript',\n printButtonAriaLabel: 'Print current transcript',\n downloadButtonAriaLabel: 'Download current transcript'\n };\n state: DownloadPrintMenuState = {\n popoverOpen: false\n };\n\n private _onDownloadClicked = () => {\n this.props.onDownload();\n };\n\n private _onPrintClicked = () => {\n this.props.onPrint();\n };\n private _onKeyDown = (e: KeyboardEvent, callBack: Function) => {\n if (e.keyCode !== ENTER && e.keyCode !== Esc) {\n // don't stopPropagation on ESC and Enter pressed as it prevent the popup closing\n e.stopPropagation();\n }\n switch (e.keyCode) {\n case 13: // Enter pressed\n callBack();\n break;\n }\n };\n private _popoverMenuItemRenderer = (el: PopoverMenuItem) => (\n <div\n tabIndex={1}\n role=\"button\"\n onClick={() => el.onMenuChosen()}\n onKeyDown={(e: KeyboardEvent) => this._onKeyDown(e, el.onMenuChosen)}\n className={styles.popoverMenuItem}\n >\n {el.label}\n </div>\n );\n\n private _getPopoverMenuOptions = () => {\n return [\n {\n label: this.props.downloadButtonAriaLabel,\n onMenuChosen: this._onDownloadClicked\n },\n {\n label: this.props.printButtonAriaLabel,\n onMenuChosen: this._onPrintClicked\n }\n ];\n };\n\n private _renderIcon = ({buttonStyles, tabIndex = 0, iconStyles, ...props}: ButtonProperties): ComponentChild => {\n return (\n <button className={buttonStyles} tabIndex={tabIndex} {...props}>\n <div className={iconStyles} />\n </button>\n );\n };\n\n private _popoverContent = () => {\n return <PopoverMenu itemRenderer={this._popoverMenuItemRenderer} options={this._getPopoverMenuOptions()} />;\n };\n\n render(props: DownloadPrintMenuProps) {\n const {downloadDisabled, printDisabled} = props;\n if (!downloadDisabled && !printDisabled) {\n return (\n <Popover\n className=\"download-print-popover\"\n verticalPosition={PopoverVerticalPositions.Bottom}\n horizontalPosition={PopoverHorizontalPositions.Left}\n content={this._popoverContent()}\n >\n {this._renderIcon({\n ['aria-label']: props.dropdownAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.downloadIcon].join(' ')\n })}\n </Popover>\n );\n }\n if (!downloadDisabled && printDisabled) {\n return this._renderIcon({\n ['aria-label']: props.downloadButtonAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.downloadIcon].join(' '),\n onClick: this._onDownloadClicked\n });\n }\n if (downloadDisabled && !printDisabled) {\n return this._renderIcon({\n ['aria-label']: props.printButtonAriaLabel,\n buttonStyles: styles.downloadPrintButton,\n iconStyles: [styles.icon, styles.printIcon].join(' '),\n onClick: this._onPrintClicked\n });\n }\n return null;\n }\n}\n","export * from './download-print-menu';\n","export namespace icons {\n export const PLUGIN_ICON =\n 'M23.1111111,19 C23.6020309,19 24,19.4477153 24,20 C24,20.5522847 23.6020309,21 23.1111111,21 L8.88888889,21 C8.39796911,21 8,20.5522847 8,20 C8,19.4477153 8.39796911,19 8.88888889,19 L23.1111111,19 Z M24.8695652,3 C26.5984566,3 28,4.24720677 28,5.78571429 L28,26.2142857 C28,27.7527932 26.5984566,29 24.8695652,29 L7.13043478,29 C5.40154339,29 4,27.7527932 4,26.2142857 L4,5.78571429 C4,4.24720677 5.40154339,3 7.13043478,3 L24.8695652,3 Z M26,17 L6,17 L6,26.0833333 C6,26.5895944 6.47127921,27 7.05263158,27 L24.9473684,27 C25.5287208,27 26,26.5895944 26,26.0833333 L26,17 Z M8.88888889,23 L23.1111111,23 C23.6020309,23 24,23.4477153 24,24 C24,24.5128358 23.6568532,24.9355072 23.2147743,24.9932723 L23.1111111,25 L8.88888889,25 C8.39796911,25 8,24.5522847 8,24 C8,23.4871642 8.34314684,23.0644928 8.78522567,23.0067277 L8.88888889,23 L23.1111111,23 L8.88888889,23 Z M24.9473684,5 L7.05263158,5 C6.47127921,5 6,5.41040565 6,5.91666667 L6,15 L26,15 L26,5.91666667 C26,5.41040565 25.5287208,5 24.9473684,5 Z';\n export const CLOSE_ICON =\n 'M17.9113162,16 L24.6072325,9.30408374 C25.1313645,8.77995172 25.1287183,7.92687249 24.6009229,7.3990771 C24.0694478,6.86760201 23.220227,6.86845682 22.6959163,7.39276754 L16,14.0886838 L9.30408374,7.39276754 C8.77995172,6.86863552 7.92687249,6.8712817 7.3990771,7.3990771 C6.86760201,7.93055219 6.86845682,8.77977302 7.39276754,9.30408374 L14.0886838,16 L7.39276754,22.6959163 C6.86863552,23.2200483 6.8712817,24.0731275 7.3990771,24.6009229 C7.93055219,25.132398 8.77977302,25.1315432 9.30408374,24.6072325 L16,17.9113162 L22.6959163,24.6072325 C23.2200483,25.1313645 24.0731275,25.1287183 24.6009229,24.6009229 C25.132398,24.0694478 25.1315432,23.220227 24.6072325,22.6959163 L17.9113162,16 Z';\n export const SCROLL_ICON =\n 'M11.7071 6.70711C11.3466 7.06759 10.7794 7.09532 10.3871 6.7903L10.2929 6.70711L6 2.415L1.70711 6.70711C1.34662 7.06759 0.779391 7.09532 0.3871 6.79029L0.292893 6.70711C-0.0675907 6.34662 -0.0953206 5.77939 0.209705 5.3871L0.292894 5.29289L5.29289 0.292893C5.65338 -0.0675913 6.22061 -0.0953212 6.6129 0.209704L6.70711 0.292893L11.7071 5.29289C12.0976 5.68342 12.0976 6.31658 11.7071 6.70711Z';\n export const BigSize = 32;\n export const MediumSize = 24;\n export const SmallSize = 16;\n}\n","import {h} from 'preact';\nimport * as styles from './plugin-button.scss';\nimport {icons} from '../icons';\nimport {A11yWrapper, OnClick} from '../a11y-wrapper';\nconst {Tooltip, Icon} = KalturaPlayer.ui.components;\n\ninterface PluginButtonProps {\n isActive: boolean;\n onClick: OnClick;\n label?: string;\n}\n\nexport const PluginButton = ({isActive, onClick, label}: PluginButtonProps) => {\n return (\n <Tooltip label={label} type=\"bottom\">\n <A11yWrapper onClick={onClick}>\n <button aria-label={label} className={[styles.pluginButton, isActive ? styles.active : ''].join(' ')}>\n <Icon\n id=\"transcript-plugin-button\"\n height={icons.BigSize}\n width={icons.BigSize}\n viewBox={`0 0 ${icons.BigSize} ${icons.BigSize}`}\n path={icons.PLUGIN_ICON}\n />\n </button>\n </A11yWrapper>\n </Tooltip>\n );\n};\n","export * from './popover-menu';\n","import {h, Component, ComponentChild} from 'preact';\nimport * as styles from './popover-menu.scss';\n\nexport interface PopoverMenuItem {\n label: string;\n onMenuChosen: Function;\n customRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\ninterface PopoverMenuProps {\n options: Array<PopoverMenuItem>;\n itemRenderer?: (el: PopoverMenuItem) => ComponentChild;\n}\n\n/**\n * Popover menu renders list of options.\n * options example:\n * [\n * {label: 'option_1', onMenuChosen: () => console.log('selected first')},\n * {label: 'option_2', onMenuChosen: () => console.log('selected second')}\n * ]\n * In case when 'itemRenderer' properdy hasn't provided - PopoverMenu renders\n * div with class \"popover-menu-item\" that contain label for the current option.\n * Default render of options can be changed by providing 'itemRenderer' - it should be\n * function that takes current option and returns valid 'preact' node.\n * If some option need to be rendered with a different method - specific render\n * method can be provided with 'customRenderer' property for the current option.\n * option example with specific render method:\n * { label: 'specific render', onMenuChosen: () => {}, customRenderer: el => (<span>{el.label}</span>)}\n */\n\nexport class PopoverMenu extends Component<PopoverMenuProps> {\n render(props: any) {\n return (\n <div className={styles.popoverMenu}>\n {props.options.map((el: PopoverMenuItem) => {\n if (el.customRenderer) {\n return el.customRenderer(el);\n }\n if (props.itemRenderer) {\n return props.itemRenderer(el);\n }\n return (\n <div className=\"popover-menu-item\" onClick={() => el.onMenuChosen(el)}>\n {el.label}\n </div>\n );\n })}\n </div>\n );\n }\n}\n","export * from './search';\n","import {h, Component} from 'preact';\nimport * as styles from './search.scss';\nimport {debounce} from '../../utils';\nconst DEBOUNCE_TIMEOUT = 300;\n\nexport interface SearchProps {\n onChange(value: string): void;\n searchQuery: string;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n\n onSearchIndexChange: (index: number) => void;\n value: string;\n activeSearchIndex: number;\n totalSearchResults: number;\n}\n\ninterface SearchState {\n active: boolean;\n focused: boolean;\n}\n\nexport class Search extends Component<SearchProps, SearchState> {\n state: SearchState = {\n active: false,\n focused: false\n };\n private _inputRef: null | HTMLInputElement = null;\n private _focusedByMouse = false;\n private _debouncedOnChange: (value: string) => void;\n constructor(props: SearchProps) {\n super(props);\n this._debouncedOnChange = debounce(props.onChange, DEBOUNCE_TIMEOUT);\n this.state = {\n active: false,\n focused: false\n };\n }\n\n shouldComponentUpdate(nextProps: Readonly<SearchProps>, nextState: Readonly<SearchState>) {\n const {value, activeSearchIndex, totalSearchResults, kitchenSinkActive} = this.props;\n if (\n value !== nextProps.value ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n totalSearchResults !== nextProps.totalSearchResults ||\n kitchenSinkActive !== nextProps.kitchenSinkActive ||\n this.state.active !== nextState.active\n ) {\n return true;\n }\n return false;\n }\n componentDidUpdate(previousProps: Readonly<SearchProps>): void {\n const {kitchenSinkActive, toggledWithEnter} = this.props;\n if (!previousProps.kitchenSinkActive && kitchenSinkActive && toggledWithEnter) {\n this._inputRef?.focus();\n }\n }\n\n private _handleOnChange = (e: any) => {\n this.props.onChange(e.target.value);\n };\n\n private _onClear = (event: MouseEvent) => {\n if (event.x !== 0 && event.y !== 0) {\n this._focusedByMouse = true;\n }\n this._inputRef?.focus();\n this.props.onChange('');\n };\n\n private _onFocus = () => {\n this.setState({\n active: true,\n focused: !this._focusedByMouse\n });\n this._focusedByMouse = false;\n };\n\n private _onBlur = () => {\n this.setState({\n active: false,\n focused: false\n });\n };\n\n private _goToNextSearchResult = () => {\n const {activeSearchIndex, totalSearchResults, onSearchIndexChange} = this.props;\n if (totalSearchResults === 0) {\n return;\n }\n let index = 0;\n if (activeSearchIndex !== totalSearchResults) {\n index = this.props.activeSearchIndex + 1;\n } else {\n index = 1;\n }\n onSearchIndexChange(index);\n };\n private _goToPrevSearchResult = () => {\n const {activeSearchIndex, totalSearchResults, onSearchIndexChange} = this.props;\n let index = 0;\n if (activeSearchIndex !== 1) {\n index = activeSearchIndex - 1;\n } else {\n index = totalSearchResults;\n }\n onSearchIndexChange(index);\n };\n\n _handleMouseDown = () => {\n this._focusedByMouse = true;\n };\n\n render() {\n const {searchQuery, totalSearchResults, activeSearchIndex} = this.props;\n return (\n <div\n className={[styles.searchWrapper, searchQuery || this.state.active ? styles.active : '', this.state.focused ? styles.focused : ''].join(' ')}\n >\n <div className={styles.searchIcon} />\n <input\n className={styles.searchInput}\n placeholder={'Search in Transcript'}\n value={searchQuery}\n onInput={this._handleOnChange}\n onFocus={this._onFocus}\n onBlur={this._onBlur}\n onMouseDown={this._handleMouseDown}\n tabIndex={1}\n ref={node => {\n this._inputRef = node;\n }}\n />\n {searchQuery && <button className={styles.clearIcon} onClick={this._onClear} tabIndex={1} />}\n {searchQuery && (\n <div className={styles.searchResults}>{`${totalSearchResults > 0 ? `${activeSearchIndex}/${totalSearchResults}` : '0/0'}`}</div>\n )}\n <div className={styles.prevNextWrapper}>\n {searchQuery && (\n <button\n tabIndex={1}\n className={`${styles.prevNextButton} ${styles.prevButton} ${totalSearchResults === 0 ? styles.disabled : ''}`}\n onClick={this._goToPrevSearchResult}\n />\n )}\n {searchQuery && (\n <button\n tabIndex={1}\n className={`${styles.prevNextButton} ${styles.nextButton} ${totalSearchResults === 0 ? styles.disabled : ''}`}\n onClick={this._goToNextSearchResult}\n />\n )}\n </div>\n </div>\n );\n }\n}\n","export * from './spinner';\n","import {h, Component} from 'preact';\nimport * as styles from './spinner.scss';\n\nexport class Spinner extends Component {\n render() {\n return (\n <div className={styles.spinnerBall}>\n <div className={styles.bounceFrame} />\n </div>\n );\n }\n}\n","export * from './transcript';\n","import {h, Component} from 'preact';\nimport {debounce} from '../../utils';\nimport * as styles from './transcript.scss';\nimport {Spinner} from '../spinner';\nimport {Search} from '../search';\nimport {CaptionList} from '../caption-list';\nimport {HighlightedMap, CuePointData, PluginPositions} from '../../types';\nimport {A11yWrapper} from '../a11y-wrapper';\nimport {CloseButton} from '../close-button';\n\nconst {ENTER, Space, Tab, Esc, click} = KalturaPlayer.ui.utils.KeyMap;\nexport interface TranscriptProps {\n onSeek(time: number): void;\n onClose: () => void;\n onRetryLoad: () => void;\n isLoading: boolean;\n hasError: boolean;\n captions: Array<CuePointData>;\n showTime: boolean;\n currentTime: number;\n scrollOffset: number;\n searchDebounceTimeout: number;\n searchNextPrevDebounceTimeout: number;\n videoDuration: number;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n highlightedMap: HighlightedMap;\n pluginMode: PluginPositions;\n onItemClicked: (n: number) => void;\n}\n\ninterface TranscriptState {\n isAutoScrollEnabled: boolean;\n search: string;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n totalSearchResults: number;\n searchLength: number;\n widgetWidth: number;\n}\n\nconst initialSearch = {\n search: '',\n activeSearchIndex: 1,\n searchMap: {},\n totalSearchResults: 0,\n searchLength: 0\n};\n\nconst SEARCHBAR_HEIGHT = 38; // height of search bar with margins\n\nexport class Transcript extends Component<TranscriptProps, TranscriptState> {\n private _transcriptListRef: HTMLElement | null = null;\n private _captionListRef: any = null;\n private _skipTranscriptButtonRef: HTMLDivElement | null = null;\n private _autoscrollButtonRef: HTMLDivElement | null = null;\n private _preventScrollEvent: boolean = false;\n private _scrollToSearchMatchEnabled: boolean = false;\n private _widgetRootRef: HTMLElement | null = null;\n\n private _widgetHeight: number = 0;\n private _topAutoscrollEdge: number = 0;\n private _bottomAutoscrollEdge: number = 0;\n private _thirdOfWidgetHeight: number = 0;\n\n state: TranscriptState = {\n isAutoScrollEnabled: true,\n widgetWidth: 0,\n ...initialSearch\n };\n\n componentDidUpdate(previousProps: Readonly<TranscriptProps>, previousState: Readonly<TranscriptState>): void {\n const {captions} = this.props;\n const {search} = this.state;\n if (previousProps.captions !== captions) {\n this.setState({search: '', isAutoScrollEnabled: true});\n }\n\n if (previousState.search !== search) {\n this._debounced.findSearchMatches();\n }\n\n this._setWidgetSize();\n }\n\n private _enableAutoScroll = (event: any, byKeyboard?: boolean) => {\n event.preventDefault();\n if (this.state.isAutoScrollEnabled) {\n return;\n }\n this._preventScrollEvent = true;\n this.setState({\n isAutoScrollEnabled: true\n });\n if (event.type !== 'click') {\n this._skipTranscriptButtonRef?.focus();\n }\n };\n\n private _renderScrollToButton = () => {\n const {isAutoScrollEnabled} = this.state;\n return (\n <A11yWrapper onClick={this._enableAutoScroll}>\n <div\n role=\"button\"\n className={`${styles.autoscrollButton} ${isAutoScrollEnabled ? '' : styles.autoscrollButtonVisible}`}\n tabIndex={isAutoScrollEnabled ? -1 : 1}\n ref={node => {\n this._autoscrollButtonRef = node;\n }}\n />\n </A11yWrapper>\n );\n };\n\n private _onSearch = (search: string) => {\n this.setState({search});\n };\n\n private _findSearchMatches = () => {\n this.setState((state: TranscriptState) => {\n if (!state.search) {\n return {...initialSearch};\n }\n let index = 0;\n const loSearch = state.search.toLowerCase();\n const searchMap: Record<string, Record<string, number>> = {};\n this.props.captions.forEach((caption: CuePointData) => {\n const text = caption?.text?.toLowerCase() || '';\n const regex = new RegExp(loSearch, 'gi');\n let result;\n const indices = [];\n while ((result = regex.exec(text))) {\n indices.push(result.index);\n }\n indices.forEach((i: number) => {\n index++;\n searchMap[caption.id] = {...searchMap[caption.id], [index]: i};\n });\n });\n return {\n searchMap,\n totalSearchResults: index,\n activeSearchIndex: 1,\n searchLength: loSearch.length\n };\n });\n };\n\n private _setActiveSearchIndex = (index: number) => {\n this._scrollToSearchMatchEnabled = true;\n this.setState({\n activeSearchIndex: index,\n isAutoScrollEnabled: false\n });\n };\n\n private _getHeaderStyles = (): string => {\n const {widgetWidth} = this.state;\n if (widgetWidth >= 692) {\n return '';\n }\n if (widgetWidth >= 649) {\n return styles.mediumWidth;\n }\n return styles.smallWidth;\n };\n\n private _renderHeader = () => {\n const {toggledWithEnter, kitchenSinkActive} = this.props;\n const {search, activeSearchIndex, totalSearchResults} = this.state;\n return (\n <div className={[styles.header, this._getHeaderStyles()].join(' ')}>\n <Search\n onChange={this._onSearch}\n onSearchIndexChange={this._debounced.onActiveSearchIndexChange}\n value={search}\n activeSearchIndex={activeSearchIndex}\n totalSearchResults={totalSearchResults}\n toggledWithEnter={toggledWithEnter}\n kitchenSinkActive={kitchenSinkActive}\n searchQuery={search}\n />\n </div>\n );\n };\n\n private _handleKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === Tab && !event.shiftKey) {\n this.setState({\n isAutoScrollEnabled: false\n });\n const captionRef = this._captionListRef?._currentCaptionRef?._hotspotRef;\n if (captionRef) {\n event.preventDefault();\n captionRef.focus();\n }\n } else if (event.keyCode === ENTER || event.keyCode === Space) {\n event.preventDefault();\n this._autoscrollButtonRef?.focus();\n }\n };\n\n private _renderSkipTranscriptButton = () => {\n return (\n <div\n role=\"button\"\n ref={node => {\n this._skipTranscriptButtonRef = node;\n }}\n className={styles.skipTranscriptButton}\n onKeyDown={this._handleKeyDown}\n tabIndex={1}\n >\n Skip transcript\n </div>\n );\n };\n\n private _renderTranscript = () => {\n const {captions, hasError, onRetryLoad, showTime, videoDuration, highlightedMap} = this.props;\n const {isAutoScrollEnabled, searchMap, activeSearchIndex, searchLength} = this.state;\n if (!captions || !captions.length) {\n return null;\n }\n\n if (hasError) {\n return (\n <div className={styles.errorWrapper}>\n <div className={styles.errorIcon} />\n <p className={styles.errorMainText}>Whoops!</p>\n <p className={styles.errorDescriptionText}>\n Failed to get transcript, please try again\n <button className={styles.retryButton} onClick={onRetryLoad}>\n Retry\n </button>\n </p>\n </div>\n );\n }\n\n const captionProps = {\n showTime,\n searchLength,\n scrollTo: this._scrollTo,\n scrollToSearchMatch: this._scrollToSearchMatch,\n videoDuration\n };\n\n return (\n <CaptionList\n ref={node => {\n this._captionListRef = node;\n }}\n highlightedMap={highlightedMap}\n data={captions}\n onSeek={this._handleSeek}\n isAutoScrollEnabled={isAutoScrollEnabled}\n searchMap={searchMap}\n activeSearchIndex={activeSearchIndex}\n captionProps={captionProps}\n onScroll={this._onScroll}\n widgetWidth={this.state.widgetWidth}\n showItemsIcons={true}\n searchActive={false}\n />\n );\n };\n\n private _setWidgetSize = () => {\n if (this._widgetRootRef) {\n const {width, height, top} = this._widgetRootRef.getBoundingClientRect();\n if (this.state.widgetWidth !== width) {\n this.setState({\n widgetWidth: width\n });\n }\n if (this._widgetHeight !== height) {\n this._widgetHeight = height;\n this._thirdOfWidgetHeight = height / 3;\n this._topAutoscrollEdge = Math.floor(this._thirdOfWidgetHeight + SEARCHBAR_HEIGHT);\n this._bottomAutoscrollEdge = Math.ceil(this._thirdOfWidgetHeight * 2 + SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _renderLoading = () => {\n return (\n <div className={styles.loadingWrapper}>\n <Spinner />\n </div>\n );\n };\n\n private _scrollTo = (el: HTMLElement) => {\n if (this._transcriptListRef) {\n this._preventScrollEvent = true;\n const {top} = el.getBoundingClientRect();\n if (top >= this._topAutoscrollEdge || top <= this._bottomAutoscrollEdge) {\n this._transcriptListRef.scrollTop = el.offsetTop - (this._thirdOfWidgetHeight - SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _scrollToSearchMatch = (el: HTMLElement) => {\n if (this._transcriptListRef && this._scrollToSearchMatchEnabled) {\n this._scrollToSearchMatchEnabled = false;\n this._preventScrollEvent = true;\n this._transcriptListRef.scrollTop = el.offsetTop - SEARCHBAR_HEIGHT;\n }\n };\n\n private _onScroll = () => {\n if (this._preventScrollEvent) {\n this._preventScrollEvent = false;\n return;\n }\n this.setState({\n isAutoScrollEnabled: false\n });\n };\n\n private _handleSeek = (caption: CuePointData) => {\n const {onSeek} = this.props;\n const selection = window.getSelection();\n if (selection && selection.type !== 'Range') {\n onSeek(caption.startTime);\n }\n };\n\n private _debounced = {\n findSearchMatches: debounce(this._findSearchMatches, this.props.searchDebounceTimeout),\n onActiveSearchIndexChange: debounce(this._setActiveSearchIndex, this.props.searchNextPrevDebounceTimeout)\n };\n\n private _handleEsc = (event: KeyboardEvent) => {\n if (event.keyCode === Esc) {\n this.props.onClose();\n }\n };\n\n render(props: TranscriptProps) {\n const {isLoading, kitchenSinkActive} = props;\n\n return (\n <div\n className={`${styles.root} ${kitchenSinkActive ? '' : styles.hidden}`}\n ref={node => {\n this._widgetRootRef = node;\n }}\n onKeyUp={this._handleEsc}\n >\n <div className={styles.globalContainer}>\n {this._renderHeader()}\n\n <CloseButton onClick={this.props.onClose} />\n\n {!isLoading && this._renderSkipTranscriptButton()}\n <div\n className={styles.body}\n onScroll={this._onScroll}\n ref={node => {\n this._transcriptListRef = node;\n }}\n >\n {isLoading ? this._renderLoading() : this._renderTranscript()}\n </div>\n {this._renderScrollToButton()}\n </div>\n </div>\n );\n }\n}\n","import {h} from 'preact';\nimport {ObjectUtils} from './utils';\nimport {ui} from 'kaltura-player-js';\nimport {PluginButton} from './components/plugin-button/plugin-button';\nimport {Transcript} from './components/transcript';\nimport {getConfigValue, isBoolean, makePlainText, prepareCuePoint} from './utils';\nimport {TranscriptConfig, PluginPositions, PluginStates, HighlightedMap, CuePointData, ItemTypes, CuePoint} from './types';\nimport {DownloadPrintMenu, downloadContent, printContent} from './components/download-print-menu';\n\nconst {SidePanelModes, SidePanelPositions, ReservedPresetNames, ReservedPresetAreas} = ui;\nconst {get} = ObjectUtils;\nconst {Tooltip} = KalturaPlayer.ui.components;\n\ninterface TimedMetadataEvent {\n payload: {\n cues: Array<CuePoint>;\n };\n}\n\nexport class TranscriptPlugin extends KalturaPlayer.core.BasePlugin {\n static defaultConfig: TranscriptConfig = {\n expandMode: SidePanelModes.ALONGSIDE,\n expandOnFirstPlay: true,\n showTime: true,\n position: SidePanelPositions.RIGHT,\n scrollOffset: 0,\n searchDebounceTimeout: 250,\n searchNextPrevDebounceTimeout: 100,\n downloadDisabled: false,\n printDisabled: false\n };\n private _activeCaptionMapId: string = '';\n private _activeCuePointsMap: HighlightedMap = {};\n private _captionMap: Map<string, Array<CuePointData>> = new Map();\n private _isLoading = false;\n private _hasError = false;\n private _triggeredByKeyboard = false;\n\n private _removePopoverIcon: null | Function = null;\n\n private _transcriptPanel = null;\n private _pluginState: PluginStates | null = null;\n\n constructor(name: string, player: KalturaPlayerTypes.Player, config: TranscriptConfig) {\n super(name, player, config);\n }\n\n get sidePanelsManager() {\n return this.player.getService('sidePanelsManager') as any;\n }\n\n get cuePointManager() {\n return this.player.getService('kalturaCuepoints') as any;\n }\n\n private get _data() {\n return this._captionMap.get(this._activeCaptionMapId) || [];\n }\n\n loadMedia(): void {\n if (!this.cuePointManager || !this.sidePanelsManager) {\n this.logger.warn(\"kalturaCuepoints or sidePanelsManager haven't registered\");\n return;\n }\n this.onPluginSetup();\n this.cuePointManager.registerTypes([this.cuePointManager.CuepointType.CAPTION]);\n }\n\n onPluginSetup(): void {\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_CHANGE, this._onTimedMetadataChange);\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_ADDED, this._onTimedMetadataAdded);\n this.eventManager.listen(this.player, this.player.Event.TEXT_TRACK_CHANGED, this._handleLanguageChange);\n }\n\n onRegisterUI(): void {}\n\n private _handleLanguageChange = () => {\n this._activeCaptionMapId = this._getCaptionMapId();\n if (this._captionMap.has(this._activeCaptionMapId)) {\n this._updateTranscriptPanel();\n }\n };\n\n private _updateTranscriptPanel() {\n this._isLoading = false;\n if (this._transcriptPanel) {\n this.sidePanelsManager.update(this._transcriptPanel);\n }\n }\n\n private _onTimedMetadataAdded = ({payload}: TimedMetadataEvent) => {\n const captionData: CuePointData[] = [];\n payload.cues.forEach((cue: CuePoint) => {\n if (cue.metadata.cuePointType === ItemTypes.Caption) {\n captionData.push(prepareCuePoint(cue));\n }\n });\n if (captionData.length) {\n this._addCaptionData(captionData);\n }\n };\n\n private _onTimedMetadataChange = ({payload}: TimedMetadataEvent) => {\n const transcriptCuePoints: Array<CuePoint> = payload.cues.filter((cue: CuePoint) => {\n return cue.metadata.cuePointType === ItemTypes.Caption;\n });\n this._activeCuePointsMap = {};\n transcriptCuePoints.forEach(cue => {\n this._activeCuePointsMap[cue.id] = true;\n });\n this._updateTranscriptPanel();\n };\n\n private _addCaptionData = (newData: CuePointData[]) => {\n this._activeCaptionMapId = this._getCaptionMapId();\n this._captionMap.set(this._activeCaptionMapId, newData);\n this._createOrUpdatePlugin();\n };\n\n private _getCaptionMapId = (): string => {\n const allTextTracks = this.player.getTracks(this.player.Track.TEXT) || [];\n const activeTextTrack = allTextTracks.find(track => track.active);\n if (activeTextTrack) {\n const captionMapId = `${activeTextTrack.language}-${activeTextTrack.label}`;\n return captionMapId;\n }\n return '';\n };\n\n private onClose = () => {\n if (this.sidePanelsManager.isItemActive(this._transcriptPanel)) {\n this._pluginState = PluginStates.CLOSED;\n this.sidePanelsManager.deactivateItem(this._transcriptPanel);\n } else {\n this.sidePanelsManager.activateItem(this._transcriptPanel);\n }\n };\n\n private _addPopoverIcon(): void {\n const {downloadDisabled, printDisabled} = this.config;\n if (this._removePopoverIcon) {\n return;\n }\n this._removePopoverIcon = this.player.ui.addComponent({\n label: 'Download transcript',\n area: ReservedPresetAreas.TopBarRightControls,\n presets: [ReservedPresetNames.Playback, ReservedPresetNames.Live],\n get: () => (\n <DownloadPrintMenu\n onDownload={this._handleDownload}\n onPrint={this._handlePrint}\n downloadDisabled={getConfigValue(downloadDisabled, isBoolean, false)}\n printDisabled={getConfigValue(printDisabled, isBoolean, false)}\n dropdownAriaLabel={`Download or print transcript`}\n printButtonAriaLabel={`Print transcript`}\n downloadButtonAriaLabel={`Download transcript`}\n />\n )\n });\n }\n\n private _createOrUpdatePlugin = () => {\n if (this._transcriptPanel) {\n this._updateTranscriptPanel();\n } else {\n this._initLoading();\n this._addPopoverIcon();\n this._addTranscriptItem();\n }\n };\n\n private _addTranscriptItem(): void {\n const buttonLabel = 'Transcript';\n const {expandMode, position, expandOnFirstPlay} = this.config;\n const pluginMode: PluginPositions = [SidePanelPositions.RIGHT, SidePanelPositions.LEFT].includes(position)\n ? PluginPositions.VERTICAL\n : PluginPositions.HORIZONTAL;\n const {showTime, scrollOffset, searchDebounceTimeout, searchNextPrevDebounceTimeout} = this.config;\n this._transcriptPanel = this.sidePanelsManager.addItem({\n label: 'Transcript',\n panelComponent: () => {\n return (\n <Transcript\n showTime={getConfigValue(showTime, isBoolean, true)}\n scrollOffset={getConfigValue(scrollOffset, Number.isInteger, 0)}\n searchDebounceTimeout={getConfigValue(searchDebounceTimeout, Number.isInteger, 250)}\n searchNextPrevDebounceTimeout={getConfigValue(searchNextPrevDebounceTimeout, Number.isInteger, 100)}\n highlightedMap={this._activeCuePointsMap}\n onSeek={this._seekTo}\n pluginMode={pluginMode}\n onItemClicked={this._seekTo}\n captions={this._data}\n isLoading={this._isLoading}\n hasError={this._hasError}\n onRetryLoad={this._createOrUpdatePlugin}\n currentTime={this.player.currentTime}\n videoDuration={this.player.duration}\n kitchenSinkActive={!!this.sidePanelsManager.isItemActive(this._transcriptPanel)}\n toggledWithEnter={this._triggeredByKeyboard}\n onClose={this.onClose}\n />\n );\n },\n iconComponent: ({isActive}: {isActive: boolean}) => {\n return (\n <Tooltip label={buttonLabel} type=\"bottom\">\n <PluginButton isActive={isActive} onClick={this.onClose} label={buttonLabel} />\n </Tooltip>\n );\n },\n presets: [ReservedPresetNames.Playback, ReservedPresetNames.Live, ReservedPresetNames.Ads],\n position: position,\n expandMode: expandMode,\n onActivate: () => {\n this._pluginState = PluginStates.OPENED;\n }\n });\n\n if ((expandOnFirstPlay && !this._pluginState) || this._pluginState === PluginStates.OPENED) {\n this.ready.then(() => {\n this.sidePanelsManager.activateItem(this._transcriptPanel);\n });\n }\n }\n\n private _initLoading() {\n if (!this._isLoading || this._hasError) {\n this._isLoading = true;\n this._hasError = false;\n this._updateTranscriptPanel();\n }\n }\n\n private _seekTo = (time: number) => {\n this.player.currentTime = time;\n };\n\n private _handleDownload = () => {\n const {config} = this.player;\n const captions = this._captionMap.get(this._activeCaptionMapId) || [];\n\n if (captions) {\n const entryMetadata = get(config, 'sources.metadata', {});\n const language = this._getCaptionMapId();\n\n downloadContent(makePlainText(captions), `${language}${entryMetadata.name ? `-${entryMetadata.name}` : ''}.txt`);\n }\n };\n\n private _handlePrint = () => {\n const captions = this._captionMap.get(this._activeCaptionMapId) || [];\n\n if (captions) {\n printContent(makePlainText(captions));\n }\n };\n\n static isValid(): boolean {\n return true;\n }\n\n reset(): void {\n if (this._removePopoverIcon) {\n this._removePopoverIcon();\n this._removePopoverIcon = null;\n }\n\n this._captionMap = new Map();\n this._activeCaptionMapId = '';\n this._isLoading = false;\n this._hasError = false;\n }\n\n destroy(): void {\n this.reset();\n }\n}\n","export * from './types-ui';\nexport * from './transcript-config';\nexport * from './transcript-item-data';\n","export type HighlightedMap = Record<string, boolean>;\n\nexport interface RawItemData {\n content?: Array<{text: string}>;\n cuePointType?: string;\n label?: string;\n language?: string;\n text?: string;\n}\n\nexport interface CuePointData {\n id: string;\n startTime: number;\n displayTime?: number;\n text: string;\n}\n\nexport enum ItemTypes {\n Caption = 'kalturaCaption'\n}\n\nexport interface CuePoint {\n startTime: number;\n endTime?: number;\n id: string;\n type: string;\n metadata: RawItemData;\n text?: string;\n}\n","export type OnClick = (e: KeyboardEvent | MouseEvent, byKeyboard?: boolean) => void;\n\nexport enum PluginPositions {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical'\n}\n\nexport enum PluginStates {\n OPENED = 'opened',\n CLOSED = 'closed'\n}\n","type Procedure = (...args: any[]) => void;\n\ntype Options = {\n isImmediate: boolean;\n};\n\nexport function debounce<F extends Procedure>(\n func: F,\n waitMilliseconds = 50,\n options: Options = {\n isImmediate: false\n }\n): F {\n let timeoutId: any;\n\n return function (this: any, ...args: any[]) {\n const doLater = () => {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(this, args);\n }\n };\n\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(doLater, waitMilliseconds);\n\n if (shouldCallNow) {\n func.apply(this, args);\n }\n } as any;\n}\n","export * from './utils';\nexport * from './object-utils';\nexport * from './debounce';\nexport * from './popover/popover';\n","export class ObjectUtils {\n public static get(obj: Record<string, any>, path: string, defaultValue: any): any {\n function stringToPath(path: string) {\n const output: any = [];\n // Split to an array with dot notation\n path.split('.').forEach(item => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach(key => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n return output;\n }\n\n // Get the path as an array\n const pathArray = stringToPath(path);\n\n let current = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < pathArray.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[pathArray[i]]) return defaultValue;\n\n // Otherwise, update the current value\n current = current[pathArray[i]];\n }\n\n return current;\n }\n}\n","import {h, Component, ComponentChild} from 'preact';\nimport * as styles from './popover.scss';\n\nconst {ENTER, Esc} = KalturaPlayer.ui.utils.KeyMap;\n\nexport enum PopoverVerticalPositions {\n Top = 'top',\n Bottom = 'bottom'\n}\nexport enum PopoverHorizontalPositions {\n Left = 'left',\n Right = 'right'\n}\nexport enum PopoverTriggerMode {\n Click = 'click',\n Hover = 'hover'\n}\n\nconst CLOSE_ON_HOVER_DELAY = 500;\n\nconst defaultProps = {\n verticalPosition: PopoverVerticalPositions.Top,\n horizontalPosition: PopoverHorizontalPositions.Left,\n triggerMode: PopoverTriggerMode.Click,\n className: 'popover',\n closeOnEsc: true,\n closeOnClick: true\n};\n\ninterface PopoverProps {\n onClose?: () => void;\n onOpen?: () => void;\n closeOnClick: boolean;\n closeOnEsc: boolean;\n verticalPosition: PopoverVerticalPositions;\n horizontalPosition: PopoverHorizontalPositions;\n className: string;\n triggerMode: PopoverTriggerMode;\n content: ComponentChild;\n children: ComponentChild;\n}\n\ninterface PopoverState {\n open: boolean;\n}\n\nexport class Popover extends Component<PopoverProps, PopoverState> {\n private _closeTimeout: any = null;\n private _controlElement: HTMLDivElement | null = null;\n static defaultProps = {\n ...defaultProps\n };\n state = {\n open: false\n };\n\n componentWillUnmount() {\n this._removeListeners();\n }\n\n private _clearTimeout = () => {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = null;\n };\n\n private _handleMouseEvent = (event: MouseEvent) => {\n if (!this._controlElement?.contains(event.target as Node | null) && this.props.closeOnClick) {\n this._closePopover();\n }\n };\n\n private _handleKeyboardEvent = (event: KeyboardEvent) => {\n if (this._controlElement?.contains(event.target as Node | null) && event.keyCode === ENTER) {\n // handle Enter key pressed on Target icon to prevent triggering of _closePopover twice\n return;\n }\n if ((this.props.closeOnEsc && event.keyCode === Esc) || event.keyCode === ENTER) {\n // handle if ESC or Enter button presesd\n this._closePopover();\n }\n };\n\n private _openPopover = () => {\n const {onOpen} = this.props;\n this._clearTimeout();\n this.setState({open: true}, () => {\n this._addListeners();\n if (onOpen) {\n onOpen();\n }\n });\n };\n\n private _closePopover = () => {\n const {onClose} = this.props;\n this._clearTimeout();\n this.setState({open: false}, () => {\n this._removeListeners();\n if (onClose) {\n onClose();\n }\n });\n };\n\n private _togglePopover = (e: MouseEvent | KeyboardEvent) => {\n if (this.state.open) {\n this._closePopover();\n } else {\n this._openPopover();\n }\n };\n private _handleMouseEnter = () => {\n if (!this.state.open) {\n this._openPopover();\n }\n };\n private _handleMouseLeave = () => {\n this._closeTimeout = setTimeout(this._closePopover, CLOSE_ON_HOVER_DELAY);\n };\n private _handleHoverOnPopover = () => {\n if (this.state.open && this._closeTimeout) {\n this._clearTimeout();\n } else {\n this._closePopover();\n }\n };\n private _addListeners = () => {\n document.addEventListener('click', this._handleMouseEvent);\n document.addEventListener('keydown', this._handleKeyboardEvent);\n };\n private _removeListeners = () => {\n document.removeEventListener('click', this._handleMouseEvent);\n document.removeEventListener('keydown', this._handleKeyboardEvent);\n };\n private _getHoverEvents = () => {\n if (this.props.triggerMode === PopoverTriggerMode.Hover) {\n return {\n targetEvents: {\n onMouseEnter: this._handleMouseEnter,\n onMouseLeave: this._handleMouseLeave\n },\n popoverEvents: {\n onMouseEnter: this._handleHoverOnPopover,\n onMouseLeave: this._handleHoverOnPopover\n }\n };\n }\n return {targetEvents: {onClick: this._togglePopover}, popoverEvents: {}};\n };\n render(props: PopoverProps) {\n if (!props.content || !props.children) {\n return null;\n }\n const {targetEvents, popoverEvents} = this._getHoverEvents();\n return (\n <div className={styles.popoverContainer}>\n <div\n className=\"popover-anchor-container\"\n ref={node => {\n this._controlElement = node;\n }}\n {...targetEvents}\n >\n {props.children}\n </div>\n {this.state.open && (\n <div\n aria-expanded=\"true\"\n className={[props.className, styles.popoverComponent, styles[props.verticalPosition], styles[props.horizontalPosition]].join(' ')}\n {...popoverEvents}\n >\n {props.content}\n </div>\n )}\n </div>\n );\n }\n}\n","export const HOUR = 3600; // seconds in 1 hour\n\nexport const toSeconds = (val: any, vtt = false): number => {\n const regex = vtt ? /(\\d+):(\\d{2}):(\\d{2}).(\\d{2,3}|\\d{2})/ : /(\\d+):(\\d{2}):(\\d{2}),((\\d{2,3}|\\d{2}|\\d{1}))?/;\n const parts: any | null[] = regex.exec(val);\n if (parts === null) {\n return 0;\n }\n\n for (var i = 1; i < 5; i++) {\n parts[i] = parseInt(parts[i], 10);\n if (isNaN(parts[i])) {\n parts[i] = 0;\n }\n }\n // hours + minutes + seconds + ms\n return parts[1] * HOUR + parts[2] * 60 + parts[3] + parts[4] / 1000;\n};\n\nconst pad = (number: number) => {\n if (number < 10) {\n return `0${number}`;\n }\n return number;\n};\n\nconst makeHoursString = (seconds: number): string => {\n const hours = Math.floor(seconds / HOUR);\n if (hours >= 1) {\n return `${hours}:`;\n }\n return '';\n};\n\nexport const secontsToTime = (seconds: number, longerThanHour: boolean): string => {\n const date = new Date(0);\n date.setSeconds(seconds);\n return `${longerThanHour ? makeHoursString(seconds) : ''}${pad(date.getUTCMinutes())}:${pad(date.getUTCSeconds())}`;\n};\n\nexport function getConfigValue(value: any, condition: (value: any) => boolean, defaultValue: any) {\n let result = defaultValue;\n if (typeof condition === 'function' && condition(value)) {\n result = value;\n }\n return result;\n}\n\nexport function isBoolean(value: any) {\n return typeof value === 'boolean';\n}\n\nexport function makePlainText(captions: Array<CuePointData>): string {\n return captions.reduce((acc: string, next: CuePointData) => {\n return `${acc} ${next.text}`;\n }, '');\n}\n\nimport {CuePointData, CuePoint} from '../types';\n\nconst {toHHMMSS} = KalturaPlayer.ui.utils;\nconst MAX_CHARACTERS = 77;\n\nexport const decodeString = (content: any): string => {\n if (typeof content !== 'string') {\n return content;\n }\n return content\n .replace(/&lt;/gi, '<')\n .replace(/&gt;/gi, '>')\n .replace(/&nbsp;/gi, ' ')\n .replace(/&amp;/gi, '&')\n .replace(/&quot;/gi, '\"');\n};\n\nexport const prepareCuePoint = (cuePoint: CuePoint): CuePointData => {\n const {metadata} = cuePoint;\n const itemData: CuePointData = {\n id: cuePoint.id,\n startTime: cuePoint.startTime,\n displayTime: Math.floor(cuePoint.startTime),\n text: decodeString(metadata.text)\n };\n\n return itemData;\n};\n","module.exports = KalturaPlayer.ui.preact;","module.exports = KalturaPlayer;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t345: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","import {TranscriptPlugin} from './transcript-plugin';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport {TranscriptPlugin as Plugin};\nexport {VERSION, NAME};\n\nconst pluginName: string = 'transcript';\nKalturaPlayer.core.registerPlugin(pluginName, TranscriptPlugin);\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","url","options","String","__esModule","default","test","slice","hash","needQuotes","replace","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","api","memo","getTarget","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","Object","keys","forEach","key","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","Boolean","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","bind","parentNode","removeStyleElement","newObj","all","atob","lastIdentifiers","newList","prototype","call","newLastIdentifiers","_i","_index","splice","KalturaPlayer","ui","utils","KeyMap","ENTER","SPACE","A11yWrapper","children","onClick","cloneElement","onKeyDown","includes","keyCode","preventDefault","stopPropagation","End","Home","_currentCaptionRef","_firstCaptionRef","_lastCaptionRef","_handleClick","caption","onSeek","props","_getShouldScroll","captionId","isAutoScrollEnabled","highlightedMap","_getShouldScrollToSearchMatch","searchMap","activeSearchIndex","_getSearchProps","captionProps","searchProps","indexMap","searchLength","_getCaptionProps","captionData","showTime","scrollTo","scrollToSearchMatch","highlighted","longerThanHour","videoDuration","HOUR","shouldScroll","shouldScrollToSearchMatch","_handleKeyUp","event","_hotspotRef","focus","shouldComponentUpdate","nextProps","render","className","styles","transcriptWrapper","onKeyUp","Caption","ref","node","Component","CaptionList","Space","_handleKeyPress","which","_gotoCurrentTime","text","_renderText","indexArray","sort","a","b","Number","captionSpan","el","preSelected","substring","selected","postSelected","activeSearch","highlightSearch","componentDidUpdate","startTime","isHighlighted","tabIndex","captionTime","secontsToTime","captionContent","withoutTime","role","Icon","components","CloseButton","closeBtn","height","icons","BigSize","width","viewBox","path","CLOSE_ICON","Esc","name","blob","Blob","type","anchor","navigator","msSaveBlob","msSaveOrOpenBlob","userAgent","search","display","createObjectURL","click","printWindow","open","write","close","print","state","popoverOpen","_onDownloadClicked","onDownload","_onPrintClicked","onPrint","_onKeyDown","callBack","_popoverMenuItemRenderer","onMenuChosen","popoverMenuItem","label","_getPopoverMenuOptions","downloadButtonAriaLabel","printButtonAriaLabel","_renderIcon","buttonStyles","iconStyles","_popoverContent","PopoverMenu","itemRenderer","downloadDisabled","printDisabled","downloadPrintButton","icon","downloadIcon","printIcon","Popover","verticalPosition","PopoverVerticalPositions","Bottom","horizontalPosition","PopoverHorizontalPositions","Left","dropdownAriaLabel","defaultProps","DownloadPrintMenu","PLUGIN_ICON","SCROLL_ICON","MediumSize","SmallSize","Tooltip","PluginButton","isActive","pluginButton","active","popoverMenu","customRenderer","focused","_inputRef","_focusedByMouse","_handleOnChange","onChange","value","_onClear","x","y","_onFocus","setState","_onBlur","_goToNextSearchResult","totalSearchResults","onSearchIndexChange","_goToPrevSearchResult","_handleMouseDown","_debouncedOnChange","debounce","nextState","kitchenSinkActive","previousProps","toggledWithEnter","searchQuery","searchWrapper","searchIcon","searchInput","placeholder","onInput","onFocus","onBlur","onMouseDown","clearIcon","searchResults","prevNextWrapper","prevNextButton","prevButton","disabled","nextButton","Search","spinnerBall","bounceFrame","Spinner","Tab","initialSearch","SEARCHBAR_HEIGHT","_transcriptListRef","_captionListRef","_skipTranscriptButtonRef","_autoscrollButtonRef","_preventScrollEvent","_scrollToSearchMatchEnabled","_widgetRootRef","_widgetHeight","_topAutoscrollEdge","_bottomAutoscrollEdge","_thirdOfWidgetHeight","widgetWidth","_enableAutoScroll","byKeyboard","_renderScrollToButton","autoscrollButton","autoscrollButtonVisible","_onSearch","_findSearchMatches","loSearch","toLowerCase","captions","regex","RegExp","indices","exec","_setActiveSearchIndex","_getHeaderStyles","mediumWidth","smallWidth","_renderHeader","header","_debounced","onActiveSearchIndexChange","_handleKeyDown","shiftKey","captionRef","_renderSkipTranscriptButton","skipTranscriptButton","_renderTranscript","hasError","onRetryLoad","errorWrapper","errorIcon","errorMainText","errorDescriptionText","retryButton","_scrollTo","_scrollToSearchMatch","_handleSeek","onScroll","_onScroll","showItemsIcons","searchActive","_setWidgetSize","getBoundingClientRect","Math","floor","ceil","_renderLoading","loadingWrapper","scrollTop","offsetTop","selection","getSelection","findSearchMatches","searchDebounceTimeout","searchNextPrevDebounceTimeout","_handleEsc","onClose","previousState","isLoading","root","hidden","globalContainer","body","Transcript","SidePanelModes","SidePanelPositions","ReservedPresetNames","ReservedPresetAreas","get","ObjectUtils","player","config","_activeCaptionMapId","_activeCuePointsMap","_captionMap","Map","_isLoading","_hasError","_triggeredByKeyboard","_removePopoverIcon","_transcriptPanel","_pluginState","_handleLanguageChange","_getCaptionMapId","has","_updateTranscriptPanel","_onTimedMetadataAdded","payload","cues","cue","metadata","cuePointType","ItemTypes","prepareCuePoint","_addCaptionData","_onTimedMetadataChange","transcriptCuePoints","newData","set","_createOrUpdatePlugin","activeTextTrack","getTracks","Track","TEXT","find","track","language","sidePanelsManager","isItemActive","PluginStates","CLOSED","deactivateItem","activateItem","_initLoading","_addPopoverIcon","_addTranscriptItem","_seekTo","time","currentTime","_handleDownload","entryMetadata","downloadContent","makePlainText","_handlePrint","printContent","getService","loadMedia","cuePointManager","onPluginSetup","registerTypes","CuepointType","CAPTION","logger","warn","eventManager","listen","Event","TIMED_METADATA_CHANGE","TIMED_METADATA_ADDED","TEXT_TRACK_CHANGED","onRegisterUI","addComponent","area","TopBarRightControls","presets","Playback","Live","getConfigValue","isBoolean","buttonLabel","expandMode","position","expandOnFirstPlay","pluginMode","RIGHT","LEFT","PluginPositions","VERTICAL","HORIZONTAL","scrollOffset","addItem","panelComponent","isInteger","onItemClicked","_data","duration","iconComponent","Ads","onActivate","OPENED","ready","then","isValid","reset","destroy","defaultConfig","ALONGSIDE","core","BasePlugin","TranscriptPlugin","func","waitMilliseconds","timeoutId","isImmediate","doLater","apply","args","shouldCallNow","clearTimeout","setTimeout","defaultValue","pathArray","output","split","stringToPath","current","PopoverTriggerMode","Top","triggerMode","Click","closeOnEsc","closeOnClick","_closeTimeout","_controlElement","_clearTimeout","_handleMouseEvent","contains","_closePopover","_handleKeyboardEvent","_openPopover","onOpen","_addListeners","_removeListeners","_togglePopover","_handleMouseEnter","_handleMouseLeave","_handleHoverOnPopover","addEventListener","removeEventListener","_getHoverEvents","Hover","targetEvents","onMouseEnter","onMouseLeave","popoverEvents","componentWillUnmount","popoverContainer","popoverComponent","toSeconds","val","vtt","parts","parseInt","isNaN","pad","number","seconds","date","Date","setSeconds","hours","makeHoursString","getUTCMinutes","getUTCSeconds","condition","reduce","acc","next","decodeString","cuePoint","displayTime","preact","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","n","getter","d","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","hasOwnProperty","r","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","src","scripts","getElementsByTagName","p","baseURI","self","href","nc","VERSION","NAME","registerPlugin"],"sourceRoot":""}