video-react-new 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/video-react-new.cjs.js +0 -3
- package/dist/video-react-new.cjs.js.map +1 -1
- package/dist/video-react-new.es.js +0 -3
- package/dist/video-react-new.es.js.map +1 -1
- package/dist/video-react-new.full.js +0 -3
- package/dist/video-react-new.full.js.map +1 -1
- package/dist/video-react-new.full.min.js +1 -1
- package/dist/video-react-new.full.min.js.map +1 -1
- package/dist/video-react-new.js +0 -3
- package/dist/video-react-new.js.map +1 -1
- package/dist/video-react-new.min.js +1 -1
- package/dist/video-react-new.min.js.map +1 -1
- package/lib/components/Player.js +0 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-react-new.full.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.js","../src/actions/video.js","../src/utils/fullscreen.js","../src/actions/player.js","../src/reducers/player.js","../src/reducers/operation.js","../src/reducers/index.js","../src/Manager.js","../src/components/BigPlayButton.js","../src/components/LoadingSpinner.js","../src/components/PosterImage.js","../src/utils/index.js","../src/components/Video.js","../src/components/Bezel.js","../src/utils/dom.js","../src/components/Shortcut.js","../src/components/Slider.js","../src/components/control-bar/PlayProgressBar.js","../src/components/control-bar/LoadProgressBar.js","../src/components/control-bar/MouseTimeDisplay.js","../src/components/control-bar/SeekBar.js","../src/components/control-bar/ProgressControl.js","../src/components/control-bar/PlayToggle.js","../src/components/control-bar/ForwardReplayControl.js","../src/components/control-bar/ForwardControl.js","../src/components/control-bar/ReplayControl.js","../src/components/control-bar/FullscreenToggle.js","../src/components/time-controls/RemainingTimeDisplay.js","../src/components/time-controls/CurrentTimeDisplay.js","../src/components/time-controls/DurationDisplay.js","../src/components/time-controls/TimeDivider.js","../src/components/ClickableComponent.js","../src/components/popup/Popup.js","../src/components/popup/PopupButton.js","../src/components/volume-control/VolumeLevel.js","../src/components/volume-control/VolumeBar.js","../src/components/control-bar/VolumeMenuButton.js","../src/components/menu/Menu.js","../src/components/menu/MenuItem.js","../src/components/menu/MenuButton.js","../src/components/control-bar/PlaybackRateMenuButton.js","../src/components/control-bar/ControlBar.js","../src/utils/browser.js","../src/components/Player.js","../src/components/control-bar/PlaybackRate.js","../src/components/control-bar/ClosedCaptionButton.js"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(\"Dispatching while constructing your middleware is not allowed. \" + \"Other middleware would not be applied to this dispatch.\");\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };\n","export const LOAD_START = 'video-react-new/LOAD_START';\nexport const CAN_PLAY = 'video-react-new/CAN_PLAY';\nexport const WAITING = 'video-react-new/WAITING';\nexport const CAN_PLAY_THROUGH = 'video-react-new/CAN_PLAY_THROUGH';\nexport const PLAYING = 'video-react-new/PLAYING';\nexport const PLAY = 'video-react-new/PLAY';\nexport const PAUSE = 'video-react-new/PAUSE';\nexport const END = 'video-react-new/END';\nexport const SEEKING = 'video-react-new/SEEKING';\nexport const SEEKED = 'video-react-new/SEEKED';\nexport const SEEKING_TIME = 'video-react-new/SEEKING_TIME';\nexport const END_SEEKING = 'video-react-new/END_SEEKING';\nexport const DURATION_CHANGE = 'video-react-new/DURATION_CHANGE';\nexport const TIME_UPDATE = 'video-react-new/TIME_UPDATE';\nexport const VOLUME_CHANGE = 'video-react-new/VOLUME_CHANGE';\nexport const PROGRESS_CHANGE = 'video-react-new/PROGRESS_CHANGE';\nexport const RATE_CHANGE = 'video-react-new/RATE_CHANGE';\nexport const SUSPEND = 'video-react-new/SUSPEND';\nexport const ABORT = 'video-react-new/ABORT';\nexport const EMPTIED = 'video-react-new/EMPTIED';\nexport const STALLED = 'video-react-new/STALLED';\nexport const LOADED_META_DATA = 'video-react-new/LOADED_META_DATA';\nexport const LOADED_DATA = 'video-react-new/LOADED_DATA';\nexport const RESIZE = 'video-react-new/RESIZE';\nexport const ERROR = 'video-react-new/ERROR';\nexport const ACTIVATE_TEXT_TRACK = 'video-react-new/ACTIVATE_TEXT_TRACK';\n\nexport function handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps\n };\n}\n\nexport function handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps\n };\n}\n\nexport function handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps\n };\n}\n\nexport function handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps\n };\n}\n\nexport function handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps\n };\n}\n\nexport function handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps\n };\n}\n\nexport function handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps\n };\n}\n\nexport function handleEnd(videoProps) {\n return {\n type: END,\n videoProps\n };\n}\n\nexport function handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps\n };\n}\n\nexport function handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps\n };\n}\n\nexport function handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps\n };\n}\n\nexport function handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps\n };\n}\n\nexport function handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps\n };\n}\n\nexport function handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps\n };\n}\n\nexport function handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps\n };\n}\n\nexport function handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps\n };\n}\n\nexport function handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps\n };\n}\n\nexport function handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps\n };\n}\n\nexport function handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps\n };\n}\n\nexport function handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps\n };\n}\n\nexport function handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps\n };\n}\n\nexport function handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps\n };\n}\n\nexport function handleError(videoProps) {\n return {\n type: ERROR,\n videoProps\n };\n}\n\nexport function handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time\n };\n}\n\nexport function handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time\n };\n}\n\nexport function activateTextTrack(textTrack) {\n return {\n type: ACTIVATE_TEXT_TRACK,\n textTrack\n };\n}\n","class Fullscreen {\n request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n\n exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n\n get isFullscreen() {\n return (\n document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement\n || document.msFullscreenElement\n );\n }\n\n get enabled() {\n return (\n document.fullscreenEnabled\n || document.webkitFullscreenEnabled\n || document.mozFullScreenEnabled\n || document.msFullscreenEnabled\n );\n }\n\n addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n\n removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n}\n\nexport default new Fullscreen();\n","import fullscreen from '../utils/fullscreen';\n\nexport const OPERATE = 'video-react-new/OPERATE';\nexport const FULLSCREEN_CHANGE = 'video-react-new/FULLSCREEN_CHANGE';\nexport const PLAYER_ACTIVATE = 'video-react-new/PLAYER_ACTIVATE';\nexport const USER_ACTIVATE = 'video-react-new/USER_ACTIVATE';\n\nexport function handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen\n };\n}\n\nexport function activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity\n };\n}\n\nexport function userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity\n };\n}\n\nexport function play(\n operation = {\n action: 'play',\n source: ''\n }\n) {\n this.video.play();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function pause(\n operation = {\n action: 'pause',\n source: ''\n }\n) {\n this.video.pause();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function togglePlay(\n operation = {\n action: 'toggle-play',\n source: ''\n }\n) {\n this.video.togglePlay();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// seek video by time\nexport function seek(\n time,\n operation = {\n action: 'seek',\n source: ''\n }\n) {\n this.video.seek(time);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump forward x seconds\nexport function forward(\n seconds,\n operation = {\n action: `forward-${seconds}`,\n source: ''\n }\n) {\n this.video.forward(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump back x seconds\nexport function replay(\n seconds,\n operation = {\n action: `replay-${seconds}`,\n source: ''\n }\n) {\n this.video.replay(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeRate(\n rate,\n operation = {\n action: 'change-rate',\n source: ''\n }\n) {\n this.video.playbackRate = rate;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeVolume(\n volume,\n operation = {\n action: 'change-volume',\n source: ''\n }\n) {\n let v = volume;\n if (volume < 0) {\n v = 0;\n }\n if (volume > 1) {\n v = 1;\n }\n this.video.volume = v;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function mute(\n muted,\n operation = {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n }\n) {\n this.video.muted = muted;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function toggleFullscreen(player) {\n if (fullscreen.enabled) {\n if (fullscreen.isFullscreen) {\n fullscreen.exit();\n } else {\n fullscreen.request(this.rootElement);\n }\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}\n","import {\n LOAD_START,\n CAN_PLAY,\n WAITING,\n CAN_PLAY_THROUGH,\n PLAYING,\n PLAY,\n PAUSE,\n END,\n SEEKING,\n SEEKED,\n SEEKING_TIME,\n END_SEEKING,\n DURATION_CHANGE,\n TIME_UPDATE,\n VOLUME_CHANGE,\n PROGRESS_CHANGE,\n RATE_CHANGE,\n SUSPEND,\n ABORT,\n EMPTIED,\n STALLED,\n LOADED_META_DATA,\n LOADED_DATA,\n ACTIVATE_TEXT_TRACK,\n RESIZE,\n ERROR\n} from '../actions/video';\nimport {\n FULLSCREEN_CHANGE,\n PLAYER_ACTIVATE,\n USER_ACTIVATE\n} from '../actions/player';\n\nconst initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false,\n activeTextTrack: null\n};\n\nexport default function player(state = initialState, action) {\n switch (action.type) {\n case USER_ACTIVATE:\n return {\n ...state,\n userActivity: action.activity\n };\n case PLAYER_ACTIVATE:\n return {\n ...state,\n isActive: action.activity\n };\n case FULLSCREEN_CHANGE:\n return {\n ...state,\n isFullscreen: !!action.isFullscreen\n };\n case SEEKING_TIME:\n return {\n ...state,\n seekingTime: action.time\n };\n case END_SEEKING:\n return {\n ...state,\n seekingTime: 0\n };\n case LOAD_START:\n return {\n ...state,\n ...action.videoProps,\n hasStarted: false,\n ended: false\n };\n case CAN_PLAY:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case WAITING:\n return {\n ...state,\n ...action.videoProps,\n waiting: true\n };\n case CAN_PLAY_THROUGH:\n case PLAYING:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case PLAY:\n return {\n ...state,\n ...action.videoProps,\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n };\n case PAUSE:\n return {\n ...state,\n ...action.videoProps,\n paused: true\n };\n case END:\n return {\n ...state,\n ...action.videoProps,\n ended: true\n };\n case SEEKING:\n return {\n ...state,\n ...action.videoProps,\n seeking: true\n };\n case SEEKED:\n return {\n ...state,\n ...action.videoProps,\n seeking: false\n };\n case ERROR:\n return {\n ...state,\n ...action.videoProps,\n error: 'UNKNOWN ERROR',\n ended: true\n };\n case DURATION_CHANGE:\n case TIME_UPDATE:\n case VOLUME_CHANGE:\n case PROGRESS_CHANGE:\n case RATE_CHANGE:\n case SUSPEND:\n case ABORT:\n case EMPTIED:\n case STALLED:\n case LOADED_META_DATA:\n case LOADED_DATA:\n case RESIZE:\n return {\n ...state,\n ...action.videoProps\n };\n case ACTIVATE_TEXT_TRACK:\n return {\n ...state,\n activeTextTrack: action.textTrack\n };\n default:\n return state;\n }\n}\n","import { OPERATE } from '../actions/player';\n\nconst initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nexport default function operation(state = initialState, action) {\n switch (action.type) {\n case OPERATE:\n return {\n ...state,\n count: state.count + 1,\n operation: {\n ...state.operation,\n ...action.operation\n }\n };\n default:\n return state;\n }\n}\n","import player from './player';\nimport operation from './operation';\n\nexport default function (state = {}, action) {\n return {\n player: player(state.player, action),\n operation: operation(state.operation, action)\n };\n}\n\nexport const playerReducer = player;\nexport const operationReducer = operation;\n","import { createStore } from 'redux';\nimport reducer from './reducers';\nimport * as playerActions from './actions/player';\nimport * as videoActions from './actions/video';\n\nexport default class Manager {\n constructor(store) {\n this.store = store || createStore(reducer);\n\n this.video = null;\n this.rootElement = null;\n }\n\n getActions() {\n const manager = this;\n const { dispatch } = this.store;\n const actions = {\n ...playerActions,\n ...videoActions\n };\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n const action = actionCreator.apply(manager, arguments);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions)\n .filter(key => typeof actions[key] === 'function')\n .reduce((boundActions, key) => {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n\n getState() {\n return this.store.getState();\n }\n\n // subscribe state change\n subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n let prevState = getState();\n\n const handleChange = () => {\n const state = getState();\n if (state === prevState) {\n return;\n }\n const prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n }\n\n // subscribe to operation state change\n subscribeToOperationStateChange(listener) {\n return this.subscribeToStateChange(\n listener,\n () => this.getState().operation\n );\n }\n\n // subscribe to player state change\n subscribeToPlayerStateChange(listener) {\n return this.subscribeToStateChange(listener, () => this.getState().player);\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n position: PropTypes.string,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n position: 'left'\n};\n\nexport default class BigPlayButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n handleClick() {\n const { actions } = this.props;\n actions.play();\n }\n\n render() {\n const { player, position } = this.props;\n return (\n <button\n className={classNames(\n 'video-react-new-button',\n 'video-react-new-big-play-button',\n `video-react-new-big-play-button-${position}`,\n this.props.className,\n {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }\n )}\n type=\"button\"\n aria-live=\"polite\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">Play Video</span>\n </button>\n );\n }\n}\n\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default function LoadingSpinner({ player, className }) {\n if (player.error) {\n return null;\n }\n return (\n <div className={classNames('video-react-new-loading-spinner', className)} />\n );\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n poster: PropTypes.string,\n player: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction PosterImage({\n poster, player, actions, className\n}) {\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return (\n <div\n className={classNames('video-react-new-poster', className)}\n style={{\n backgroundImage: `url(\"${poster}\")`\n }}\n onClick={() => {\n if (player.paused) {\n actions.play();\n }\n }}\n />\n );\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\n\nexport default PosterImage;\n","import React from 'react';\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nconst isNaN = Number.isNaN || (value => value !== value);\n\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nexport function formatTime(seconds = 0, guide = seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor((seconds / 60) % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor((guide / 60) % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? `${h}:` : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = `${(h || gm >= 10) && m < 10 ? `0${m}` : m}:`;\n\n // Check if leading zero is need for seconds\n s = s < 10 ? `0${s}` : s;\n\n return h + m + s;\n}\n\n// Check if the element belongs to a video element\n// only accept <source />, <track />,\n// <MyComponent isVideoChild />\n// elements\nexport function isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n return c.type === 'source' || c.type === 'track';\n}\n\nconst find = (elements, func) => elements.filter(func)[0];\n\n// check if two components are the same type\nconst isTypeEqual = (component1, component2) => {\n const type1 = component1.type;\n const type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n};\n\n// merge default children\n// sort them by `order` property\n// filter them by `disabled` property\nexport function mergeAndSortChildren(\n defaultChildren,\n _children,\n _parentProps,\n defaultOrder = 1\n) {\n const children = React.Children.toArray(_children);\n const { order, ...parentProps } = _parentProps; // ignore order from parent\n return children\n .filter(e => !e.props.disabled) // filter the disabled components\n .concat(\n defaultChildren.filter(\n c => !find(children, component => isTypeEqual(component, c))\n )\n )\n .map((element) => {\n const defaultComponent = find(defaultChildren, c => isTypeEqual(c, element));\n\n const defaultProps = defaultComponent ? defaultComponent.props : {};\n const props = {\n ...parentProps, // inherit from parent component\n ...defaultProps, // inherit from default component\n ...element.props // element's own props\n };\n const e = React.cloneElement(element, props, element.props.children);\n return e;\n })\n .sort(\n (a, b) => (a.props.order || defaultOrder) - (b.props.order || defaultOrder)\n );\n}\n\n/**\n * Temporary utility for generating the warnings\n */\nexport function deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\n `WARNING: ${oldMethodCall} will be deprecated soon! Please use ${newMethodCall} instead.`\n );\n}\n\nexport function throttle(callback, limit) {\n let wait = false;\n return () => {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback(...arguments);\n wait = true;\n setTimeout(() => {\n wait = false;\n }, limit);\n }\n };\n}\n\nexport const mediaProperties = [\n 'error',\n 'src',\n 'srcObject',\n 'currentSrc',\n 'crossOrigin',\n 'networkState',\n 'preload',\n 'buffered',\n 'readyState',\n 'seeking',\n 'currentTime',\n 'duration',\n 'paused',\n 'defaultPlaybackRate',\n 'playbackRate',\n 'played',\n 'seekable',\n 'ended',\n 'autoplay',\n 'loop',\n 'mediaGroup',\n 'controller',\n 'controls',\n 'volume',\n 'muted',\n 'defaultMuted',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster'\n];\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport { isVideoChild, mediaProperties, throttle } from '../utils';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n children: PropTypes.any,\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n muted: PropTypes.bool,\n autoPlay: PropTypes.bool,\n playsInline: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n className: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n crossOrigin: PropTypes.string,\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n onResize: PropTypes.func\n};\n\nexport default class Video extends Component {\n constructor(props) {\n super(props);\n\n this.video = null; // the html5 video\n this.play = this.play.bind(this);\n this.pause = this.pause.bind(this);\n this.seek = this.seek.bind(this);\n this.forward = this.forward.bind(this);\n this.replay = this.replay.bind(this);\n this.toggleFullscreen = this.toggleFullscreen.bind(this);\n this.getProperties = this.getProperties.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n this.handleLoadStart = this.handleLoadStart.bind(this);\n this.handleCanPlay = this.handleCanPlay.bind(this);\n this.handleCanPlayThrough = this.handleCanPlayThrough.bind(this);\n this.handlePlay = this.handlePlay.bind(this);\n this.handlePlaying = this.handlePlaying.bind(this);\n this.handlePause = this.handlePause.bind(this);\n this.handleEnded = this.handleEnded.bind(this);\n this.handleWaiting = this.handleWaiting.bind(this);\n this.handleSeeking = this.handleSeeking.bind(this);\n this.handleSeeked = this.handleSeeked.bind(this);\n this.handleFullscreenChange = this.handleFullscreenChange.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleSuspend = this.handleSuspend.bind(this);\n this.handleAbort = this.handleAbort.bind(this);\n this.handleEmptied = this.handleEmptied.bind(this);\n this.handleStalled = this.handleStalled.bind(this);\n this.handleLoadedMetaData = this.handleLoadedMetaData.bind(this);\n this.handleLoadedData = this.handleLoadedData.bind(this);\n this.handleTimeUpdate = this.handleTimeUpdate.bind(this);\n this.handleRateChange = this.handleRateChange.bind(this);\n this.handleVolumeChange = this.handleVolumeChange.bind(this);\n this.handleDurationChange = this.handleDurationChange.bind(this);\n this.handleProgress = throttle(this.handleProgress.bind(this), 250);\n this.handleKeypress = this.handleKeypress.bind(this);\n this.handleTextTrackChange = this.handleTextTrackChange.bind(this);\n }\n\n componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n if (this.video && this.video.textTracks) {\n this.video.textTracks.onaddtrack = this.handleTextTrackChange;\n this.video.textTracks.onremovetrack = this.handleTextTrackChange;\n }\n }\n\n // get all video properties\n getProperties() {\n if (!this.video) {\n return null;\n }\n\n return mediaProperties.reduce((properties, key) => {\n properties[key] = this.video[key];\n return properties;\n }, {});\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n if (val > 1) {\n val = 1;\n }\n if (val < 0) {\n val = 0;\n }\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n handleTextTrackChange() {\n const { actions, player } = this.props;\n if (this.video && this.video.textTracks) {\n const activeTextTrack = Array.from(this.video.textTracks).find(\n textTrack => textTrack.mode === 'showing'\n );\n if (activeTextTrack !== player.activeTextTrack) {\n actions.activateTextTrack(activeTextTrack);\n }\n }\n }\n\n // play the video\n play() {\n const promise = this.video.play();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // pause the video\n pause() {\n const promise = this.video.pause();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // toggle play\n togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n // seek video by time\n seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {\n // console.log(e, 'Video is not ready.')\n }\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.forward(-seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n // Fired when the user agent\n // begins looking for media data\n handleLoadStart(...args) {\n const { actions, onLoadStart } = this.props;\n actions.handleLoadStart(this.getProperties());\n if (onLoadStart) {\n onLoadStart(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlay(...args) {\n const { actions, onCanPlay } = this.props;\n\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlayThrough(...args) {\n const { actions, onCanPlayThrough } = this.props;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handlePlaying(...args) {\n const { actions, onPlaying } = this.props;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying(...args);\n }\n }\n\n // Fired whenever the media has been started\n handlePlay(...args) {\n const { actions, onPlay } = this.props;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay(...args);\n }\n }\n\n // Fired whenever the media has been paused\n handlePause(...args) {\n const { actions, onPause } = this.props;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause(...args);\n }\n }\n\n // Fired when the duration of\n // the media resource is first known or changed\n handleDurationChange(...args) {\n const { actions, onDurationChange } = this.props;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange(...args);\n }\n }\n\n // Fired while the user agent\n // is downloading media data\n handleProgress(...args) {\n const { actions, onProgress } = this.props;\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress(...args);\n }\n }\n\n // Fired when the end of the media resource\n // is reached (currentTime == duration)\n handleEnded(...args) {\n const {\n loop, player, actions, onEnded\n } = this.props;\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded(...args);\n }\n }\n\n // Fired whenever the media begins waiting\n handleWaiting(...args) {\n const { actions, onWaiting } = this.props;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting(...args);\n }\n }\n\n // Fired whenever the player\n // is jumping to a new time\n handleSeeking(...args) {\n const { actions, onSeeking } = this.props;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking(...args);\n }\n }\n\n // Fired when the player has\n // finished jumping to a new time\n handleSeeked(...args) {\n const { actions, onSeeked } = this.props;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked(...args);\n }\n }\n\n // Handle Fullscreen Change\n handleFullscreenChange() {}\n\n // Fires when the browser is\n // intentionally not getting media data\n handleSuspend(...args) {\n const { actions, onSuspend } = this.props;\n actions.handleSuspend(this.getProperties());\n if (onSuspend) {\n onSuspend(...args);\n }\n }\n\n // Fires when the loading of an audio/video is aborted\n handleAbort(...args) {\n const { actions, onAbort } = this.props;\n actions.handleAbort(this.getProperties());\n if (onAbort) {\n onAbort(...args);\n }\n }\n\n // Fires when the current playlist is empty\n handleEmptied(...args) {\n const { actions, onEmptied } = this.props;\n actions.handleEmptied(this.getProperties());\n if (onEmptied) {\n onEmptied(...args);\n }\n }\n\n // Fires when the browser is trying to\n // get media data, but data is not available\n handleStalled(...args) {\n const { actions, onStalled } = this.props;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled(...args);\n }\n }\n\n // Fires when the browser has loaded\n // meta data for the audio/video\n handleLoadedMetaData(...args) {\n const { actions, onLoadedMetadata, startTime } = this.props;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata(...args);\n }\n }\n\n // Fires when the browser has loaded\n // the current frame of the audio/video\n handleLoadedData(...args) {\n const { actions, onLoadedData } = this.props;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData(...args);\n }\n }\n\n // Fires when the current\n // playback position has changed\n handleTimeUpdate(...args) {\n const { actions, onTimeUpdate } = this.props;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate(...args);\n }\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n handleRateChange(...args) {\n const { actions, onRateChange } = this.props;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange(...args);\n }\n }\n\n // Fires when the volume has been changed\n handleVolumeChange(...args) {\n const { actions, onVolumeChange } = this.props;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange(...args);\n }\n }\n\n // Fires when an error occurred\n // during the loading of an audio/video\n handleError(...args) {\n const { actions, onError } = this.props;\n actions.handleError(this.getProperties());\n if (onError) {\n onError(...args);\n }\n }\n\n handleResize(...args) {\n const { actions, onResize } = this.props;\n actions.handleResize(this.getProperties());\n if (onResize) {\n onResize(...args);\n }\n }\n\n handleKeypress() {}\n\n renderChildren() {\n const props = {\n ...this.props,\n video: this.video\n };\n\n // to make sure the children can get video property\n if (!this.video) {\n return null;\n }\n\n // only keep <source />, <track />, <MyComponent isVideoChild /> elements\n return React.Children.toArray(this.props.children)\n .filter(isVideoChild)\n .map((c) => {\n let cprops;\n if (typeof c.type === 'string') {\n // add onError to <source />\n if (c.type === 'source') {\n cprops = { ...c.props };\n const preOnError = cprops.onError;\n cprops.onError = (...args) => {\n if (preOnError) {\n preOnError(...args);\n }\n this.handleError(...args);\n };\n }\n } else {\n cprops = props;\n }\n return React.cloneElement(c, cprops);\n });\n }\n\n render() {\n const {\n loop,\n poster,\n preload,\n src,\n autoPlay,\n playsInline,\n muted,\n crossOrigin,\n videoId\n } = this.props;\n\n return (\n <video\n className={classNames('video-react-new-video', this.props.className)}\n id={videoId}\n crossOrigin={crossOrigin}\n ref={(c) => {\n this.video = c;\n }}\n muted={muted}\n preload={preload}\n loop={loop}\n playsInline={playsInline}\n autoPlay={autoPlay}\n poster={poster}\n src={src}\n onLoadStart={this.handleLoadStart}\n onWaiting={this.handleWaiting}\n onCanPlay={this.handleCanPlay}\n onCanPlayThrough={this.handleCanPlayThrough}\n onPlaying={this.handlePlaying}\n onEnded={this.handleEnded}\n onSeeking={this.handleSeeking}\n onSeeked={this.handleSeeked}\n onPlay={this.handlePlay}\n onPause={this.handlePause}\n onProgress={this.handleProgress}\n onDurationChange={this.handleDurationChange}\n onError={this.handleError}\n onSuspend={this.handleSuspend}\n onAbort={this.handleAbort}\n onEmptied={this.handleEmptied}\n onStalled={this.handleStalled}\n onLoadedMetadata={this.handleLoadedMetaData}\n onLoadedData={this.handleLoadedData}\n onTimeUpdate={this.handleTimeUpdate}\n onRateChange={this.handleRateChange}\n onVolumeChange={this.handleVolumeChange}\n tabIndex=\"-1\"\n >\n {this.renderChildren()}\n </video>\n );\n }\n}\n\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n manager: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class Bezel extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.timer = null;\n props.manager.subscribeToOperationStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.state = {\n hidden: true,\n operation: {}\n };\n }\n\n handleStateChange(state, prevState) {\n if (\n state.count !== prevState.count\n && state.operation.source === 'shortcut'\n ) {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n this.timer = null;\n }\n\n // show it\n // update operation\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n });\n\n // hide it after 0.5s\n this.timer = setTimeout(() => {\n this.setState({\n hidden: true\n });\n this.timer = null;\n }, 500);\n }\n }\n\n render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n const style = this.state.hidden\n ? {\n display: 'none'\n }\n : null;\n\n return (\n <div\n className={classNames(\n {\n 'video-react-new-bezel': true,\n 'video-react-new-bezel-animation': this.state.count % 2 === 0,\n 'video-react-new-bezel-animation-alt': this.state.count % 2 === 1\n },\n this.props.className\n )}\n style={style}\n role=\"status\"\n aria-label={this.state.operation.action}\n >\n <div\n className={classNames(\n 'video-react-new-bezel-icon',\n `video-react-new-bezel-icon-${this.state.operation.action}`\n )}\n />\n </div>\n );\n }\n}\n\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';\n","/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {ReactNodeRef} el React Node ref from which to get offset\n * @return {Object}\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const { body, documentElement: docEl } = document;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in a React Node ref\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {ReactNodeRef} el React Node ref on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\nexport function getPointerPosition(el, event) {\n const position = {};\n const box = findElPosition(el);\n const boxW = el.offsetWidth;\n const boxH = el.offsetHeight;\n\n const boxY = box.top;\n const boxX = box.left;\n let evtPageY = event.pageY;\n let evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n\n return position;\n}\n\n// blur an element\nexport function blurNode(reactNode) {\n if (reactNode && reactNode.blur) {\n reactNode.blur();\n }\n}\n\n// focus an element\nexport function focusNode(reactNode) {\n if (reactNode && reactNode.focus) {\n reactNode.focus();\n }\n}\n\n// check if an element has a class name\nexport function hasClass(elm, cls) {\n const classes = elm.className.split(' ');\n for (let i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { hasClass } from '../utils/dom';\n\nconst propTypes = {\n clickable: PropTypes.bool,\n dblclickable: PropTypes.bool,\n manager: PropTypes.object,\n actions: PropTypes.object,\n player: PropTypes.object,\n shortcuts: PropTypes.array\n};\n\nconst defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nexport default class Shortcut extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.defaultShortcuts = [\n {\n keyCode: 32, // spacebar\n handle: this.togglePlay\n },\n {\n keyCode: 75, // k\n handle: this.togglePlay\n },\n {\n keyCode: 70, // f\n handle: this.toggleFullscreen\n },\n {\n keyCode: 37, // Left arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n },\n {\n keyCode: 74, // j\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n },\n {\n keyCode: 39, // Right arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n },\n {\n keyCode: 76, // l\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n },\n {\n keyCode: 36, // Home\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.seek(0); // Go to beginning of video\n }\n },\n {\n keyCode: 35, // End\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n // Go to end of video\n actions.seek(player.duration);\n }\n },\n {\n keyCode: 38, // Up arrow\n handle: (player, actions) => {\n // Increase volume 5%\n let v = player.volume + 0.05;\n if (v > 1) {\n v = 1;\n }\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 40, // Down arrow\n handle: (player, actions) => {\n // Decrease volume 5%\n let v = player.volume - 0.05;\n if (v < 0) {\n v = 0;\n }\n const action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action,\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 190, // Shift + >\n shift: true,\n handle: (player, actions) => {\n // Increase speed\n let { playbackRate } = player;\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 188, // Shift + <\n shift: true,\n handle: (player, actions) => {\n // Decrease speed\n let { playbackRate } = player;\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }\n ];\n\n this.shortcuts = [...this.defaultShortcuts];\n\n this.mergeShortcuts = this.mergeShortcuts.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n }\n\n componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n }\n\n // merge the shortcuts from props\n mergeShortcuts() {\n const getShortcutKey = ({\n keyCode = 0,\n ctrl = false,\n shift = false,\n alt = false\n }) => `${keyCode}:${ctrl}:${shift}:${alt}`;\n const defaultShortcuts = this.defaultShortcuts.reduce(\n (shortcuts, shortcut) => Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n }),\n {}\n );\n const mergedShortcuts = (this.props.shortcuts || []).reduce(\n (shortcuts, shortcut) => {\n const { keyCode, handle } = shortcut;\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n });\n }\n return shortcuts;\n },\n defaultShortcuts\n );\n\n const gradeShortcut = (s) => {\n let score = 0;\n const ps = ['ctrl', 'shift', 'alt'];\n ps.forEach((key) => {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts)\n .map(key => mergedShortcuts[key])\n .sort((a, b) => gradeShortcut(b) - gradeShortcut(a));\n }\n\n togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n\n toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n\n handleKeyPress(e) {\n const { player, actions } = this.props;\n if (!player.isActive) {\n return;\n }\n if (\n document.activeElement\n && (hasClass(document.activeElement, 'video-react-new-control')\n || hasClass(document.activeElement, 'video-react-new-menu-button-active')\n // || hasClass(document.activeElement, 'video-react-new-slider')\n || hasClass(document.activeElement, 'video-react-new-big-play-button'))\n ) {\n return;\n }\n\n const keyCode = e.keyCode || e.which;\n const ctrl = e.ctrlKey || e.metaKey;\n const shift = e.shiftKey;\n const alt = e.altKey;\n\n const shortcut = this.shortcuts.filter((s) => {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n if (\n (s.ctrl !== undefined && s.ctrl !== ctrl)\n || (s.shift !== undefined && s.shift !== shift)\n || (s.alt !== undefined && s.alt !== alt)\n ) {\n return false;\n }\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n }\n\n // only if player is active and player is ready\n canBeClicked(player, e) {\n if (\n !player.isActive\n || e.target.nodeName !== 'VIDEO'\n || player.readyState !== 4\n ) {\n return false;\n }\n return true;\n }\n\n handleClick(e) {\n const { player, actions, clickable } = this.props;\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n this.togglePlay(player, actions);\n // e.preventDefault();\n }\n\n handleDoubleClick(e) {\n const { player, actions, dblclickable } = this.props;\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n this.toggleFullscreen(player, actions);\n // e.preventDefault();\n }\n\n // this component dose not render anything\n // it's just for the key down event\n render() {\n return null;\n }\n}\n\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport * as Dom from '../utils/dom';\n\nconst propTypes = {\n className: PropTypes.string,\n onMouseDown: PropTypes.func,\n onMouseMove: PropTypes.func,\n stepForward: PropTypes.func,\n stepBack: PropTypes.func,\n sliderActive: PropTypes.func,\n sliderInactive: PropTypes.func,\n onMouseUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onClick: PropTypes.func,\n getPercent: PropTypes.func,\n vertical: PropTypes.bool,\n children: PropTypes.node,\n label: PropTypes.string,\n valuenow: PropTypes.string,\n valuetext: PropTypes.string\n};\n\nexport default class Slider extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.calculateDistance = this.calculateDistance.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n\n this.state = {\n active: false\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n\n getProgress() {\n const { getPercent } = this.props;\n if (!getPercent) {\n return 0;\n }\n let progress = getPercent();\n\n // Protect against no duration and other division issues\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n return progress;\n }\n\n handleMouseDown(event) {\n const { onMouseDown } = this.props;\n // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n\n handleMouseMove(event) {\n const { onMouseMove } = this.props;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n\n handleMouseUp(event) {\n // On iOS safari, a subsequent mouseup event will be fired after touchend.\n // Its weird event positions make the player seek a wrong time.\n // calling preventDefault (at touchend phase) will prevent the mouseup event\n event.preventDefault();\n const { onMouseUp } = this.props;\n\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n\n handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n\n stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n\n stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n\n calculateDistance(event) {\n const node = this.slider;\n const position = Dom.getPointerPosition(node, event);\n if (this.props.vertical) {\n return position.y;\n }\n return position.x;\n }\n\n renderChildren() {\n const progress = this.getProgress();\n const percentage = `${(progress * 100).toFixed(2)}%`;\n return React.Children.map(this.props.children, child =>\n React.cloneElement(child, { progress, percentage })\n );\n }\n\n render() {\n const { vertical, label, valuenow, valuetext } = this.props;\n\n return (\n <div\n className={classNames(\n this.props.className,\n {\n 'video-react-new-slider-vertical': vertical,\n 'video-react-new-slider-horizontal': !vertical,\n 'video-react-new-sliding': this.state.active\n },\n 'video-react-new-slider'\n )}\n ref={c => {\n this.slider = c;\n }}\n tabIndex=\"0\"\n role=\"slider\"\n onMouseDown={this.handleMouseDown}\n onTouchStart={this.handleMouseDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n aria-label={label || ''}\n aria-valuenow={valuenow || ''}\n aria-valuetext={valuetext || ''}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n {this.renderChildren()}\n </div>\n );\n }\n}\n\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n percentage: PropTypes.string,\n className: PropTypes.string\n};\n\n// Shows play progress\nexport default function PlayProgressBar({\n currentTime,\n duration,\n percentage,\n className\n}) {\n return (\n <div\n data-current-time={formatTime(currentTime, duration)}\n className={classNames(\n 'video-react-new-play-progress video-react-new-slider-bar',\n className\n )}\n style={{\n width: percentage\n }}\n >\n <span className=\"video-react-new-control-text\">\n {`Progress: ${percentage}`}\n </span>\n </div>\n );\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n duration: PropTypes.number,\n buffered: PropTypes.object,\n className: PropTypes.string\n};\n\n// Shows load progress\nexport default function LoadProgressBar({ buffered, duration, className }) {\n if (!buffered || !buffered.length) {\n return null;\n }\n let bufferedEnd = buffered.end(buffered.length - 1);\n const style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n }\n\n // get the percent width of a time compared to the total end\n function percentify(time, end) {\n const percent = time / end || 0; // no NaN\n return `${(percent >= 1 ? 1 : percent) * 100}%`;\n }\n\n // the width of the progress bar\n style.width = percentify(bufferedEnd, duration);\n\n let parts = [];\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n const start = buffered.start(i);\n const end = buffered.end(i);\n // set the percent based on the width of the progress bar (bufferedEnd)\n const part = (\n <div\n style={{\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n }}\n key={`part-${i}`}\n />\n );\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return (\n <div\n style={style}\n className={classNames('video-react-new-load-progress', className)}\n >\n <span className=\"video-react-new-control-text\">Loaded: 0%</span>\n {parts}\n </div>\n );\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nfunction MouseTimeDisplay({\n duration, mouseTime, className, text\n}) {\n if (!mouseTime.time) {\n return null;\n }\n\n const time = text || formatTime(mouseTime.time, duration);\n\n return (\n <div\n className={classNames('video-react-new-mouse-display', className)}\n style={{\n left: `${mouseTime.position}px`\n }}\n data-current-time={time}\n />\n );\n}\n\nMouseTimeDisplay.propTypes = {\n duration: PropTypes.number,\n mouseTime: PropTypes.object,\n className: PropTypes.string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\n\nexport default MouseTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport PlayProgressBar from './PlayProgressBar';\nimport LoadProgressBar from './LoadProgressBar';\nimport MouseTimeDisplay from './MouseTimeDisplay';\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n mouseTime: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class SeekBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.getPercent = this.getPercent.bind(this);\n this.getNewTime = this.getNewTime.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate() {}\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n const { currentTime, seekingTime, duration } = this.props.player;\n const time = seekingTime || currentTime;\n const percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n\n getNewTime(event) {\n const {\n player: { duration }\n } = this.props;\n const distance = this.slider.calculateDistance(event);\n const newTime = distance * duration;\n\n // Don't let video end while scrubbing.\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n\n handleMouseDown() {}\n\n handleMouseUp(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n // Set new time (tell video to seek to new time)\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n\n stepForward() {\n const { actions } = this.props;\n actions.forward(5);\n }\n\n stepBack() {\n const { actions } = this.props;\n actions.replay(5);\n }\n\n render() {\n const {\n player: { currentTime, seekingTime, duration, buffered },\n mouseTime\n } = this.props;\n const time = seekingTime || currentTime;\n\n return (\n <Slider\n ref={input => {\n this.slider = input;\n }}\n label=\"video progress bar\"\n className={classNames(\n 'video-react-new-progress-holder',\n this.props.className\n )}\n valuenow={(this.getPercent() * 100).toFixed(2)}\n valuetext={formatTime(time, duration)}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseUp={this.handleMouseUp}\n getPercent={this.getPercent}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n >\n <LoadProgressBar\n buffered={buffered}\n currentTime={time}\n duration={duration}\n />\n <MouseTimeDisplay duration={duration} mouseTime={mouseTime} />\n <PlayProgressBar currentTime={time} duration={duration} />\n </Slider>\n );\n }\n}\n\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport * as Dom from '../../utils/dom';\nimport SeekBar from './SeekBar';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class ProgressControl extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n\n this.handleMouseMoveThrottle = this.handleMouseMove.bind(this);\n }\n\n handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n const {\n player: { duration }\n } = this.props;\n const node = this.seekBar;\n const newTime = Dom.getPointerPosition(node, event).x * duration;\n const position = event.pageX - Dom.findElPosition(node).left;\n\n this.setState({\n mouseTime: {\n time: newTime,\n position\n }\n });\n }\n\n render() {\n const { className } = this.props;\n return (\n <div\n onMouseMove={this.handleMouseMoveThrottle}\n className={classNames(\n 'video-react-new-progress-control video-react-new-control',\n className\n )}\n >\n <SeekBar\n mouseTime={this.state.mouseTime}\n ref={c => {\n this.seekBar = c;\n }}\n {...this.props}\n />\n </div>\n );\n }\n}\n\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class PlayToggle extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, player } = this.props;\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n\n render() {\n const { player, className } = this.props;\n const controlText = player.paused ? 'Play' : 'Pause';\n\n return (\n <button\n ref={(c) => {\n this.button = c;\n }}\n className={classNames(className, {\n 'video-react-new-play-control': true,\n 'video-react-new-control': true,\n 'video-react-new-button': true,\n 'video-react-new-paused': player.paused,\n 'video-react-new-playing': !player.paused\n })}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">{controlText}</span>\n </button>\n );\n }\n}\n\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n actions: PropTypes.object,\n className: PropTypes.string,\n seconds: PropTypes.oneOf([5, 10, 30])\n};\n\nconst defaultProps = {\n seconds: 10\n};\n\nexport default (mode) => {\n class ForwardReplayControl extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, seconds } = this.props;\n // Depends mode to implement different actions\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n\n render() {\n const { seconds, className } = this.props;\n const classNames = [\n 'video-react-new-control',\n 'video-react-new-button',\n 'video-react-new-icon'\n ];\n classNames.push(\n `video-react-new-icon-${mode}-${seconds}`,\n `video-react-new-${mode}-control`\n );\n if (className) {\n classNames.push(className);\n }\n return (\n <button\n ref={(c) => {\n this.button = c;\n }}\n className={classNames.join(' ')}\n type=\"button\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">{`${mode} ${seconds} seconds`}</span>\n </button>\n );\n }\n }\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ForwardControl = ForwardReplayControl('forward');\n\nForwardControl.displayName = 'ForwardControl';\nexport default ForwardControl;\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ReplayControl = ForwardReplayControl('replay');\nReplayControl.displayName = 'ReplayControl';\n\nexport default ReplayControl;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class FullscreenToggle extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n render() {\n const { player, className } = this.props;\n return (\n <button\n className={classNames(\n className,\n {\n 'video-react-new-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-new-icon-fullscreen': !player.isFullscreen\n },\n 'video-react-new-fullscreen-control video-react-new-control video-react-new-button video-react-new-icon'\n )}\n ref={(c) => {\n this.button = c;\n }}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">Non-Fullscreen</span>\n </button>\n );\n }\n}\n\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction RemainingTimeDisplay({\n player: { currentTime, duration },\n className\n}) {\n const remainingTime = duration - currentTime;\n const formattedTime = formatTime(remainingTime);\n return (\n <div\n className={classNames(\n 'video-react-new-remaining-time video-react-new-time-control video-react-new-control',\n className\n )}\n >\n <div className=\"video-react-new-remaining-time-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Remaining Time </span>\n {`-${formattedTime}`}\n </div>\n </div>\n );\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\n\nexport default RemainingTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction CurrentTimeDisplay({ player: { currentTime, duration }, className }) {\n const formattedTime = formatTime(currentTime, duration);\n return (\n <div\n className={classNames(\n 'video-react-new-current-time video-react-new-time-control video-react-new-control',\n className\n )}\n >\n <div className=\"video-react-new-current-time-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Current Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\n\nexport default CurrentTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction DurationDisplay({ player: { duration }, className }) {\n const formattedTime = formatTime(duration);\n return (\n <div\n className={classNames(\n className,\n 'video-react-new-duration video-react-new-time-control video-react-new-control'\n )}\n >\n <div className=\"video-react-new-duration-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Duration Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\n\nexport default DurationDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n separator: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default function TimeDivider({ separator, className }) {\n const separatorText = separator || '/';\n return (\n <div\n className={classNames(\n 'video-react-new-time-control video-react-new-time-divider',\n className\n )}\n dir=\"ltr\"\n >\n <div>\n <span>{separatorText}</span>\n </div>\n </div>\n );\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n tagName: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n tagName: 'div'\n};\n\nexport default class ClickableComponent extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeypress = this.handleKeypress.bind(this);\n }\n\n componentWillUnmount(e) {\n this.handleBlur(e);\n }\n\n handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n handleClick(event) {\n const { onClick } = this.props;\n onClick(event);\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n render() {\n const Tag = this.props.tagName;\n const props = { ...this.props };\n delete props.tagName;\n delete props.className;\n return (\n <Tag\n className={classNames(this.props.className)}\n role=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...props}\n />\n );\n }\n}\n\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n player: PropTypes.object,\n children: PropTypes.any\n};\n\nexport default class Popup extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n const { children } = this.props;\n return (\n <div className=\"video-react-new-menu\" onClick={this.handleClick}>\n <div className=\"video-react-new-menu-content\">{children}</div>\n </div>\n );\n }\n}\n\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ClickableComponent from '../ClickableComponent';\nimport Popup from './Popup';\n\nconst propTypes = {\n inline: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n inline: true\n};\n\nexport default function PopupButton(props) {\n const { inline, className } = props;\n const ps = { ...props };\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-new-menu-button-inline': !!inline,\n 'video-react-new-menu-button-popup': !inline\n },\n 'video-react-new-control video-react-new-button video-react-new-menu-button'\n )}\n {...ps}\n >\n <Popup {...props} />\n </ClickableComponent>\n );\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n percentage: PropTypes.string,\n vertical: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel({ percentage, vertical, className }) {\n const style = {};\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return (\n <div\n className={classNames(className, 'video-react-new-volume-level')}\n style={style}\n >\n <span className=\"video-react-new-control-text\" />\n </div>\n );\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nexport default VolumeLevel;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport VolumeLevel from './VolumeLevel';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nclass VolumeBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n percentage: '0%'\n };\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handlePercentageChange = this.handlePercentageChange.bind(this);\n this.checkMuted = this.checkMuted.bind(this);\n this.getPercent = this.getPercent.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n getPercent() {\n const { player } = this.props;\n if (player.muted) {\n return 0;\n }\n return player.volume;\n }\n\n checkMuted() {\n const { player, actions } = this.props;\n if (player.muted) {\n actions.mute(false);\n }\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n this.checkMuted();\n const distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n\n stepForward() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n\n stepBack() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n\n handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage\n });\n }\n }\n\n handleClick(event) {\n event.stopPropagation();\n }\n\n render() {\n const { player, className } = this.props;\n\n const volume = (player.volume * 100).toFixed(2);\n return (\n <Slider\n ref={(c) => {\n this.slider = c;\n }}\n label=\"volume level\"\n valuenow={volume}\n valuetext={`${volume}%`}\n onMouseMove={this.handleMouseMove}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n sliderActive={this.handleFocus}\n sliderInactive={this.handleBlur}\n getPercent={this.getPercent}\n onPercentageChange={this.handlePercentageChange}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n {...this.props}\n className={classNames(\n className,\n 'video-react-new-volume-bar video-react-new-slider-bar'\n )}\n >\n <VolumeLevel {...this.props} />\n </Slider>\n );\n }\n}\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\n\nexport default VolumeBar;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport PopupButton from '../popup/PopupButton';\nimport VolumeBar from '../volume-control/VolumeBar';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n vertical: PropTypes.bool,\n className: PropTypes.string,\n alwaysShowVolume: PropTypes.bool\n};\n\nconst defaultProps = {\n vertical: false\n};\n\nclass VolumeMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n get volumeLevel() {\n const {\n player: { volume, muted }\n } = this.props;\n let level = 3;\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n return level;\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.mute(!player.muted);\n }\n\n handleFocus() {\n this.setState({\n active: true\n });\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n }\n\n render() {\n const { vertical, player, className } = this.props;\n const inline = !vertical;\n const level = this.volumeLevel;\n return (\n <PopupButton\n className={classNames(\n className,\n {\n 'video-react-new-volume-menu-button-vertical': vertical,\n 'video-react-new-volume-menu-button-horizontal': !vertical,\n 'video-react-new-vol-muted': player.muted,\n 'video-react-new-vol-0': level === 0 && !player.muted,\n 'video-react-new-vol-1': level === 1,\n 'video-react-new-vol-2': level === 2,\n 'video-react-new-vol-3': level === 3,\n 'video-react-new-slider-active':\n this.props.alwaysShowVolume || this.state.active,\n 'video-react-new-lock-showing':\n this.props.alwaysShowVolume || this.state.active\n },\n 'video-react-new-volume-menu-button'\n )}\n onClick={this.handleClick}\n inline={inline}\n >\n <VolumeBar\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...this.props}\n />\n </PopupButton>\n );\n }\n}\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nexport default VolumeMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n children: PropTypes.any\n};\n\nexport default class Menu extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n return (\n <div\n className=\"video-react-new-menu video-react-new-lock-showing\"\n role=\"presentation\"\n onClick={this.handleClick}\n >\n <ul className=\"video-react-new-menu-content\">{this.props.children}</ul>\n </div>\n );\n }\n}\n\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n item: PropTypes.object,\n index: PropTypes.number,\n activateIndex: PropTypes.number,\n onSelectItem: PropTypes.func\n};\n\nexport default class MenuItem extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { index, onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n render() {\n const { item, index, activateIndex } = this.props;\n return (\n <li\n className={classNames({\n 'video-react-new-menu-item': true,\n 'video-react-new-selected': index === activateIndex\n })}\n role=\"menuitem\"\n onClick={this.handleClick}\n >\n {item.label}\n <span className=\"video-react-new-control-text\" />\n </li>\n );\n }\n}\n\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport ClickableComponent from '../ClickableComponent';\n\nconst propTypes = {\n inline: PropTypes.bool,\n items: PropTypes.array,\n className: PropTypes.string,\n onSelectItem: PropTypes.func,\n children: PropTypes.any,\n selectedIndex: PropTypes.number\n};\n\nexport default class MenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n\n this.commitSelection = this.commitSelection.bind(this);\n this.activateMenuItem = this.activateMenuItem.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.renderMenu = this.renderMenu.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleUpArrow = this.handleUpArrow.bind(this);\n this.handleDownArrow = this.handleDownArrow.bind(this);\n this.handleEscape = this.handleEscape.bind(this);\n this.handleReturn = this.handleReturn.bind(this);\n this.handleTab = this.handleTab.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleSelectItem = this.handleSelectItem.bind(this);\n this.handleIndexChange = this.handleIndexChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n\n commitSelection(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n\n activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n\n handleIndexChange(index) {\n const { onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n handleClick() {\n this.setState(prevState => ({\n active: !prevState.active\n }));\n }\n\n handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n\n handleUpArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex - 1;\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleDownArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex + 1;\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n\n handleReturn(e) {\n e.preventDefault();\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n\n handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n\n handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n\n handleSelectItem(i) {\n this.commitSelection(i);\n }\n\n renderMenu() {\n if (!this.state.active) {\n return null;\n }\n\n const { items } = this.props;\n return (\n <Menu>\n {items.map((item, i) => (\n <MenuItem\n item={item}\n index={i}\n onSelectItem={this.handleSelectItem}\n activateIndex={this.state.activateIndex}\n key={`item-${i++}`}\n />\n ))}\n </Menu>\n );\n }\n\n render() {\n const { inline, className } = this.props;\n\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-new-menu-button-inline': !!inline,\n 'video-react-new-menu-button-popup': !inline,\n 'video-react-new-menu-button-active': this.state.active\n },\n 'video-react-new-control video-react-new-button video-react-new-menu-button'\n )}\n role=\"button\"\n tabIndex=\"0\"\n ref={(c) => {\n this.menuButton = c;\n }}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n {this.props.children}\n {this.renderMenu()}\n </ClickableComponent>\n );\n }\n}\n\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport MenuButton from '../menu/MenuButton';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n rates: PropTypes.array,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nclass PlaybackRateMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleSelectItem = this.handleSelectItem.bind(this);\n }\n\n handleSelectItem(index) {\n const { rates, actions } = this.props;\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n\n render() {\n const { rates, player } = this.props;\n const items = rates.map(rate => ({\n label: `${rate}x`,\n value: rate\n }));\n const selectedIndex = rates.indexOf(player.playbackRate) || 0;\n\n return (\n <MenuButton\n className={classNames(\n 'video-react-new-playback-rate',\n this.props.className\n )}\n onSelectItem={this.handleSelectItem}\n items={items}\n selectedIndex={selectedIndex}\n >\n <span className=\"video-react-new-control-text\">Playback Rate</span>\n <div className=\"video-react-new-playback-rate-value\">\n {`${player.playbackRate.toFixed(2)}x`}\n </div>\n </MenuButton>\n );\n }\n}\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nexport default PlaybackRateMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport ProgressControl from './ProgressControl';\nimport PlayToggle from './PlayToggle';\nimport ForwardControl from './ForwardControl';\nimport ReplayControl from './ReplayControl';\nimport FullscreenToggle from './FullscreenToggle';\nimport RemainingTimeDisplay from '../time-controls/RemainingTimeDisplay';\nimport CurrentTimeDisplay from '../time-controls/CurrentTimeDisplay';\nimport DurationDisplay from '../time-controls/DurationDisplay';\nimport TimeDivider from '../time-controls/TimeDivider';\nimport VolumeMenuButton from './VolumeMenuButton';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { mergeAndSortChildren } from '../../utils';\n\nconst propTypes = {\n children: PropTypes.any,\n autoHide: PropTypes.bool,\n autoHideTime: PropTypes.number, // used in Player\n disableDefaultControls: PropTypes.bool,\n disableCompletely: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nexport default class ControlBar extends Component {\n constructor(props) {\n super(props);\n\n this.getDefaultChildren = this.getDefaultChildren.bind(this);\n this.getFullChildren = this.getFullChildren.bind(this);\n }\n\n getDefaultChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5.1} />,\n <TimeDivider key=\"time-divider\" order={5.2} />,\n <DurationDisplay key=\"duration-display\" order={5.3} />,\n <ProgressControl key=\"progress-control\" order={6} />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={8} />\n ];\n }\n\n getFullChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <ReplayControl key=\"replay-control\" order={2} />,\n <ForwardControl key=\"forward-control\" order={3} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5} />,\n <TimeDivider key=\"time-divider\" order={6} />,\n <DurationDisplay key=\"duration-display\" order={7} />,\n <ProgressControl key=\"progress-control\" order={8} />,\n <RemainingTimeDisplay key=\"remaining-time-display\" order={9} />,\n <PlaybackRateMenuButton\n rates={[1, 1.25, 1.5, 2]}\n key=\"playback-rate\"\n order={10}\n />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={11} />\n ];\n }\n\n getChildren() {\n const children = React.Children.toArray(this.props.children);\n const defaultChildren = this.props.disableDefaultControls\n ? []\n : this.getDefaultChildren();\n const { className, ...parentProps } = this.props; // remove className\n return mergeAndSortChildren(defaultChildren, children, parentProps);\n }\n\n render() {\n const { autoHide, className, disableCompletely } = this.props;\n const children = this.getChildren();\n\n return disableCompletely ? null : (\n <div\n className={classNames(\n 'video-react-new-control-bar',\n {\n 'video-react-new-control-bar-auto-hide': autoHide\n },\n className\n )}\n >\n {children}\n </div>\n );\n }\n}\n\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';\n","const USER_AGENT = typeof window !== 'undefined' && window.navigator\n ? window.navigator.userAgent\n : '';\n// const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPAD = /iPad/i.test(USER_AGENT);\n\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nexport const IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexport const IS_IPOD = /iPod/i.test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Manager from '../Manager';\n\nimport BigPlayButton from './BigPlayButton';\nimport LoadingSpinner from './LoadingSpinner';\nimport PosterImage from './PosterImage';\nimport Video from './Video';\nimport Bezel from './Bezel';\nimport Shortcut from './Shortcut';\nimport ControlBar from './control-bar/ControlBar';\n\nimport * as browser from '../utils/browser';\nimport { focusNode } from '../utils/dom';\nimport { mergeAndSortChildren, isVideoChild, throttle } from '../utils';\nimport fullscreen from '../utils/fullscreen';\n\nconst propTypes = {\n children: PropTypes.any,\n\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fluid: PropTypes.bool,\n muted: PropTypes.bool,\n playsInline: PropTypes.bool,\n aspectRatio: PropTypes.string,\n className: PropTypes.string,\n videoId: PropTypes.string,\n\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n autoPlay: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n\n store: PropTypes.object\n};\n\nconst defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nexport default class Player extends Component {\n constructor(props) {\n super(props);\n\n this.controlsHideTimer = null;\n\n this.video = null; // the Video component\n this.manager = new Manager(props.store);\n this.actions = this.manager.getActions();\n this.manager.subscribeToPlayerStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.getStyle = this.getStyle.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.getChildren = this.getChildren.bind(this);\n this.handleMouseMove = throttle(this.handleMouseMove.bind(this), 250);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.startControlsTimer = this.startControlsTimer.bind(this);\n this.handleFullScreenChange = this.handleFullScreenChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n fullscreen.addEventListener(this.handleFullScreenChange);\n }\n\n componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n fullscreen.removeEventListener(this.handleFullScreenChange);\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n\n getDefaultChildren(originalChildren) {\n return [\n <Video\n ref={c => {\n this.video = c;\n this.manager.video = this.video;\n }}\n key=\"video\"\n order={0.0}\n >\n {originalChildren}\n </Video>,\n <PosterImage key=\"poster-image\" order={1.0} />,\n <LoadingSpinner key=\"loading-spinner\" order={2.0} />,\n <Bezel key=\"bezel\" order={3.0} />,\n <BigPlayButton key=\"big-play-button\" order={4.0} />,\n <ControlBar key=\"control-bar\" order={5.0} />,\n <Shortcut key=\"shortcut\" order={99.0} />\n ];\n }\n\n getChildren(props) {\n const {\n className: _, // remove className\n children: originalChildren,\n ...propsWithoutChildren\n } = props;\n const children = React.Children.toArray(this.props.children).filter(\n e => !isVideoChild(e)\n );\n const defaultChildren = this.getDefaultChildren(originalChildren);\n return mergeAndSortChildren(\n defaultChildren,\n children,\n propsWithoutChildren\n );\n }\n\n setWidthOrHeight(style, name, value) {\n let styleVal;\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = `${value}px`;\n }\n Object.assign(style, {\n [name]: styleVal\n });\n }\n\n getStyle() {\n const {\n fluid,\n aspectRatio: propsAspectRatio,\n height: propsHeight,\n width: propsWidth\n } = this.props;\n const { player } = this.manager.getState();\n const style = {};\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = `${player.videoWidth}:${player.videoHeight}`;\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n const ratioParts = aspectRatio.split(':');\n const ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = `${ratioMultiplier * 100}%`;\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n }\n\n // get redux state\n // { player, operation }\n getState() {\n return this.manager.getState();\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n // play the video\n play() {\n this.video.play();\n }\n\n // pause the video\n pause() {\n this.video.pause();\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // seek video by time\n seek(time) {\n this.video.seek(time);\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.video.forward(seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.video.replay(seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n this.video.toggleFullscreen();\n }\n\n // subscribe to player state change\n subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n }\n\n // player resize\n handleResize() {}\n\n handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(fullscreen.isFullscreen);\n }\n }\n\n handleMouseDown() {\n this.startControlsTimer();\n }\n\n handleMouseMove() {\n this.startControlsTimer();\n }\n\n handleKeyDown() {\n this.startControlsTimer();\n }\n\n startControlsTimer() {\n let controlBarActiveTime = 3000;\n React.Children.forEach(this.props.children, element => {\n if (!React.isValidElement(element) || element.type !== ControlBar) {\n return;\n }\n\n const { autoHideTime } = element.props;\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(() => {\n this.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n\n handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize();\n // focus root when switching fullscreen mode to avoid confusion #276\n focusNode(this.manager.rootElement);\n }\n this.forceUpdate(); // re-render\n }\n\n handleFocus() {\n this.actions.activate(true);\n }\n\n handleBlur() {\n this.actions.activate(false);\n }\n\n render() {\n const { fluid } = this.props;\n const { player } = this.manager.getState();\n const {\n paused,\n hasStarted,\n waiting,\n seeking,\n isFullscreen,\n userActivity\n } = player;\n\n const props = {\n ...this.props,\n player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n };\n const children = this.getChildren(props);\n\n return (\n <div\n className={classNames(\n {\n 'video-react-new-controls-enabled': true,\n 'video-react-new-has-started': hasStarted,\n 'video-react-new-paused': paused,\n 'video-react-new-playing': !paused,\n 'video-react-new-waiting': waiting,\n 'video-react-new-seeking': seeking,\n 'video-react-new-fluid': fluid,\n 'video-react-new-fullscreen': isFullscreen,\n 'video-react-new-user-inactive': !userActivity,\n 'video-react-new-user-active': userActivity,\n 'video-react-new-workinghover': !browser.IS_IOS\n },\n 'video-react-new',\n this.props.className\n )}\n style={this.getStyle()}\n ref={c => {\n this.manager.rootElement = c;\n }}\n role=\"region\"\n onTouchStart={this.handleMouseDown}\n onMouseDown={this.handleMouseDown}\n onTouchMove={this.handleMouseMove}\n onMouseMove={this.handleMouseMove}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n tabIndex=\"-1\"\n >\n {children}\n </div>\n );\n }\n}\n\nPlayer.contextTypes = { store: PropTypes.object };\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';\n","import React, { Component } from 'react';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { deprecatedWarning } from '../../utils';\n\nexport default class PlaybackRate extends Component {\n constructor(props, context) {\n super(props, context);\n\n deprecatedWarning('PlaybackRate', 'PlaybackRateMenuButton');\n }\n\n render() {\n return <PlaybackRateMenuButton {...this.props} />;\n }\n}\n\nPlaybackRate.displayName = 'PlaybackRate';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport MenuButton from '../menu/MenuButton';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string,\n offMenuText: PropTypes.string,\n showOffMenu: PropTypes.bool,\n kinds: PropTypes.array\n};\n\nconst defaultProps = {\n offMenuText: 'Off',\n showOffMenu: true,\n kinds: ['captions', 'subtitles'] // `kind`s of TextTrack to look for to associate it with this menu.\n};\n\nclass ClosedCaptionButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.getTextTrackItems = this.getTextTrackItems.bind(this);\n this.updateState = this.updateState.bind(this);\n this.handleSelectItem = this.handleSelectItem.bind(this);\n\n this.state = this.getTextTrackItems();\n }\n\n componentDidUpdate() {\n this.updateState();\n }\n\n getTextTrackItems() {\n const {\n kinds, player, offMenuText, showOffMenu\n } = this.props;\n const { textTracks, activeTextTrack } = player;\n const textTrackItems = {\n items: [],\n selectedIndex: 0\n };\n const tracks = Array.from(textTracks || []);\n\n if (tracks.length === 0) {\n return textTrackItems;\n }\n\n if (showOffMenu) {\n textTrackItems.items.push({\n label: offMenuText || 'Off',\n value: null\n });\n }\n\n tracks.forEach((textTrack) => {\n // ignore invalid text track kind\n if (kinds.length && !kinds.includes(textTrack.kind)) {\n return;\n }\n\n textTrackItems.items.push({\n label: textTrack.label,\n value: textTrack.language\n });\n });\n\n textTrackItems.selectedIndex = textTrackItems.items.findIndex(\n item => activeTextTrack && activeTextTrack.language === item.value\n );\n\n if (textTrackItems.selectedIndex === -1) {\n textTrackItems.selectedIndex = 0;\n }\n\n return textTrackItems;\n }\n\n updateState() {\n const textTrackItems = this.getTextTrackItems();\n if (\n textTrackItems.selectedIndex !== this.state.selectedIndex\n || !this.textTrackItemsAreEqual(textTrackItems.items, this.state.items)\n ) {\n this.setState(textTrackItems);\n }\n }\n\n textTrackItemsAreEqual(items1, items2) {\n if (items1.length !== items2.length) {\n return false;\n }\n\n for (let i = 0; i < items1.length; i++) {\n if (\n !items2[i]\n || items1[i].label !== items2[i].label\n || items1[i].value !== items2[i].value\n ) {\n return false;\n }\n }\n\n return true;\n }\n\n handleSelectItem(index) {\n const { player, actions, showOffMenu } = this.props;\n const { textTracks } = player;\n\n // For the 'subtitles-off' button, the first condition will never match\n // so all subtitles will be turned off\n Array.from(textTracks).forEach((textTrack, i) => {\n // if it shows the `Off` menu, the first item is `Off`\n if (index === (showOffMenu ? i + 1 : i)) {\n textTrack.mode = 'showing';\n actions.activateTextTrack(textTrack);\n } else {\n textTrack.mode = 'hidden';\n }\n });\n }\n\n render() {\n const { items, selectedIndex } = this.state;\n\n return (\n <MenuButton\n className={classNames(\n 'video-react-new-closed-caption',\n this.props.className\n )}\n onSelectItem={this.handleSelectItem}\n items={items}\n selectedIndex={selectedIndex}\n >\n <span className=\"video-react-new-control-text\">Closed Caption</span>\n </MenuButton>\n );\n }\n}\n\nClosedCaptionButton.propTypes = propTypes;\nClosedCaptionButton.defaultProps = defaultProps;\nClosedCaptionButton.displayName = 'ClosedCaptionButton';\nexport default ClosedCaptionButton;\n"],"names":["Object","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","a","u","$$typeof","type","v","module","require$$0","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","keys","err","target","source","from","to","symbols","s","arguments","length","key","call","ReactPropTypesSecret","has","Function","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","isRequired","getShim","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","hasOwn","classNames","classes","arg","argType","push","Array","isArray","inner","apply","default","window","symbolObservablePonyfill","root","result","observable","self","global","ponyfill","randomString","Math","random","toString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","obj","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","slice","getState","subscribe","listener","isSubscribed","unsubscribe","index","indexOf","splice","dispatch","action","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","$$observable","LOAD_START","CAN_PLAY","WAITING","CAN_PLAY_THROUGH","PLAYING","PLAY","PAUSE","END","SEEKING","SEEKED","SEEKING_TIME","END_SEEKING","DURATION_CHANGE","TIME_UPDATE","VOLUME_CHANGE","PROGRESS_CHANGE","RATE_CHANGE","SUSPEND","ABORT","EMPTIED","STALLED","LOADED_META_DATA","LOADED_DATA","RESIZE","ERROR","ACTIVATE_TEXT_TRACK","handleLoadStart","videoProps","handleCanPlay","handleWaiting","handleCanPlayThrough","handlePlaying","handlePlay","handlePause","handleEnd","handleSeeking","handleSeeked","handleDurationChange","handleTimeUpdate","handleVolumeChange","handleProgressChange","handleRateChange","handleSuspend","handleAbort","handleEmptied","handleStalled","handleLoadedMetaData","handleLoadedData","handleResize","handleError","handleSeekingTime","time","handleEndSeeking","activateTextTrack","textTrack","Fullscreen","request","elm","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","document","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","addEventListener","handler","removeEventListener","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","OPERATE","FULLSCREEN_CHANGE","PLAYER_ACTIVATE","USER_ACTIVATE","handleFullscreenChange","isFullscreen","activate","activity","userActivate","play","operation","video","pause","togglePlay","seek","forward","seconds","replay","changeRate","rate","playbackRate","changeVolume","volume","mute","muted","toggleFullscreen","player","fullscreen","enabled","rootElement","initialState","currentSrc","duration","currentTime","seekingTime","buffered","waiting","seeking","paused","autoPaused","ended","readyState","networkState","videoWidth","videoHeight","hasStarted","userActivity","isActive","activeTextTrack","state","error","count","playerReducer","operationReducer","Manager","store","getActions","manager","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","subscribeToStateChange","prevState","handleChange","prevStateCopy","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","floor","gm","gh","Infinity","isVideoChild","find","elements","isTypeEqual","component1","component2","type1","type2","mergeAndSortChildren","defaultChildren","_children","_parentProps","defaultOrder","children","Children","toArray","order","parentProps","disabled","concat","component","defaultComponent","cloneElement","sort","deprecatedWarning","oldMethodCall","newMethodCall","console","warn","throttle","callback","limit","wait","setTimeout","mediaProperties","startTime","loop","autoPlay","playsInline","src","preload","crossOrigin","onLoadStart","onWaiting","onCanPlay","onCanPlayThrough","onPlaying","onEnded","onSeeking","onSeeked","onPlay","onPause","onProgress","onDurationChange","onError","onSuspend","onAbort","onEmptied","onStalled","onLoadedMetadata","onLoadedData","onTimeUpdate","onRateChange","onVolumeChange","onResize","Video","getProperties","renderChildren","handleEnded","handleProgress","handleKeypress","handleTextTrackChange","forceUpdate","textTracks","onaddtrack","onremovetrack","properties","mode","promise","catch","then","load","addTextTrack","canPlayType","cprops","preOnError","videoId","Bezel","timer","handleStateChange","hidden","clearTimeout","setState","style","display","findElPosition","el","box","getBoundingClientRect","parentNode","left","top","body","docEl","documentElement","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","round","getPointerPosition","event","boxW","offsetWidth","boxH","offsetHeight","boxY","boxX","evtPageY","pageY","evtPageX","pageX","changedTouches","y","max","min","x","focusNode","reactNode","focus","hasClass","cls","toLowerCase","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","keyCode","handle","shift","mergeShortcuts","handleKeyPress","handleDoubleClick","componentDidUpdate","prevProps","componentWillUnmount","getShortcutKey","ctrl","alt","shortcut","mergedShortcuts","gradeShortcut","score","ps","activeElement","which","ctrlKey","metaKey","shiftKey","altKey","preventDefault","canBeClicked","nodeName","onMouseDown","onMouseMove","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","onFocus","onBlur","onClick","getPercent","vertical","label","valuenow","valuetext","Slider","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","calculateDistance","getProgress","active","progress","stopPropagation","slider","Dom","percentage","toFixed","child","PlayProgressBar","width","LoadProgressBar","bufferedEnd","end","percentify","percent","parts","start","part","MouseTimeDisplay","mouseTime","text","SeekBar","getNewTime","distance","newTime","input","ProgressControl","handleMouseMoveThrottle","seekBar","PlayToggle","controlText","button","ForwardReplayControl","ForwardControl","ReplayControl","FullscreenToggle","RemainingTimeDisplay","remainingTime","formattedTime","CurrentTimeDisplay","DurationDisplay","separator","TimeDivider","separatorText","tagName","ClickableComponent","Tag","Popup","inline","PopupButton","VolumeLevel","height","VolumeBar","handlePercentageChange","checkMuted","alwaysShowVolume","VolumeMenuButton","level","volumeLevel","Menu","item","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","USER_AGENT","navigator","userAgent","IS_IPAD","test","IS_IPHONE","IS_IPOD","IS_IOS","fluid","aspectRatio","Player","controlsHideTimer","getStyle","startControlsTimer","handleFullScreenChange","handleKeyDown","originalChildren","_","propsWithoutChildren","setWidthOrHeight","styleVal","match","propsAspectRatio","propsHeight","propsWidth","ratioParts","ratioMultiplier","paddingTop","controlBarActiveTime","isValidElement","browser","contextTypes","PlaybackRate","offMenuText","showOffMenu","kinds","ClosedCaptionButton","getTextTrackItems","updateState","textTrackItems","tracks","includes","kind","language","findIndex","textTrackItemsAreEqual","items1","items2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"video-react-new.full.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/classnames/index.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.js","../src/actions/video.js","../src/utils/fullscreen.js","../src/actions/player.js","../src/reducers/player.js","../src/reducers/operation.js","../src/reducers/index.js","../src/Manager.js","../src/components/BigPlayButton.js","../src/components/LoadingSpinner.js","../src/components/PosterImage.js","../src/utils/index.js","../src/components/Video.js","../src/components/Bezel.js","../src/utils/dom.js","../src/components/Shortcut.js","../src/components/Slider.js","../src/components/control-bar/PlayProgressBar.js","../src/components/control-bar/LoadProgressBar.js","../src/components/control-bar/MouseTimeDisplay.js","../src/components/control-bar/SeekBar.js","../src/components/control-bar/ProgressControl.js","../src/components/control-bar/PlayToggle.js","../src/components/control-bar/ForwardReplayControl.js","../src/components/control-bar/ForwardControl.js","../src/components/control-bar/ReplayControl.js","../src/components/control-bar/FullscreenToggle.js","../src/components/time-controls/RemainingTimeDisplay.js","../src/components/time-controls/CurrentTimeDisplay.js","../src/components/time-controls/DurationDisplay.js","../src/components/time-controls/TimeDivider.js","../src/components/ClickableComponent.js","../src/components/popup/Popup.js","../src/components/popup/PopupButton.js","../src/components/volume-control/VolumeLevel.js","../src/components/volume-control/VolumeBar.js","../src/components/control-bar/VolumeMenuButton.js","../src/components/menu/Menu.js","../src/components/menu/MenuItem.js","../src/components/menu/MenuButton.js","../src/components/control-bar/PlaybackRateMenuButton.js","../src/components/control-bar/ControlBar.js","../src/utils/browser.js","../src/components/Player.js","../src/components/control-bar/PlaybackRate.js","../src/components/control-bar/ClosedCaptionButton.js"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers);\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(\"Dispatching while constructing your middleware is not allowed. \" + \"Other middleware would not be applied to this dispatch.\");\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose, ActionTypes as __DO_NOT_USE__ActionTypes };\n","export const LOAD_START = 'video-react-new/LOAD_START';\nexport const CAN_PLAY = 'video-react-new/CAN_PLAY';\nexport const WAITING = 'video-react-new/WAITING';\nexport const CAN_PLAY_THROUGH = 'video-react-new/CAN_PLAY_THROUGH';\nexport const PLAYING = 'video-react-new/PLAYING';\nexport const PLAY = 'video-react-new/PLAY';\nexport const PAUSE = 'video-react-new/PAUSE';\nexport const END = 'video-react-new/END';\nexport const SEEKING = 'video-react-new/SEEKING';\nexport const SEEKED = 'video-react-new/SEEKED';\nexport const SEEKING_TIME = 'video-react-new/SEEKING_TIME';\nexport const END_SEEKING = 'video-react-new/END_SEEKING';\nexport const DURATION_CHANGE = 'video-react-new/DURATION_CHANGE';\nexport const TIME_UPDATE = 'video-react-new/TIME_UPDATE';\nexport const VOLUME_CHANGE = 'video-react-new/VOLUME_CHANGE';\nexport const PROGRESS_CHANGE = 'video-react-new/PROGRESS_CHANGE';\nexport const RATE_CHANGE = 'video-react-new/RATE_CHANGE';\nexport const SUSPEND = 'video-react-new/SUSPEND';\nexport const ABORT = 'video-react-new/ABORT';\nexport const EMPTIED = 'video-react-new/EMPTIED';\nexport const STALLED = 'video-react-new/STALLED';\nexport const LOADED_META_DATA = 'video-react-new/LOADED_META_DATA';\nexport const LOADED_DATA = 'video-react-new/LOADED_DATA';\nexport const RESIZE = 'video-react-new/RESIZE';\nexport const ERROR = 'video-react-new/ERROR';\nexport const ACTIVATE_TEXT_TRACK = 'video-react-new/ACTIVATE_TEXT_TRACK';\n\nexport function handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps\n };\n}\n\nexport function handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps\n };\n}\n\nexport function handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps\n };\n}\n\nexport function handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps\n };\n}\n\nexport function handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps\n };\n}\n\nexport function handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps\n };\n}\n\nexport function handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps\n };\n}\n\nexport function handleEnd(videoProps) {\n return {\n type: END,\n videoProps\n };\n}\n\nexport function handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps\n };\n}\n\nexport function handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps\n };\n}\n\nexport function handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps\n };\n}\n\nexport function handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps\n };\n}\n\nexport function handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps\n };\n}\n\nexport function handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps\n };\n}\n\nexport function handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps\n };\n}\n\nexport function handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps\n };\n}\n\nexport function handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps\n };\n}\n\nexport function handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps\n };\n}\n\nexport function handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps\n };\n}\n\nexport function handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps\n };\n}\n\nexport function handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps\n };\n}\n\nexport function handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps\n };\n}\n\nexport function handleError(videoProps) {\n return {\n type: ERROR,\n videoProps\n };\n}\n\nexport function handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time\n };\n}\n\nexport function handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time\n };\n}\n\nexport function activateTextTrack(textTrack) {\n return {\n type: ACTIVATE_TEXT_TRACK,\n textTrack\n };\n}\n","class Fullscreen {\n request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n\n exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n\n get isFullscreen() {\n return (\n document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement\n || document.msFullscreenElement\n );\n }\n\n get enabled() {\n return (\n document.fullscreenEnabled\n || document.webkitFullscreenEnabled\n || document.mozFullScreenEnabled\n || document.msFullscreenEnabled\n );\n }\n\n addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n\n removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n}\n\nexport default new Fullscreen();\n","import fullscreen from '../utils/fullscreen';\n\nexport const OPERATE = 'video-react-new/OPERATE';\nexport const FULLSCREEN_CHANGE = 'video-react-new/FULLSCREEN_CHANGE';\nexport const PLAYER_ACTIVATE = 'video-react-new/PLAYER_ACTIVATE';\nexport const USER_ACTIVATE = 'video-react-new/USER_ACTIVATE';\n\nexport function handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen\n };\n}\n\nexport function activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity\n };\n}\n\nexport function userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity\n };\n}\n\nexport function play(\n operation = {\n action: 'play',\n source: ''\n }\n) {\n this.video.play();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function pause(\n operation = {\n action: 'pause',\n source: ''\n }\n) {\n this.video.pause();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function togglePlay(\n operation = {\n action: 'toggle-play',\n source: ''\n }\n) {\n this.video.togglePlay();\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// seek video by time\nexport function seek(\n time,\n operation = {\n action: 'seek',\n source: ''\n }\n) {\n this.video.seek(time);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump forward x seconds\nexport function forward(\n seconds,\n operation = {\n action: `forward-${seconds}`,\n source: ''\n }\n) {\n this.video.forward(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\n// jump back x seconds\nexport function replay(\n seconds,\n operation = {\n action: `replay-${seconds}`,\n source: ''\n }\n) {\n this.video.replay(seconds);\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeRate(\n rate,\n operation = {\n action: 'change-rate',\n source: ''\n }\n) {\n this.video.playbackRate = rate;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function changeVolume(\n volume,\n operation = {\n action: 'change-volume',\n source: ''\n }\n) {\n let v = volume;\n if (volume < 0) {\n v = 0;\n }\n if (volume > 1) {\n v = 1;\n }\n this.video.volume = v;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function mute(\n muted,\n operation = {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n }\n) {\n this.video.muted = muted;\n\n return {\n type: OPERATE,\n operation\n };\n}\n\nexport function toggleFullscreen(player) {\n if (fullscreen.enabled) {\n if (fullscreen.isFullscreen) {\n fullscreen.exit();\n } else {\n fullscreen.request(this.rootElement);\n }\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}\n","import {\n LOAD_START,\n CAN_PLAY,\n WAITING,\n CAN_PLAY_THROUGH,\n PLAYING,\n PLAY,\n PAUSE,\n END,\n SEEKING,\n SEEKED,\n SEEKING_TIME,\n END_SEEKING,\n DURATION_CHANGE,\n TIME_UPDATE,\n VOLUME_CHANGE,\n PROGRESS_CHANGE,\n RATE_CHANGE,\n SUSPEND,\n ABORT,\n EMPTIED,\n STALLED,\n LOADED_META_DATA,\n LOADED_DATA,\n ACTIVATE_TEXT_TRACK,\n RESIZE,\n ERROR\n} from '../actions/video';\nimport {\n FULLSCREEN_CHANGE,\n PLAYER_ACTIVATE,\n USER_ACTIVATE\n} from '../actions/player';\n\nconst initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false,\n activeTextTrack: null\n};\n\nexport default function player(state = initialState, action) {\n switch (action.type) {\n case USER_ACTIVATE:\n return {\n ...state,\n userActivity: action.activity\n };\n case PLAYER_ACTIVATE:\n return {\n ...state,\n isActive: action.activity\n };\n case FULLSCREEN_CHANGE:\n return {\n ...state,\n isFullscreen: !!action.isFullscreen\n };\n case SEEKING_TIME:\n return {\n ...state,\n seekingTime: action.time\n };\n case END_SEEKING:\n return {\n ...state,\n seekingTime: 0\n };\n case LOAD_START:\n return {\n ...state,\n ...action.videoProps,\n hasStarted: false,\n ended: false\n };\n case CAN_PLAY:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case WAITING:\n return {\n ...state,\n ...action.videoProps,\n waiting: true\n };\n case CAN_PLAY_THROUGH:\n case PLAYING:\n return {\n ...state,\n ...action.videoProps,\n waiting: false\n };\n case PLAY:\n return {\n ...state,\n ...action.videoProps,\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n };\n case PAUSE:\n return {\n ...state,\n ...action.videoProps,\n paused: true\n };\n case END:\n return {\n ...state,\n ...action.videoProps,\n ended: true\n };\n case SEEKING:\n return {\n ...state,\n ...action.videoProps,\n seeking: true\n };\n case SEEKED:\n return {\n ...state,\n ...action.videoProps,\n seeking: false\n };\n case ERROR:\n return {\n ...state,\n ...action.videoProps,\n error: 'UNKNOWN ERROR',\n ended: true\n };\n case DURATION_CHANGE:\n case TIME_UPDATE:\n case VOLUME_CHANGE:\n case PROGRESS_CHANGE:\n case RATE_CHANGE:\n case SUSPEND:\n case ABORT:\n case EMPTIED:\n case STALLED:\n case LOADED_META_DATA:\n case LOADED_DATA:\n case RESIZE:\n return {\n ...state,\n ...action.videoProps\n };\n case ACTIVATE_TEXT_TRACK:\n return {\n ...state,\n activeTextTrack: action.textTrack\n };\n default:\n return state;\n }\n}\n","import { OPERATE } from '../actions/player';\n\nconst initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nexport default function operation(state = initialState, action) {\n switch (action.type) {\n case OPERATE:\n return {\n ...state,\n count: state.count + 1,\n operation: {\n ...state.operation,\n ...action.operation\n }\n };\n default:\n return state;\n }\n}\n","import player from './player';\nimport operation from './operation';\n\nexport default function (state = {}, action) {\n return {\n player: player(state.player, action),\n operation: operation(state.operation, action)\n };\n}\n\nexport const playerReducer = player;\nexport const operationReducer = operation;\n","import { createStore } from 'redux';\nimport reducer from './reducers';\nimport * as playerActions from './actions/player';\nimport * as videoActions from './actions/video';\n\nexport default class Manager {\n constructor(store) {\n this.store = store || createStore(reducer);\n\n this.video = null;\n this.rootElement = null;\n }\n\n getActions() {\n const manager = this;\n const { dispatch } = this.store;\n const actions = {\n ...playerActions,\n ...videoActions\n };\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n const action = actionCreator.apply(manager, arguments);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions)\n .filter(key => typeof actions[key] === 'function')\n .reduce((boundActions, key) => {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n\n getState() {\n return this.store.getState();\n }\n\n // subscribe state change\n subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n let prevState = getState();\n\n const handleChange = () => {\n const state = getState();\n if (state === prevState) {\n return;\n }\n const prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n }\n\n // subscribe to operation state change\n subscribeToOperationStateChange(listener) {\n return this.subscribeToStateChange(\n listener,\n () => this.getState().operation\n );\n }\n\n // subscribe to player state change\n subscribeToPlayerStateChange(listener) {\n return this.subscribeToStateChange(listener, () => this.getState().player);\n }\n}\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n position: PropTypes.string,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n position: 'left'\n};\n\nexport default class BigPlayButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n handleClick() {\n const { actions } = this.props;\n actions.play();\n }\n\n render() {\n const { player, position } = this.props;\n return (\n <button\n className={classNames(\n 'video-react-new-button',\n 'video-react-new-big-play-button',\n `video-react-new-big-play-button-${position}`,\n this.props.className,\n {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }\n )}\n type=\"button\"\n aria-live=\"polite\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">Play Video</span>\n </button>\n );\n }\n}\n\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default function LoadingSpinner({ player, className }) {\n if (player.error) {\n return null;\n }\n return (\n <div className={classNames('video-react-new-loading-spinner', className)} />\n );\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n poster: PropTypes.string,\n player: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction PosterImage({\n poster, player, actions, className\n}) {\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return (\n <div\n className={classNames('video-react-new-poster', className)}\n style={{\n backgroundImage: `url(\"${poster}\")`\n }}\n onClick={() => {\n if (player.paused) {\n actions.play();\n }\n }}\n />\n );\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\n\nexport default PosterImage;\n","import React from 'react';\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nconst isNaN = Number.isNaN || (value => value !== value);\n\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nexport function formatTime(seconds = 0, guide = seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor((seconds / 60) % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor((guide / 60) % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? `${h}:` : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = `${(h || gm >= 10) && m < 10 ? `0${m}` : m}:`;\n\n // Check if leading zero is need for seconds\n s = s < 10 ? `0${s}` : s;\n\n return h + m + s;\n}\n\n// Check if the element belongs to a video element\n// only accept <source />, <track />,\n// <MyComponent isVideoChild />\n// elements\nexport function isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n return c.type === 'source' || c.type === 'track';\n}\n\nconst find = (elements, func) => elements.filter(func)[0];\n\n// check if two components are the same type\nconst isTypeEqual = (component1, component2) => {\n const type1 = component1.type;\n const type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n};\n\n// merge default children\n// sort them by `order` property\n// filter them by `disabled` property\nexport function mergeAndSortChildren(\n defaultChildren,\n _children,\n _parentProps,\n defaultOrder = 1\n) {\n const children = React.Children.toArray(_children);\n const { order, ...parentProps } = _parentProps; // ignore order from parent\n return children\n .filter(e => !e.props.disabled) // filter the disabled components\n .concat(\n defaultChildren.filter(\n c => !find(children, component => isTypeEqual(component, c))\n )\n )\n .map((element) => {\n const defaultComponent = find(defaultChildren, c => isTypeEqual(c, element));\n\n const defaultProps = defaultComponent ? defaultComponent.props : {};\n const props = {\n ...parentProps, // inherit from parent component\n ...defaultProps, // inherit from default component\n ...element.props // element's own props\n };\n const e = React.cloneElement(element, props, element.props.children);\n return e;\n })\n .sort(\n (a, b) => (a.props.order || defaultOrder) - (b.props.order || defaultOrder)\n );\n}\n\n/**\n * Temporary utility for generating the warnings\n */\nexport function deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\n `WARNING: ${oldMethodCall} will be deprecated soon! Please use ${newMethodCall} instead.`\n );\n}\n\nexport function throttle(callback, limit) {\n let wait = false;\n return () => {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback(...arguments);\n wait = true;\n setTimeout(() => {\n wait = false;\n }, limit);\n }\n };\n}\n\nexport const mediaProperties = [\n 'error',\n 'src',\n 'srcObject',\n 'currentSrc',\n 'crossOrigin',\n 'networkState',\n 'preload',\n 'buffered',\n 'readyState',\n 'seeking',\n 'currentTime',\n 'duration',\n 'paused',\n 'defaultPlaybackRate',\n 'playbackRate',\n 'played',\n 'seekable',\n 'ended',\n 'autoplay',\n 'loop',\n 'mediaGroup',\n 'controller',\n 'controls',\n 'volume',\n 'muted',\n 'defaultMuted',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster'\n];\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport { isVideoChild, mediaProperties, throttle } from '../utils';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n children: PropTypes.any,\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n muted: PropTypes.bool,\n autoPlay: PropTypes.bool,\n playsInline: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n className: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n crossOrigin: PropTypes.string,\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n onResize: PropTypes.func\n};\n\nexport default class Video extends Component {\n constructor(props) {\n super(props);\n\n this.video = null; // the html5 video\n this.play = this.play.bind(this);\n this.pause = this.pause.bind(this);\n this.seek = this.seek.bind(this);\n this.forward = this.forward.bind(this);\n this.replay = this.replay.bind(this);\n this.toggleFullscreen = this.toggleFullscreen.bind(this);\n this.getProperties = this.getProperties.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n this.handleLoadStart = this.handleLoadStart.bind(this);\n this.handleCanPlay = this.handleCanPlay.bind(this);\n this.handleCanPlayThrough = this.handleCanPlayThrough.bind(this);\n this.handlePlay = this.handlePlay.bind(this);\n this.handlePlaying = this.handlePlaying.bind(this);\n this.handlePause = this.handlePause.bind(this);\n this.handleEnded = this.handleEnded.bind(this);\n this.handleWaiting = this.handleWaiting.bind(this);\n this.handleSeeking = this.handleSeeking.bind(this);\n this.handleSeeked = this.handleSeeked.bind(this);\n this.handleFullscreenChange = this.handleFullscreenChange.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleSuspend = this.handleSuspend.bind(this);\n this.handleAbort = this.handleAbort.bind(this);\n this.handleEmptied = this.handleEmptied.bind(this);\n this.handleStalled = this.handleStalled.bind(this);\n this.handleLoadedMetaData = this.handleLoadedMetaData.bind(this);\n this.handleLoadedData = this.handleLoadedData.bind(this);\n this.handleTimeUpdate = this.handleTimeUpdate.bind(this);\n this.handleRateChange = this.handleRateChange.bind(this);\n this.handleVolumeChange = this.handleVolumeChange.bind(this);\n this.handleDurationChange = this.handleDurationChange.bind(this);\n this.handleProgress = throttle(this.handleProgress.bind(this), 250);\n this.handleKeypress = this.handleKeypress.bind(this);\n this.handleTextTrackChange = this.handleTextTrackChange.bind(this);\n }\n\n componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n if (this.video && this.video.textTracks) {\n this.video.textTracks.onaddtrack = this.handleTextTrackChange;\n this.video.textTracks.onremovetrack = this.handleTextTrackChange;\n }\n }\n\n // get all video properties\n getProperties() {\n if (!this.video) {\n return null;\n }\n\n return mediaProperties.reduce((properties, key) => {\n properties[key] = this.video[key];\n return properties;\n }, {});\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n if (val > 1) {\n val = 1;\n }\n if (val < 0) {\n val = 0;\n }\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n handleTextTrackChange() {\n const { actions, player } = this.props;\n if (this.video && this.video.textTracks) {\n const activeTextTrack = Array.from(this.video.textTracks).find(\n textTrack => textTrack.mode === 'showing'\n );\n if (activeTextTrack !== player.activeTextTrack) {\n actions.activateTextTrack(activeTextTrack);\n }\n }\n }\n\n // play the video\n play() {\n const promise = this.video.play();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // pause the video\n pause() {\n const promise = this.video.pause();\n if (promise !== undefined) {\n promise.catch(() => {}).then(() => {});\n }\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // toggle play\n togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n\n // seek video by time\n seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {\n // console.log(e, 'Video is not ready.')\n }\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.forward(-seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n // Fired when the user agent\n // begins looking for media data\n handleLoadStart(...args) {\n const { actions, onLoadStart } = this.props;\n actions.handleLoadStart(this.getProperties());\n if (onLoadStart) {\n onLoadStart(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlay(...args) {\n const { actions, onCanPlay } = this.props;\n\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handleCanPlayThrough(...args) {\n const { actions, onCanPlayThrough } = this.props;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough(...args);\n }\n }\n\n // A handler for events that\n // signal that waiting has ended\n handlePlaying(...args) {\n const { actions, onPlaying } = this.props;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying(...args);\n }\n }\n\n // Fired whenever the media has been started\n handlePlay(...args) {\n const { actions, onPlay } = this.props;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay(...args);\n }\n }\n\n // Fired whenever the media has been paused\n handlePause(...args) {\n const { actions, onPause } = this.props;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause(...args);\n }\n }\n\n // Fired when the duration of\n // the media resource is first known or changed\n handleDurationChange(...args) {\n const { actions, onDurationChange } = this.props;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange(...args);\n }\n }\n\n // Fired while the user agent\n // is downloading media data\n handleProgress(...args) {\n const { actions, onProgress } = this.props;\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress(...args);\n }\n }\n\n // Fired when the end of the media resource\n // is reached (currentTime == duration)\n handleEnded(...args) {\n const {\n loop, player, actions, onEnded\n } = this.props;\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded(...args);\n }\n }\n\n // Fired whenever the media begins waiting\n handleWaiting(...args) {\n const { actions, onWaiting } = this.props;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting(...args);\n }\n }\n\n // Fired whenever the player\n // is jumping to a new time\n handleSeeking(...args) {\n const { actions, onSeeking } = this.props;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking(...args);\n }\n }\n\n // Fired when the player has\n // finished jumping to a new time\n handleSeeked(...args) {\n const { actions, onSeeked } = this.props;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked(...args);\n }\n }\n\n // Handle Fullscreen Change\n handleFullscreenChange() {}\n\n // Fires when the browser is\n // intentionally not getting media data\n handleSuspend(...args) {\n const { actions, onSuspend } = this.props;\n actions.handleSuspend(this.getProperties());\n if (onSuspend) {\n onSuspend(...args);\n }\n }\n\n // Fires when the loading of an audio/video is aborted\n handleAbort(...args) {\n const { actions, onAbort } = this.props;\n actions.handleAbort(this.getProperties());\n if (onAbort) {\n onAbort(...args);\n }\n }\n\n // Fires when the current playlist is empty\n handleEmptied(...args) {\n const { actions, onEmptied } = this.props;\n actions.handleEmptied(this.getProperties());\n if (onEmptied) {\n onEmptied(...args);\n }\n }\n\n // Fires when the browser is trying to\n // get media data, but data is not available\n handleStalled(...args) {\n const { actions, onStalled } = this.props;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled(...args);\n }\n }\n\n // Fires when the browser has loaded\n // meta data for the audio/video\n handleLoadedMetaData(...args) {\n const { actions, onLoadedMetadata, startTime } = this.props;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata(...args);\n }\n }\n\n // Fires when the browser has loaded\n // the current frame of the audio/video\n handleLoadedData(...args) {\n const { actions, onLoadedData } = this.props;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData(...args);\n }\n }\n\n // Fires when the current\n // playback position has changed\n handleTimeUpdate(...args) {\n const { actions, onTimeUpdate } = this.props;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate(...args);\n }\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n handleRateChange(...args) {\n const { actions, onRateChange } = this.props;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange(...args);\n }\n }\n\n // Fires when the volume has been changed\n handleVolumeChange(...args) {\n const { actions, onVolumeChange } = this.props;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange(...args);\n }\n }\n\n // Fires when an error occurred\n // during the loading of an audio/video\n handleError(...args) {\n const { actions, onError } = this.props;\n actions.handleError(this.getProperties());\n if (onError) {\n onError(...args);\n }\n }\n\n handleResize(...args) {\n const { actions, onResize } = this.props;\n actions.handleResize(this.getProperties());\n if (onResize) {\n onResize(...args);\n }\n }\n\n handleKeypress() {}\n\n renderChildren() {\n const props = {\n ...this.props,\n video: this.video\n };\n\n // to make sure the children can get video property\n if (!this.video) {\n return null;\n }\n\n // only keep <source />, <track />, <MyComponent isVideoChild /> elements\n return React.Children.toArray(this.props.children)\n .filter(isVideoChild)\n .map((c) => {\n let cprops;\n if (typeof c.type === 'string') {\n // add onError to <source />\n if (c.type === 'source') {\n cprops = { ...c.props };\n const preOnError = cprops.onError;\n cprops.onError = (...args) => {\n if (preOnError) {\n preOnError(...args);\n }\n this.handleError(...args);\n };\n }\n } else {\n cprops = props;\n }\n return React.cloneElement(c, cprops);\n });\n }\n\n render() {\n const {\n loop,\n poster,\n preload,\n src,\n autoPlay,\n playsInline,\n muted,\n crossOrigin,\n videoId\n } = this.props;\n\n return (\n <video\n className={classNames('video-react-new-video', this.props.className)}\n id={videoId}\n crossOrigin={crossOrigin}\n ref={(c) => {\n this.video = c;\n }}\n muted={muted}\n preload={preload}\n loop={loop}\n playsInline={playsInline}\n autoPlay={autoPlay}\n poster={poster}\n src={src}\n onLoadStart={this.handleLoadStart}\n onWaiting={this.handleWaiting}\n onCanPlay={this.handleCanPlay}\n onCanPlayThrough={this.handleCanPlayThrough}\n onPlaying={this.handlePlaying}\n onEnded={this.handleEnded}\n onSeeking={this.handleSeeking}\n onSeeked={this.handleSeeked}\n onPlay={this.handlePlay}\n onPause={this.handlePause}\n onProgress={this.handleProgress}\n onDurationChange={this.handleDurationChange}\n onError={this.handleError}\n onSuspend={this.handleSuspend}\n onAbort={this.handleAbort}\n onEmptied={this.handleEmptied}\n onStalled={this.handleStalled}\n onLoadedMetadata={this.handleLoadedMetaData}\n onLoadedData={this.handleLoadedData}\n onTimeUpdate={this.handleTimeUpdate}\n onRateChange={this.handleRateChange}\n onVolumeChange={this.handleVolumeChange}\n tabIndex=\"-1\"\n >\n {this.renderChildren()}\n </video>\n );\n }\n}\n\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n manager: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class Bezel extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.timer = null;\n props.manager.subscribeToOperationStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.state = {\n hidden: true,\n operation: {}\n };\n }\n\n handleStateChange(state, prevState) {\n if (\n state.count !== prevState.count\n && state.operation.source === 'shortcut'\n ) {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n this.timer = null;\n }\n\n // show it\n // update operation\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n });\n\n // hide it after 0.5s\n this.timer = setTimeout(() => {\n this.setState({\n hidden: true\n });\n this.timer = null;\n }, 500);\n }\n }\n\n render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n const style = this.state.hidden\n ? {\n display: 'none'\n }\n : null;\n\n return (\n <div\n className={classNames(\n {\n 'video-react-new-bezel': true,\n 'video-react-new-bezel-animation': this.state.count % 2 === 0,\n 'video-react-new-bezel-animation-alt': this.state.count % 2 === 1\n },\n this.props.className\n )}\n style={style}\n role=\"status\"\n aria-label={this.state.operation.action}\n >\n <div\n className={classNames(\n 'video-react-new-bezel-icon',\n `video-react-new-bezel-icon-${this.state.operation.action}`\n )}\n />\n </div>\n );\n }\n}\n\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';\n","/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {ReactNodeRef} el React Node ref from which to get offset\n * @return {Object}\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const { body, documentElement: docEl } = document;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in a React Node ref\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {ReactNodeRef} el React Node ref on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\nexport function getPointerPosition(el, event) {\n const position = {};\n const box = findElPosition(el);\n const boxW = el.offsetWidth;\n const boxH = el.offsetHeight;\n\n const boxY = box.top;\n const boxX = box.left;\n let evtPageY = event.pageY;\n let evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n\n return position;\n}\n\n// blur an element\nexport function blurNode(reactNode) {\n if (reactNode && reactNode.blur) {\n reactNode.blur();\n }\n}\n\n// focus an element\nexport function focusNode(reactNode) {\n if (reactNode && reactNode.focus) {\n reactNode.focus();\n }\n}\n\n// check if an element has a class name\nexport function hasClass(elm, cls) {\n const classes = elm.className.split(' ');\n for (let i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n return false;\n}\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { hasClass } from '../utils/dom';\n\nconst propTypes = {\n clickable: PropTypes.bool,\n dblclickable: PropTypes.bool,\n manager: PropTypes.object,\n actions: PropTypes.object,\n player: PropTypes.object,\n shortcuts: PropTypes.array\n};\n\nconst defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nexport default class Shortcut extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.defaultShortcuts = [\n {\n keyCode: 32, // spacebar\n handle: this.togglePlay\n },\n {\n keyCode: 75, // k\n handle: this.togglePlay\n },\n {\n keyCode: 70, // f\n handle: this.toggleFullscreen\n },\n {\n keyCode: 37, // Left arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n },\n {\n keyCode: 74, // j\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n },\n {\n keyCode: 39, // Right arrow\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n },\n {\n keyCode: 76, // l\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n },\n {\n keyCode: 36, // Home\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n actions.seek(0); // Go to beginning of video\n }\n },\n {\n keyCode: 35, // End\n handle: (player, actions) => {\n if (!player.hasStarted) {\n return;\n }\n // Go to end of video\n actions.seek(player.duration);\n }\n },\n {\n keyCode: 38, // Up arrow\n handle: (player, actions) => {\n // Increase volume 5%\n let v = player.volume + 0.05;\n if (v > 1) {\n v = 1;\n }\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 40, // Down arrow\n handle: (player, actions) => {\n // Decrease volume 5%\n let v = player.volume - 0.05;\n if (v < 0) {\n v = 0;\n }\n const action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action,\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 190, // Shift + >\n shift: true,\n handle: (player, actions) => {\n // Increase speed\n let { playbackRate } = player;\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n },\n {\n keyCode: 188, // Shift + <\n shift: true,\n handle: (player, actions) => {\n // Decrease speed\n let { playbackRate } = player;\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }\n ];\n\n this.shortcuts = [...this.defaultShortcuts];\n\n this.mergeShortcuts = this.mergeShortcuts.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n }\n\n componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n }\n\n // merge the shortcuts from props\n mergeShortcuts() {\n const getShortcutKey = ({\n keyCode = 0,\n ctrl = false,\n shift = false,\n alt = false\n }) => `${keyCode}:${ctrl}:${shift}:${alt}`;\n const defaultShortcuts = this.defaultShortcuts.reduce(\n (shortcuts, shortcut) => Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n }),\n {}\n );\n const mergedShortcuts = (this.props.shortcuts || []).reduce(\n (shortcuts, shortcut) => {\n const { keyCode, handle } = shortcut;\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, {\n [getShortcutKey(shortcut)]: shortcut\n });\n }\n return shortcuts;\n },\n defaultShortcuts\n );\n\n const gradeShortcut = (s) => {\n let score = 0;\n const ps = ['ctrl', 'shift', 'alt'];\n ps.forEach((key) => {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts)\n .map(key => mergedShortcuts[key])\n .sort((a, b) => gradeShortcut(b) - gradeShortcut(a));\n }\n\n togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n\n toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n\n handleKeyPress(e) {\n const { player, actions } = this.props;\n if (!player.isActive) {\n return;\n }\n if (\n document.activeElement\n && (hasClass(document.activeElement, 'video-react-new-control')\n || hasClass(document.activeElement, 'video-react-new-menu-button-active')\n // || hasClass(document.activeElement, 'video-react-new-slider')\n || hasClass(document.activeElement, 'video-react-new-big-play-button'))\n ) {\n return;\n }\n\n const keyCode = e.keyCode || e.which;\n const ctrl = e.ctrlKey || e.metaKey;\n const shift = e.shiftKey;\n const alt = e.altKey;\n\n const shortcut = this.shortcuts.filter((s) => {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n if (\n (s.ctrl !== undefined && s.ctrl !== ctrl)\n || (s.shift !== undefined && s.shift !== shift)\n || (s.alt !== undefined && s.alt !== alt)\n ) {\n return false;\n }\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n }\n\n // only if player is active and player is ready\n canBeClicked(player, e) {\n if (\n !player.isActive\n || e.target.nodeName !== 'VIDEO'\n || player.readyState !== 4\n ) {\n return false;\n }\n return true;\n }\n\n handleClick(e) {\n const { player, actions, clickable } = this.props;\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n this.togglePlay(player, actions);\n // e.preventDefault();\n }\n\n handleDoubleClick(e) {\n const { player, actions, dblclickable } = this.props;\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n this.toggleFullscreen(player, actions);\n // e.preventDefault();\n }\n\n // this component dose not render anything\n // it's just for the key down event\n render() {\n return null;\n }\n}\n\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport * as Dom from '../utils/dom';\n\nconst propTypes = {\n className: PropTypes.string,\n onMouseDown: PropTypes.func,\n onMouseMove: PropTypes.func,\n stepForward: PropTypes.func,\n stepBack: PropTypes.func,\n sliderActive: PropTypes.func,\n sliderInactive: PropTypes.func,\n onMouseUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onClick: PropTypes.func,\n getPercent: PropTypes.func,\n vertical: PropTypes.bool,\n children: PropTypes.node,\n label: PropTypes.string,\n valuenow: PropTypes.string,\n valuetext: PropTypes.string\n};\n\nexport default class Slider extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.calculateDistance = this.calculateDistance.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.renderChildren = this.renderChildren.bind(this);\n\n this.state = {\n active: false\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n\n getProgress() {\n const { getPercent } = this.props;\n if (!getPercent) {\n return 0;\n }\n let progress = getPercent();\n\n // Protect against no duration and other division issues\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n return progress;\n }\n\n handleMouseDown(event) {\n const { onMouseDown } = this.props;\n // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n\n handleMouseMove(event) {\n const { onMouseMove } = this.props;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n\n handleMouseUp(event) {\n // On iOS safari, a subsequent mouseup event will be fired after touchend.\n // Its weird event positions make the player seek a wrong time.\n // calling preventDefault (at touchend phase) will prevent the mouseup event\n event.preventDefault();\n const { onMouseUp } = this.props;\n\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n\n handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n\n stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n\n stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n\n calculateDistance(event) {\n const node = this.slider;\n const position = Dom.getPointerPosition(node, event);\n if (this.props.vertical) {\n return position.y;\n }\n return position.x;\n }\n\n renderChildren() {\n const progress = this.getProgress();\n const percentage = `${(progress * 100).toFixed(2)}%`;\n return React.Children.map(this.props.children, child =>\n React.cloneElement(child, { progress, percentage })\n );\n }\n\n render() {\n const { vertical, label, valuenow, valuetext } = this.props;\n\n return (\n <div\n className={classNames(\n this.props.className,\n {\n 'video-react-new-slider-vertical': vertical,\n 'video-react-new-slider-horizontal': !vertical,\n 'video-react-new-sliding': this.state.active\n },\n 'video-react-new-slider'\n )}\n ref={c => {\n this.slider = c;\n }}\n tabIndex=\"0\"\n role=\"slider\"\n onMouseDown={this.handleMouseDown}\n onTouchStart={this.handleMouseDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n aria-label={label || ''}\n aria-valuenow={valuenow || ''}\n aria-valuetext={valuetext || ''}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n {this.renderChildren()}\n </div>\n );\n }\n}\n\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n percentage: PropTypes.string,\n className: PropTypes.string\n};\n\n// Shows play progress\nexport default function PlayProgressBar({\n currentTime,\n duration,\n percentage,\n className\n}) {\n return (\n <div\n data-current-time={formatTime(currentTime, duration)}\n className={classNames(\n 'video-react-new-play-progress video-react-new-slider-bar',\n className\n )}\n style={{\n width: percentage\n }}\n >\n <span className=\"video-react-new-control-text\">\n {`Progress: ${percentage}`}\n </span>\n </div>\n );\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n duration: PropTypes.number,\n buffered: PropTypes.object,\n className: PropTypes.string\n};\n\n// Shows load progress\nexport default function LoadProgressBar({ buffered, duration, className }) {\n if (!buffered || !buffered.length) {\n return null;\n }\n let bufferedEnd = buffered.end(buffered.length - 1);\n const style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n }\n\n // get the percent width of a time compared to the total end\n function percentify(time, end) {\n const percent = time / end || 0; // no NaN\n return `${(percent >= 1 ? 1 : percent) * 100}%`;\n }\n\n // the width of the progress bar\n style.width = percentify(bufferedEnd, duration);\n\n let parts = [];\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n const start = buffered.start(i);\n const end = buffered.end(i);\n // set the percent based on the width of the progress bar (bufferedEnd)\n const part = (\n <div\n style={{\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n }}\n key={`part-${i}`}\n />\n );\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return (\n <div\n style={style}\n className={classNames('video-react-new-load-progress', className)}\n >\n <span className=\"video-react-new-control-text\">Loaded: 0%</span>\n {parts}\n </div>\n );\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nfunction MouseTimeDisplay({\n duration, mouseTime, className, text\n}) {\n if (!mouseTime.time) {\n return null;\n }\n\n const time = text || formatTime(mouseTime.time, duration);\n\n return (\n <div\n className={classNames('video-react-new-mouse-display', className)}\n style={{\n left: `${mouseTime.position}px`\n }}\n data-current-time={time}\n />\n );\n}\n\nMouseTimeDisplay.propTypes = {\n duration: PropTypes.number,\n mouseTime: PropTypes.object,\n className: PropTypes.string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\n\nexport default MouseTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport PlayProgressBar from './PlayProgressBar';\nimport LoadProgressBar from './LoadProgressBar';\nimport MouseTimeDisplay from './MouseTimeDisplay';\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n mouseTime: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class SeekBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.getPercent = this.getPercent.bind(this);\n this.getNewTime = this.getNewTime.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate() {}\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n const { currentTime, seekingTime, duration } = this.props.player;\n const time = seekingTime || currentTime;\n const percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n\n getNewTime(event) {\n const {\n player: { duration }\n } = this.props;\n const distance = this.slider.calculateDistance(event);\n const newTime = distance * duration;\n\n // Don't let video end while scrubbing.\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n\n handleMouseDown() {}\n\n handleMouseUp(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n // Set new time (tell video to seek to new time)\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n const newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n\n stepForward() {\n const { actions } = this.props;\n actions.forward(5);\n }\n\n stepBack() {\n const { actions } = this.props;\n actions.replay(5);\n }\n\n render() {\n const {\n player: { currentTime, seekingTime, duration, buffered },\n mouseTime\n } = this.props;\n const time = seekingTime || currentTime;\n\n return (\n <Slider\n ref={input => {\n this.slider = input;\n }}\n label=\"video progress bar\"\n className={classNames(\n 'video-react-new-progress-holder',\n this.props.className\n )}\n valuenow={(this.getPercent() * 100).toFixed(2)}\n valuetext={formatTime(time, duration)}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseUp={this.handleMouseUp}\n getPercent={this.getPercent}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n >\n <LoadProgressBar\n buffered={buffered}\n currentTime={time}\n duration={duration}\n />\n <MouseTimeDisplay duration={duration} mouseTime={mouseTime} />\n <PlayProgressBar currentTime={time} duration={duration} />\n </Slider>\n );\n }\n}\n\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport * as Dom from '../../utils/dom';\nimport SeekBar from './SeekBar';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class ProgressControl extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n\n this.handleMouseMoveThrottle = this.handleMouseMove.bind(this);\n }\n\n handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n const {\n player: { duration }\n } = this.props;\n const node = this.seekBar;\n const newTime = Dom.getPointerPosition(node, event).x * duration;\n const position = event.pageX - Dom.findElPosition(node).left;\n\n this.setState({\n mouseTime: {\n time: newTime,\n position\n }\n });\n }\n\n render() {\n const { className } = this.props;\n return (\n <div\n onMouseMove={this.handleMouseMoveThrottle}\n className={classNames(\n 'video-react-new-progress-control video-react-new-control',\n className\n )}\n >\n <SeekBar\n mouseTime={this.state.mouseTime}\n ref={c => {\n this.seekBar = c;\n }}\n {...this.props}\n />\n </div>\n );\n }\n}\n\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class PlayToggle extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, player } = this.props;\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n\n render() {\n const { player, className } = this.props;\n const controlText = player.paused ? 'Play' : 'Pause';\n\n return (\n <button\n ref={(c) => {\n this.button = c;\n }}\n className={classNames(className, {\n 'video-react-new-play-control': true,\n 'video-react-new-control': true,\n 'video-react-new-button': true,\n 'video-react-new-paused': player.paused,\n 'video-react-new-playing': !player.paused\n })}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">{controlText}</span>\n </button>\n );\n }\n}\n\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n actions: PropTypes.object,\n className: PropTypes.string,\n seconds: PropTypes.oneOf([5, 10, 30])\n};\n\nconst defaultProps = {\n seconds: 10\n};\n\nexport default (mode) => {\n class ForwardReplayControl extends Component {\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { actions, seconds } = this.props;\n // Depends mode to implement different actions\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n\n render() {\n const { seconds, className } = this.props;\n const classNames = [\n 'video-react-new-control',\n 'video-react-new-button',\n 'video-react-new-icon'\n ];\n classNames.push(\n `video-react-new-icon-${mode}-${seconds}`,\n `video-react-new-${mode}-control`\n );\n if (className) {\n classNames.push(className);\n }\n return (\n <button\n ref={(c) => {\n this.button = c;\n }}\n className={classNames.join(' ')}\n type=\"button\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">{`${mode} ${seconds} seconds`}</span>\n </button>\n );\n }\n }\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ForwardControl = ForwardReplayControl('forward');\n\nForwardControl.displayName = 'ForwardControl';\nexport default ForwardControl;\n","import ForwardReplayControl from './ForwardReplayControl';\n\n// Pass mode into parent function\nconst ReplayControl = ForwardReplayControl('replay');\nReplayControl.displayName = 'ReplayControl';\n\nexport default ReplayControl;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default class FullscreenToggle extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.toggleFullscreen(player);\n }\n\n render() {\n const { player, className } = this.props;\n return (\n <button\n className={classNames(\n className,\n {\n 'video-react-new-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-new-icon-fullscreen': !player.isFullscreen\n },\n 'video-react-new-fullscreen-control video-react-new-control video-react-new-button video-react-new-icon'\n )}\n ref={(c) => {\n this.button = c;\n }}\n type=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n >\n <span className=\"video-react-new-control-text\">Non-Fullscreen</span>\n </button>\n );\n }\n}\n\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction RemainingTimeDisplay({\n player: { currentTime, duration },\n className\n}) {\n const remainingTime = duration - currentTime;\n const formattedTime = formatTime(remainingTime);\n return (\n <div\n className={classNames(\n 'video-react-new-remaining-time video-react-new-time-control video-react-new-control',\n className\n )}\n >\n <div className=\"video-react-new-remaining-time-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Remaining Time </span>\n {`-${formattedTime}`}\n </div>\n </div>\n );\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\n\nexport default RemainingTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction CurrentTimeDisplay({ player: { currentTime, duration }, className }) {\n const formattedTime = formatTime(currentTime, duration);\n return (\n <div\n className={classNames(\n 'video-react-new-current-time video-react-new-time-control video-react-new-control',\n className\n )}\n >\n <div className=\"video-react-new-current-time-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Current Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\n\nexport default CurrentTimeDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport { formatTime } from '../../utils';\n\nconst propTypes = {\n player: PropTypes.object,\n className: PropTypes.string\n};\n\nfunction DurationDisplay({ player: { duration }, className }) {\n const formattedTime = formatTime(duration);\n return (\n <div\n className={classNames(\n className,\n 'video-react-new-duration video-react-new-time-control video-react-new-control'\n )}\n >\n <div className=\"video-react-new-duration-display\" aria-live=\"off\">\n <span className=\"video-react-new-control-text\">Duration Time </span>\n {formattedTime}\n </div>\n </div>\n );\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\n\nexport default DurationDisplay;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n separator: PropTypes.string,\n className: PropTypes.string\n};\n\nexport default function TimeDivider({ separator, className }) {\n const separatorText = separator || '/';\n return (\n <div\n className={classNames(\n 'video-react-new-time-control video-react-new-time-divider',\n className\n )}\n dir=\"ltr\"\n >\n <div>\n <span>{separatorText}</span>\n </div>\n </div>\n );\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n tagName: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n tagName: 'div'\n};\n\nexport default class ClickableComponent extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeypress = this.handleKeypress.bind(this);\n }\n\n componentWillUnmount(e) {\n this.handleBlur(e);\n }\n\n handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n handleClick(event) {\n const { onClick } = this.props;\n onClick(event);\n }\n\n handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n render() {\n const Tag = this.props.tagName;\n const props = { ...this.props };\n delete props.tagName;\n delete props.className;\n return (\n <Tag\n className={classNames(this.props.className)}\n role=\"button\"\n tabIndex=\"0\"\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...props}\n />\n );\n }\n}\n\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n player: PropTypes.object,\n children: PropTypes.any\n};\n\nexport default class Popup extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n const { children } = this.props;\n return (\n <div className=\"video-react-new-menu\" onClick={this.handleClick}>\n <div className=\"video-react-new-menu-content\">{children}</div>\n </div>\n );\n }\n}\n\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ClickableComponent from '../ClickableComponent';\nimport Popup from './Popup';\n\nconst propTypes = {\n inline: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n inline: true\n};\n\nexport default function PopupButton(props) {\n const { inline, className } = props;\n const ps = { ...props };\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-new-menu-button-inline': !!inline,\n 'video-react-new-menu-button-popup': !inline\n },\n 'video-react-new-control video-react-new-button video-react-new-menu-button'\n )}\n {...ps}\n >\n <Popup {...props} />\n </ClickableComponent>\n );\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n percentage: PropTypes.string,\n vertical: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel({ percentage, vertical, className }) {\n const style = {};\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return (\n <div\n className={classNames(className, 'video-react-new-volume-level')}\n style={style}\n >\n <span className=\"video-react-new-control-text\" />\n </div>\n );\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nexport default VolumeLevel;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Slider from '../Slider';\nimport VolumeLevel from './VolumeLevel';\n\nconst propTypes = {\n actions: PropTypes.object,\n player: PropTypes.object,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nclass VolumeBar extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n percentage: '0%'\n };\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handlePercentageChange = this.handlePercentageChange.bind(this);\n this.checkMuted = this.checkMuted.bind(this);\n this.getPercent = this.getPercent.bind(this);\n this.stepForward = this.stepForward.bind(this);\n this.stepBack = this.stepBack.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {}\n\n getPercent() {\n const { player } = this.props;\n if (player.muted) {\n return 0;\n }\n return player.volume;\n }\n\n checkMuted() {\n const { player, actions } = this.props;\n if (player.muted) {\n actions.mute(false);\n }\n }\n\n handleMouseMove(event) {\n const { actions } = this.props;\n this.checkMuted();\n const distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n\n stepForward() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n\n stepBack() {\n const { player, actions } = this.props;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n\n handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n\n handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage\n });\n }\n }\n\n handleClick(event) {\n event.stopPropagation();\n }\n\n render() {\n const { player, className } = this.props;\n\n const volume = (player.volume * 100).toFixed(2);\n return (\n <Slider\n ref={(c) => {\n this.slider = c;\n }}\n label=\"volume level\"\n valuenow={volume}\n valuetext={`${volume}%`}\n onMouseMove={this.handleMouseMove}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n sliderActive={this.handleFocus}\n sliderInactive={this.handleBlur}\n getPercent={this.getPercent}\n onPercentageChange={this.handlePercentageChange}\n stepForward={this.stepForward}\n stepBack={this.stepBack}\n {...this.props}\n className={classNames(\n className,\n 'video-react-new-volume-bar video-react-new-slider-bar'\n )}\n >\n <VolumeLevel {...this.props} />\n </Slider>\n );\n }\n}\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\n\nexport default VolumeBar;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport PopupButton from '../popup/PopupButton';\nimport VolumeBar from '../volume-control/VolumeBar';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n vertical: PropTypes.bool,\n className: PropTypes.string,\n alwaysShowVolume: PropTypes.bool\n};\n\nconst defaultProps = {\n vertical: false\n};\n\nclass VolumeMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n get volumeLevel() {\n const {\n player: { volume, muted }\n } = this.props;\n let level = 3;\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n return level;\n }\n\n handleClick() {\n const { player, actions } = this.props;\n actions.mute(!player.muted);\n }\n\n handleFocus() {\n this.setState({\n active: true\n });\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n }\n\n render() {\n const { vertical, player, className } = this.props;\n const inline = !vertical;\n const level = this.volumeLevel;\n return (\n <PopupButton\n className={classNames(\n className,\n {\n 'video-react-new-volume-menu-button-vertical': vertical,\n 'video-react-new-volume-menu-button-horizontal': !vertical,\n 'video-react-new-vol-muted': player.muted,\n 'video-react-new-vol-0': level === 0 && !player.muted,\n 'video-react-new-vol-1': level === 1,\n 'video-react-new-vol-2': level === 2,\n 'video-react-new-vol-3': level === 3,\n 'video-react-new-slider-active':\n this.props.alwaysShowVolume || this.state.active,\n 'video-react-new-lock-showing':\n this.props.alwaysShowVolume || this.state.active\n },\n 'video-react-new-volume-menu-button'\n )}\n onClick={this.handleClick}\n inline={inline}\n >\n <VolumeBar\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n {...this.props}\n />\n </PopupButton>\n );\n }\n}\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nexport default VolumeMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\n\nconst propTypes = {\n children: PropTypes.any\n};\n\nexport default class Menu extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(event) {\n event.preventDefault();\n // event.stopPropagation();\n }\n\n render() {\n return (\n <div\n className=\"video-react-new-menu video-react-new-lock-showing\"\n role=\"presentation\"\n onClick={this.handleClick}\n >\n <ul className=\"video-react-new-menu-content\">{this.props.children}</ul>\n </div>\n );\n }\n}\n\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nconst propTypes = {\n item: PropTypes.object,\n index: PropTypes.number,\n activateIndex: PropTypes.number,\n onSelectItem: PropTypes.func\n};\n\nexport default class MenuItem extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n const { index, onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n render() {\n const { item, index, activateIndex } = this.props;\n return (\n <li\n className={classNames({\n 'video-react-new-menu-item': true,\n 'video-react-new-selected': index === activateIndex\n })}\n role=\"menuitem\"\n onClick={this.handleClick}\n >\n {item.label}\n <span className=\"video-react-new-control-text\" />\n </li>\n );\n }\n}\n\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport ClickableComponent from '../ClickableComponent';\n\nconst propTypes = {\n inline: PropTypes.bool,\n items: PropTypes.array,\n className: PropTypes.string,\n onSelectItem: PropTypes.func,\n children: PropTypes.any,\n selectedIndex: PropTypes.number\n};\n\nexport default class MenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n\n this.commitSelection = this.commitSelection.bind(this);\n this.activateMenuItem = this.activateMenuItem.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.renderMenu = this.renderMenu.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleUpArrow = this.handleUpArrow.bind(this);\n this.handleDownArrow = this.handleDownArrow.bind(this);\n this.handleEscape = this.handleEscape.bind(this);\n this.handleReturn = this.handleReturn.bind(this);\n this.handleTab = this.handleTab.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleSelectItem = this.handleSelectItem.bind(this);\n this.handleIndexChange = this.handleIndexChange.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n\n commitSelection(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n\n activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n\n handleIndexChange(index) {\n const { onSelectItem } = this.props;\n onSelectItem(index);\n }\n\n handleClick() {\n this.setState(prevState => ({\n active: !prevState.active\n }));\n }\n\n handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n\n handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n\n handleUpArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex - 1;\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleDownArrow(e) {\n const { items } = this.props;\n if (this.state.active) {\n e.preventDefault();\n let newIndex = this.state.activateIndex + 1;\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n this.activateMenuItem(newIndex);\n }\n }\n\n handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n\n handleReturn(e) {\n e.preventDefault();\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n\n handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n\n handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n\n handleSelectItem(i) {\n this.commitSelection(i);\n }\n\n renderMenu() {\n if (!this.state.active) {\n return null;\n }\n\n const { items } = this.props;\n return (\n <Menu>\n {items.map((item, i) => (\n <MenuItem\n item={item}\n index={i}\n onSelectItem={this.handleSelectItem}\n activateIndex={this.state.activateIndex}\n key={`item-${i++}`}\n />\n ))}\n </Menu>\n );\n }\n\n render() {\n const { inline, className } = this.props;\n\n return (\n <ClickableComponent\n className={classNames(\n className,\n {\n 'video-react-new-menu-button-inline': !!inline,\n 'video-react-new-menu-button-popup': !inline,\n 'video-react-new-menu-button-active': this.state.active\n },\n 'video-react-new-control video-react-new-button video-react-new-menu-button'\n )}\n role=\"button\"\n tabIndex=\"0\"\n ref={(c) => {\n this.menuButton = c;\n }}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n {this.props.children}\n {this.renderMenu()}\n </ClickableComponent>\n );\n }\n}\n\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport MenuButton from '../menu/MenuButton';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n rates: PropTypes.array,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nclass PlaybackRateMenuButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.handleSelectItem = this.handleSelectItem.bind(this);\n }\n\n handleSelectItem(index) {\n const { rates, actions } = this.props;\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n\n render() {\n const { rates, player } = this.props;\n const items = rates.map(rate => ({\n label: `${rate}x`,\n value: rate\n }));\n const selectedIndex = rates.indexOf(player.playbackRate) || 0;\n\n return (\n <MenuButton\n className={classNames(\n 'video-react-new-playback-rate',\n this.props.className\n )}\n onSelectItem={this.handleSelectItem}\n items={items}\n selectedIndex={selectedIndex}\n >\n <span className=\"video-react-new-control-text\">Playback Rate</span>\n <div className=\"video-react-new-playback-rate-value\">\n {`${player.playbackRate.toFixed(2)}x`}\n </div>\n </MenuButton>\n );\n }\n}\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nexport default PlaybackRateMenuButton;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport ProgressControl from './ProgressControl';\nimport PlayToggle from './PlayToggle';\nimport ForwardControl from './ForwardControl';\nimport ReplayControl from './ReplayControl';\nimport FullscreenToggle from './FullscreenToggle';\nimport RemainingTimeDisplay from '../time-controls/RemainingTimeDisplay';\nimport CurrentTimeDisplay from '../time-controls/CurrentTimeDisplay';\nimport DurationDisplay from '../time-controls/DurationDisplay';\nimport TimeDivider from '../time-controls/TimeDivider';\nimport VolumeMenuButton from './VolumeMenuButton';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { mergeAndSortChildren } from '../../utils';\n\nconst propTypes = {\n children: PropTypes.any,\n autoHide: PropTypes.bool,\n autoHideTime: PropTypes.number, // used in Player\n disableDefaultControls: PropTypes.bool,\n disableCompletely: PropTypes.bool,\n className: PropTypes.string\n};\n\nconst defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nexport default class ControlBar extends Component {\n constructor(props) {\n super(props);\n\n this.getDefaultChildren = this.getDefaultChildren.bind(this);\n this.getFullChildren = this.getFullChildren.bind(this);\n }\n\n getDefaultChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5.1} />,\n <TimeDivider key=\"time-divider\" order={5.2} />,\n <DurationDisplay key=\"duration-display\" order={5.3} />,\n <ProgressControl key=\"progress-control\" order={6} />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={8} />\n ];\n }\n\n getFullChildren() {\n return [\n <PlayToggle key=\"play-toggle\" order={1} />,\n <ReplayControl key=\"replay-control\" order={2} />,\n <ForwardControl key=\"forward-control\" order={3} />,\n <VolumeMenuButton key=\"volume-menu-button\" order={4} />,\n <CurrentTimeDisplay key=\"current-time-display\" order={5} />,\n <TimeDivider key=\"time-divider\" order={6} />,\n <DurationDisplay key=\"duration-display\" order={7} />,\n <ProgressControl key=\"progress-control\" order={8} />,\n <RemainingTimeDisplay key=\"remaining-time-display\" order={9} />,\n <PlaybackRateMenuButton\n rates={[1, 1.25, 1.5, 2]}\n key=\"playback-rate\"\n order={10}\n />,\n <FullscreenToggle key=\"fullscreen-toggle\" order={11} />\n ];\n }\n\n getChildren() {\n const children = React.Children.toArray(this.props.children);\n const defaultChildren = this.props.disableDefaultControls\n ? []\n : this.getDefaultChildren();\n const { className, ...parentProps } = this.props; // remove className\n return mergeAndSortChildren(defaultChildren, children, parentProps);\n }\n\n render() {\n const { autoHide, className, disableCompletely } = this.props;\n const children = this.getChildren();\n\n return disableCompletely ? null : (\n <div\n className={classNames(\n 'video-react-new-control-bar',\n {\n 'video-react-new-control-bar-auto-hide': autoHide\n },\n className\n )}\n >\n {children}\n </div>\n );\n }\n}\n\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';\n","const USER_AGENT = typeof window !== 'undefined' && window.navigator\n ? window.navigator.userAgent\n : '';\n// const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPAD = /iPad/i.test(USER_AGENT);\n\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nexport const IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexport const IS_IPOD = /iPod/i.test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nimport Manager from '../Manager';\n\nimport BigPlayButton from './BigPlayButton';\nimport LoadingSpinner from './LoadingSpinner';\nimport PosterImage from './PosterImage';\nimport Video from './Video';\nimport Bezel from './Bezel';\nimport Shortcut from './Shortcut';\nimport ControlBar from './control-bar/ControlBar';\n\nimport * as browser from '../utils/browser';\nimport { focusNode } from '../utils/dom';\nimport { mergeAndSortChildren, isVideoChild, throttle } from '../utils';\nimport fullscreen from '../utils/fullscreen';\n\nconst propTypes = {\n children: PropTypes.any,\n\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fluid: PropTypes.bool,\n muted: PropTypes.bool,\n playsInline: PropTypes.bool,\n aspectRatio: PropTypes.string,\n className: PropTypes.string,\n videoId: PropTypes.string,\n\n startTime: PropTypes.number,\n loop: PropTypes.bool,\n autoPlay: PropTypes.bool,\n src: PropTypes.string,\n poster: PropTypes.string,\n preload: PropTypes.oneOf(['auto', 'metadata', 'none']),\n\n onLoadStart: PropTypes.func,\n onWaiting: PropTypes.func,\n onCanPlay: PropTypes.func,\n onCanPlayThrough: PropTypes.func,\n onPlaying: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeking: PropTypes.func,\n onSeeked: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onProgress: PropTypes.func,\n onDurationChange: PropTypes.func,\n onError: PropTypes.func,\n onSuspend: PropTypes.func,\n onAbort: PropTypes.func,\n onEmptied: PropTypes.func,\n onStalled: PropTypes.func,\n onLoadedMetadata: PropTypes.func,\n onLoadedData: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onRateChange: PropTypes.func,\n onVolumeChange: PropTypes.func,\n\n store: PropTypes.object\n};\n\nconst defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nexport default class Player extends Component {\n constructor(props) {\n super(props);\n\n this.controlsHideTimer = null;\n\n this.video = null; // the Video component\n this.manager = new Manager(props.store);\n this.actions = this.manager.getActions();\n this.manager.subscribeToPlayerStateChange(\n this.handleStateChange.bind(this)\n );\n\n this.getStyle = this.getStyle.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.getChildren = this.getChildren.bind(this);\n this.handleMouseMove = throttle(this.handleMouseMove.bind(this), 250);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.startControlsTimer = this.startControlsTimer.bind(this);\n this.handleFullScreenChange = this.handleFullScreenChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n fullscreen.addEventListener(this.handleFullScreenChange);\n }\n\n componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n fullscreen.removeEventListener(this.handleFullScreenChange);\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n\n getDefaultChildren(originalChildren) {\n return [\n <Video\n ref={c => {\n this.video = c;\n this.manager.video = this.video;\n }}\n key=\"video\"\n order={0.0}\n >\n {originalChildren}\n </Video>,\n <PosterImage key=\"poster-image\" order={1.0} />,\n <LoadingSpinner key=\"loading-spinner\" order={2.0} />,\n <Bezel key=\"bezel\" order={3.0} />,\n <BigPlayButton key=\"big-play-button\" order={4.0} />,\n <ControlBar key=\"control-bar\" order={5.0} />,\n <Shortcut key=\"shortcut\" order={99.0} />\n ];\n }\n\n getChildren(props) {\n const {\n className: _, // remove className\n children: originalChildren,\n ...propsWithoutChildren\n } = props;\n const children = React.Children.toArray(this.props.children).filter(\n e => !isVideoChild(e)\n );\n const defaultChildren = this.getDefaultChildren(originalChildren);\n return mergeAndSortChildren(\n defaultChildren,\n children,\n propsWithoutChildren\n );\n }\n\n setWidthOrHeight(style, name, value) {\n let styleVal;\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = `${value}px`;\n }\n Object.assign(style, {\n [name]: styleVal\n });\n }\n\n getStyle() {\n const {\n fluid,\n aspectRatio: propsAspectRatio,\n height: propsHeight,\n width: propsWidth\n } = this.props;\n const { player } = this.manager.getState();\n const style = {};\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = `${player.videoWidth}:${player.videoHeight}`;\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n const ratioParts = aspectRatio.split(':');\n const ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = `${ratioMultiplier * 100}%`;\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n }\n\n // get redux state\n // { player, operation }\n getState() {\n return this.manager.getState();\n }\n\n // get playback rate\n get playbackRate() {\n return this.video.playbackRate;\n }\n\n // set playback rate\n // speed of video\n set playbackRate(rate) {\n this.video.playbackRate = rate;\n }\n\n get muted() {\n return this.video.muted;\n }\n\n set muted(val) {\n this.video.muted = val;\n }\n\n get volume() {\n return this.video.volume;\n }\n\n set volume(val) {\n this.video.volume = val;\n }\n\n // video width\n get videoWidth() {\n return this.video.videoWidth;\n }\n\n // video height\n get videoHeight() {\n return this.video.videoHeight;\n }\n\n // play the video\n play() {\n this.video.play();\n }\n\n // pause the video\n pause() {\n this.video.pause();\n }\n\n // Change the video source and re-load the video:\n load() {\n this.video.load();\n }\n\n // Add a new text track to the video\n addTextTrack(...args) {\n this.video.addTextTrack(...args);\n }\n\n // Check if your browser can play different types of video:\n canPlayType(...args) {\n this.video.canPlayType(...args);\n }\n\n // seek video by time\n seek(time) {\n this.video.seek(time);\n }\n\n // jump forward x seconds\n forward(seconds) {\n this.video.forward(seconds);\n }\n\n // jump back x seconds\n replay(seconds) {\n this.video.replay(seconds);\n }\n\n // enter or exist full screen\n toggleFullscreen() {\n this.video.toggleFullscreen();\n }\n\n // subscribe to player state change\n subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n }\n\n // player resize\n handleResize() {}\n\n handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(fullscreen.isFullscreen);\n }\n }\n\n handleMouseDown() {\n this.startControlsTimer();\n }\n\n handleMouseMove() {\n this.startControlsTimer();\n }\n\n handleKeyDown() {\n this.startControlsTimer();\n }\n\n startControlsTimer() {\n let controlBarActiveTime = 3000;\n React.Children.forEach(this.props.children, element => {\n if (!React.isValidElement(element) || element.type !== ControlBar) {\n return;\n }\n\n const { autoHideTime } = element.props;\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(() => {\n this.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n\n handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize();\n // focus root when switching fullscreen mode to avoid confusion #276\n focusNode(this.manager.rootElement);\n }\n this.forceUpdate(); // re-render\n }\n\n handleFocus() {\n this.actions.activate(true);\n }\n\n handleBlur() {\n this.actions.activate(false);\n }\n\n render() {\n const { fluid } = this.props;\n const { player } = this.manager.getState();\n const {\n paused,\n hasStarted,\n waiting,\n seeking,\n isFullscreen,\n userActivity\n } = player;\n\n const props = {\n ...this.props,\n player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n };\n const children = this.getChildren(props);\n\n return (\n <div\n className={classNames(\n {\n 'video-react-new-controls-enabled': true,\n 'video-react-new-has-started': hasStarted,\n 'video-react-new-paused': paused,\n 'video-react-new-playing': !paused,\n 'video-react-new-waiting': waiting,\n 'video-react-new-seeking': seeking,\n 'video-react-new-fluid': fluid,\n 'video-react-new-fullscreen': isFullscreen,\n 'video-react-new-user-inactive': !userActivity,\n 'video-react-new-user-active': userActivity,\n 'video-react-new-workinghover': !browser.IS_IOS\n },\n 'video-react-new',\n this.props.className\n )}\n style={this.getStyle()}\n ref={c => {\n this.manager.rootElement = c;\n }}\n role=\"region\"\n onTouchStart={this.handleMouseDown}\n onMouseDown={this.handleMouseDown}\n onTouchMove={this.handleMouseMove}\n onMouseMove={this.handleMouseMove}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n tabIndex=\"-1\"\n >\n {children}\n </div>\n );\n }\n}\n\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';\n","import React, { Component } from 'react';\nimport PlaybackRateMenuButton from './PlaybackRateMenuButton';\nimport { deprecatedWarning } from '../../utils';\n\nexport default class PlaybackRate extends Component {\n constructor(props, context) {\n super(props, context);\n\n deprecatedWarning('PlaybackRate', 'PlaybackRateMenuButton');\n }\n\n render() {\n return <PlaybackRateMenuButton {...this.props} />;\n }\n}\n\nPlaybackRate.displayName = 'PlaybackRate';\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport MenuButton from '../menu/MenuButton';\n\nconst propTypes = {\n player: PropTypes.object,\n actions: PropTypes.object,\n className: PropTypes.string,\n offMenuText: PropTypes.string,\n showOffMenu: PropTypes.bool,\n kinds: PropTypes.array\n};\n\nconst defaultProps = {\n offMenuText: 'Off',\n showOffMenu: true,\n kinds: ['captions', 'subtitles'] // `kind`s of TextTrack to look for to associate it with this menu.\n};\n\nclass ClosedCaptionButton extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.getTextTrackItems = this.getTextTrackItems.bind(this);\n this.updateState = this.updateState.bind(this);\n this.handleSelectItem = this.handleSelectItem.bind(this);\n\n this.state = this.getTextTrackItems();\n }\n\n componentDidUpdate() {\n this.updateState();\n }\n\n getTextTrackItems() {\n const {\n kinds, player, offMenuText, showOffMenu\n } = this.props;\n const { textTracks, activeTextTrack } = player;\n const textTrackItems = {\n items: [],\n selectedIndex: 0\n };\n const tracks = Array.from(textTracks || []);\n\n if (tracks.length === 0) {\n return textTrackItems;\n }\n\n if (showOffMenu) {\n textTrackItems.items.push({\n label: offMenuText || 'Off',\n value: null\n });\n }\n\n tracks.forEach((textTrack) => {\n // ignore invalid text track kind\n if (kinds.length && !kinds.includes(textTrack.kind)) {\n return;\n }\n\n textTrackItems.items.push({\n label: textTrack.label,\n value: textTrack.language\n });\n });\n\n textTrackItems.selectedIndex = textTrackItems.items.findIndex(\n item => activeTextTrack && activeTextTrack.language === item.value\n );\n\n if (textTrackItems.selectedIndex === -1) {\n textTrackItems.selectedIndex = 0;\n }\n\n return textTrackItems;\n }\n\n updateState() {\n const textTrackItems = this.getTextTrackItems();\n if (\n textTrackItems.selectedIndex !== this.state.selectedIndex\n || !this.textTrackItemsAreEqual(textTrackItems.items, this.state.items)\n ) {\n this.setState(textTrackItems);\n }\n }\n\n textTrackItemsAreEqual(items1, items2) {\n if (items1.length !== items2.length) {\n return false;\n }\n\n for (let i = 0; i < items1.length; i++) {\n if (\n !items2[i]\n || items1[i].label !== items2[i].label\n || items1[i].value !== items2[i].value\n ) {\n return false;\n }\n }\n\n return true;\n }\n\n handleSelectItem(index) {\n const { player, actions, showOffMenu } = this.props;\n const { textTracks } = player;\n\n // For the 'subtitles-off' button, the first condition will never match\n // so all subtitles will be turned off\n Array.from(textTracks).forEach((textTrack, i) => {\n // if it shows the `Off` menu, the first item is `Off`\n if (index === (showOffMenu ? i + 1 : i)) {\n textTrack.mode = 'showing';\n actions.activateTextTrack(textTrack);\n } else {\n textTrack.mode = 'hidden';\n }\n });\n }\n\n render() {\n const { items, selectedIndex } = this.state;\n\n return (\n <MenuButton\n className={classNames(\n 'video-react-new-closed-caption',\n this.props.className\n )}\n onSelectItem={this.handleSelectItem}\n items={items}\n selectedIndex={selectedIndex}\n >\n <span className=\"video-react-new-control-text\">Closed Caption</span>\n </MenuButton>\n );\n }\n}\n\nClosedCaptionButton.propTypes = propTypes;\nClosedCaptionButton.defaultProps = defaultProps;\nClosedCaptionButton.displayName = 'ClosedCaptionButton';\nexport default ClosedCaptionButton;\n"],"names":["Object","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","a","u","$$typeof","type","v","module","require$$0","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","keys","err","target","source","from","to","symbols","s","arguments","length","key","call","ReactPropTypesSecret","has","Function","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","isRequired","getShim","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","hasOwn","classNames","classes","arg","argType","push","Array","isArray","inner","apply","default","window","symbolObservablePonyfill","root","result","observable","self","global","ponyfill","randomString","Math","random","toString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","obj","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","slice","getState","subscribe","listener","isSubscribed","unsubscribe","index","indexOf","splice","dispatch","action","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","$$observable","LOAD_START","CAN_PLAY","WAITING","CAN_PLAY_THROUGH","PLAYING","PLAY","PAUSE","END","SEEKING","SEEKED","SEEKING_TIME","END_SEEKING","DURATION_CHANGE","TIME_UPDATE","VOLUME_CHANGE","PROGRESS_CHANGE","RATE_CHANGE","SUSPEND","ABORT","EMPTIED","STALLED","LOADED_META_DATA","LOADED_DATA","RESIZE","ERROR","ACTIVATE_TEXT_TRACK","handleLoadStart","videoProps","handleCanPlay","handleWaiting","handleCanPlayThrough","handlePlaying","handlePlay","handlePause","handleEnd","handleSeeking","handleSeeked","handleDurationChange","handleTimeUpdate","handleVolumeChange","handleProgressChange","handleRateChange","handleSuspend","handleAbort","handleEmptied","handleStalled","handleLoadedMetaData","handleLoadedData","handleResize","handleError","handleSeekingTime","time","handleEndSeeking","activateTextTrack","textTrack","Fullscreen","request","elm","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","document","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","addEventListener","handler","removeEventListener","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","OPERATE","FULLSCREEN_CHANGE","PLAYER_ACTIVATE","USER_ACTIVATE","handleFullscreenChange","isFullscreen","activate","activity","userActivate","play","operation","video","pause","togglePlay","seek","forward","seconds","replay","changeRate","rate","playbackRate","changeVolume","volume","mute","muted","toggleFullscreen","player","fullscreen","enabled","rootElement","initialState","currentSrc","duration","currentTime","seekingTime","buffered","waiting","seeking","paused","autoPaused","ended","readyState","networkState","videoWidth","videoHeight","hasStarted","userActivity","isActive","activeTextTrack","state","error","count","playerReducer","operationReducer","Manager","store","getActions","manager","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","subscribeToStateChange","prevState","handleChange","prevStateCopy","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","floor","gm","gh","Infinity","isVideoChild","find","elements","isTypeEqual","component1","component2","type1","type2","mergeAndSortChildren","defaultChildren","_children","_parentProps","defaultOrder","children","Children","toArray","order","parentProps","disabled","concat","component","defaultComponent","cloneElement","sort","deprecatedWarning","oldMethodCall","newMethodCall","console","warn","throttle","callback","limit","wait","setTimeout","mediaProperties","startTime","loop","autoPlay","playsInline","src","preload","crossOrigin","onLoadStart","onWaiting","onCanPlay","onCanPlayThrough","onPlaying","onEnded","onSeeking","onSeeked","onPlay","onPause","onProgress","onDurationChange","onError","onSuspend","onAbort","onEmptied","onStalled","onLoadedMetadata","onLoadedData","onTimeUpdate","onRateChange","onVolumeChange","onResize","Video","getProperties","renderChildren","handleEnded","handleProgress","handleKeypress","handleTextTrackChange","forceUpdate","textTracks","onaddtrack","onremovetrack","properties","mode","promise","catch","then","load","addTextTrack","canPlayType","cprops","preOnError","videoId","Bezel","timer","handleStateChange","hidden","clearTimeout","setState","style","display","findElPosition","el","box","getBoundingClientRect","parentNode","left","top","body","docEl","documentElement","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","round","getPointerPosition","event","boxW","offsetWidth","boxH","offsetHeight","boxY","boxX","evtPageY","pageY","evtPageX","pageX","changedTouches","y","max","min","x","focusNode","reactNode","focus","hasClass","cls","toLowerCase","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","keyCode","handle","shift","mergeShortcuts","handleKeyPress","handleDoubleClick","componentDidUpdate","prevProps","componentWillUnmount","getShortcutKey","ctrl","alt","shortcut","mergedShortcuts","gradeShortcut","score","ps","activeElement","which","ctrlKey","metaKey","shiftKey","altKey","preventDefault","canBeClicked","nodeName","onMouseDown","onMouseMove","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","onFocus","onBlur","onClick","getPercent","vertical","label","valuenow","valuetext","Slider","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","calculateDistance","getProgress","active","progress","stopPropagation","slider","Dom","percentage","toFixed","child","PlayProgressBar","width","LoadProgressBar","bufferedEnd","end","percentify","percent","parts","start","part","MouseTimeDisplay","mouseTime","text","SeekBar","getNewTime","distance","newTime","input","ProgressControl","handleMouseMoveThrottle","seekBar","PlayToggle","controlText","button","ForwardReplayControl","ForwardControl","ReplayControl","FullscreenToggle","RemainingTimeDisplay","remainingTime","formattedTime","CurrentTimeDisplay","DurationDisplay","separator","TimeDivider","separatorText","tagName","ClickableComponent","Tag","Popup","inline","PopupButton","VolumeLevel","height","VolumeBar","handlePercentageChange","checkMuted","alwaysShowVolume","VolumeMenuButton","level","volumeLevel","Menu","item","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","USER_AGENT","navigator","userAgent","IS_IPAD","test","IS_IPHONE","IS_IPOD","IS_IOS","fluid","aspectRatio","Player","controlsHideTimer","getStyle","startControlsTimer","handleFullScreenChange","handleKeyDown","originalChildren","_","propsWithoutChildren","setWidthOrHeight","styleVal","match","propsAspectRatio","propsHeight","propsWidth","ratioParts","ratioMultiplier","paddingTop","controlBarActiveTime","isValidElement","browser","PlaybackRate","offMenuText","showOffMenu","kinds","ClosedCaptionButton","getTextTrackItems","updateState","textTrackItems","tracks","includes","kind","language","findIndex","textTrackItemsAreEqual","items1","items2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EASaA,EAAAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA8B,YAA9B,EAA2C;EAACC,IAAAA,KAAK,EAAC,CAAC;EAAR,GAA3C;EACb,MAAIC,CAAC,GAAC,eAAa,OAAOC,MAApB,IAA4BA,MAAM,CAACC,GAAzC;EAAA,MAA6CC,CAAC,GAACH,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,eAAX,CAAD,GAA6B,KAA7E;EAAA,MAAmFE,CAAC,GAACJ,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,cAAX,CAAD,GAA4B,KAAlH;EAAA,MAAwHG,CAAC,GAACL,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAD,GAA8B,KAAzJ;EAAA,MAA+JI,CAAC,GAACN,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAD,GAAiC,KAAnM;EAAA,MAAyMK,CAAC,GAACP,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAD,GAA8B,KAA1O;EAAA,MAAgPM,CAAC,GAACR,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAD,GAA8B,KAAjR;EAAA,MAAuRO,CAAC,GAACT,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,eAAX,CAAD,GAA6B,KAAvT;EAAA,MAA6TQ,CAAC,GAACV,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,kBAAX,CAAD,GAAgC,KAAhW;EAAA,MAAsWS,CAAC,GAACX,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,uBAAX,CAAD,GAAqC,KAA9Y;EAAA,MAAoZU,CAAC,GAACZ,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAD,GAAiC,KAAxb;EAAA,MAA8bW,CAAC,GAACb,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAD,GAA8B,KAA/d;EAAA,MAAqeY,CAAC,GAACd,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,YAAX,CAAD,GACxe,KADA;EAAA,MACMa,CAAC,GAACf,CAAC,GAACC,MAAM,CAACC,GAAP,CAAW,YAAX,CAAD,GAA0B,KADnC;;EACyC,WAASc,CAAT,CAAWC,CAAX,EAAa;EAAC,QAAG,aAAW,OAAOA,CAAlB,IAAqB,SAAOA,CAA/B,EAAiC;EAAC,UAAIC,CAAC,GAACD,CAAC,CAACE,QAAR;;EAAiB,cAAOD,CAAP;EAAU,aAAKf,CAAL;EAAO,kBAAOc,CAAC,GAACA,CAAC,CAACG,IAAJ,EAASH,CAAhB;EAAmB,iBAAKP,CAAL;EAAO,iBAAKC,CAAL;EAAO,iBAAKN,CAAL;EAAO,iBAAKE,CAAL;EAAO,iBAAKD,CAAL;EAAO,iBAAKO,CAAL;EAAO,qBAAOI,CAAP;;EAAS;EAAQ,sBAAOA,CAAC,GAACA,CAAC,IAAEA,CAAC,CAACE,QAAP,EAAgBF,CAAvB;EAA0B,qBAAKR,CAAL;EAAO,qBAAKG,CAAL;EAAO,qBAAKJ,CAAL;EAAO,yBAAOS,CAAP;;EAAS;EAAQ,yBAAOC,CAAP;EAAhE;;EAA9E;;EAAwJ,aAAKH,CAAL;EAAO,aAAKD,CAAL;EAAO,aAAKV,CAAL;EAAO,iBAAOc,CAAP;EAA9L;EAAwM;EAAC;;EAAA,WAASG,CAAT,CAAWJ,CAAX,EAAa;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAON,CAAd;EAAgB;;EAAAb,EAAAA,cAAA,GAAekB,CAAf;EAAiBlB,EAAAA,iBAAA,GAAkBY,CAAlB;EAAoBZ,EAAAA,sBAAA,GAAuBa,CAAvB;EAAyBb,EAAAA,uBAAA,GAAwBW,CAAxB;EAA0BX,EAAAA,uBAAA,GAAwBU,CAAxB;EAA0BV,EAAAA,eAAA,GAAgBK,CAAhB;EAAkBL,EAAAA,kBAAA,GAAmBc,CAAnB;EACrdd,EAAAA,gBAAA,GAAiBO,CAAjB;EAAmBP,EAAAA,YAAA,GAAaiB,CAAb;EAAejB,EAAAA,YAAA,GAAagB,CAAb;EAAehB,EAAAA,cAAA,GAAeM,CAAf;EAAiBN,EAAAA,gBAAA,GAAiBS,CAAjB;EAAmBT,EAAAA,kBAAA,GAAmBQ,CAAnB;EAAqBR,EAAAA,gBAAA,GAAiBe,CAAjB;;EAAmBf,EAAAA,0BAAA,GAA2B,UAASmB,CAAT,EAAW;EAAC,WAAM,aAAW,OAAOA,CAAlB,IAAqB,eAAa,OAAOA,CAAzC,IAA4CA,CAAC,KAAGZ,CAAhD,IAAmDY,CAAC,KAAGN,CAAvD,IAA0DM,CAAC,KAAGV,CAA9D,IAAiEU,CAAC,KAAGX,CAArE,IAAwEW,CAAC,KAAGJ,CAA5E,IAA+E,aAAW,OAAOI,CAAlB,IAAqB,SAAOA,CAA5B,KAAgCA,CAAC,CAACE,QAAF,KAAaJ,CAAb,IAAgBE,CAAC,CAACE,QAAF,KAAaL,CAA7B,IAAgCG,CAAC,CAACE,QAAF,KAAaX,CAA7C,IAAgDS,CAAC,CAACE,QAAF,KAAaV,CAA7D,IAAgEQ,CAAC,CAACE,QAAF,KAAaP,CAA7G,CAArF;EAAqM,GAA5O;;EAA6Od,EAAAA,mBAAA,GAAoB,UAASmB,CAAT,EAAW;EAAC,WAAOI,CAAC,CAACJ,CAAD,CAAD,IAAMD,CAAC,CAACC,CAAD,CAAD,KAAOP,CAApB;EAAsB,GAAtD;;EAAuDZ,EAAAA,wBAAA,GAAyBuB,CAAzB;;EAA2BvB,EAAAA,yBAAA,GAA0B,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOR,CAAd;EAAgB,GAAtD;;EAC5bX,EAAAA,yBAAA,GAA0B,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOT,CAAd;EAAgB,GAAtD;;EAAuDV,EAAAA,iBAAA,GAAkB,UAASmB,CAAT,EAAW;EAAC,WAAM,aAAW,OAAOA,CAAlB,IAAqB,SAAOA,CAA5B,IAA+BA,CAAC,CAACE,QAAF,KAAahB,CAAlD;EAAoD,GAAlF;;EAAmFL,EAAAA,oBAAA,GAAqB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOL,CAAd;EAAgB,GAAjD;;EAAkDd,EAAAA,kBAAA,GAAmB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOZ,CAAd;EAAgB,GAA/C;;EAAgDP,EAAAA,cAAA,GAAe,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOF,CAAd;EAAgB,GAA3C;;EAA4CjB,EAAAA,cAAA,GAAe,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOH,CAAd;EAAgB,GAA3C;;EAA4ChB,EAAAA,gBAAA,GAAiB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOb,CAAd;EAAgB,GAA7C;;EAA8CN,EAAAA,kBAAA,GAAmB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOV,CAAd;EAAgB,GAA/C;;EAAgDT,EAAAA,oBAAA,GAAqB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOX,CAAd;EAAgB,GAAjD;;EAClaR,EAAAA,kBAAA,GAAmB,UAASmB,CAAT,EAAW;EAAC,WAAOD,CAAC,CAACC,CAAD,CAAD,KAAOJ,CAAd;EAAgB,GAA/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;EAEA,EAA2C;EACzCS,IAAAA,cAAA,GAAiBC,sBAAjB;EACD,GAFD;;;ECFA;;;;;AAMA;;EAEA,IAAIC,qBAAqB,GAAG5B,MAAM,CAAC4B,qBAAnC;EACA,IAAIC,cAAc,GAAG7B,MAAM,CAAC8B,SAAP,CAAiBD,cAAtC;EACA,IAAIE,gBAAgB,GAAG/B,MAAM,CAAC8B,SAAP,CAAiBE,oBAAxC;;EAEA,SAASC,QAAT,CAAkBC,GAAlB,EAAuB;EACtB,MAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKC,SAA5B,EAAuC;EACtC,UAAM,IAAIC,SAAJ,CAAc,uDAAd,CAAN;EACA;;EAED,SAAOpC,MAAM,CAACkC,GAAD,CAAb;EACA;;EAED,SAASG,eAAT,GAA2B;EAC1B,MAAI;EACH,QAAI,CAACrC,MAAM,CAACsC,MAAZ,EAAoB;EACnB,aAAO,KAAP;EACA,KAHE;;;;EAQH,QAAIC,KAAK,GAAG,IAAIC,MAAJ,CAAW,KAAX,CAAZ,CARG;;EASHD,IAAAA,KAAK,CAAC,CAAD,CAAL,GAAW,IAAX;;EACA,QAAIvC,MAAM,CAACyC,mBAAP,CAA2BF,KAA3B,EAAkC,CAAlC,MAAyC,GAA7C,EAAkD;EACjD,aAAO,KAAP;EACA,KAZE;;;EAeH,QAAIG,KAAK,GAAG,EAAZ;;EACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,EAApB,EAAwBA,CAAC,EAAzB,EAA6B;EAC5BD,MAAAA,KAAK,CAAC,MAAMF,MAAM,CAACI,YAAP,CAAoBD,CAApB,CAAP,CAAL,GAAsCA,CAAtC;EACA;;EACD,QAAIE,MAAM,GAAG7C,MAAM,CAACyC,mBAAP,CAA2BC,KAA3B,EAAkCI,GAAlC,CAAsC,UAAU9B,CAAV,EAAa;EAC/D,aAAO0B,KAAK,CAAC1B,CAAD,CAAZ;EACA,KAFY,CAAb;;EAGA,QAAI6B,MAAM,CAACE,IAAP,CAAY,EAAZ,MAAoB,YAAxB,EAAsC;EACrC,aAAO,KAAP;EACA,KAxBE;;;EA2BH,QAAIC,KAAK,GAAG,EAAZ;EACA,2BAAuBC,KAAvB,CAA6B,EAA7B,EAAiCC,OAAjC,CAAyC,UAAUC,MAAV,EAAkB;EAC1DH,MAAAA,KAAK,CAACG,MAAD,CAAL,GAAgBA,MAAhB;EACA,KAFD;;EAGA,QAAInD,MAAM,CAACoD,IAAP,CAAYpD,MAAM,CAACsC,MAAP,CAAc,EAAd,EAAkBU,KAAlB,CAAZ,EAAsCD,IAAtC,CAA2C,EAA3C,MACF,sBADF,EAC0B;EACzB,aAAO,KAAP;EACA;;EAED,WAAO,IAAP;EACA,GArCD,CAqCE,OAAOM,GAAP,EAAY;;EAEb,WAAO,KAAP;EACA;EACD;;EAED,gBAAc,GAAGhB,eAAe,KAAKrC,MAAM,CAACsC,MAAZ,GAAqB,UAAUgB,MAAV,EAAkBC,MAAlB,EAA0B;EAC9E,MAAIC,IAAJ;EACA,MAAIC,EAAE,GAAGxB,QAAQ,CAACqB,MAAD,CAAjB;EACA,MAAII,OAAJ;;EAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C;EAC1CH,IAAAA,IAAI,GAAGxD,MAAM,CAAC4D,SAAS,CAACD,CAAD,CAAV,CAAb;;EAEA,SAAK,IAAIG,GAAT,IAAgBN,IAAhB,EAAsB;EACrB,UAAI3B,cAAc,CAACkC,IAAf,CAAoBP,IAApB,EAA0BM,GAA1B,CAAJ,EAAoC;EACnCL,QAAAA,EAAE,CAACK,GAAD,CAAF,GAAUN,IAAI,CAACM,GAAD,CAAd;EACA;EACD;;EAED,QAAIlC,qBAAJ,EAA2B;EAC1B8B,MAAAA,OAAO,GAAG9B,qBAAqB,CAAC4B,IAAD,CAA/B;;EACA,WAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,OAAO,CAACG,MAA5B,EAAoClB,CAAC,EAArC,EAAyC;EACxC,YAAIZ,gBAAgB,CAACgC,IAAjB,CAAsBP,IAAtB,EAA4BE,OAAO,CAACf,CAAD,CAAnC,CAAJ,EAA6C;EAC5Cc,UAAAA,EAAE,CAACC,OAAO,CAACf,CAAD,CAAR,CAAF,GAAiBa,IAAI,CAACE,OAAO,CAACf,CAAD,CAAR,CAArB;EACA;EACD;EACD;EACD;;EAED,SAAOc,EAAP;EACA,CAzBD;;EChEA;;;;;;AAOA;EAEA,IAAIO,oBAAoB,GAAG,8CAA3B;EAEA,0BAAc,GAAGA,oBAAjB;;ECIA,IAAIC,GAAG,GAAGC,QAAQ,CAACH,IAAT,CAAcI,IAAd,CAAmBnE,MAAM,CAAC8B,SAAP,CAAiBD,cAApC,CAAV;;ECJA,SAASuC,aAAT,GAAyB;;EACzB,SAASC,sBAAT,GAAkC;;EAClCA,sBAAsB,CAACC,iBAAvB,GAA2CF,aAA3C;;EAEA,4BAAc,GAAG,iCAAA,GAAW;EAC1B,WAASG,IAAT,CAAcC,KAAd,EAAqBC,QAArB,EAA+BC,aAA/B,EAA8CC,QAA9C,EAAwDC,YAAxD,EAAsEC,MAAtE,EAA8E;EAC5E,QAAIA,MAAM,KAAKb,sBAAf,EAAqC;;EAEnC;EACD;;EACD,QAAIX,GAAG,GAAG,IAAIyB,KAAJ,CACR,yFACA,+CADA,GAEA,gDAHQ,CAAV;EAKAzB,IAAAA,GAAG,CAAC0B,IAAJ,GAAW,qBAAX;EACA,UAAM1B,GAAN;EACD;EACDkB,EAAAA,IAAI,CAACS,UAAL,GAAkBT,IAAlB;;EACA,WAASU,OAAT,GAAmB;EACjB,WAAOV,IAAP;EACD;;;EAGD,MAAIW,cAAc,GAAG;EACnBC,IAAAA,KAAK,EAAEZ,IADY;EAEnBa,IAAAA,IAAI,EAAEb,IAFa;EAGnBc,IAAAA,IAAI,EAAEd,IAHa;EAInBe,IAAAA,MAAM,EAAEf,IAJW;EAKnBgB,IAAAA,MAAM,EAAEhB,IALW;EAMnBiB,IAAAA,MAAM,EAAEjB,IANW;EAOnBkB,IAAAA,MAAM,EAAElB,IAPW;EASnBmB,IAAAA,GAAG,EAAEnB,IATc;EAUnBoB,IAAAA,OAAO,EAAEV,OAVU;EAWnBW,IAAAA,OAAO,EAAErB,IAXU;EAYnBsB,IAAAA,WAAW,EAAEtB,IAZM;EAanBuB,IAAAA,UAAU,EAAEb,OAbO;EAcnBc,IAAAA,IAAI,EAAExB,IAda;EAenByB,IAAAA,QAAQ,EAAEf,OAfS;EAgBnBgB,IAAAA,KAAK,EAAEhB,OAhBY;EAiBnBiB,IAAAA,SAAS,EAAEjB,OAjBQ;EAkBnBkB,IAAAA,KAAK,EAAElB,OAlBY;EAmBnBmB,IAAAA,KAAK,EAAEnB,OAnBY;EAqBnBoB,IAAAA,cAAc,EAAEhC,sBArBG;EAsBnBC,IAAAA,iBAAiB,EAAEF;EAtBA,GAArB;EAyBAc,EAAAA,cAAc,CAACoB,SAAf,GAA2BpB,cAA3B;EAEA,SAAOA,cAAP;EACD,CAhDD;;;ECfA;;;;;;EAOA,EAOO;;;EAGLxD,IAAAA,cAAA,GAAiB6E,wBAAqC,EAAtD;EACD;;;;EClBD;;;;;;;EAOC,eAAY;AACZ;EAEA,QAAIC,MAAM,GAAG,GAAG3E,cAAhB;;EAEA,aAAS4E,UAAT,GAAuB;EACtB,UAAIC,OAAO,GAAG,EAAd;;EAEA,WAAK,IAAI/D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,SAAS,CAACC,MAA9B,EAAsClB,CAAC,EAAvC,EAA2C;EAC1C,YAAIgE,GAAG,GAAG/C,SAAS,CAACjB,CAAD,CAAnB;EACA,YAAI,CAACgE,GAAL,EAAU;EAEV,YAAIC,OAAO,GAAG,OAAOD,GAArB;;EAEA,YAAIC,OAAO,KAAK,QAAZ,IAAwBA,OAAO,KAAK,QAAxC,EAAkD;EACjDF,UAAAA,OAAO,CAACG,IAAR,CAAaF,GAAb;EACA,SAFD,MAEO,IAAIG,KAAK,CAACC,OAAN,CAAcJ,GAAd,KAAsBA,GAAG,CAAC9C,MAA9B,EAAsC;EAC5C,cAAImD,KAAK,GAAGP,UAAU,CAACQ,KAAX,CAAiB,IAAjB,EAAuBN,GAAvB,CAAZ;;EACA,cAAIK,KAAJ,EAAW;EACVN,YAAAA,OAAO,CAACG,IAAR,CAAaG,KAAb;EACA;EACD,SALM,MAKA,IAAIJ,OAAO,KAAK,QAAhB,EAA0B;EAChC,eAAK,IAAI9C,GAAT,IAAgB6C,GAAhB,EAAqB;EACpB,gBAAIH,MAAM,CAACzC,IAAP,CAAY4C,GAAZ,EAAiB7C,GAAjB,KAAyB6C,GAAG,CAAC7C,GAAD,CAAhC,EAAuC;EACtC4C,cAAAA,OAAO,CAACG,IAAR,CAAa/C,GAAb;EACA;EACD;EACD;EACD;;EAED,aAAO4C,OAAO,CAAC3D,IAAR,CAAa,GAAb,CAAP;EACA;;EAED,QAAI,AAAiCrB,MAAM,CAACxB,OAA5C,EAAqD;EACpDuG,MAAAA,UAAU,CAACS,OAAX,GAAqBT,UAArB;EACA/E,MAAAA,cAAA,GAAiB+E,UAAjB;EACA,KAHD,MAGO,AAKA;EACNU,MAAAA,MAAM,CAACV,UAAP,GAAoBA,UAApB;EACA;EACD,GA5CA,GAAD;;;ECPe,SAASW,wBAAT,CAAkCC,IAAlC,EAAwC;EACtD,MAAIC,MAAJ;EACA,MAAIjH,MAAM,GAAGgH,IAAI,CAAChH,MAAlB;;EAEA,MAAI,OAAOA,MAAP,KAAkB,UAAtB,EAAkC;EACjC,QAAIA,MAAM,CAACkH,UAAX,EAAuB;EACtBD,MAAAA,MAAM,GAAGjH,MAAM,CAACkH,UAAhB;EACA,KAFD,MAEO;EACND,MAAAA,MAAM,GAAGjH,MAAM,CAAC,YAAD,CAAf;EACAA,MAAAA,MAAM,CAACkH,UAAP,GAAoBD,MAApB;EACA;EACD,GAPD,MAOO;EACNA,IAAAA,MAAM,GAAG,cAAT;EACA;;EAED,SAAOA,MAAP;EACA;;EChBD;AACA,EAEA,IAAID,IAAJ;;EAEA,IAAI,OAAOG,IAAP,KAAgB,WAApB,EAAiC;EAC/BH,EAAAA,IAAI,GAAGG,IAAP;EACD,CAFD,MAEO,IAAI,OAAOL,MAAP,KAAkB,WAAtB,EAAmC;EACxCE,EAAAA,IAAI,GAAGF,MAAP;EACD,CAFM,MAEA,IAAI,OAAOM,MAAP,KAAkB,WAAtB,EAAmC;EACxCJ,EAAAA,IAAI,GAAGI,MAAP;EACD,CAFM,MAEA,IAAI,OAAO/F,MAAP,KAAkB,WAAtB,EAAmC;EACxC2F,EAAAA,IAAI,GAAG3F,MAAP;EACD,CAFM,MAEA;EACL2F,EAAAA,IAAI,GAAGnD,QAAQ,CAAC,aAAD,CAAR,EAAP;EACD;;EAED,IAAIoD,MAAM,GAAGI,wBAAQ,CAACL,IAAD,CAArB;;ECfA;;;;;;;EAMA,IAAIM,YAAY,GAAG,SAASA,YAAT,GAAwB;EACzC,SAAOC,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC,EAAwC9E,KAAxC,CAA8C,EAA9C,EAAkDF,IAAlD,CAAuD,GAAvD,CAAP;EACD,CAFD;;EAIA,IAAIiF,WAAW,GAAG;EAChBC,EAAAA,IAAI,EAAE,iBAAiBN,YAAY,EADnB;EAEhBO,EAAAA,OAAO,EAAE,oBAAoBP,YAAY,EAFzB;EAGhBQ,EAAAA,oBAAoB,EAAE,SAASA,oBAAT,GAAgC;EACpD,WAAO,iCAAiCR,YAAY,EAApD;EACD;EALe,CAAlB;EAQA;;;;;EAIA,SAASS,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,MAAI,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,KAAK,IAAvC,EAA6C,OAAO,KAAP;EAC7C,MAAIC,KAAK,GAAGD,GAAZ;;EAEA,SAAOrI,MAAM,CAACuI,cAAP,CAAsBD,KAAtB,MAAiC,IAAxC,EAA8C;EAC5CA,IAAAA,KAAK,GAAGtI,MAAM,CAACuI,cAAP,CAAsBD,KAAtB,CAAR;EACD;;EAED,SAAOtI,MAAM,CAACuI,cAAP,CAAsBF,GAAtB,MAA+BC,KAAtC;EACD;EAED;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BA,SAASE,WAAT,CAAqBC,OAArB,EAA8BC,cAA9B,EAA8CC,QAA9C,EAAwD;EACtD,MAAIC,KAAJ;;EAEA,MAAI,OAAOF,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,QAAP,KAAoB,UAA5D,IAA0E,OAAOA,QAAP,KAAoB,UAApB,IAAkC,OAAO/E,SAAS,CAAC,CAAD,CAAhB,KAAwB,UAAxI,EAAoJ;EAClJ,UAAM,IAAIkB,KAAJ,CAAU,8DAA8D,8DAA9D,GAA+H,+BAAzI,CAAN;EACD;;EAED,MAAI,OAAO4D,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,QAAP,KAAoB,WAAhE,EAA6E;EAC3EA,IAAAA,QAAQ,GAAGD,cAAX;EACAA,IAAAA,cAAc,GAAGvG,SAAjB;EACD;;EAED,MAAI,OAAOwG,QAAP,KAAoB,WAAxB,EAAqC;EACnC,QAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;EAClC,YAAM,IAAI7D,KAAJ,CAAU,yCAAV,CAAN;EACD;;EAED,WAAO6D,QAAQ,CAACH,WAAD,CAAR,CAAsBC,OAAtB,EAA+BC,cAA/B,CAAP;EACD;;EAED,MAAI,OAAOD,OAAP,KAAmB,UAAvB,EAAmC;EACjC,UAAM,IAAI3D,KAAJ,CAAU,wCAAV,CAAN;EACD;;EAED,MAAI+D,cAAc,GAAGJ,OAArB;EACA,MAAIK,YAAY,GAAGJ,cAAnB;EACA,MAAIK,gBAAgB,GAAG,EAAvB;EACA,MAAIC,aAAa,GAAGD,gBAApB;EACA,MAAIE,aAAa,GAAG,KAApB;;EAEA,WAASC,4BAAT,GAAwC;EACtC,QAAIF,aAAa,KAAKD,gBAAtB,EAAwC;EACtCC,MAAAA,aAAa,GAAGD,gBAAgB,CAACI,KAAjB,EAAhB;EACD;EACF;EACD;;;;;;;EAOA,WAASC,QAAT,GAAoB;EAClB,QAAIH,aAAJ,EAAmB;EACjB,YAAM,IAAInE,KAAJ,CAAU,uEAAuE,6DAAvE,GAAuI,yEAAjJ,CAAN;EACD;;EAED,WAAOgE,YAAP;EACD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;EAyBA,WAASO,SAAT,CAAmBC,QAAnB,EAA6B;EAC3B,QAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;EAClC,YAAM,IAAIxE,KAAJ,CAAU,yCAAV,CAAN;EACD;;EAED,QAAImE,aAAJ,EAAmB;EACjB,YAAM,IAAInE,KAAJ,CAAU,wEAAwE,sFAAxE,GAAiK,oFAAjK,GAAwP,oFAAlQ,CAAN;EACD;;EAED,QAAIyE,YAAY,GAAG,IAAnB;EACAL,IAAAA,4BAA4B;EAC5BF,IAAAA,aAAa,CAACnC,IAAd,CAAmByC,QAAnB;EACA,WAAO,SAASE,WAAT,GAAuB;EAC5B,UAAI,CAACD,YAAL,EAAmB;EACjB;EACD;;EAED,UAAIN,aAAJ,EAAmB;EACjB,cAAM,IAAInE,KAAJ,CAAU,mFAAmF,oFAA7F,CAAN;EACD;;EAEDyE,MAAAA,YAAY,GAAG,KAAf;EACAL,MAAAA,4BAA4B;EAC5B,UAAIO,KAAK,GAAGT,aAAa,CAACU,OAAd,CAAsBJ,QAAtB,CAAZ;EACAN,MAAAA,aAAa,CAACW,MAAd,CAAqBF,KAArB,EAA4B,CAA5B;EACD,KAbD;EAcD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BA,WAASG,QAAT,CAAkBC,MAAlB,EAA0B;EACxB,QAAI,CAACzB,aAAa,CAACyB,MAAD,CAAlB,EAA4B;EAC1B,YAAM,IAAI/E,KAAJ,CAAU,oCAAoC,0CAA9C,CAAN;EACD;;EAED,QAAI,OAAO+E,MAAM,CAACrI,IAAd,KAAuB,WAA3B,EAAwC;EACtC,YAAM,IAAIsD,KAAJ,CAAU,wDAAwD,iCAAlE,CAAN;EACD;;EAED,QAAImE,aAAJ,EAAmB;EACjB,YAAM,IAAInE,KAAJ,CAAU,oCAAV,CAAN;EACD;;EAED,QAAI;EACFmE,MAAAA,aAAa,GAAG,IAAhB;EACAH,MAAAA,YAAY,GAAGD,cAAc,CAACC,YAAD,EAAee,MAAf,CAA7B;EACD,KAHD,SAGU;EACRZ,MAAAA,aAAa,GAAG,KAAhB;EACD;;EAED,QAAIa,SAAS,GAAGf,gBAAgB,GAAGC,aAAnC;;EAEA,SAAK,IAAIrG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmH,SAAS,CAACjG,MAA9B,EAAsClB,CAAC,EAAvC,EAA2C;EACzC,UAAI2G,QAAQ,GAAGQ,SAAS,CAACnH,CAAD,CAAxB;EACA2G,MAAAA,QAAQ;EACT;;EAED,WAAOO,MAAP;EACD;EACD;;;;;;;;;;;;EAYA,WAASE,cAAT,CAAwBC,WAAxB,EAAqC;EACnC,QAAI,OAAOA,WAAP,KAAuB,UAA3B,EAAuC;EACrC,YAAM,IAAIlF,KAAJ,CAAU,4CAAV,CAAN;EACD;;EAED+D,IAAAA,cAAc,GAAGmB,WAAjB;EACAJ,IAAAA,QAAQ,CAAC;EACPpI,MAAAA,IAAI,EAAEwG,WAAW,CAACE;EADX,KAAD,CAAR;EAGD;EACD;;;;;;;;EAQA,WAASX,UAAT,GAAsB;EACpB,QAAI0C,IAAJ;;EAEA,QAAIC,cAAc,GAAGb,SAArB;EACA,WAAOY,IAAI,GAAG;EACZ;;;;;;;;EAQAZ,MAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBc,QAAnB,EAA6B;EACtC,YAAI,OAAOA,QAAP,KAAoB,QAApB,IAAgCA,QAAQ,KAAK,IAAjD,EAAuD;EACrD,gBAAM,IAAI/H,SAAJ,CAAc,wCAAd,CAAN;EACD;;EAED,iBAASgI,YAAT,GAAwB;EACtB,cAAID,QAAQ,CAACE,IAAb,EAAmB;EACjBF,YAAAA,QAAQ,CAACE,IAAT,CAAcjB,QAAQ,EAAtB;EACD;EACF;;EAEDgB,QAAAA,YAAY;EACZ,YAAIZ,WAAW,GAAGU,cAAc,CAACE,YAAD,CAAhC;EACA,eAAO;EACLZ,UAAAA,WAAW,EAAEA;EADR,SAAP;EAGD;EAzBW,KAAP,EA0BJS,IAAI,CAACK,MAAD,CAAJ,GAAqB,YAAY;EAClC,aAAO,IAAP;EACD,KA5BM,EA4BJL,IA5BH;EA6BD,GA5NqD;EA6NtD;EACA;;;EAGAL,EAAAA,QAAQ,CAAC;EACPpI,IAAAA,IAAI,EAAEwG,WAAW,CAACC;EADX,GAAD,CAAR;EAGA,SAAOW,KAAK,GAAG;EACbgB,IAAAA,QAAQ,EAAEA,QADG;EAEbP,IAAAA,SAAS,EAAEA,SAFE;EAGbD,IAAAA,QAAQ,EAAEA,QAHG;EAIbW,IAAAA,cAAc,EAAEA;EAJH,GAAR,EAKJnB,KAAK,CAAC0B,MAAD,CAAL,GAAsB/C,UALlB,EAK8BqB,KALrC;EAMD;;ECvSM,IAAM2B,UAAU,GAAG,4BAAnB;AACP,EAAO,IAAMC,QAAQ,GAAG,0BAAjB;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,gBAAgB,GAAG,kCAAzB;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,IAAI,GAAG,sBAAb;AACP,EAAO,IAAMC,KAAK,GAAG,uBAAd;AACP,EAAO,IAAMC,GAAG,GAAG,qBAAZ;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,MAAM,GAAG,wBAAf;AACP,EAAO,IAAMC,YAAY,GAAG,8BAArB;AACP,EAAO,IAAMC,WAAW,GAAG,6BAApB;AACP,EAAO,IAAMC,eAAe,GAAG,iCAAxB;AACP,EAAO,IAAMC,WAAW,GAAG,6BAApB;AACP,EAAO,IAAMC,aAAa,GAAG,+BAAtB;AACP,EAAO,IAAMC,eAAe,GAAG,iCAAxB;AACP,EAAO,IAAMC,WAAW,GAAG,6BAApB;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,KAAK,GAAG,uBAAd;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,gBAAgB,GAAG,kCAAzB;AACP,EAAO,IAAMC,WAAW,GAAG,6BAApB;AACP,EAAO,IAAMC,MAAM,GAAG,wBAAf;AACP,EAAO,IAAMC,KAAK,GAAG,uBAAd;AACP,EAAO,IAAMC,mBAAmB,GAAG,qCAA5B;AAEP,EAAO,SAASC,eAAT,CAAyBC,UAAzB,EAAqC;EAC1C,SAAO;EACL1K,IAAAA,IAAI,EAAE+I,UADD;EAEL2B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,aAAT,CAAuBD,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEgJ,QADD;EAEL0B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,aAAT,CAAuBF,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEiJ,OADD;EAELyB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,oBAAT,CAA8BH,UAA9B,EAA0C;EAC/C,SAAO;EACL1K,IAAAA,IAAI,EAAEkJ,gBADD;EAELwB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASI,aAAT,CAAuBJ,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEmJ,OADD;EAELuB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASK,UAAT,CAAoBL,UAApB,EAAgC;EACrC,SAAO;EACL1K,IAAAA,IAAI,EAAEoJ,IADD;EAELsB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASM,WAAT,CAAqBN,UAArB,EAAiC;EACtC,SAAO;EACL1K,IAAAA,IAAI,EAAEqJ,KADD;EAELqB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASO,SAAT,CAAmBP,UAAnB,EAA+B;EACpC,SAAO;EACL1K,IAAAA,IAAI,EAAEsJ,GADD;EAELoB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASQ,aAAT,CAAuBR,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEuJ,OADD;EAELmB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASS,YAAT,CAAsBT,UAAtB,EAAkC;EACvC,SAAO;EACL1K,IAAAA,IAAI,EAAEwJ,MADD;EAELkB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASU,oBAAT,CAA8BV,UAA9B,EAA0C;EAC/C,SAAO;EACL1K,IAAAA,IAAI,EAAE2J,eADD;EAELe,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASW,gBAAT,CAA0BX,UAA1B,EAAsC;EAC3C,SAAO;EACL1K,IAAAA,IAAI,EAAE4J,WADD;EAELc,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASY,kBAAT,CAA4BZ,UAA5B,EAAwC;EAC7C,SAAO;EACL1K,IAAAA,IAAI,EAAE6J,aADD;EAELa,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASa,oBAAT,CAA8Bb,UAA9B,EAA0C;EAC/C,SAAO;EACL1K,IAAAA,IAAI,EAAE8J,eADD;EAELY,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASc,gBAAT,CAA0Bd,UAA1B,EAAsC;EAC3C,SAAO;EACL1K,IAAAA,IAAI,EAAE+J,WADD;EAELW,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASe,aAAT,CAAuBf,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEgK,OADD;EAELU,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASgB,WAAT,CAAqBhB,UAArB,EAAiC;EACtC,SAAO;EACL1K,IAAAA,IAAI,EAAEiK,KADD;EAELS,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASiB,aAAT,CAAuBjB,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEkK,OADD;EAELQ,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASkB,aAAT,CAAuBlB,UAAvB,EAAmC;EACxC,SAAO;EACL1K,IAAAA,IAAI,EAAEmK,OADD;EAELO,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASmB,oBAAT,CAA8BnB,UAA9B,EAA0C;EAC/C,SAAO;EACL1K,IAAAA,IAAI,EAAEoK,gBADD;EAELM,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASoB,gBAAT,CAA0BpB,UAA1B,EAAsC;EAC3C,SAAO;EACL1K,IAAAA,IAAI,EAAEqK,WADD;EAELK,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASqB,YAAT,CAAsBrB,UAAtB,EAAkC;EACvC,SAAO;EACL1K,IAAAA,IAAI,EAAEsK,MADD;EAELI,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASsB,WAAT,CAAqBtB,UAArB,EAAiC;EACtC,SAAO;EACL1K,IAAAA,IAAI,EAAEuK,KADD;EAELG,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASuB,iBAAT,CAA2BC,IAA3B,EAAiC;EACtC,SAAO;EACLlM,IAAAA,IAAI,EAAEyJ,YADD;EAELyC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,gBAAT,CAA0BD,IAA1B,EAAgC;EACrC,SAAO;EACLlM,IAAAA,IAAI,EAAE0J,WADD;EAELwC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,iBAAT,CAA2BC,SAA3B,EAAsC;EAC3C,SAAO;EACLrM,IAAAA,IAAI,EAAEwK,mBADD;EAEL6B,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC/MKC;;;;;;;WACJC,UAAA,iBAAQC,GAAR,EAAa;EACX,QAAIA,GAAG,CAACC,iBAAR,EAA2B;EACzBD,MAAAA,GAAG,CAACC,iBAAJ;EACD,KAFD,MAEO,IAAID,GAAG,CAACE,uBAAR,EAAiC;EACtCF,MAAAA,GAAG,CAACE,uBAAJ;EACD,KAFM,MAEA,IAAIF,GAAG,CAACG,oBAAR,EAA8B;EACnCH,MAAAA,GAAG,CAACG,oBAAJ;EACD,KAFM,MAEA,IAAIH,GAAG,CAACI,mBAAR,EAA6B;EAClCJ,MAAAA,GAAG,CAACI,mBAAJ;EACD;EACF;;WAEDC,OAAA,gBAAO;EACL,QAAIC,QAAQ,CAACC,cAAb,EAA6B;EAC3BD,MAAAA,QAAQ,CAACC,cAAT;EACD,KAFD,MAEO,IAAID,QAAQ,CAACE,oBAAb,EAAmC;EACxCF,MAAAA,QAAQ,CAACE,oBAAT;EACD,KAFM,MAEA,IAAIF,QAAQ,CAACG,mBAAb,EAAkC;EACvCH,MAAAA,QAAQ,CAACG,mBAAT;EACD,KAFM,MAEA,IAAIH,QAAQ,CAACI,gBAAb,EAA+B;EACpCJ,MAAAA,QAAQ,CAACI,gBAAT;EACD;EACF;;WAoBDC,mBAAA,0BAAiBC,OAAjB,EAA0B;EACxBN,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,kBAA1B,EAA8CC,OAA9C;EACAN,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,wBAA1B,EAAoDC,OAApD;EACAN,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,qBAA1B,EAAiDC,OAAjD;EACAN,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,oBAA1B,EAAgDC,OAAhD;EACD;;WAEDC,sBAAA,6BAAoBD,OAApB,EAA6B;EAC3BN,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,kBAA7B,EAAiDD,OAAjD;EACAN,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,wBAA7B,EAAuDD,OAAvD;EACAN,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,qBAA7B,EAAoDD,OAApD;EACAN,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,oBAA7B,EAAmDD,OAAnD;EACD;;;;0BA9BkB;EACjB,aACEN,QAAQ,CAACQ,iBAAT,IACGR,QAAQ,CAACS,uBADZ,IAEGT,QAAQ,CAACU,oBAFZ,IAGGV,QAAQ,CAACW,mBAJd;EAMD;;;0BAEa;EACZ,aACEX,QAAQ,CAACY,iBAAT,IACGZ,QAAQ,CAACa,uBADZ,IAEGb,QAAQ,CAACc,oBAFZ,IAGGd,QAAQ,CAACe,mBAJd;EAMD;;;;;;AAiBH,mBAAe,IAAIvB,UAAJ,EAAf;;ECxDO,IAAMwB,OAAO,GAAG,yBAAhB;AACP,EAAO,IAAMC,iBAAiB,GAAG,mCAA1B;AACP,EAAO,IAAMC,eAAe,GAAG,iCAAxB;AACP,EAAO,IAAMC,aAAa,GAAG,+BAAtB;AAEP,EAAO,SAASC,sBAAT,CAAgCC,YAAhC,EAA8C;EACnD,SAAO;EACLnO,IAAAA,IAAI,EAAE+N,iBADD;EAELI,IAAAA,YAAY,EAAZA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,QAAT,CAAkBC,QAAlB,EAA4B;EACjC,SAAO;EACLrO,IAAAA,IAAI,EAAEgO,eADD;EAELK,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,YAAT,CAAsBD,QAAtB,EAAgC;EACrC,SAAO;EACLrO,IAAAA,IAAI,EAAEiO,aADD;EAELI,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,IAAT,CACLC,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,MADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWF,IAAX;EAEA,SAAO;EACLvO,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,KAAT,CACLF,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,OADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWC,KAAX;EAEA,SAAO;EACL1O,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,UAAT,CACLH,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,aADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWE,UAAX;EAEA,SAAO;EACL3O,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASI,IAAT,CACL1C,IADK,EAELsC,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,MADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWG,IAAX,CAAgB1C,IAAhB;EAEA,SAAO;EACLlM,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASK,OAAT,CACLC,OADK,EAELN,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,eAAayG,OADT;EAEV/M,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWI,OAAX,CAAmBC,OAAnB;EAEA,SAAO;EACL9O,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASO,MAAT,CACLD,OADK,EAELN,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,cAAYyG,OADR;EAEV/M,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWM,MAAX,CAAkBD,OAAlB;EAEA,SAAO;EACL9O,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASQ,UAAT,CACLC,IADK,EAELT,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,aADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EAEA,SAAO;EACLjP,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASW,YAAT,CACLC,MADK,EAELZ,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAE,eADE;EAEVtG,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,MAAI9B,CAAC,GAAGmP,MAAR;;EACA,MAAIA,MAAM,GAAG,CAAb,EAAgB;EACdnP,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,MAAImP,MAAM,GAAG,CAAb,EAAgB;EACdnP,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,OAAKwO,KAAL,CAAWW,MAAX,GAAoBnP,CAApB;EAEA,SAAO;EACLD,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASa,IAAT,CACLC,KADK,EAELd,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVnG,MAAAA,MAAM,EAAEiH,KAAK,GAAG,OAAH,GAAa,SADhB;EAEVvN,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAK0M,KAAL,CAAWa,KAAX,GAAmBA,KAAnB;EAEA,SAAO;EACLtP,IAAAA,IAAI,EAAE8N,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASe,gBAAT,CAA0BC,MAA1B,EAAkC;EACvC,MAAIC,UAAU,CAACC,OAAf,EAAwB;EACtB,QAAID,UAAU,CAACtB,YAAf,EAA6B;EAC3BsB,MAAAA,UAAU,CAAC5C,IAAX;EACD,KAFD,MAEO;EACL4C,MAAAA,UAAU,CAAClD,OAAX,CAAmB,KAAKoD,WAAxB;EACD;;EACD,WAAO;EACL3P,MAAAA,IAAI,EAAE8N,OADD;EAELU,MAAAA,SAAS,EAAE;EACTnG,QAAAA,MAAM,EAAE,mBADC;EAETtG,QAAAA,MAAM,EAAE;EAFC;EAFN,KAAP;EAOD;;EAED,SAAO;EACL/B,IAAAA,IAAI,EAAE+N,iBADD;EAELI,IAAAA,YAAY,EAAE,CAACqB,MAAM,CAACrB;EAFjB,GAAP;EAID;;;;;;;;;;;;;;;;;;;;;;EC5JD,IAAMyB,YAAY,GAAG;EACnBC,EAAAA,UAAU,EAAE,IADO;EAEnBC,EAAAA,QAAQ,EAAE,CAFS;EAGnBC,EAAAA,WAAW,EAAE,CAHM;EAInBC,EAAAA,WAAW,EAAE,CAJM;EAKnBC,EAAAA,QAAQ,EAAE,IALS;EAMnBC,EAAAA,OAAO,EAAE,KANU;EAOnBC,EAAAA,OAAO,EAAE,KAPU;EAQnBC,EAAAA,MAAM,EAAE,IARW;EASnBC,EAAAA,UAAU,EAAE,KATO;EAUnBC,EAAAA,KAAK,EAAE,KAVY;EAWnBpB,EAAAA,YAAY,EAAE,CAXK;EAYnBI,EAAAA,KAAK,EAAE,KAZY;EAanBF,EAAAA,MAAM,EAAE,CAbW;EAcnBmB,EAAAA,UAAU,EAAE,CAdO;EAenBC,EAAAA,YAAY,EAAE,CAfK;EAgBnBC,EAAAA,UAAU,EAAE,CAhBO;EAiBnBC,EAAAA,WAAW,EAAE,CAjBM;EAkBnBC,EAAAA,UAAU,EAAE,KAlBO;EAmBnBC,EAAAA,YAAY,EAAE,IAnBK;EAoBnBC,EAAAA,QAAQ,EAAE,KApBS;EAqBnB1C,EAAAA,YAAY,EAAE,KArBK;EAsBnB2C,EAAAA,eAAe,EAAE;EAtBE,CAArB;AAyBA,EAAe,SAAStB,MAAT,CAAgBuB,KAAhB,EAAsC1I,MAAtC,EAA8C;EAAA,MAA9B0I,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,YAAsB;EAAA;;EAC3D,UAAQvH,MAAM,CAACrI,IAAf;EACE,SAAKiO,aAAL;EACE,0BACK8C,KADL;EAEEH,QAAAA,YAAY,EAAEvI,MAAM,CAACgG;EAFvB;;EAIF,SAAKL,eAAL;EACE,0BACK+C,KADL;EAEEF,QAAAA,QAAQ,EAAExI,MAAM,CAACgG;EAFnB;;EAIF,SAAKN,iBAAL;EACE,0BACKgD,KADL;EAEE5C,QAAAA,YAAY,EAAE,CAAC,CAAC9F,MAAM,CAAC8F;EAFzB;;EAIF,SAAK1E,YAAL;EACE,0BACKsH,KADL;EAEEf,QAAAA,WAAW,EAAE3H,MAAM,CAAC6D;EAFtB;;EAIF,SAAKxC,WAAL;EACE,0BACKqH,KADL;EAEEf,QAAAA,WAAW,EAAE;EAFf;;EAIF,SAAKjH,UAAL;EACE,0BACKgI,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEiG,QAAAA,UAAU,EAAE,KAHd;EAIEL,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAKtH,QAAL;EACE,0BACK+H,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEwF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKjH,OAAL;EACE,0BACK8H,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEwF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKhH,gBAAL;EACA,SAAKC,OAAL;EACE,0BACK4H,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEwF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK9G,IAAL;EACE,0BACK2H,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGE4F,QAAAA,KAAK,EAAE,KAHT;EAIEF,QAAAA,MAAM,EAAE,KAJV;EAKEC,QAAAA,UAAU,EAAE,KALd;EAMEH,QAAAA,OAAO,EAAE,KANX;EAOES,QAAAA,UAAU,EAAE;EAPd;;EASF,SAAKtH,KAAL;EACE,0BACK0H,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGE0F,QAAAA,MAAM,EAAE;EAHV;;EAKF,SAAK9G,GAAL;EACE,0BACKyH,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGE4F,QAAAA,KAAK,EAAE;EAHT;;EAKF,SAAK/G,OAAL;EACE,0BACKwH,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK3G,MAAL;EACE,0BACKuH,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK5F,KAAL;EACE,0BACKwG,KADL,EAEK1I,MAAM,CAACqC,UAFZ;EAGEsG,QAAAA,KAAK,EAAE,eAHT;EAIEV,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAK3G,eAAL;EACA,SAAKC,WAAL;EACA,SAAKC,aAAL;EACA,SAAKC,eAAL;EACA,SAAKC,WAAL;EACA,SAAKC,OAAL;EACA,SAAKC,KAAL;EACA,SAAKC,OAAL;EACA,SAAKC,OAAL;EACA,SAAKC,gBAAL;EACA,SAAKC,WAAL;EACA,SAAKC,MAAL;EACE,0BACKyG,KADL,EAEK1I,MAAM,CAACqC,UAFZ;;EAIF,SAAKF,mBAAL;EACE,0BACKuG,KADL;EAEED,QAAAA,eAAe,EAAEzI,MAAM,CAACgE;EAF1B;;EAIF;EACE,aAAO0E,KAAP;EAnHJ;EAqHD;;EC/KD,IAAMnB,cAAY,GAAG;EACnBqB,EAAAA,KAAK,EAAE,CADY;EAEnBzC,EAAAA,SAAS,EAAE;EACTnG,IAAAA,MAAM,EAAE,EADC;EAETtG,IAAAA,MAAM,EAAE;EAFC;EAFQ,CAArB;AAQA,EAAe,SAASyM,SAAT,CAAmBuC,KAAnB,EAAyC1I,MAAzC,EAAiD;EAAA,MAA9B0I,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,cAAsB;EAAA;;EAC9D,UAAQvH,MAAM,CAACrI,IAAf;EACE,SAAK8N,OAAL;EACE,0BACKiD,KADL;EAEEE,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAAN,GAAc,CAFvB;EAGEzC,QAAAA,SAAS,eACJuC,KAAK,CAACvC,SADF,EAEJnG,MAAM,CAACmG,SAFH;EAHX;;EAQF;EACE,aAAOuC,KAAP;EAXJ;EAaD;;ECrBc,kBAAUA,KAAV,EAAsB1I,MAAtB,EAA8B;EAAA,MAApB0I,KAAoB;EAApBA,IAAAA,KAAoB,GAAZ,EAAY;EAAA;;EAC3C,SAAO;EACLvB,IAAAA,MAAM,EAAEA,MAAM,CAACuB,KAAK,CAACvB,MAAP,EAAenH,MAAf,CADT;EAELmG,IAAAA,SAAS,EAAEA,SAAS,CAACuC,KAAK,CAACvC,SAAP,EAAkBnG,MAAlB;EAFf,GAAP;EAID;AAED,MAAa6I,aAAa,GAAG1B,MAAtB;AACP,MAAa2B,gBAAgB,GAAG3C,SAAzB;;MCNc4C;;;EACnB,mBAAYC,KAAZ,EAAmB;EACjB,SAAKA,KAAL,GAAaA,KAAK,IAAIrK,WAAW,CAACC,OAAD,CAAjC;EAEA,SAAKwH,KAAL,GAAa,IAAb;EACA,SAAKkB,WAAL,GAAmB,IAAnB;EACD;;;;WAED2B,aAAA,sBAAa;EACX,QAAMC,OAAO,GAAG,IAAhB;EADW,QAEHnJ,QAFG,GAEU,KAAKiJ,KAFf,CAEHjJ,QAFG;;EAGX,QAAMoJ,OAAO,gBACRC,aADQ,EAERC,YAFQ,CAAb;;EAKA,aAASC,iBAAT,CAA2BC,aAA3B,EAA0C;EACxC,aAAO,SAASC,UAAT,GAAsB;EAC3B;EACA,YAAMxJ,MAAM,GAAGuJ,aAAa,CAACnM,KAAd,CAAoB8L,OAApB,EAA6BnP,SAA7B,CAAf;;EACA,YAAI,OAAOiG,MAAP,KAAkB,WAAtB,EAAmC;EACjCD,UAAAA,QAAQ,CAACC,MAAD,CAAR;EACD;EACF,OAND;EAOD;;EAED,WAAO7J,MAAM,CAACoD,IAAP,CAAY4P,OAAZ,EACJM,MADI,CACG,UAAAxP,GAAG;EAAA,aAAI,OAAOkP,OAAO,CAAClP,GAAD,CAAd,KAAwB,UAA5B;EAAA,KADN,EAEJyP,MAFI,CAEG,UAACC,YAAD,EAAe1P,GAAf,EAAuB;EAC7B0P,MAAAA,YAAY,CAAC1P,GAAD,CAAZ,GAAoBqP,iBAAiB,CAACH,OAAO,CAAClP,GAAD,CAAR,CAArC;EACA,aAAO0P,YAAP;EACD,KALI,EAKF,EALE,CAAP;EAMD;;WAEDpK,WAAA,oBAAW;EACT,WAAO,KAAKyJ,KAAL,CAAWzJ,QAAX,EAAP;EACD;;;WAGDqK,yBAAA,gCAAuBnK,QAAvB,EAAiCF,QAAjC,EAA2C;EACzC,QAAI,CAACA,QAAL,EAAe;EACbA,MAAAA,QAAQ,GAAG,KAAKA,QAAL,CAAcjF,IAAd,CAAmB,IAAnB,CAAX;EACD;;EAED,QAAIuP,SAAS,GAAGtK,QAAQ,EAAxB;;EAEA,QAAMuK,YAAY,GAAG,SAAfA,YAAe,GAAM;EACzB,UAAMpB,KAAK,GAAGnJ,QAAQ,EAAtB;;EACA,UAAImJ,KAAK,KAAKmB,SAAd,EAAyB;EACvB;EACD;;EACD,UAAME,aAAa,GAAGF,SAAtB;EACAA,MAAAA,SAAS,GAAGnB,KAAZ;EACAjJ,MAAAA,QAAQ,CAACiJ,KAAD,EAAQqB,aAAR,CAAR;EACD,KARD;;EAUA,WAAO,KAAKf,KAAL,CAAWxJ,SAAX,CAAqBsK,YAArB,CAAP;EACD;;;WAGDE,kCAAA,yCAAgCvK,QAAhC,EAA0C;EAAA;;EACxC,WAAO,KAAKmK,sBAAL,CACLnK,QADK,EAEL;EAAA,aAAM,KAAI,CAACF,QAAL,GAAgB4G,SAAtB;EAAA,KAFK,CAAP;EAID;;;WAGD8D,+BAAA,sCAA6BxK,QAA7B,EAAuC;EAAA;;EACrC,WAAO,KAAKmK,sBAAL,CAA4BnK,QAA5B,EAAsC;EAAA,aAAM,MAAI,CAACF,QAAL,GAAgB4H,MAAtB;EAAA,KAAtC,CAAP;EACD;;;;;ECvEH,IAAM+C,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhByO,EAAAA,QAAQ,EAAE1N,SAAS,CAACd,MAHJ;EAIhByO,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM0O,YAAY,GAAG;EACnBF,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIqBG;;;;;EACnB,yBAAY3P,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDmQ,oBAAA,6BAAoB;;WAEpBD,cAAA,uBAAc;EAAA,QACJrB,OADI,GACQ,KAAKxO,KADb,CACJwO,OADI;EAEZA,IAAAA,OAAO,CAACjD,IAAR;EACD;;WAEDwE,SAAA,kBAAS;EAAA,sBACsB,KAAK/P,KAD3B;EAAA,QACCwM,MADD,eACCA,MADD;EAAA,QACSgD,QADT,eACSA,QADT;EAEP,WACEQ;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,wBADmB,EAEnB,iCAFmB,uCAGgBuN,QAHhB,EAInB,KAAKxP,KAAL,CAAWyP,SAJQ,EAKnB;EACE,gCAAwBjD,MAAM,CAACmB,UAAP,IAAqB,CAACnB,MAAM,CAACK;EADvD,OALmB,CADvB;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,mBAAU,QAXZ;EAYE,MAAA,QAAQ,EAAC,GAZX;EAaE,MAAA,OAAO,EAAE,KAAKgD;EAbhB,OAeEG;EAAM,MAAA,SAAS,EAAC;EAAhB,oBAfF,CADF;EAmBD;;;IAnCwCC;EAsC3CN,aAAa,CAACJ,SAAd,GAA0BA,WAA1B;EACAI,aAAa,CAACD,YAAd,GAA6BA,YAA7B;EACAC,aAAa,CAACO,WAAd,GAA4B,eAA5B;;ECnDA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAASmP,cAAT,OAA+C;EAAA,MAArB3D,MAAqB,QAArBA,MAAqB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;;EAC5D,MAAIjD,MAAM,CAACwB,KAAX,EAAkB;EAChB,WAAO,IAAP;EACD;;EACD,SACEgC;EAAK,IAAA,SAAS,EAAE/N,UAAU,CAAC,iCAAD,EAAoCwN,SAApC;EAA1B,IADF;EAGD;EAEDU,cAAc,CAACZ,SAAf,GAA2BA,WAA3B;EACAY,cAAc,CAACD,WAAf,GAA6B,gBAA7B;;ECfA,IAAMX,WAAS,GAAG;EAChBa,EAAAA,MAAM,EAAEtO,SAAS,CAACd,MADF;EAEhBwL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAHH;EAIhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAJL,CAAlB;;EAOA,SAASqP,WAAT,OAEG;EAAA,MADDD,MACC,QADDA,MACC;EAAA,MADO5D,MACP,QADOA,MACP;EAAA,MADegC,OACf,QADeA,OACf;EAAA,MADwBiB,SACxB,QADwBA,SACxB;;EACD,MAAI,CAACW,MAAD,IAAW5D,MAAM,CAACmB,UAAtB,EAAkC;EAChC,WAAO,IAAP;EACD;;EAED,SACEqC;EACE,IAAA,SAAS,EAAE/N,UAAU,CAAC,wBAAD,EAA2BwN,SAA3B,CADvB;EAEE,IAAA,KAAK,EAAE;EACLa,MAAAA,eAAe,aAAUF,MAAV;EADV,KAFT;EAKE,IAAA,OAAO,EAAE,mBAAM;EACb,UAAI5D,MAAM,CAACY,MAAX,EAAmB;EACjBoB,QAAAA,OAAO,CAACjD,IAAR;EACD;EACF;EATH,IADF;EAaD;;EAED8E,WAAW,CAACd,SAAZ,GAAwBA,WAAxB;EACAc,WAAW,CAACH,WAAZ,GAA0B,aAA1B;;EC/BA;;EACA,IAAMK,KAAK,GAAGC,MAAM,CAACD,KAAP,IAAiB,UAAA5U,KAAK;EAAA,SAAIA,KAAK,KAAKA,KAAd;EAAA,CAApC;EAEA;;;;;;;;;;;;;;;AAaA,EAAO,SAAS8U,UAAT,CAAoB3E,OAApB,EAAiC4E,KAAjC,EAAkD;EAAA,MAA9B5E,OAA8B;EAA9BA,IAAAA,OAA8B,GAApB,CAAoB;EAAA;;EAAA,MAAjB4E,KAAiB;EAAjBA,IAAAA,KAAiB,GAAT5E,OAAS;EAAA;;EACvD,MAAI3M,CAAC,GAAGiE,IAAI,CAACuN,KAAL,CAAW7E,OAAO,GAAG,EAArB,CAAR;EACA,MAAIvP,CAAC,GAAG6G,IAAI,CAACuN,KAAL,CAAY7E,OAAO,GAAG,EAAX,GAAiB,EAA5B,CAAR;EACA,MAAI1P,CAAC,GAAGgH,IAAI,CAACuN,KAAL,CAAW7E,OAAO,GAAG,IAArB,CAAR;EACA,MAAM8E,EAAE,GAAGxN,IAAI,CAACuN,KAAL,CAAYD,KAAK,GAAG,EAAT,GAAe,EAA1B,CAAX;EACA,MAAMG,EAAE,GAAGzN,IAAI,CAACuN,KAAL,CAAWD,KAAK,GAAG,IAAnB,CAAX,CALuD;;EAQvD,MAAIH,KAAK,CAACzE,OAAD,CAAL,IAAkBA,OAAO,KAAKgF,QAAlC,EAA4C;EAC1C;EACA;EACA1U,IAAAA,CAAC,GAAG,GAAJ;EACAG,IAAAA,CAAC,GAAG,GAAJ;EACA4C,IAAAA,CAAC,GAAG,GAAJ;EACD,GAdsD;;;EAiBvD/C,EAAAA,CAAC,GAAGA,CAAC,GAAG,CAAJ,IAASyU,EAAE,GAAG,CAAd,GAAqBzU,CAArB,SAA4B,EAAhC,CAjBuD;EAoBvD;;EACAG,EAAAA,CAAC,IAAM,CAACH,CAAC,IAAIwU,EAAE,IAAI,EAAZ,KAAmBrU,CAAC,GAAG,EAAvB,SAAgCA,CAAhC,GAAsCA,CAA5C,OAAD,CArBuD;;EAwBvD4C,EAAAA,CAAC,GAAGA,CAAC,GAAG,EAAJ,SAAaA,CAAb,GAAmBA,CAAvB;EAEA,SAAO/C,CAAC,GAAGG,CAAJ,GAAQ4C,CAAf;EACD;EAGD;EACA;EACA;;AACA,EAAO,SAAS4R,YAAT,CAAsBhV,CAAtB,EAAyB;EAC9B,MAAIA,CAAC,CAACiE,KAAF,IAAWjE,CAAC,CAACiE,KAAF,CAAQ+Q,YAAvB,EAAqC;EACnC,WAAO,IAAP;EACD;;EACD,SAAOhV,CAAC,CAACiB,IAAF,KAAW,QAAX,IAAuBjB,CAAC,CAACiB,IAAF,KAAW,OAAzC;EACD;;EAED,IAAMgU,IAAI,GAAG,SAAPA,IAAO,CAACC,QAAD,EAAWpQ,IAAX;EAAA,SAAoBoQ,QAAQ,CAACnC,MAAT,CAAgBjO,IAAhB,EAAsB,CAAtB,CAApB;EAAA,CAAb;;;EAGA,IAAMqQ,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD,EAAaC,UAAb,EAA4B;EAC9C,MAAMC,KAAK,GAAGF,UAAU,CAACnU,IAAzB;EACA,MAAMsU,KAAK,GAAGF,UAAU,CAACpU,IAAzB;;EAEA,MAAI,OAAOqU,KAAP,KAAiB,QAAjB,IAA6B,OAAOC,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,WAAOD,KAAK,KAAKC,KAAjB;EACD;;EAED,MAAI,OAAOD,KAAP,KAAiB,UAAjB,IAA+B,OAAOC,KAAP,KAAiB,UAApD,EAAgE;EAC9D,WAAOD,KAAK,CAACnB,WAAN,KAAsBoB,KAAK,CAACpB,WAAnC;EACD;;EAED,SAAO,KAAP;EACD,CAbD;EAgBA;EACA;;;AACA,EAAO,SAASqB,oBAAT,CACLC,eADK,EAELC,SAFK,EAGLC,YAHK,EAILC,YAJK,EAKL;EAAA,MADAA,YACA;EADAA,IAAAA,YACA,GADe,CACf;EAAA;;EACA,MAAMC,QAAQ,GAAG5B,cAAK,CAAC6B,QAAN,CAAeC,OAAf,CAAuBL,SAAvB,CAAjB;;EADA,MAEQM,KAFR,GAEkCL,YAFlC,CAEQK,KAFR;EAAA,MAEkBC,WAFlB,iCAEkCN,YAFlC;;;EAGA,SAAOE,QAAQ,CACZ9C,MADI,CACG,UAAA7S,CAAC;EAAA,WAAI,CAACA,CAAC,CAAC+D,KAAF,CAAQiS,QAAb;EAAA,GADJ;EAAA,GAEJC,MAFI,CAGHV,eAAe,CAAC1C,MAAhB,CACE,UAAA/S,CAAC;EAAA,WAAI,CAACiV,IAAI,CAACY,QAAD,EAAW,UAAAO,SAAS;EAAA,aAAIjB,WAAW,CAACiB,SAAD,EAAYpW,CAAZ,CAAf;EAAA,KAApB,CAAT;EAAA,GADH,CAHG,EAOJuC,GAPI,CAOA,UAAC8C,OAAD,EAAa;EAChB,QAAMgR,gBAAgB,GAAGpB,IAAI,CAACQ,eAAD,EAAkB,UAAAzV,CAAC;EAAA,aAAImV,WAAW,CAACnV,CAAD,EAAIqF,OAAJ,CAAf;EAAA,KAAnB,CAA7B;EAEA,QAAMsO,YAAY,GAAG0C,gBAAgB,GAAGA,gBAAgB,CAACpS,KAApB,GAA4B,EAAjE;;EACA,QAAMA,KAAK,gBACNgS,WADM,EAENtC,YAFM,EAGNtO,OAAO,CAACpB,KAHF,CAAX;;EAKA,QAAM/D,CAAC,GAAG+T,cAAK,CAACqC,YAAN,CAAmBjR,OAAnB,EAA4BpB,KAA5B,EAAmCoB,OAAO,CAACpB,KAAR,CAAc4R,QAAjD,CAAV;EACA,WAAO3V,CAAP;EACD,GAlBI,EAmBJqW,IAnBI,CAoBH,UAACzV,CAAD,EAAIjB,CAAJ;EAAA,WAAU,CAACiB,CAAC,CAACmD,KAAF,CAAQ+R,KAAR,IAAiBJ,YAAlB,KAAmC/V,CAAC,CAACoE,KAAF,CAAQ+R,KAAR,IAAiBJ,YAApD,CAAV;EAAA,GApBG,CAAP;EAsBD;EAED;;;;AAGA,EAAO,SAASY,iBAAT,CAA2BC,aAA3B,EAA0CC,aAA1C,EAAyD;EAC9D;EACAC,EAAAA,OAAO,CAACC,IAAR,eACcH,aADd,6CACmEC,aADnE;EAGD;AAED,EAAO,SAASG,QAAT,CAAkBC,QAAlB,EAA4BC,KAA5B,EAAmC;EAAA;EACxC,MAAIC,IAAI,GAAG,KAAX;EACA,SAAO,YAAM;EACX,QAAI,CAACA,IAAL,EAAW;EACT;EACAF,MAAAA,QAAQ,MAAR,SAAYzT,UAAZ;EACA2T,MAAAA,IAAI,GAAG,IAAP;EACAC,MAAAA,UAAU,CAAC,YAAM;EACfD,QAAAA,IAAI,GAAG,KAAP;EACD,OAFS,EAEPD,KAFO,CAAV;EAGD;EACF,GATD;EAUD;AAED,EAAO,IAAMG,eAAe,GAAG,CAC7B,OAD6B,EAE7B,KAF6B,EAG7B,WAH6B,EAI7B,YAJ6B,EAK7B,aAL6B,EAM7B,cAN6B,EAO7B,SAP6B,EAQ7B,UAR6B,EAS7B,YAT6B,EAU7B,SAV6B,EAW7B,aAX6B,EAY7B,UAZ6B,EAa7B,QAb6B,EAc7B,qBAd6B,EAe7B,cAf6B,EAgB7B,QAhB6B,EAiB7B,UAjB6B,EAkB7B,OAlB6B,EAmB7B,UAnB6B,EAoB7B,MApB6B,EAqB7B,YArB6B,EAsB7B,YAtB6B,EAuB7B,UAvB6B,EAwB7B,QAxB6B,EAyB7B,OAzB6B,EA0B7B,cA1B6B,EA2B7B,aA3B6B,EA4B7B,aA5B6B,EA6B7B,YA7B6B,EA8B7B,OA9B6B,EA+B7B,QA/B6B,EAgC7B,YAhC6B,EAiC7B,aAjC6B,EAkC7B,QAlC6B,CAAxB;;EClIP,IAAM1D,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhB6Q,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ,GAHJ;EAIhBgS,EAAAA,SAAS,EAAEpR,SAAS,CAAChB,MAJL;EAKhBqS,EAAAA,IAAI,EAAErR,SAAS,CAAClB,IALA;EAMhB0L,EAAAA,KAAK,EAAExK,SAAS,CAAClB,IAND;EAOhBwS,EAAAA,QAAQ,EAAEtR,SAAS,CAAClB,IAPJ;EAQhByS,EAAAA,WAAW,EAAEvR,SAAS,CAAClB,IARP;EAShB0S,EAAAA,GAAG,EAAExR,SAAS,CAACd,MATC;EAUhBoP,EAAAA,MAAM,EAAEtO,SAAS,CAACd,MAVF;EAWhByO,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAXL;EAYhBuS,EAAAA,OAAO,EAAEzR,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAZO;EAahB+R,EAAAA,WAAW,EAAE1R,SAAS,CAACd,MAbP;EAehByS,EAAAA,WAAW,EAAE3R,SAAS,CAACjB,IAfP;EAgBhB6S,EAAAA,SAAS,EAAE5R,SAAS,CAACjB,IAhBL;EAiBhB8S,EAAAA,SAAS,EAAE7R,SAAS,CAACjB,IAjBL;EAkBhB+S,EAAAA,gBAAgB,EAAE9R,SAAS,CAACjB,IAlBZ;EAmBhBgT,EAAAA,SAAS,EAAE/R,SAAS,CAACjB,IAnBL;EAoBhBiT,EAAAA,OAAO,EAAEhS,SAAS,CAACjB,IApBH;EAqBhBkT,EAAAA,SAAS,EAAEjS,SAAS,CAACjB,IArBL;EAsBhBmT,EAAAA,QAAQ,EAAElS,SAAS,CAACjB,IAtBJ;EAuBhBoT,EAAAA,MAAM,EAAEnS,SAAS,CAACjB,IAvBF;EAwBhBqT,EAAAA,OAAO,EAAEpS,SAAS,CAACjB,IAxBH;EAyBhBsT,EAAAA,UAAU,EAAErS,SAAS,CAACjB,IAzBN;EA0BhBuT,EAAAA,gBAAgB,EAAEtS,SAAS,CAACjB,IA1BZ;EA2BhBwT,EAAAA,OAAO,EAAEvS,SAAS,CAACjB,IA3BH;EA4BhByT,EAAAA,SAAS,EAAExS,SAAS,CAACjB,IA5BL;EA6BhB0T,EAAAA,OAAO,EAAEzS,SAAS,CAACjB,IA7BH;EA8BhB2T,EAAAA,SAAS,EAAE1S,SAAS,CAACjB,IA9BL;EA+BhB4T,EAAAA,SAAS,EAAE3S,SAAS,CAACjB,IA/BL;EAgChB6T,EAAAA,gBAAgB,EAAE5S,SAAS,CAACjB,IAhCZ;EAiChB8T,EAAAA,YAAY,EAAE7S,SAAS,CAACjB,IAjCR;EAkChB+T,EAAAA,YAAY,EAAE9S,SAAS,CAACjB,IAlCR;EAmChBgU,EAAAA,YAAY,EAAE/S,SAAS,CAACjB,IAnCR;EAoChBiU,EAAAA,cAAc,EAAEhT,SAAS,CAACjB,IApCV;EAqChBkU,EAAAA,QAAQ,EAAEjT,SAAS,CAACjB;EArCJ,CAAlB;;MAwCqBmU;;;;;EACnB,iBAAYhV,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKyL,KAAL,GAAa,IAAb,CAHiB;;EAIjB,UAAKF,IAAL,GAAY,MAAKA,IAAL,CAAU5L,IAAV,+BAAZ;EACA,UAAK+L,KAAL,GAAa,MAAKA,KAAL,CAAW/L,IAAX,+BAAb;EACA,UAAKiM,IAAL,GAAY,MAAKA,IAAL,CAAUjM,IAAV,+BAAZ;EACA,UAAKkM,OAAL,GAAe,MAAKA,OAAL,CAAalM,IAAb,+BAAf;EACA,UAAKoM,MAAL,GAAc,MAAKA,MAAL,CAAYpM,IAAZ,+BAAd;EACA,UAAK4M,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB5M,IAAtB,+BAAxB;EACA,UAAKsV,aAAL,GAAqB,MAAKA,aAAL,CAAmBtV,IAAnB,+BAArB;EACA,UAAKuV,cAAL,GAAsB,MAAKA,cAAL,CAAoBvV,IAApB,+BAAtB;EACA,UAAK8H,eAAL,GAAuB,MAAKA,eAAL,CAAqB9H,IAArB,+BAAvB;EACA,UAAKgI,aAAL,GAAqB,MAAKA,aAAL,CAAmBhI,IAAnB,+BAArB;EACA,UAAKkI,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BlI,IAA1B,+BAA5B;EACA,UAAKoI,UAAL,GAAkB,MAAKA,UAAL,CAAgBpI,IAAhB,+BAAlB;EACA,UAAKmI,aAAL,GAAqB,MAAKA,aAAL,CAAmBnI,IAAnB,+BAArB;EACA,UAAKqI,WAAL,GAAmB,MAAKA,WAAL,CAAiBrI,IAAjB,+BAAnB;EACA,UAAKwV,WAAL,GAAmB,MAAKA,WAAL,CAAiBxV,IAAjB,+BAAnB;EACA,UAAKiI,aAAL,GAAqB,MAAKA,aAAL,CAAmBjI,IAAnB,+BAArB;EACA,UAAKuI,aAAL,GAAqB,MAAKA,aAAL,CAAmBvI,IAAnB,+BAArB;EACA,UAAKwI,YAAL,GAAoB,MAAKA,YAAL,CAAkBxI,IAAlB,+BAApB;EACA,UAAKuL,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BvL,IAA5B,+BAA9B;EACA,UAAKqJ,WAAL,GAAmB,MAAKA,WAAL,CAAiBrJ,IAAjB,+BAAnB;EACA,UAAK8I,aAAL,GAAqB,MAAKA,aAAL,CAAmB9I,IAAnB,+BAArB;EACA,UAAK+I,WAAL,GAAmB,MAAKA,WAAL,CAAiB/I,IAAjB,+BAAnB;EACA,UAAKgJ,aAAL,GAAqB,MAAKA,aAAL,CAAmBhJ,IAAnB,+BAArB;EACA,UAAKiJ,aAAL,GAAqB,MAAKA,aAAL,CAAmBjJ,IAAnB,+BAArB;EACA,UAAKkJ,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BlJ,IAA1B,+BAA5B;EACA,UAAKmJ,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBnJ,IAAtB,+BAAxB;EACA,UAAK0I,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB1I,IAAtB,+BAAxB;EACA,UAAK6I,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB7I,IAAtB,+BAAxB;EACA,UAAK2I,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB3I,IAAxB,+BAA1B;EACA,UAAKyI,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BzI,IAA1B,+BAA5B;EACA,UAAKyV,cAAL,GAAsBxC,QAAQ,CAAC,MAAKwC,cAAL,CAAoBzV,IAApB,+BAAD,EAAiC,GAAjC,CAA9B;EACA,UAAK0V,cAAL,GAAsB,MAAKA,cAAL,CAAoB1V,IAApB,+BAAtB;EACA,UAAK2V,qBAAL,GAA6B,MAAKA,qBAAL,CAA2B3V,IAA3B,+BAA7B;EApCiB;EAqClB;;;;WAEDmQ,oBAAA,6BAAoB;EAClB,SAAKyF,WAAL,GADkB;;EAElB,QAAI,KAAK9J,KAAL,IAAc,KAAKA,KAAL,CAAW+J,UAA7B,EAAyC;EACvC,WAAK/J,KAAL,CAAW+J,UAAX,CAAsBC,UAAtB,GAAmC,KAAKH,qBAAxC;EACA,WAAK7J,KAAL,CAAW+J,UAAX,CAAsBE,aAAtB,GAAsC,KAAKJ,qBAA3C;EACD;EACF;;;WAGDL,gBAAA,yBAAgB;EAAA;;EACd,QAAI,CAAC,KAAKxJ,KAAV,EAAiB;EACf,aAAO,IAAP;EACD;;EAED,WAAOwH,eAAe,CAAClE,MAAhB,CAAuB,UAAC4G,UAAD,EAAarW,GAAb,EAAqB;EACjDqW,MAAAA,UAAU,CAACrW,GAAD,CAAV,GAAkB,MAAI,CAACmM,KAAL,CAAWnM,GAAX,CAAlB;EACA,aAAOqW,UAAP;EACD,KAHM,EAGJ,EAHI,CAAP;EAID;;;WA6CDL,wBAAA,iCAAwB;EAAA,sBACM,KAAKtV,KADX;EAAA,QACdwO,OADc,eACdA,OADc;EAAA,QACLhC,MADK,eACLA,MADK;;EAEtB,QAAI,KAAKf,KAAL,IAAc,KAAKA,KAAL,CAAW+J,UAA7B,EAAyC;EACvC,UAAM1H,eAAe,GAAGxL,KAAK,CAACtD,IAAN,CAAW,KAAKyM,KAAL,CAAW+J,UAAtB,EAAkCxE,IAAlC,CACtB,UAAA3H,SAAS;EAAA,eAAIA,SAAS,CAACuM,IAAV,KAAmB,SAAvB;EAAA,OADa,CAAxB;;EAGA,UAAI9H,eAAe,KAAKtB,MAAM,CAACsB,eAA/B,EAAgD;EAC9CU,QAAAA,OAAO,CAACpF,iBAAR,CAA0B0E,eAA1B;EACD;EACF;EACF;;;WAGDvC,OAAA,gBAAO;EACL,QAAMsK,OAAO,GAAG,KAAKpK,KAAL,CAAWF,IAAX,EAAhB;;EACA,QAAIsK,OAAO,KAAKlY,SAAhB,EAA2B;EACzBkY,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGDrK,QAAA,iBAAQ;EACN,QAAMmK,OAAO,GAAG,KAAKpK,KAAL,CAAWC,KAAX,EAAhB;;EACA,QAAImK,OAAO,KAAKlY,SAAhB,EAA2B;EACzBkY,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGDC,OAAA,gBAAO;EACL,SAAKvK,KAAL,CAAWuK,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAKxK,KAAL,EAAWwK,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKzK,KAAL,EAAWyK,WAAX;EACD;;;WAGDvK,aAAA,sBAAa;EACX,QAAI,KAAKF,KAAL,CAAW2B,MAAf,EAAuB;EACrB,WAAK7B,IAAL;EACD,KAFD,MAEO;EACL,WAAKG,KAAL;EACD;EACF;;;WAGDE,OAAA,cAAK1C,IAAL,EAAW;EACT,QAAI;EACF,WAAKuC,KAAL,CAAWsB,WAAX,GAAyB7D,IAAzB;EACD,KAFD,CAEE,OAAOjN,CAAP,EAAU;EAEX;EACF;;;WAGD4P,UAAA,iBAAQC,OAAR,EAAiB;EACf,SAAKF,IAAL,CAAU,KAAKH,KAAL,CAAWsB,WAAX,GAAyBjB,OAAnC;EACD;;;WAGDC,SAAA,gBAAOD,OAAP,EAAgB;EACd,SAAKD,OAAL,CAAa,CAACC,OAAd;EACD;;;WAGDS,mBAAA,4BAAmB;EAAA,uBACW,KAAKvM,KADhB;EAAA,QACTwM,MADS,gBACTA,MADS;EAAA,QACDgC,OADC,gBACDA,OADC;EAEjBA,IAAAA,OAAO,CAACjC,gBAAR,CAAyBC,MAAzB;EACD;EAGD;;;WACA/E,kBAAA,2BAAyB;EAAA,uBACU,KAAKzH,KADf;EAAA,QACfwO,OADe,gBACfA,OADe;EAAA,QACNiF,WADM,gBACNA,WADM;EAEvBjF,IAAAA,OAAO,CAAC/G,eAAR,CAAwB,KAAKwN,aAAL,EAAxB;;EACA,QAAIxB,WAAJ,EAAiB;EACfA,MAAAA,WAAW,MAAX;EACD;EACF;EAGD;;;WACA9L,gBAAA,yBAAuB;EAAA,uBACU,KAAK3H,KADf;EAAA,QACbwO,OADa,gBACbA,OADa;EAAA,QACJmF,SADI,gBACJA,SADI;EAGrBnF,IAAAA,OAAO,CAAC7G,aAAR,CAAsB,KAAKsN,aAAL,EAAtB;;EAEA,QAAItB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACA9L,uBAAA,gCAA8B;EAAA,uBACU,KAAK7H,KADf;EAAA,QACpBwO,OADoB,gBACpBA,OADoB;EAAA,QACXoF,gBADW,gBACXA,gBADW;EAE5BpF,IAAAA,OAAO,CAAC3G,oBAAR,CAA6B,KAAKoN,aAAL,EAA7B;;EAEA,QAAIrB,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACA9L,gBAAA,yBAAuB;EAAA,uBACU,KAAK9H,KADf;EAAA,QACbwO,OADa,gBACbA,OADa;EAAA,QACJqF,SADI,gBACJA,SADI;EAErBrF,IAAAA,OAAO,CAAC1G,aAAR,CAAsB,KAAKmN,aAAL,EAAtB;;EAEA,QAAIpB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGD9L,aAAA,sBAAoB;EAAA,uBACU,KAAK/H,KADf;EAAA,QACVwO,OADU,gBACVA,OADU;EAAA,QACDyF,MADC,gBACDA,MADC;EAElBzF,IAAAA,OAAO,CAACzG,UAAR,CAAmB,KAAKkN,aAAL,EAAnB;;EAEA,QAAIhB,MAAJ,EAAY;EACVA,MAAAA,MAAM,MAAN;EACD;EACF;;;WAGDjM,cAAA,uBAAqB;EAAA,uBACU,KAAKhI,KADf;EAAA,QACXwO,OADW,gBACXA,OADW;EAAA,QACF0F,OADE,gBACFA,OADE;EAEnB1F,IAAAA,OAAO,CAACxG,WAAR,CAAoB,KAAKiN,aAAL,EAApB;;EAEA,QAAIf,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;EAGD;;;WACA9L,uBAAA,gCAA8B;EAAA,uBACU,KAAKpI,KADf;EAAA,QACpBwO,OADoB,gBACpBA,OADoB;EAAA,QACX4F,gBADW,gBACXA,gBADW;EAE5B5F,IAAAA,OAAO,CAACpG,oBAAR,CAA6B,KAAK6M,aAAL,EAA7B;;EAEA,QAAIb,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACAgB,iBAAA,0BAAwB;EAAA,wBACU,KAAKpV,KADf;EAAA,QACdwO,OADc,iBACdA,OADc;EAAA,QACL2F,UADK,iBACLA,UADK;;EAEtB,QAAI,KAAK1I,KAAT,EAAgB;EACd+C,MAAAA,OAAO,CAACjG,oBAAR,CAA6B,KAAK0M,aAAL,EAA7B;EACD;;EAED,QAAId,UAAJ,EAAgB;EACdA,MAAAA,UAAU,MAAV;EACD;EACF;EAGD;;;WACAgB,cAAA,uBAAqB;EAAA,wBAGf,KAAKnV,KAHU;EAAA,QAEjBmT,IAFiB,iBAEjBA,IAFiB;EAAA,QAEX3G,MAFW,iBAEXA,MAFW;EAAA,QAEHgC,OAFG,iBAEHA,OAFG;EAAA,QAEMsF,OAFN,iBAEMA,OAFN;;EAInB,QAAIX,IAAJ,EAAU;EACR,WAAKvH,IAAL,CAAU,CAAV;EACA,WAAKL,IAAL;EACD,KAHD,MAGO,IAAI,CAACiB,MAAM,CAACY,MAAZ,EAAoB;EACzB,WAAK1B,KAAL;EACD;;EACD8C,IAAAA,OAAO,CAACvG,SAAR,CAAkB,KAAKgN,aAAL,EAAlB;;EAEA,QAAInB,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGDlM,gBAAA,yBAAuB;EAAA,wBACU,KAAK5H,KADf;EAAA,QACbwO,OADa,iBACbA,OADa;EAAA,QACJkF,SADI,iBACJA,SADI;EAErBlF,IAAAA,OAAO,CAAC5G,aAAR,CAAsB,KAAKqN,aAAL,EAAtB;;EAEA,QAAIvB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACAxL,gBAAA,yBAAuB;EAAA,wBACU,KAAKlI,KADf;EAAA,QACbwO,OADa,iBACbA,OADa;EAAA,QACJuF,SADI,iBACJA,SADI;EAErBvF,IAAAA,OAAO,CAACtG,aAAR,CAAsB,KAAK+M,aAAL,EAAtB;;EAEA,QAAIlB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACA5L,eAAA,wBAAsB;EAAA,wBACU,KAAKnI,KADf;EAAA,QACZwO,OADY,iBACZA,OADY;EAAA,QACHwF,QADG,iBACHA,QADG;EAEpBxF,IAAAA,OAAO,CAACrG,YAAR,CAAqB,KAAK8M,aAAL,EAArB;;EAEA,QAAIjB,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;;WAGD9I,yBAAA,kCAAyB;EAGzB;;;WACAzC,gBAAA,yBAAuB;EAAA,wBACU,KAAKzI,KADf;EAAA,QACbwO,OADa,iBACbA,OADa;EAAA,QACJ8F,SADI,iBACJA,SADI;EAErB9F,IAAAA,OAAO,CAAC/F,aAAR,CAAsB,KAAKwM,aAAL,EAAtB;;EACA,QAAIX,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGD5L,cAAA,uBAAqB;EAAA,wBACU,KAAK1I,KADf;EAAA,QACXwO,OADW,iBACXA,OADW;EAAA,QACF+F,OADE,iBACFA,OADE;EAEnB/F,IAAAA,OAAO,CAAC9F,WAAR,CAAoB,KAAKuM,aAAL,EAApB;;EACA,QAAIV,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGD5L,gBAAA,yBAAuB;EAAA,wBACU,KAAK3I,KADf;EAAA,QACbwO,OADa,iBACbA,OADa;EAAA,QACJgG,SADI,iBACJA,SADI;EAErBhG,IAAAA,OAAO,CAAC7F,aAAR,CAAsB,KAAKsM,aAAL,EAAtB;;EACA,QAAIT,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACA5L,gBAAA,yBAAuB;EAAA,wBACU,KAAK5I,KADf;EAAA,QACbwO,OADa,iBACbA,OADa;EAAA,QACJiG,SADI,iBACJA,SADI;EAErBjG,IAAAA,OAAO,CAAC5F,aAAR,CAAsB,KAAKqM,aAAL,EAAtB;;EAEA,QAAIR,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACA5L,uBAAA,gCAA8B;EAAA,wBACqB,KAAK7I,KAD1B;EAAA,QACpBwO,OADoB,iBACpBA,OADoB;EAAA,QACXkG,gBADW,iBACXA,gBADW;EAAA,QACOxB,SADP,iBACOA,SADP;;EAG5B,QAAIA,SAAS,IAAIA,SAAS,GAAG,CAA7B,EAAgC;EAC9B,WAAKzH,KAAL,CAAWsB,WAAX,GAAyBmG,SAAzB;EACD;;EAED1E,IAAAA,OAAO,CAAC3F,oBAAR,CAA6B,KAAKoM,aAAL,EAA7B;;EAEA,QAAIP,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACA5L,mBAAA,4BAA0B;EAAA,wBACU,KAAK9I,KADf;EAAA,QAChBwO,OADgB,iBAChBA,OADgB;EAAA,QACPmG,YADO,iBACPA,YADO;EAExBnG,IAAAA,OAAO,CAAC1F,gBAAR,CAAyB,KAAKmM,aAAL,EAAzB;;EAEA,QAAIN,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAGD;;;WACAtM,mBAAA,4BAA0B;EAAA,wBACU,KAAKrI,KADf;EAAA,QAChBwO,OADgB,iBAChBA,OADgB;EAAA,QACPoG,YADO,iBACPA,YADO;EAExBpG,IAAAA,OAAO,CAACnG,gBAAR,CAAyB,KAAK4M,aAAL,EAAzB;;EAEA,QAAIL,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAED;;;;;WAGApM,mBAAA,4BAA0B;EAAA,wBACU,KAAKxI,KADf;EAAA,QAChBwO,OADgB,iBAChBA,OADgB;EAAA,QACPqG,YADO,iBACPA,YADO;EAExBrG,IAAAA,OAAO,CAAChG,gBAAR,CAAyB,KAAKyM,aAAL,EAAzB;;EAEA,QAAIJ,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;;;WAGDvM,qBAAA,8BAA4B;EAAA,wBACU,KAAKtI,KADf;EAAA,QAClBwO,OADkB,iBAClBA,OADkB;EAAA,QACTsG,cADS,iBACTA,cADS;EAE1BtG,IAAAA,OAAO,CAAClG,kBAAR,CAA2B,KAAK2M,aAAL,EAA3B;;EAEA,QAAIH,cAAJ,EAAoB;EAClBA,MAAAA,cAAc,MAAd;EACD;EACF;EAGD;;;WACA9L,cAAA,uBAAqB;EAAA,wBACU,KAAKhJ,KADf;EAAA,QACXwO,OADW,iBACXA,OADW;EAAA,QACF6F,OADE,iBACFA,OADE;EAEnB7F,IAAAA,OAAO,CAACxF,WAAR,CAAoB,KAAKiM,aAAL,EAApB;;EACA,QAAIZ,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;WAEDtL,eAAA,wBAAsB;EAAA,wBACU,KAAK/I,KADf;EAAA,QACZwO,OADY,iBACZA,OADY;EAAA,QACHuG,QADG,iBACHA,QADG;EAEpBvG,IAAAA,OAAO,CAACzF,YAAR,CAAqB,KAAKkM,aAAL,EAArB;;EACA,QAAIF,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;WAEDM,iBAAA,0BAAiB;;WAEjBH,iBAAA,0BAAiB;EAAA;;EACf,QAAMlV,KAAK,gBACN,KAAKA,KADC;EAETyL,MAAAA,KAAK,EAAE,KAAKA;EAFH,MAAX,CADe;;;EAOf,QAAI,CAAC,KAAKA,KAAV,EAAiB;EACf,aAAO,IAAP;EACD,KATc;;;EAYf,WAAOuE,cAAK,CAAC6B,QAAN,CAAeC,OAAf,CAAuB,KAAK9R,KAAL,CAAW4R,QAAlC,EACJ9C,MADI,CACGiC,YADH,EAEJzS,GAFI,CAEA,UAACvC,CAAD,EAAO;EACV,UAAIoa,MAAJ;;EACA,UAAI,OAAOpa,CAAC,CAACiB,IAAT,KAAkB,QAAtB,EAAgC;EAC9B;EACA,YAAIjB,CAAC,CAACiB,IAAF,KAAW,QAAf,EAAyB;EACvBmZ,UAAAA,MAAM,gBAAQpa,CAAC,CAACiE,KAAV,CAAN;EACA,cAAMoW,UAAU,GAAGD,MAAM,CAAC9B,OAA1B;;EACA8B,UAAAA,MAAM,CAAC9B,OAAP,GAAiB,YAAa;EAC5B,gBAAI+B,UAAJ,EAAgB;EACdA,cAAAA,UAAU,MAAV;EACD;;EACD,YAAA,MAAI,CAACpN,WAAL,OAAA,MAAI,YAAJ;EACD,WALD;EAMD;EACF,OAZD,MAYO;EACLmN,QAAAA,MAAM,GAAGnW,KAAT;EACD;;EACD,aAAOgQ,cAAK,CAACqC,YAAN,CAAmBtW,CAAnB,EAAsBoa,MAAtB,CAAP;EACD,KApBI,CAAP;EAqBD;;WAEDpG,SAAA,kBAAS;EAAA;;EAAA,wBAWH,KAAK/P,KAXF;EAAA,QAELmT,IAFK,iBAELA,IAFK;EAAA,QAGL/C,MAHK,iBAGLA,MAHK;EAAA,QAILmD,OAJK,iBAILA,OAJK;EAAA,QAKLD,GALK,iBAKLA,GALK;EAAA,QAMLF,QANK,iBAMLA,QANK;EAAA,QAOLC,WAPK,iBAOLA,WAPK;EAAA,QAQL/G,KARK,iBAQLA,KARK;EAAA,QASLkH,WATK,iBASLA,WATK;EAAA,QAUL6C,OAVK,iBAULA,OAVK;EAaP,WACErG;EACE,MAAA,SAAS,EAAE/N,UAAU,CAAC,uBAAD,EAA0B,KAAKjC,KAAL,CAAWyP,SAArC,CADvB;EAEE,MAAA,EAAE,EAAE4G,OAFN;EAGE,MAAA,WAAW,EAAE7C,WAHf;EAIE,MAAA,GAAG,EAAE,aAACzX,CAAD,EAAO;EACV,QAAA,MAAI,CAAC0P,KAAL,GAAa1P,CAAb;EACD,OANH;EAOE,MAAA,KAAK,EAAEuQ,KAPT;EAQE,MAAA,OAAO,EAAEiH,OARX;EASE,MAAA,IAAI,EAAEJ,IATR;EAUE,MAAA,WAAW,EAAEE,WAVf;EAWE,MAAA,QAAQ,EAAED,QAXZ;EAYE,MAAA,MAAM,EAAEhD,MAZV;EAaE,MAAA,GAAG,EAAEkD,GAbP;EAcE,MAAA,WAAW,EAAE,KAAK7L,eAdpB;EAeE,MAAA,SAAS,EAAE,KAAKG,aAflB;EAgBE,MAAA,SAAS,EAAE,KAAKD,aAhBlB;EAiBE,MAAA,gBAAgB,EAAE,KAAKE,oBAjBzB;EAkBE,MAAA,SAAS,EAAE,KAAKC,aAlBlB;EAmBE,MAAA,OAAO,EAAE,KAAKqN,WAnBhB;EAoBE,MAAA,SAAS,EAAE,KAAKjN,aApBlB;EAqBE,MAAA,QAAQ,EAAE,KAAKC,YArBjB;EAsBE,MAAA,MAAM,EAAE,KAAKJ,UAtBf;EAuBE,MAAA,OAAO,EAAE,KAAKC,WAvBhB;EAwBE,MAAA,UAAU,EAAE,KAAKoN,cAxBnB;EAyBE,MAAA,gBAAgB,EAAE,KAAKhN,oBAzBzB;EA0BE,MAAA,OAAO,EAAE,KAAKY,WA1BhB;EA2BE,MAAA,SAAS,EAAE,KAAKP,aA3BlB;EA4BE,MAAA,OAAO,EAAE,KAAKC,WA5BhB;EA6BE,MAAA,SAAS,EAAE,KAAKC,aA7BlB;EA8BE,MAAA,SAAS,EAAE,KAAKC,aA9BlB;EA+BE,MAAA,gBAAgB,EAAE,KAAKC,oBA/BzB;EAgCE,MAAA,YAAY,EAAE,KAAKC,gBAhCrB;EAiCE,MAAA,YAAY,EAAE,KAAKT,gBAjCrB;EAkCE,MAAA,YAAY,EAAE,KAAKG,gBAlCrB;EAmCE,MAAA,cAAc,EAAE,KAAKF,kBAnCvB;EAoCE,MAAA,QAAQ,EAAC;EApCX,OAsCG,KAAK4M,cAAL,EAtCH,CADF;EA0CD;;;;0BAtdkB;EACjB,aAAO,KAAKzJ,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES5O,KAAK;EACb,WAAK+N,KAAL,CAAWa,KAAX,GAAmB5O,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK+N,KAAL,CAAWW,MAAlB;EACD;wBAEU1O,KAAK;EACd,UAAIA,GAAG,GAAG,CAAV,EAAa;EACXA,QAAAA,GAAG,GAAG,CAAN;EACD;;EACD,UAAIA,GAAG,GAAG,CAAV,EAAa;EACXA,QAAAA,GAAG,GAAG,CAAN;EACD;;EACD,WAAK+N,KAAL,CAAWW,MAAX,GAAoB1O,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK+N,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IArGgCuC;EAshBnC+E,KAAK,CAACzF,SAAN,GAAkBA,WAAlB;EACAyF,KAAK,CAAC9E,WAAN,GAAoB,OAApB;;ECjkBA,IAAMX,WAAS,GAAG;EAChBhB,EAAAA,OAAO,EAAEzM,SAAS,CAACf,MADH;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;;MAKqBsV;;;;;EACnB,iBAAYtW,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK2G,KAAL,GAAa,IAAb;EACAvW,IAAAA,KAAK,CAACuO,OAAN,CAAcc,+BAAd,CACE,MAAKmH,iBAAL,CAAuB7W,IAAvB,+BADF;EAIA,UAAKoO,KAAL,GAAa;EACX0I,MAAAA,MAAM,EAAE,IADG;EAEXjL,MAAAA,SAAS,EAAE;EAFA,KAAb;EAR0B;EAY3B;;;;WAEDgL,oBAAA,2BAAkBzI,KAAlB,EAAyBmB,SAAzB,EAAoC;EAAA;;EAClC,QACEnB,KAAK,CAACE,KAAN,KAAgBiB,SAAS,CAACjB,KAA1B,IACGF,KAAK,CAACvC,SAAN,CAAgBzM,MAAhB,KAA2B,UAFhC,EAGE;EACA,UAAI,KAAKwX,KAAT,EAAgB;EACd;EACAG,QAAAA,YAAY,CAAC,KAAKH,KAAN,CAAZ,CAFc;;EAGd,aAAKA,KAAL,GAAa,IAAb;EACD,OALD;EAQA;;;EACA,WAAKI,QAAL,CAAc;EACZF,QAAAA,MAAM,EAAE,KADI;EAEZxI,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAFD;EAGZzC,QAAAA,SAAS,EAAEuC,KAAK,CAACvC;EAHL,OAAd,EATA;;EAgBA,WAAK+K,KAAL,GAAavD,UAAU,CAAC,YAAM;EAC5B,QAAA,MAAI,CAAC2D,QAAL,CAAc;EACZF,UAAAA,MAAM,EAAE;EADI,SAAd;;EAGA,QAAA,MAAI,CAACF,KAAL,GAAa,IAAb;EACD,OALsB,EAKpB,GALoB,CAAvB;EAMD;EACF;;WAEDxG,SAAA,kBAAS;EACP;EACA,QAAI,KAAKhC,KAAL,CAAWvC,SAAX,CAAqBzM,MAArB,KAAgC,UAApC,EAAgD;EAC9C,aAAO,IAAP;EACD;;EACD,QAAM6X,KAAK,GAAG,KAAK7I,KAAL,CAAW0I,MAAX,GACV;EACAI,MAAAA,OAAO,EAAE;EADT,KADU,GAIV,IAJJ;EAMA,WACE7G;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB;EACE,iCAAyB,IAD3B;EAEE,2CAAmC,KAAK8L,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB,CAF9D;EAGE,+CAAuC,KAAKF,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB;EAHlE,OADmB,EAMnB,KAAKjO,KAAL,CAAWyP,SANQ,CADvB;EASE,MAAA,KAAK,EAAEmH,KATT;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,oBAAY,KAAK7I,KAAL,CAAWvC,SAAX,CAAqBnG;EAXnC,OAaE2K;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,4BADmB,kCAEW,KAAK8L,KAAL,CAAWvC,SAAX,CAAqBnG,MAFhC;EADvB,MAbF,CADF;EAsBD;;;IA7EgC4K;EAgFnCqG,KAAK,CAAC/G,SAAN,GAAkBA,WAAlB;EACA+G,KAAK,CAACpG,WAAN,GAAoB,OAApB;;EC1FA;;;;;;;;;AASA,EAAO,SAAS4G,cAAT,CAAwBC,EAAxB,EAA4B;EACjC,MAAIC,GAAJ;;EAEA,MAAID,EAAE,CAACE,qBAAH,IAA4BF,EAAE,CAACG,UAAnC,EAA+C;EAC7CF,IAAAA,GAAG,GAAGD,EAAE,CAACE,qBAAH,EAAN;EACD;;EAED,MAAI,CAACD,GAAL,EAAU;EACR,WAAO;EACLG,MAAAA,IAAI,EAAE,CADD;EAELC,MAAAA,GAAG,EAAE;EAFA,KAAP;EAID;;EAZgC,kBAcQtN,QAdR;EAAA,MAczBuN,IAdyB,aAczBA,IAdyB;EAAA,MAcFC,KAdE,aAcnBC,eAdmB;EAgBjC,MAAMC,UAAU,GAAGF,KAAK,CAACE,UAAN,IAAoBH,IAAI,CAACG,UAAzB,IAAuC,CAA1D;EACA,MAAMC,UAAU,GAAG9U,MAAM,CAAC+U,WAAP,IAAsBL,IAAI,CAACI,UAA9C;EACA,MAAMN,IAAI,GAAGH,GAAG,CAACG,IAAJ,GAAWM,UAAX,GAAwBD,UAArC;EAEA,MAAMG,SAAS,GAAGL,KAAK,CAACK,SAAN,IAAmBN,IAAI,CAACM,SAAxB,IAAqC,CAAvD;EACA,MAAMC,SAAS,GAAGjV,MAAM,CAACkV,WAAP,IAAsBR,IAAI,CAACO,SAA7C;EACA,MAAMR,GAAG,GAAGJ,GAAG,CAACI,GAAJ,GAAUQ,SAAV,GAAsBD,SAAlC,CAtBiC;;EAyBjC,SAAO;EACLR,IAAAA,IAAI,EAAE/T,IAAI,CAAC0U,KAAL,CAAWX,IAAX,CADD;EAELC,IAAAA,GAAG,EAAEhU,IAAI,CAAC0U,KAAL,CAAWV,GAAX;EAFA,GAAP;EAID;EAED;;;;;;;;;;;AAUA,EAAO,SAASW,kBAAT,CAA4BhB,EAA5B,EAAgCiB,KAAhC,EAAuC;EAC5C,MAAMxI,QAAQ,GAAG,EAAjB;EACA,MAAMwH,GAAG,GAAGF,cAAc,CAACC,EAAD,CAA1B;EACA,MAAMkB,IAAI,GAAGlB,EAAE,CAACmB,WAAhB;EACA,MAAMC,IAAI,GAAGpB,EAAE,CAACqB,YAAhB;EAEA,MAAMC,IAAI,GAAGrB,GAAG,CAACI,GAAjB;EACA,MAAMkB,IAAI,GAAGtB,GAAG,CAACG,IAAjB;EACA,MAAIoB,QAAQ,GAAGP,KAAK,CAACQ,KAArB;EACA,MAAIC,QAAQ,GAAGT,KAAK,CAACU,KAArB;;EAEA,MAAIV,KAAK,CAACW,cAAV,EAA0B;EACxBF,IAAAA,QAAQ,GAAGT,KAAK,CAACW,cAAN,CAAqB,CAArB,EAAwBD,KAAnC;EACAH,IAAAA,QAAQ,GAAGP,KAAK,CAACW,cAAN,CAAqB,CAArB,EAAwBH,KAAnC;EACD;;EAEDhJ,EAAAA,QAAQ,CAACoJ,CAAT,GAAaxV,IAAI,CAACyV,GAAL,CAAS,CAAT,EAAYzV,IAAI,CAAC0V,GAAL,CAAS,CAAT,EAAY,CAACT,IAAI,GAAGE,QAAP,GAAkBJ,IAAnB,IAA2BA,IAAvC,CAAZ,CAAb;EACA3I,EAAAA,QAAQ,CAACuJ,CAAT,GAAa3V,IAAI,CAACyV,GAAL,CAAS,CAAT,EAAYzV,IAAI,CAAC0V,GAAL,CAAS,CAAT,EAAY,CAACL,QAAQ,GAAGH,IAAZ,IAAoBL,IAAhC,CAAZ,CAAb;EAEA,SAAOzI,QAAP;EACD;;AAUD,EAAO,SAASwJ,SAAT,CAAmBC,SAAnB,EAA8B;EACnC,MAAIA,SAAS,IAAIA,SAAS,CAACC,KAA3B,EAAkC;EAChCD,IAAAA,SAAS,CAACC,KAAV;EACD;EACF;;AAGD,EAAO,SAASC,QAAT,CAAkB3P,GAAlB,EAAuB4P,GAAvB,EAA4B;EACjC,MAAMlX,OAAO,GAAGsH,GAAG,CAACiG,SAAJ,CAAchR,KAAd,CAAoB,GAApB,CAAhB;;EACA,OAAK,IAAIN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+D,OAAO,CAAC7C,MAA5B,EAAoClB,CAAC,EAArC,EAAyC;EACvC,QAAI+D,OAAO,CAAC/D,CAAD,CAAP,CAAWkb,WAAX,OAA6BD,GAAG,CAACC,WAAJ,EAAjC,EAAoD;EAClD,aAAO,IAAP;EACD;EACF;;EACD,SAAO,KAAP;EACD;;EC3FD,IAAM9J,WAAS,GAAG;EAChB+J,EAAAA,SAAS,EAAExX,SAAS,CAAClB,IADL;EAEhB2Y,EAAAA,YAAY,EAAEzX,SAAS,CAAClB,IAFR;EAGhB2N,EAAAA,OAAO,EAAEzM,SAAS,CAACf,MAHH;EAIhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAJH;EAKhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MALF;EAMhByY,EAAAA,SAAS,EAAE1X,SAAS,CAACnB;EANL,CAAlB;EASA,IAAM+O,cAAY,GAAG;EACnB4J,EAAAA,SAAS,EAAE,IADQ;EAEnBC,EAAAA,YAAY,EAAE;EAFK,CAArB;;MAKqBE;;;;;EACnB,oBAAYzZ,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK8J,gBAAL,GAAwB,CACtB;EACEC,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKjO;EAFf,KADsB,EAKtB;EACEgO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKjO;EAFf,KALsB,EAStB;EACEgO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKrN;EAFf,KATsB,EAatB;EACEoN,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDa,QAAAA,OAAO,CAACzC,MAAR,CAAe,CAAf,EAAkB;EAChB1G,UAAAA,MAAM,EAAE,UADQ;EAEhBtG,UAAAA,MAAM,EAAE;EAFQ,SAAlB,EAJ2B;EAQ5B;EAVH,KAbsB,EAyBtB;EACE4a,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDa,QAAAA,OAAO,CAACzC,MAAR,CAAe,EAAf,EAAmB;EACjB1G,UAAAA,MAAM,EAAE,WADS;EAEjBtG,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KAzBsB,EAqCtB;EACE4a,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDa,QAAAA,OAAO,CAAC3C,OAAR,CAAgB,CAAhB,EAAmB;EACjBxG,UAAAA,MAAM,EAAE,WADS;EAEjBtG,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KArCsB,EAiDtB;EACE4a,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDa,QAAAA,OAAO,CAAC3C,OAAR,CAAgB,EAAhB,EAAoB;EAClBxG,UAAAA,MAAM,EAAE,YADU;EAElBtG,UAAAA,MAAM,EAAE;EAFU,SAApB,EAJ2B;EAQ5B;EAVH,KAjDsB,EA6DtB;EACE4a,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDa,QAAAA,OAAO,CAAC5C,IAAR,CAAa,CAAb,EAJ2B;EAK5B;EAPH,KA7DsB,EAsEtB;EACE+N,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B,YAAI,CAAChC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD,SAH0B;;;EAK3Ba,QAAAA,OAAO,CAAC5C,IAAR,CAAaY,MAAM,CAACM,QAApB;EACD;EARH,KAtEsB,EAgFtB;EACE6M,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B;EACA,YAAIvR,CAAC,GAAGuP,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAInP,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACDuR,QAAAA,OAAO,CAACrC,YAAR,CAAqBlP,CAArB,EAAwB;EACtBoI,UAAAA,MAAM,EAAE,WADc;EAEtBtG,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAZH,KAhFsB,EA8FtB;EACE4a,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B;EACA,YAAIvR,CAAC,GAAGuP,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAInP,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,YAAMoI,MAAM,GAAGpI,CAAC,GAAG,CAAJ,GAAQ,aAAR,GAAwB,YAAvC;EACAuR,QAAAA,OAAO,CAACrC,YAAR,CAAqBlP,CAArB,EAAwB;EACtBoI,UAAAA,MAAM,EAANA,MADsB;EAEtBtG,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAbH,KA9FsB,EA6GtB;EACE4a,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B;EAD2B,YAErBtC,YAFqB,GAEJM,MAFI,CAErBN,YAFqB;;EAG3B,YAAIA,YAAY,IAAI,GAApB,EAAyB;EACvBA,UAAAA,YAAY,GAAG,CAAf;EACD,SAFD,MAEO,IAAIA,YAAY,IAAI,IAApB,EAA0B;EAC/BA,UAAAA,YAAY,GAAG,GAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,GAApB,EAAyB;EAC9BA,UAAAA,YAAY,GAAG,IAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,GAApB,EAAyB;EAC9BA,UAAAA,YAAY,GAAG,GAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,IAApB,EAA0B;EAC/BA,UAAAA,YAAY,GAAG,GAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,CAApB,EAAuB;EAC5BA,UAAAA,YAAY,GAAG,IAAf;EACD;;EACDsC,QAAAA,OAAO,CAACxC,UAAR,CAAmBE,YAAnB,EAAiC;EAC/B7G,UAAAA,MAAM,EAAE,cADuB;EAE/BtG,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EAvBH,KA7GsB,EAsItB;EACE4a,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAACpN,MAAD,EAASgC,OAAT,EAAqB;EAC3B;EAD2B,YAErBtC,YAFqB,GAEJM,MAFI,CAErBN,YAFqB;;EAG3B,YAAIA,YAAY,IAAI,GAApB,EAAyB;EACvBA,UAAAA,YAAY,GAAG,IAAf;EACD,SAFD,MAEO,IAAIA,YAAY,IAAI,GAApB,EAAyB;EAC9BA,UAAAA,YAAY,GAAG,GAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,IAApB,EAA0B;EAC/BA,UAAAA,YAAY,GAAG,GAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,GAApB,EAAyB;EAC9BA,UAAAA,YAAY,GAAG,IAAf;EACD,SAFM,MAEA,IAAIA,YAAY,IAAI,CAApB,EAAuB;EAC5BA,UAAAA,YAAY,GAAG,GAAf;EACD;;EACDsC,QAAAA,OAAO,CAACxC,UAAR,CAAmBE,YAAnB,EAAiC;EAC/B7G,UAAAA,MAAM,EAAE,aADuB;EAE/BtG,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EArBH,KAtIsB,CAAxB;EA+JA,UAAKya,SAAL,aAAqB,MAAKE,gBAA1B;EAEA,UAAKI,cAAL,GAAsB,MAAKA,cAAL,CAAoBna,IAApB,+BAAtB;EACA,UAAKoa,cAAL,GAAsB,MAAKA,cAAL,CAAoBpa,IAApB,+BAAtB;EACA,UAAKkQ,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EACA,UAAKqa,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBra,IAAvB,+BAAzB;EAvK0B;EAwK3B;;;;WAEDmQ,oBAAA,6BAAoB;EAClB,SAAKgK,cAAL;EACAhQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK4P,cAA1C;EACAjQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,OAA1B,EAAmC,KAAK0F,WAAxC;EACA/F,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAK6P,iBAA3C;EACD;;WAEDC,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAACV,SAAV,KAAwB,KAAKxZ,KAAL,CAAWwZ,SAAvC,EAAkD;EAChD,WAAKM,cAAL;EACD;EACF;;WAEDK,uBAAA,gCAAuB;EACrBrQ,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0P,cAA7C;EACAjQ,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,OAA7B,EAAsC,KAAKwF,WAA3C;EACA/F,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAK2P,iBAA9C;EACD;;;WAGDF,iBAAA,0BAAiB;EACf,QAAMM,cAAc,GAAG,SAAjBA,cAAiB;EAAA,8BACrBT,OADqB;EAAA,UACrBA,OADqB,6BACX,CADW;EAAA,2BAErBU,IAFqB;EAAA,UAErBA,IAFqB,0BAEd,KAFc;EAAA,4BAGrBR,KAHqB;EAAA,UAGrBA,KAHqB,2BAGb,KAHa;EAAA,0BAIrBS,GAJqB;EAAA,UAIrBA,GAJqB,yBAIf,KAJe;EAAA,aAKdX,OALc,SAKHU,IALG,SAKKR,KALL,SAKcS,GALd;EAAA,KAAvB;;EAMA,QAAMZ,gBAAgB,GAAG,KAAKA,gBAAL,CAAsB3K,MAAtB,CACvB,UAACyK,SAAD,EAAYe,QAAZ;EAAA;;EAAA,aAAyB/e,MAAM,CAACsC,MAAP,CAAc0b,SAAd,uCACtBY,cAAc,CAACG,QAAD,CADQ,IACKA,QADL,kBAAzB;EAAA,KADuB,EAIvB,EAJuB,CAAzB;EAMA,QAAMC,eAAe,GAAG,CAAC,KAAKxa,KAAL,CAAWwZ,SAAX,IAAwB,EAAzB,EAA6BzK,MAA7B,CACtB,UAACyK,SAAD,EAAYe,QAAZ,EAAyB;EAAA,UACfZ,OADe,GACKY,QADL,CACfZ,OADe;EAAA,UACNC,MADM,GACKW,QADL,CACNX,MADM;;EAEvB,UAAID,OAAO,IAAI,OAAOC,MAAP,KAAkB,UAAjC,EAA6C;EAAA;;EAC3C,eAAOpe,MAAM,CAACsC,MAAP,CAAc0b,SAAd,yCACJY,cAAc,CAACG,QAAD,CADV,IACuBA,QADvB,mBAAP;EAGD;;EACD,aAAOf,SAAP;EACD,KATqB,EAUtBE,gBAVsB,CAAxB;;EAaA,QAAMe,aAAa,GAAG,SAAhBA,aAAgB,CAACtb,CAAD,EAAO;EAC3B,UAAIub,KAAK,GAAG,CAAZ;EACA,UAAMC,EAAE,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,CAAX;EACAA,MAAAA,EAAE,CAACjc,OAAH,CAAW,UAACY,GAAD,EAAS;EAClB,YAAIH,CAAC,CAACG,GAAD,CAAL,EAAY;EACVob,UAAAA,KAAK;EACN;EACF,OAJD;EAKA,aAAOA,KAAP;EACD,KATD;;EAWA,SAAKlB,SAAL,GAAiBhe,MAAM,CAACoD,IAAP,CAAY4b,eAAZ,EACdlc,GADc,CACV,UAAAgB,GAAG;EAAA,aAAIkb,eAAe,CAAClb,GAAD,CAAnB;EAAA,KADO,EAEdgT,IAFc,CAET,UAACzV,CAAD,EAAIjB,CAAJ;EAAA,aAAU6e,aAAa,CAAC7e,CAAD,CAAb,GAAmB6e,aAAa,CAAC5d,CAAD,CAA1C;EAAA,KAFS,CAAjB;EAGD;;WAED8O,aAAA,oBAAWa,MAAX,EAAmBgC,OAAnB,EAA4B;EAC1B,QAAIhC,MAAM,CAACY,MAAX,EAAmB;EACjBoB,MAAAA,OAAO,CAACjD,IAAR,CAAa;EACXlG,QAAAA,MAAM,EAAE,MADG;EAEXtG,QAAAA,MAAM,EAAE;EAFG,OAAb;EAID,KALD,MAKO;EACLyP,MAAAA,OAAO,CAAC9C,KAAR,CAAc;EACZrG,QAAAA,MAAM,EAAE,OADI;EAEZtG,QAAAA,MAAM,EAAE;EAFI,OAAd;EAID;EACF;;WAEDwN,mBAAA,0BAAiBC,MAAjB,EAAyBgC,OAAzB,EAAkC;EAChCA,IAAAA,OAAO,CAACjC,gBAAR,CAAyBC,MAAzB;EACD;;WAEDuN,iBAAA,wBAAe9d,CAAf,EAAkB;EAAA,sBACY,KAAK+D,KADjB;EAAA,QACRwM,MADQ,eACRA,MADQ;EAAA,QACAgC,OADA,eACAA,OADA;;EAEhB,QAAI,CAAChC,MAAM,CAACqB,QAAZ,EAAsB;EACpB;EACD;;EACD,QACE/D,QAAQ,CAAC8Q,aAAT,KACIzB,QAAQ,CAACrP,QAAQ,CAAC8Q,aAAV,EAAyB,yBAAzB,CAAR,IACCzB,QAAQ,CAACrP,QAAQ,CAAC8Q,aAAV,EAAyB,oCAAzB,CADT;EAAA,OAGCzB,QAAQ,CAACrP,QAAQ,CAAC8Q,aAAV,EAAyB,iCAAzB,CAJb,CADF,EAME;EACA;EACD;;EAED,QAAMjB,OAAO,GAAG1d,CAAC,CAAC0d,OAAF,IAAa1d,CAAC,CAAC4e,KAA/B;EACA,QAAMR,IAAI,GAAGpe,CAAC,CAAC6e,OAAF,IAAa7e,CAAC,CAAC8e,OAA5B;EACA,QAAMlB,KAAK,GAAG5d,CAAC,CAAC+e,QAAhB;EACA,QAAMV,GAAG,GAAGre,CAAC,CAACgf,MAAd;EAEA,QAAMV,QAAQ,GAAG,KAAKf,SAAL,CAAe1K,MAAf,CAAsB,UAAC3P,CAAD,EAAO;EAC5C,UAAI,CAACA,CAAC,CAACwa,OAAH,IAAcxa,CAAC,CAACwa,OAAF,GAAYA,OAAZ,KAAwB,CAA1C,EAA6C;EAC3C,eAAO,KAAP;EACD;;EACD,UACGxa,CAAC,CAACkb,IAAF,KAAW1c,SAAX,IAAwBwB,CAAC,CAACkb,IAAF,KAAWA,IAApC,IACIlb,CAAC,CAAC0a,KAAF,KAAYlc,SAAZ,IAAyBwB,CAAC,CAAC0a,KAAF,KAAYA,KADzC,IAEI1a,CAAC,CAACmb,GAAF,KAAU3c,SAAV,IAAuBwB,CAAC,CAACmb,GAAF,KAAUA,GAHvC,EAIE;EACA,eAAO,KAAP;EACD;;EACD,aAAO,IAAP;EACD,KAZgB,EAYd,CAZc,CAAjB;;EAcA,QAAIC,QAAJ,EAAc;EACZA,MAAAA,QAAQ,CAACX,MAAT,CAAgBpN,MAAhB,EAAwBgC,OAAxB;EACAvS,MAAAA,CAAC,CAACif,cAAF;EACD;EACF;;;WAGDC,eAAA,sBAAa3O,MAAb,EAAqBvQ,CAArB,EAAwB;EACtB,QACE,CAACuQ,MAAM,CAACqB,QAAR,IACG5R,CAAC,CAAC6C,MAAF,CAASsc,QAAT,KAAsB,OADzB,IAEG5O,MAAM,CAACe,UAAP,KAAsB,CAH3B,EAIE;EACA,aAAO,KAAP;EACD;;EACD,WAAO,IAAP;EACD;;WAEDsC,cAAA,qBAAY5T,CAAZ,EAAe;EAAA,uBAC0B,KAAK+D,KAD/B;EAAA,QACLwM,MADK,gBACLA,MADK;EAAA,QACGgC,OADH,gBACGA,OADH;EAAA,QACY8K,SADZ,gBACYA,SADZ;;EAEb,QAAI,CAAC,KAAK6B,YAAL,CAAkB3O,MAAlB,EAA0BvQ,CAA1B,CAAD,IAAiC,CAACqd,SAAtC,EAAiD;EAC/C;EACD;;EACD,SAAK3N,UAAL,CAAgBa,MAAhB,EAAwBgC,OAAxB,EALa;EAOd;;WAEDwL,oBAAA,2BAAkB/d,CAAlB,EAAqB;EAAA,uBACuB,KAAK+D,KAD5B;EAAA,QACXwM,MADW,gBACXA,MADW;EAAA,QACHgC,OADG,gBACHA,OADG;EAAA,QACM+K,YADN,gBACMA,YADN;;EAEnB,QAAI,CAAC,KAAK4B,YAAL,CAAkB3O,MAAlB,EAA0BvQ,CAA1B,CAAD,IAAiC,CAACsd,YAAtC,EAAoD;EAClD;EACD;;EACD,SAAKhN,gBAAL,CAAsBC,MAAtB,EAA8BgC,OAA9B,EALmB;EAOpB;EAGD;;;WACAuB,SAAA,kBAAS;EACP,WAAO,IAAP;EACD;;;IArUmCE;EAwUtCwJ,QAAQ,CAAClK,SAAT,GAAqBA,WAArB;EACAkK,QAAQ,CAAC/J,YAAT,GAAwBA,cAAxB;EACA+J,QAAQ,CAACvJ,WAAT,GAAuB,UAAvB;;ECvVA,IAAMX,WAAS,GAAG;EAChBE,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MADL;EAEhBqa,EAAAA,WAAW,EAAEvZ,SAAS,CAACjB,IAFP;EAGhBya,EAAAA,WAAW,EAAExZ,SAAS,CAACjB,IAHP;EAIhB0a,EAAAA,WAAW,EAAEzZ,SAAS,CAACjB,IAJP;EAKhB2a,EAAAA,QAAQ,EAAE1Z,SAAS,CAACjB,IALJ;EAMhB4a,EAAAA,YAAY,EAAE3Z,SAAS,CAACjB,IANR;EAOhB6a,EAAAA,cAAc,EAAE5Z,SAAS,CAACjB,IAPV;EAQhB8a,EAAAA,SAAS,EAAE7Z,SAAS,CAACjB,IARL;EAShB+a,EAAAA,OAAO,EAAE9Z,SAAS,CAACjB,IATH;EAUhBgb,EAAAA,MAAM,EAAE/Z,SAAS,CAACjB,IAVF;EAWhBib,EAAAA,OAAO,EAAEha,SAAS,CAACjB,IAXH;EAYhBkb,EAAAA,UAAU,EAAEja,SAAS,CAACjB,IAZN;EAahBmb,EAAAA,QAAQ,EAAEla,SAAS,CAAClB,IAbJ;EAchBgR,EAAAA,QAAQ,EAAE9P,SAAS,CAACP,IAdJ;EAehB0a,EAAAA,KAAK,EAAEna,SAAS,CAACd,MAfD;EAgBhBkb,EAAAA,QAAQ,EAAEpa,SAAS,CAACd,MAhBJ;EAiBhBmb,EAAAA,SAAS,EAAEra,SAAS,CAACd;EAjBL,CAAlB;;MAoBqBob;;;;;EACnB,kBAAYpc,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKyM,eAAL,GAAuB,MAAKA,eAAL,CAAqB1c,IAArB,+BAAvB;EACA,UAAK2c,eAAL,GAAuB,MAAKA,eAAL,CAAqB3c,IAArB,+BAAvB;EACA,UAAK4c,aAAL,GAAqB,MAAKA,aAAL,CAAmB5c,IAAnB,+BAArB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EACA,UAAKkQ,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EACA,UAAKoa,cAAL,GAAsB,MAAKA,cAAL,CAAoBpa,IAApB,+BAAtB;EACA,UAAK4b,WAAL,GAAmB,MAAKA,WAAL,CAAiB5b,IAAjB,+BAAnB;EACA,UAAK6b,QAAL,GAAgB,MAAKA,QAAL,CAAc7b,IAAd,+BAAhB;EACA,UAAK+c,iBAAL,GAAyB,MAAKA,iBAAL,CAAuB/c,IAAvB,+BAAzB;EACA,UAAKgd,WAAL,GAAmB,MAAKA,WAAL,CAAiBhd,IAAjB,+BAAnB;EACA,UAAKuV,cAAL,GAAsB,MAAKA,cAAL,CAAoBvV,IAApB,+BAAtB;EAEA,UAAKoO,KAAL,GAAa;EACX6O,MAAAA,MAAM,EAAE;EADG,KAAb;EAhB0B;EAmB3B;;;;WAEDzC,uBAAA,gCAAuB;EACrBrQ,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKiS,eAA/C,EAAgE,IAAhE;EACAxS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkS,aAA7C,EAA4D,IAA5D;EACAzS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKiS,eAA/C,EAAgE,IAAhE;EACAxS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAKkS,aAA9C,EAA6D,IAA7D;EACAzS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0P,cAA7C,EAA6D,IAA7D;EACD;;WAED4C,cAAA,uBAAc;EAAA,QACJZ,UADI,GACW,KAAK/b,KADhB,CACJ+b,UADI;;EAEZ,QAAI,CAACA,UAAL,EAAiB;EACf,aAAO,CAAP;EACD;;EACD,QAAIc,QAAQ,GAAGd,UAAU,EAAzB,CALY;;EAQZ,QAAI,OAAOc,QAAP,KAAoB,QAApB,IAAgCA,QAAQ,GAAG,CAA3C,IAAgDA,QAAQ,KAAK/L,QAAjE,EAA2E;EACzE+L,MAAAA,QAAQ,GAAG,CAAX;EACD;;EACD,WAAOA,QAAP;EACD;;WAEDR,kBAAA,yBAAgBrE,KAAhB,EAAuB;EAAA,QACbqD,WADa,GACG,KAAKrb,KADR,CACbqb,WADa;EAGrB;;EAEAvR,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAKmS,eAA5C,EAA6D,IAA7D;EACAxS,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoS,aAA1C,EAAyD,IAAzD;EACAzS,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAKmS,eAA5C,EAA6D,IAA7D;EACAxS,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAKoS,aAA3C,EAA0D,IAA1D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAK5c,KAAL,CAAWyb,YAAf,EAA6B;EAC3B,WAAKzb,KAAL,CAAWyb,YAAX,CAAwBzD,KAAxB;EACD;;EAED,SAAKsE,eAAL,CAAqBtE,KAArB;;EAEA,QAAIqD,WAAJ,EAAiB;EACfA,MAAAA,WAAW,CAACrD,KAAD,CAAX;EACD;EACF;;WAEDsE,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACbsD,WADa,GACG,KAAKtb,KADR,CACbsb,WADa;;EAGrB,QAAIA,WAAJ,EAAiB;EACfA,MAAAA,WAAW,CAACtD,KAAD,CAAX;EACD;EACF;;WAEDuE,gBAAA,uBAAcvE,KAAd,EAAqB;EACnB;EACA;EACA;EACAA,IAAAA,KAAK,CAACkD,cAAN;EAJmB,QAKXS,SALW,GAKG,KAAK3b,KALR,CAKX2b,SALW;EAOnB7R,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKiS,eAA/C,EAAgE,IAAhE;EACAxS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkS,aAA7C,EAA4D,IAA5D;EACAzS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKiS,eAA/C,EAAgE,IAAhE;EACAxS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAKkS,aAA9C,EAA6D,IAA7D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAK5c,KAAL,CAAW0b,cAAf,EAA+B;EAC7B,WAAK1b,KAAL,CAAW0b,cAAX,CAA0B1D,KAA1B;EACD;;EAED,QAAI2D,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAAC3D,KAAD,CAAT;EACD;EACF;;WAEDwE,cAAA,qBAAYvgB,CAAZ,EAAe;EACb6N,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK4P,cAA1C,EAA0D,IAA1D;;EACA,QAAI,KAAK/Z,KAAL,CAAW4b,OAAf,EAAwB;EACtB,WAAK5b,KAAL,CAAW4b,OAAX,CAAmB3f,CAAnB;EACD;EACF;;WAEDwgB,aAAA,oBAAWxgB,CAAX,EAAc;EACZ6N,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0P,cAA7C,EAA6D,IAA7D;;EACA,QAAI,KAAK/Z,KAAL,CAAW6b,MAAf,EAAuB;EACrB,WAAK7b,KAAL,CAAW6b,MAAX,CAAkB5f,CAAlB;EACD;EACF;;WAED4T,cAAA,qBAAYmI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;;EAGjB,QAAI,KAAKlb,KAAL,CAAW8b,OAAf,EAAwB;EACtB,WAAK9b,KAAL,CAAW8b,OAAX,CAAmB9D,KAAnB;EACD;EACF;;WAED+B,iBAAA,wBAAe/B,KAAf,EAAsB;EACpB,QAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAAhB,IAAsB7C,KAAK,CAAC6C,KAAN,KAAgB,EAA1C,EAA8C;EAC5C;EACA7C,MAAAA,KAAK,CAACkD,cAAN;EACAlD,MAAAA,KAAK,CAAC8E,eAAN;EACA,WAAKtB,QAAL;EACD,KALD,MAKO,IAAIxD,KAAK,CAAC6C,KAAN,KAAgB,EAAhB,IAAsB7C,KAAK,CAAC6C,KAAN,KAAgB,EAA1C,EAA8C;EACnD;EACA7C,MAAAA,KAAK,CAACkD,cAAN;EACAlD,MAAAA,KAAK,CAAC8E,eAAN;EACA,WAAKvB,WAAL;EACD;EACF;;WAEDA,cAAA,uBAAc;EACZ,QAAI,KAAKvb,KAAL,CAAWub,WAAf,EAA4B;EAC1B,WAAKvb,KAAL,CAAWub,WAAX;EACD;EACF;;WAEDC,WAAA,oBAAW;EACT,QAAI,KAAKxb,KAAL,CAAWwb,QAAf,EAAyB;EACvB,WAAKxb,KAAL,CAAWwb,QAAX;EACD;EACF;;WAEDkB,oBAAA,2BAAkB1E,KAAlB,EAAyB;EACvB,QAAMzW,IAAI,GAAG,KAAKwb,MAAlB;EACA,QAAMvN,QAAQ,GAAGwN,kBAAA,CAAuBzb,IAAvB,EAA6ByW,KAA7B,CAAjB;;EACA,QAAI,KAAKhY,KAAL,CAAWgc,QAAf,EAAyB;EACvB,aAAOxM,QAAQ,CAACoJ,CAAhB;EACD;;EACD,WAAOpJ,QAAQ,CAACuJ,CAAhB;EACD;;WAED7D,iBAAA,0BAAiB;EACf,QAAM2H,QAAQ,GAAG,KAAKF,WAAL,EAAjB;EACA,QAAMM,UAAU,GAAM,CAACJ,QAAQ,GAAG,GAAZ,EAAiBK,OAAjB,CAAyB,CAAzB,CAAN,MAAhB;EACA,WAAOlN,cAAK,CAAC6B,QAAN,CAAevT,GAAf,CAAmB,KAAK0B,KAAL,CAAW4R,QAA9B,EAAwC,UAAAuL,KAAK;EAAA,aAClDnN,cAAK,CAACqC,YAAN,CAAmB8K,KAAnB,EAA0B;EAAEN,QAAAA,QAAQ,EAARA,QAAF;EAAYI,QAAAA,UAAU,EAAVA;EAAZ,OAA1B,CADkD;EAAA,KAA7C,CAAP;EAGD;;WAEDlN,SAAA,kBAAS;EAAA;;EAAA,sBAC0C,KAAK/P,KAD/C;EAAA,QACCgc,QADD,eACCA,QADD;EAAA,QACWC,KADX,eACWA,KADX;EAAA,QACkBC,QADlB,eACkBA,QADlB;EAAA,QAC4BC,SAD5B,eAC4BA,SAD5B;EAGP,WACEnM;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,KAAKjC,KAAL,CAAWyP,SADQ,EAEnB;EACE,2CAAmCuM,QADrC;EAEE,6CAAqC,CAACA,QAFxC;EAGE,mCAA2B,KAAKjO,KAAL,CAAW6O;EAHxC,OAFmB,EAOnB,wBAPmB,CADvB;EAUE,MAAA,GAAG,EAAE,aAAA7gB,CAAC,EAAI;EACR,QAAA,MAAI,CAACghB,MAAL,GAAchhB,CAAd;EACD,OAZH;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,IAAI,EAAC,QAdP;EAeE,MAAA,WAAW,EAAE,KAAKsgB,eAfpB;EAgBE,MAAA,YAAY,EAAE,KAAKA,eAhBrB;EAiBE,MAAA,OAAO,EAAE,KAAKG,WAjBhB;EAkBE,MAAA,MAAM,EAAE,KAAKC,UAlBf;EAmBE,MAAA,OAAO,EAAE,KAAK5M,WAnBhB;EAoBE,oBAAYoM,KAAK,IAAI,EApBvB;EAqBE,uBAAeC,QAAQ,IAAI,EArB7B;EAsBE,wBAAgBC,SAAS,IAAI,EAtB/B;EAuBE,uBAAe,CAvBjB;EAwBE,uBAAe;EAxBjB,OA0BG,KAAKjH,cAAL,EA1BH,CADF;EA8BD;;;IAxMiCjF;EA2MpCmM,MAAM,CAAC7M,SAAP,GAAmBA,WAAnB;EACA6M,MAAM,CAAClM,WAAP,GAAqB,QAArB;;EC/NA,IAAMX,WAAS,GAAG;EAChBxC,EAAAA,WAAW,EAAEjL,SAAS,CAAChB,MADP;EAEhBgM,EAAAA,QAAQ,EAAEhL,SAAS,CAAChB,MAFJ;EAGhBmc,EAAAA,UAAU,EAAEnb,SAAS,CAACd,MAHN;EAIhByO,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAJL,CAAlB;;AAQA,EAAe,SAASoc,eAAT,OAKZ;EAAA,MAJDrQ,WAIC,QAJDA,WAIC;EAAA,MAHDD,QAGC,QAHDA,QAGC;EAAA,MAFDmQ,UAEC,QAFDA,UAEC;EAAA,MADDxN,SACC,QADDA,SACC;EACD,SACEO;EACE,yBAAmBS,UAAU,CAAC1D,WAAD,EAAcD,QAAd,CAD/B;EAEE,IAAA,SAAS,EAAE7K,UAAU,CACnB,0DADmB,EAEnBwN,SAFmB,CAFvB;EAME,IAAA,KAAK,EAAE;EACL4N,MAAAA,KAAK,EAAEJ;EADF;EANT,KAUEjN;EAAM,IAAA,SAAS,EAAC;EAAhB,oBACgBiN,UADhB,CAVF,CADF;EAgBD;EAEDG,eAAe,CAAC7N,SAAhB,GAA4BA,WAA5B;EACA6N,eAAe,CAAClN,WAAhB,GAA8B,iBAA9B;;ECnCA,IAAMX,WAAS,GAAG;EAChBzC,EAAAA,QAAQ,EAAEhL,SAAS,CAAChB,MADJ;EAEhBmM,EAAAA,QAAQ,EAAEnL,SAAS,CAACf,MAFJ;EAGhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAHL,CAAlB;;AAOA,EAAe,SAASsc,eAAT,OAA4D;EAAA,MAAjCrQ,QAAiC,QAAjCA,QAAiC;EAAA,MAAvBH,QAAuB,QAAvBA,QAAuB;EAAA,MAAb2C,SAAa,QAAbA,SAAa;;EACzE,MAAI,CAACxC,QAAD,IAAa,CAACA,QAAQ,CAAC5N,MAA3B,EAAmC;EACjC,WAAO,IAAP;EACD;;EACD,MAAIke,WAAW,GAAGtQ,QAAQ,CAACuQ,GAAT,CAAavQ,QAAQ,CAAC5N,MAAT,GAAkB,CAA/B,CAAlB;EACA,MAAMuX,KAAK,GAAG,EAAd;;EAEA,MAAI2G,WAAW,GAAGzQ,QAAlB,EAA4B;EAC1ByQ,IAAAA,WAAW,GAAGzQ,QAAd;EACD,GATwE;;;EAYzE,WAAS2Q,UAAT,CAAoBvU,IAApB,EAA0BsU,GAA1B,EAA+B;EAC7B,QAAME,OAAO,GAAGxU,IAAI,GAAGsU,GAAP,IAAc,CAA9B,CAD6B;;EAE7B,WAAU,CAACE,OAAO,IAAI,CAAX,GAAe,CAAf,GAAmBA,OAApB,IAA+B,GAAzC;EACD,GAfwE;;;EAkBzE9G,EAAAA,KAAK,CAACyG,KAAN,GAAcI,UAAU,CAACF,WAAD,EAAczQ,QAAd,CAAxB;EAEA,MAAI6Q,KAAK,GAAG,EAAZ,CApByE;;EAuBzE,OAAK,IAAIxf,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8O,QAAQ,CAAC5N,MAA7B,EAAqClB,CAAC,EAAtC,EAA0C;EACxC,QAAMyf,KAAK,GAAG3Q,QAAQ,CAAC2Q,KAAT,CAAezf,CAAf,CAAd;EACA,QAAMqf,GAAG,GAAGvQ,QAAQ,CAACuQ,GAAT,CAAarf,CAAb,CAAZ,CAFwC;;EAIxC,QAAM0f,IAAI,GACR7N;EACE,MAAA,KAAK,EAAE;EACLmH,QAAAA,IAAI,EAAEsG,UAAU,CAACG,KAAD,EAAQL,WAAR,CADX;EAELF,QAAAA,KAAK,EAAEI,UAAU,CAACD,GAAG,GAAGI,KAAP,EAAcL,WAAd;EAFZ,OADT;EAKE,MAAA,GAAG,YAAUpf;EALf,MADF;EASAwf,IAAAA,KAAK,CAACtb,IAAN,CAAWwb,IAAX;EACD;;EAED,MAAIF,KAAK,CAACte,MAAN,KAAiB,CAArB,EAAwB;EACtBse,IAAAA,KAAK,GAAG,IAAR;EACD;;EAED,SACE3N;EACE,IAAA,KAAK,EAAE4G,KADT;EAEE,IAAA,SAAS,EAAE3U,UAAU,CAAC,+BAAD,EAAkCwN,SAAlC;EAFvB,KAIEO;EAAM,IAAA,SAAS,EAAC;EAAhB,kBAJF,EAKG2N,KALH,CADF;EASD;EAEDL,eAAe,CAAC/N,SAAhB,GAA4BA,WAA5B;EACA+N,eAAe,CAACpN,WAAhB,GAA8B,iBAA9B;;EC5DA,SAAS4N,gBAAT,OAEG;EAAA,MADDhR,QACC,QADDA,QACC;EAAA,MADSiR,SACT,QADSA,SACT;EAAA,MADoBtO,SACpB,QADoBA,SACpB;EAAA,MAD+BuO,IAC/B,QAD+BA,IAC/B;;EACD,MAAI,CAACD,SAAS,CAAC7U,IAAf,EAAqB;EACnB,WAAO,IAAP;EACD;;EAED,MAAMA,IAAI,GAAG8U,IAAI,IAAIvN,UAAU,CAACsN,SAAS,CAAC7U,IAAX,EAAiB4D,QAAjB,CAA/B;EAEA,SACEkD;EACE,IAAA,SAAS,EAAE/N,UAAU,CAAC,+BAAD,EAAkCwN,SAAlC,CADvB;EAEE,IAAA,KAAK,EAAE;EACL0H,MAAAA,IAAI,EAAK4G,SAAS,CAACvO,QAAf;EADC,KAFT;EAKE,yBAAmBtG;EALrB,IADF;EASD;;EAED4U,gBAAgB,CAACvO,SAAjB,GAA6B;EAC3BzC,EAAAA,QAAQ,EAAEhL,SAAS,CAAChB,MADO;EAE3Bid,EAAAA,SAAS,EAAEjc,SAAS,CAACf,MAFM;EAG3B0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAHM,CAA7B;EAKA8c,gBAAgB,CAAC5N,WAAjB,GAA+B,kBAA/B;;ECrBA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhBgd,EAAAA,SAAS,EAAEjc,SAAS,CAACf,MAFL;EAGhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAHH;EAIhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAJL,CAAlB;;MAOqBid;;;;;EACnB,mBAAYje,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKmM,UAAL,GAAkB,MAAKA,UAAL,CAAgBpc,IAAhB,+BAAlB;EACA,UAAKue,UAAL,GAAkB,MAAKA,UAAL,CAAgBve,IAAhB,+BAAlB;EACA,UAAK4b,WAAL,GAAmB,MAAKA,WAAL,CAAiB5b,IAAjB,+BAAnB;EACA,UAAK6b,QAAL,GAAgB,MAAKA,QAAL,CAAc7b,IAAd,+BAAhB;EAEA,UAAK0c,eAAL,GAAuB,MAAKA,eAAL,CAAqB1c,IAArB,+BAAvB;EACA,UAAK2c,eAAL,GAAuB,MAAKA,eAAL,CAAqB3c,IAArB,+BAAvB;EACA,UAAK4c,aAAL,GAAqB,MAAKA,aAAL,CAAmB5c,IAAnB,+BAArB;EAV0B;EAW3B;;;;WAEDmQ,oBAAA,6BAAoB;;WAEpBmK,qBAAA,8BAAqB;EAErB;;;;;;;;WAMA8B,aAAA,sBAAa;EAAA,6BACoC,KAAK/b,KAAL,CAAWwM,MAD/C;EAAA,QACHO,WADG,sBACHA,WADG;EAAA,QACUC,WADV,sBACUA,WADV;EAAA,QACuBF,QADvB,sBACuBA,QADvB;EAEX,QAAM5D,IAAI,GAAG8D,WAAW,IAAID,WAA5B;EACA,QAAM2Q,OAAO,GAAGxU,IAAI,GAAG4D,QAAvB;EACA,WAAO4Q,OAAO,IAAI,CAAX,GAAe,CAAf,GAAmBA,OAA1B;EACD;;WAEDQ,aAAA,oBAAWlG,KAAX,EAAkB;EAAA,QAEJlL,QAFI,GAGZ,KAAK9M,KAHO,CAEdwM,MAFc,CAEJM,QAFI;EAIhB,QAAMqR,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACA,QAAMoG,OAAO,GAAGD,QAAQ,GAAGrR,QAA3B,CALgB;;EAQhB,WAAOsR,OAAO,KAAKtR,QAAZ,GAAuBsR,OAAO,GAAG,GAAjC,GAAuCA,OAA9C;EACD;;WAED/B,kBAAA,2BAAkB;;WAElBE,gBAAA,uBAAcvE,KAAd,EAAqB;EAAA,QACXxJ,OADW,GACC,KAAKxO,KADN,CACXwO,OADW;EAEnB,QAAM4P,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB,CAFmB;;EAInBxJ,IAAAA,OAAO,CAAC5C,IAAR,CAAawS,OAAb;EACA5P,IAAAA,OAAO,CAACrF,gBAAR,CAAyBiV,OAAzB;EACD;;WAED9B,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACbxJ,OADa,GACD,KAAKxO,KADJ,CACbwO,OADa;EAErB,QAAM4P,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB;EACAxJ,IAAAA,OAAO,CAACvF,iBAAR,CAA0BmV,OAA1B;EACD;;WAED7C,cAAA,uBAAc;EAAA,QACJ/M,OADI,GACQ,KAAKxO,KADb,CACJwO,OADI;EAEZA,IAAAA,OAAO,CAAC3C,OAAR,CAAgB,CAAhB;EACD;;WAED2P,WAAA,oBAAW;EAAA,QACDhN,OADC,GACW,KAAKxO,KADhB,CACDwO,OADC;EAETA,IAAAA,OAAO,CAACzC,MAAR,CAAe,CAAf;EACD;;WAEDgE,SAAA,kBAAS;EAAA;;EAAA,sBAIH,KAAK/P,KAJF;EAAA,0CAELwM,MAFK;EAAA,QAEKO,WAFL,uBAEKA,WAFL;EAAA,QAEkBC,WAFlB,uBAEkBA,WAFlB;EAAA,QAE+BF,QAF/B,uBAE+BA,QAF/B;EAAA,QAEyCG,QAFzC,uBAEyCA,QAFzC;EAAA,QAGL8Q,SAHK,eAGLA,SAHK;EAKP,QAAM7U,IAAI,GAAG8D,WAAW,IAAID,WAA5B;EAEA,WACEiD,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAAAqO,KAAK,EAAI;EACZ,QAAA,MAAI,CAACtB,MAAL,GAAcsB,KAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,oBAJR;EAKE,MAAA,SAAS,EAAEpc,UAAU,CACnB,iCADmB,EAEnB,KAAKjC,KAAL,CAAWyP,SAFQ,CALvB;EASE,MAAA,QAAQ,EAAE,CAAC,KAAKsM,UAAL,KAAoB,GAArB,EAA0BmB,OAA1B,CAAkC,CAAlC,CATZ;EAUE,MAAA,SAAS,EAAEzM,UAAU,CAACvH,IAAD,EAAO4D,QAAP,CAVvB;EAWE,MAAA,WAAW,EAAE,KAAKuP,eAXpB;EAYE,MAAA,WAAW,EAAE,KAAKC,eAZpB;EAaE,MAAA,SAAS,EAAE,KAAKC,aAblB;EAcE,MAAA,UAAU,EAAE,KAAKR,UAdnB;EAeE,MAAA,WAAW,EAAE,KAAKR,WAfpB;EAgBE,MAAA,QAAQ,EAAE,KAAKC;EAhBjB,OAkBExL,6BAAC,eAAD;EACE,MAAA,QAAQ,EAAE/C,QADZ;EAEE,MAAA,WAAW,EAAE/D,IAFf;EAGE,MAAA,QAAQ,EAAE4D;EAHZ,MAlBF,EAuBEkD,6BAAC,gBAAD;EAAkB,MAAA,QAAQ,EAAElD,QAA5B;EAAsC,MAAA,SAAS,EAAEiR;EAAjD,MAvBF,EAwBE/N,6BAAC,eAAD;EAAiB,MAAA,WAAW,EAAE9G,IAA9B;EAAoC,MAAA,QAAQ,EAAE4D;EAA9C,MAxBF,CADF;EA4BD;;;IAvGkCmD;EA0GrCgO,OAAO,CAAC1O,SAAR,GAAoBA,WAApB;EACA0O,OAAO,CAAC/N,WAAR,GAAsB,SAAtB;;ECrHA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;;MAKqBsd;;;;;EACnB,2BAAYte,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK7B,KAAL,GAAa;EACXgQ,MAAAA,SAAS,EAAE;EACT7U,QAAAA,IAAI,EAAE,IADG;EAETsG,QAAAA,QAAQ,EAAE;EAFD;EADA,KAAb;EAOA,UAAK+O,uBAAL,GAA+B,MAAKjC,eAAL,CAAqB3c,IAArB,+BAA/B;EAV0B;EAW3B;;;;WAED2c,kBAAA,yBAAgBtE,KAAhB,EAAuB;EACrB,QAAI,CAACA,KAAK,CAACU,KAAX,EAAkB;EAChB;EACD;;EAHoB,QAKT5L,QALS,GAMjB,KAAK9M,KANY,CAKnBwM,MALmB,CAKTM,QALS;EAOrB,QAAMvL,IAAI,GAAG,KAAKid,OAAlB;EACA,QAAMJ,OAAO,GAAGpB,kBAAA,CAAuBzb,IAAvB,EAA6ByW,KAA7B,EAAoCe,CAApC,GAAwCjM,QAAxD;EACA,QAAM0C,QAAQ,GAAGwI,KAAK,CAACU,KAAN,GAAcsE,cAAA,CAAmBzb,IAAnB,EAAyB4V,IAAxD;EAEA,SAAKR,QAAL,CAAc;EACZoH,MAAAA,SAAS,EAAE;EACT7U,QAAAA,IAAI,EAAEkV,OADG;EAET5O,QAAAA,QAAQ,EAARA;EAFS;EADC,KAAd;EAMD;;WAEDO,SAAA,kBAAS;EAAA;;EAAA,QACCN,SADD,GACe,KAAKzP,KADpB,CACCyP,SADD;EAEP,WACEO;EACE,MAAA,WAAW,EAAE,KAAKuO,uBADpB;EAEE,MAAA,SAAS,EAAEtc,UAAU,CACnB,0DADmB,EAEnBwN,SAFmB;EAFvB,OAOEO,6BAAC,OAAD;EACE,MAAA,SAAS,EAAE,KAAKjC,KAAL,CAAWgQ,SADxB;EAEE,MAAA,GAAG,EAAE,aAAAhiB,CAAC,EAAI;EACR,QAAA,MAAI,CAACyiB,OAAL,GAAeziB,CAAf;EACD;EAJH,OAKM,KAAKiE,KALX,EAPF,CADF;EAiBD;;;IApD0CiQ;EAuD7CqO,eAAe,CAAC/O,SAAhB,GAA4BA,WAA5B;EACA+O,eAAe,CAACpO,WAAhB,GAA8B,iBAA9B;;EChEA,IAAMX,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAHL,CAAlB;;MAMqByd;;;;;EACnB,sBAAYze,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EACA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAF0B;EAG3B;;;;WAEDkQ,cAAA,uBAAc;EAAA,sBACgB,KAAK7P,KADrB;EAAA,QACJwO,OADI,eACJA,OADI;EAAA,QACKhC,MADL,eACKA,MADL;;EAEZ,QAAIA,MAAM,CAACY,MAAX,EAAmB;EACjBoB,MAAAA,OAAO,CAACjD,IAAR;EACD,KAFD,MAEO;EACLiD,MAAAA,OAAO,CAAC9C,KAAR;EACD;EACF;;WAEDqE,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAK/P,KAD5B;EAAA,QACCwM,MADD,gBACCA,MADD;EAAA,QACSiD,SADT,gBACSA,SADT;EAEP,QAAMiP,WAAW,GAAGlS,MAAM,CAACY,MAAP,GAAgB,MAAhB,GAAyB,OAA7C;EAEA,WACE4C;EACE,MAAA,GAAG,EAAE,aAACjU,CAAD,EAAO;EACV,QAAA,MAAI,CAAC4iB,MAAL,GAAc5iB,CAAd;EACD,OAHH;EAIE,MAAA,SAAS,EAAEkG,UAAU,CAACwN,SAAD,EAAY;EAC/B,wCAAgC,IADD;EAE/B,mCAA2B,IAFI;EAG/B,kCAA0B,IAHK;EAI/B,kCAA0BjD,MAAM,CAACY,MAJF;EAK/B,mCAA2B,CAACZ,MAAM,CAACY;EALJ,OAAZ,CAJvB;EAWE,MAAA,IAAI,EAAC,QAXP;EAYE,MAAA,QAAQ,EAAC,GAZX;EAaE,MAAA,OAAO,EAAE,KAAKyC;EAbhB,OAeEG;EAAM,MAAA,SAAS,EAAC;EAAhB,OAAgD0O,WAAhD,CAfF,CADF;EAmBD;;;IAtCqCzO;EAyCxCwO,UAAU,CAAClP,SAAX,GAAuBA,WAAvB;EACAkP,UAAU,CAACvO,WAAX,GAAyB,YAAzB;;ECjDA,IAAMX,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAFL;EAGhB8K,EAAAA,OAAO,EAAEhK,SAAS,CAACL,KAAV,CAAgB,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,CAAhB;EAHO,CAAlB;EAMA,IAAMiO,cAAY,GAAG;EACnB5D,EAAAA,OAAO,EAAE;EADU,CAArB;AAIA,8BAAe,UAAC8J,IAAD,EAAU;EAAA,MACjBgJ,oBADiB;EAAA;EAAA;EAAA;;EAErB,kCAAY5e,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,oCAAM5P,KAAN,EAAa4P,OAAb;EACA,YAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAF0B;EAG3B;;EALoB;;EAAA,WAOrBkQ,WAPqB,GAOrB,uBAAc;EAAA,wBACiB,KAAK7P,KADtB;EAAA,UACJwO,OADI,eACJA,OADI;EAAA,UACK1C,OADL,eACKA,OADL;;EAGZ,UAAI8J,IAAI,KAAK,SAAb,EAAwB;EACtBpH,QAAAA,OAAO,CAAC3C,OAAR,CAAgBC,OAAhB;EACD,OAFD,MAEO;EACL0C,QAAAA,OAAO,CAACzC,MAAR,CAAeD,OAAf;EACD;EACF,KAfoB;;EAAA,WAiBrBiE,MAjBqB,GAiBrB,kBAAS;EAAA;;EAAA,yBACwB,KAAK/P,KAD7B;EAAA,UACC8L,OADD,gBACCA,OADD;EAAA,UACU2D,SADV,gBACUA,SADV;EAEP,UAAMxN,UAAU,GAAG,CACjB,yBADiB,EAEjB,wBAFiB,EAGjB,sBAHiB,CAAnB;EAKAA,MAAAA,UAAU,CAACI,IAAX,2BAC0BuT,IAD1B,SACkC9J,OADlC,uBAEqB8J,IAFrB;;EAIA,UAAInG,SAAJ,EAAe;EACbxN,QAAAA,UAAU,CAACI,IAAX,CAAgBoN,SAAhB;EACD;;EACD,aACEO;EACE,QAAA,GAAG,EAAE,aAACjU,CAAD,EAAO;EACV,UAAA,MAAI,CAAC4iB,MAAL,GAAc5iB,CAAd;EACD,SAHH;EAIE,QAAA,SAAS,EAAEkG,UAAU,CAAC1D,IAAX,CAAgB,GAAhB,CAJb;EAKE,QAAA,IAAI,EAAC,QALP;EAME,QAAA,OAAO,EAAE,KAAKsR;EANhB,SAQEG;EAAM,QAAA,SAAS,EAAC;EAAhB,SAAmD4F,IAAnD,SAA2D9J,OAA3D,cARF,CADF;EAYD,KA3CoB;;EAAA;EAAA,IACYmE,eADZ;;EA8CvB2O,EAAAA,oBAAoB,CAACrP,SAArB,GAAiCA,WAAjC;EACAqP,EAAAA,oBAAoB,CAAClP,YAArB,GAAoCA,cAApC;EACA,SAAOkP,oBAAP;EACD,CAjDD;;ECVA,IAAMC,cAAc,GAAGD,oBAAoB,CAAC,SAAD,CAA3C;EAEAC,cAAc,CAAC3O,WAAf,GAA6B,gBAA7B;;ECFA,IAAM4O,aAAa,GAAGF,oBAAoB,CAAC,QAAD,CAA1C;EACAE,aAAa,CAAC5O,WAAd,GAA4B,eAA5B;;ECAA,IAAMX,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAHL,CAAlB;;MAMqB+d;;;;;EACnB,4BAAY/e,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDkQ,cAAA,uBAAc;EAAA,sBACgB,KAAK7P,KADrB;EAAA,QACJwM,MADI,eACJA,MADI;EAAA,QACIgC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACjC,gBAAR,CAAyBC,MAAzB;EACD;;WAEDuD,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAK/P,KAD5B;EAAA,QACCwM,MADD,gBACCA,MADD;EAAA,QACSiD,SADT,gBACSA,SADT;EAEP,WACEO;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnBwN,SADmB,EAEnB;EACE,gDAAwCjD,MAAM,CAACrB,YADjD;EAEE,2CAAmC,CAACqB,MAAM,CAACrB;EAF7C,OAFmB,EAMnB,wGANmB,CADvB;EASE,MAAA,GAAG,EAAE,aAACpP,CAAD,EAAO;EACV,QAAA,MAAI,CAAC4iB,MAAL,GAAc5iB,CAAd;EACD,OAXH;EAYE,MAAA,IAAI,EAAC,QAZP;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,OAAO,EAAE,KAAK8T;EAdhB,OAgBEG;EAAM,MAAA,SAAS,EAAC;EAAhB,wBAhBF,CADF;EAoBD;;;IAlC2CC;EAqC9C8O,gBAAgB,CAACxP,SAAjB,GAA6BA,WAA7B;EACAwP,gBAAgB,CAAC7O,WAAjB,GAA+B,kBAA/B;;EC1CA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASge,oBAAT,OAGG;EAAA,yBAFDxS,MAEC;EAAA,MAFSO,WAET,eAFSA,WAET;EAAA,MAFsBD,QAEtB,eAFsBA,QAEtB;EAAA,MADD2C,SACC,QADDA,SACC;EACD,MAAMwP,aAAa,GAAGnS,QAAQ,GAAGC,WAAjC;EACA,MAAMmS,aAAa,GAAGzO,UAAU,CAACwO,aAAD,CAAhC;EACA,SACEjP;EACE,IAAA,SAAS,EAAE/N,UAAU,CACnB,qFADmB,EAEnBwN,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,wCAAf;EAAwD,iBAAU;EAAlE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,uBADF,QAEOkP,aAFP,CANF,CADF;EAaD;;EAEDF,oBAAoB,CAACzP,SAArB,GAAiCA,WAAjC;EACAyP,oBAAoB,CAAC9O,WAArB,GAAmC,sBAAnC;;EC3BA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASme,kBAAT,OAA8E;EAAA,yBAAhD3S,MAAgD;EAAA,MAAtCO,WAAsC,eAAtCA,WAAsC;EAAA,MAAzBD,QAAyB,eAAzBA,QAAyB;EAAA,MAAb2C,SAAa,QAAbA,SAAa;EAC5E,MAAMyP,aAAa,GAAGzO,UAAU,CAAC1D,WAAD,EAAcD,QAAd,CAAhC;EACA,SACEkD;EACE,IAAA,SAAS,EAAE/N,UAAU,CACnB,mFADmB,EAEnBwN,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,sCAAf;EAAsD,iBAAU;EAAhE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,qBADF,EAEGkP,aAFH,CANF,CADF;EAaD;;EAEDC,kBAAkB,CAAC5P,SAAnB,GAA+BA,WAA/B;EACA4P,kBAAkB,CAACjP,WAAnB,GAAiC,oBAAjC;;ECvBA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASoe,eAAT,OAA8D;EAAA,MAAzBtS,QAAyB,QAAnCN,MAAmC,CAAzBM,QAAyB;EAAA,MAAb2C,SAAa,QAAbA,SAAa;EAC5D,MAAMyP,aAAa,GAAGzO,UAAU,CAAC3D,QAAD,CAAhC;EACA,SACEkD;EACE,IAAA,SAAS,EAAE/N,UAAU,CACnBwN,SADmB,EAEnB,+EAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,kCAAf;EAAkD,iBAAU;EAA5D,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,sBADF,EAEGkP,aAFH,CANF,CADF;EAaD;;EAEDE,eAAe,CAAC7P,SAAhB,GAA4BA,WAA5B;EACA6P,eAAe,CAAClP,WAAhB,GAA8B,iBAA9B;;ECzBA,IAAMX,WAAS,GAAG;EAChB8P,EAAAA,SAAS,EAAEvd,SAAS,CAACd,MADL;EAEhByO,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAASse,WAAT,OAA+C;EAAA,MAAxBD,SAAwB,QAAxBA,SAAwB;EAAA,MAAb5P,SAAa,QAAbA,SAAa;EAC5D,MAAM8P,aAAa,GAAGF,SAAS,IAAI,GAAnC;EACA,SACErP;EACE,IAAA,SAAS,EAAE/N,UAAU,CACnB,2DADmB,EAEnBwN,SAFmB,CADvB;EAKE,IAAA,GAAG,EAAC;EALN,KAOEO,0CACEA,2CAAOuP,aAAP,CADF,CAPF,CADF;EAaD;EAEDD,WAAW,CAAC/P,SAAZ,GAAwBA,WAAxB;EACA+P,WAAW,CAACpP,WAAZ,GAA0B,aAA1B;;ECvBA,IAAMX,WAAS,GAAG;EAChBiQ,EAAAA,OAAO,EAAE1d,SAAS,CAACd,MADH;EAEhB8a,EAAAA,OAAO,EAAEha,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhBob,EAAAA,OAAO,EAAE9Z,SAAS,CAACjB,IAHH;EAIhBgb,EAAAA,MAAM,EAAE/Z,SAAS,CAACjB,IAJF;EAKhB4O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM0O,cAAY,GAAG;EACnB8P,EAAAA,OAAO,EAAE;EADU,CAArB;;MAIqBC;;;;;EACnB,8BAAYzf,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EACA,UAAK0V,cAAL,GAAsB,MAAKA,cAAL,CAAoB1V,IAApB,+BAAtB;EAN0B;EAO3B;;;;WAEDwa,uBAAA,8BAAqBle,CAArB,EAAwB;EACtB,SAAKwgB,UAAL,CAAgBxgB,CAAhB;EACD;;WAEDoZ,iBAAA,wBAAe2C,KAAf,EAAsB;EACpB;EACA,QAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAAhB,IAAsB7C,KAAK,CAAC6C,KAAN,KAAgB,EAA1C,EAA8C;EAC5C7C,MAAAA,KAAK,CAACkD,cAAN;EACA,WAAKrL,WAAL,CAAiBmI,KAAjB;EACD;EACF;;WAEDnI,cAAA,qBAAYmI,KAAZ,EAAmB;EAAA,QACT8D,OADS,GACG,KAAK9b,KADR,CACT8b,OADS;EAEjBA,IAAAA,OAAO,CAAC9D,KAAD,CAAP;EACD;;WAEDwE,cAAA,qBAAYvgB,CAAZ,EAAe;EACb6N,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKkL,cAA1C;;EACA,QAAI,KAAKrV,KAAL,CAAW4b,OAAf,EAAwB;EACtB,WAAK5b,KAAL,CAAW4b,OAAX,CAAmB3f,CAAnB;EACD;EACF;;WAEDwgB,aAAA,oBAAWxgB,CAAX,EAAc;EACZ6N,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKgL,cAA7C;;EACA,QAAI,KAAKrV,KAAL,CAAW6b,MAAf,EAAuB;EACrB,WAAK7b,KAAL,CAAW6b,MAAX,CAAkB5f,CAAlB;EACD;EACF;;WAED8T,SAAA,kBAAS;EACP,QAAM2P,GAAG,GAAG,KAAK1f,KAAL,CAAWwf,OAAvB;;EACA,QAAMxf,KAAK,gBAAQ,KAAKA,KAAb,CAAX;;EACA,WAAOA,KAAK,CAACwf,OAAb;EACA,WAAOxf,KAAK,CAACyP,SAAb;EACA,WACEO,6BAAC,GAAD;EACE,MAAA,SAAS,EAAE/N,UAAU,CAAC,KAAKjC,KAAL,CAAWyP,SAAZ,CADvB;EAEE,MAAA,IAAI,EAAC,QAFP;EAGE,MAAA,QAAQ,EAAC,GAHX;EAIE,MAAA,OAAO,EAAE,KAAKI,WAJhB;EAKE,MAAA,OAAO,EAAE,KAAK2M,WALhB;EAME,MAAA,MAAM,EAAE,KAAKC;EANf,OAOMzc,KAPN,EADF;EAWD;;;IAzD6CiQ;EA4DhDwP,kBAAkB,CAAClQ,SAAnB,GAA+BA,WAA/B;EACAkQ,kBAAkB,CAAC/P,YAAnB,GAAkCA,cAAlC;EACA+P,kBAAkB,CAACvP,WAAnB,GAAiC,oBAAjC;;EC3EA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhB6Q,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ;EAFJ,CAAlB;;MAKqBye;;;;;EACnB,iBAAY3f,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDkQ,cAAA,qBAAYmI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDnL,SAAA,kBAAS;EAAA,QACC6B,QADD,GACc,KAAK5R,KADnB,CACC4R,QADD;EAEP,WACE5B;EAAK,MAAA,SAAS,EAAC,sBAAf;EAAsC,MAAA,OAAO,EAAE,KAAKH;EAApD,OACEG;EAAK,MAAA,SAAS,EAAC;EAAf,OAA+C4B,QAA/C,CADF,CADF;EAKD;;;IAnBgC3B;EAsBnC0P,KAAK,CAACpQ,SAAN,GAAkBA,WAAlB;EACAoQ,KAAK,CAACzP,WAAN,GAAoB,OAApB;;ECzBA,IAAMX,WAAS,GAAG;EAChBqQ,EAAAA,MAAM,EAAE9d,SAAS,CAAClB,IADF;EAEhBkb,EAAAA,OAAO,EAAEha,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhBob,EAAAA,OAAO,EAAE9Z,SAAS,CAACjB,IAHH;EAIhBgb,EAAAA,MAAM,EAAE/Z,SAAS,CAACjB,IAJF;EAKhB4O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM0O,cAAY,GAAG;EACnBkQ,EAAAA,MAAM,EAAE;EADW,CAArB;AAIA,EAAe,SAASC,WAAT,CAAqB7f,KAArB,EAA4B;EAAA,MACjC4f,MADiC,GACX5f,KADW,CACjC4f,MADiC;EAAA,MACzBnQ,SADyB,GACXzP,KADW,CACzByP,SADyB;;EAEzC,MAAMkL,EAAE,gBAAQ3a,KAAR,CAAR;;EACA,SAAO2a,EAAE,CAAC/I,QAAV;EACA,SAAO+I,EAAE,CAACiF,MAAV;EACA,SAAOjF,EAAE,CAAClL,SAAV;EACA,SACEO,6BAAC,kBAAD;EACE,IAAA,SAAS,EAAE/N,UAAU,CACnBwN,SADmB,EAEnB;EACE,4CAAsC,CAAC,CAACmQ,MAD1C;EAEE,2CAAqC,CAACA;EAFxC,KAFmB,EAMnB,4EANmB;EADvB,KASMjF,EATN,GAWE3K,6BAAC,KAAD,EAAWhQ,KAAX,CAXF,CADF;EAeD;EAED6f,WAAW,CAACtQ,SAAZ,GAAwBA,WAAxB;EACAsQ,WAAW,CAACnQ,YAAZ,GAA2BA,cAA3B;EACAmQ,WAAW,CAAC3P,WAAZ,GAA0B,aAA1B;;ECvCA,IAAMX,WAAS,GAAG;EAChB0N,EAAAA,UAAU,EAAEnb,SAAS,CAACd,MADN;EAEhBgb,EAAAA,QAAQ,EAAEla,SAAS,CAAClB,IAFJ;EAGhB6O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAHL,CAAlB;EAMA,IAAM0O,cAAY,GAAG;EACnBuN,EAAAA,UAAU,EAAE,MADO;EAEnBjB,EAAAA,QAAQ,EAAE;EAFS,CAArB;;EAKA,SAAS8D,WAAT,OAA0D;EAAA,MAAnC7C,UAAmC,QAAnCA,UAAmC;EAAA,MAAvBjB,QAAuB,QAAvBA,QAAuB;EAAA,MAAbvM,SAAa,QAAbA,SAAa;EACxD,MAAMmH,KAAK,GAAG,EAAd;;EACA,MAAIoF,QAAJ,EAAc;EACZpF,IAAAA,KAAK,CAACmJ,MAAN,GAAe9C,UAAf;EACD,GAFD,MAEO;EACLrG,IAAAA,KAAK,CAACyG,KAAN,GAAcJ,UAAd;EACD;;EAED,SACEjN;EACE,IAAA,SAAS,EAAE/N,UAAU,CAACwN,SAAD,EAAY,8BAAZ,CADvB;EAEE,IAAA,KAAK,EAAEmH;EAFT,KAIE5G;EAAM,IAAA,SAAS,EAAC;EAAhB,IAJF,CADF;EAQD;;EAED8P,WAAW,CAACvQ,SAAZ,GAAwBA,WAAxB;EACAuQ,WAAW,CAACpQ,YAAZ,GAA2BA,cAA3B;EACAoQ,WAAW,CAAC5P,WAAZ,GAA0B,aAA1B;;EC5BA,IAAMX,WAAS,GAAG;EAChBf,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MADH;EAEhByL,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MAFF;EAGhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAHL;EAIhB4a,EAAAA,OAAO,EAAE9Z,SAAS,CAACjB,IAJH;EAKhBgb,EAAAA,MAAM,EAAE/Z,SAAS,CAACjB;EALF,CAAlB;;MAQMmf;;;;;EACJ,qBAAYhgB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK7B,KAAL,GAAa;EACXkP,MAAAA,UAAU,EAAE;EADD,KAAb;EAIA,UAAKX,eAAL,GAAuB,MAAKA,eAAL,CAAqB3c,IAArB,+BAAvB;EACA,UAAKsgB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BtgB,IAA5B,+BAA9B;EACA,UAAKugB,UAAL,GAAkB,MAAKA,UAAL,CAAgBvgB,IAAhB,+BAAlB;EACA,UAAKoc,UAAL,GAAkB,MAAKA,UAAL,CAAgBpc,IAAhB,+BAAlB;EACA,UAAK4b,WAAL,GAAmB,MAAKA,WAAL,CAAiB5b,IAAjB,+BAAnB;EACA,UAAK6b,QAAL,GAAgB,MAAKA,QAAL,CAAc7b,IAAd,+BAAhB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EACA,UAAKkQ,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAf0B;EAgB3B;;;;WAEDmQ,oBAAA,6BAAoB;;WAEpBiM,aAAA,sBAAa;EAAA,QACHvP,MADG,GACQ,KAAKxM,KADb,CACHwM,MADG;;EAEX,QAAIA,MAAM,CAACF,KAAX,EAAkB;EAChB,aAAO,CAAP;EACD;;EACD,WAAOE,MAAM,CAACJ,MAAd;EACD;;WAED8T,aAAA,sBAAa;EAAA,sBACiB,KAAKlgB,KADtB;EAAA,QACHwM,MADG,eACHA,MADG;EAAA,QACKgC,OADL,eACKA,OADL;;EAEX,QAAIhC,MAAM,CAACF,KAAX,EAAkB;EAChBkC,MAAAA,OAAO,CAACnC,IAAR,CAAa,KAAb;EACD;EACF;;WAEDiQ,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACbxJ,OADa,GACD,KAAKxO,KADJ,CACbwO,OADa;EAErB,SAAK0R,UAAL;EACA,QAAM/B,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACAxJ,IAAAA,OAAO,CAACrC,YAAR,CAAqBgS,QAArB;EACD;;WAED5C,cAAA,uBAAc;EAAA,uBACgB,KAAKvb,KADrB;EAAA,QACJwM,MADI,gBACJA,MADI;EAAA,QACIgC,OADJ,gBACIA,OADJ;EAEZ,SAAK0R,UAAL;EACA1R,IAAAA,OAAO,CAACrC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAEDoP,WAAA,oBAAW;EAAA,uBACmB,KAAKxb,KADxB;EAAA,QACDwM,MADC,gBACDA,MADC;EAAA,QACOgC,OADP,gBACOA,OADP;EAET,SAAK0R,UAAL;EACA1R,IAAAA,OAAO,CAACrC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAEDoQ,cAAA,qBAAYvgB,CAAZ,EAAe;EACb,QAAI,KAAK+D,KAAL,CAAW4b,OAAf,EAAwB;EACtB,WAAK5b,KAAL,CAAW4b,OAAX,CAAmB3f,CAAnB;EACD;EACF;;WAEDwgB,aAAA,oBAAWxgB,CAAX,EAAc;EACZ,QAAI,KAAK+D,KAAL,CAAW6b,MAAf,EAAuB;EACrB,WAAK7b,KAAL,CAAW6b,MAAX,CAAkB5f,CAAlB;EACD;EACF;;WAEDgkB,yBAAA,gCAAuBhD,UAAvB,EAAmC;EACjC,QAAIA,UAAU,KAAK,KAAKlP,KAAL,CAAWkP,UAA9B,EAA0C;EACxC,WAAKtG,QAAL,CAAc;EACZsG,QAAAA,UAAU,EAAVA;EADY,OAAd;EAGD;EACF;;WAEDpN,cAAA,qBAAYmI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAAC8E,eAAN;EACD;;WAED/M,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAK/P,KAD5B;EAAA,QACCwM,MADD,gBACCA,MADD;EAAA,QACSiD,SADT,gBACSA,SADT;EAGP,QAAMrD,MAAM,GAAG,CAACI,MAAM,CAACJ,MAAP,GAAgB,GAAjB,EAAsB8Q,OAAtB,CAA8B,CAA9B,CAAf;EACA,WACElN,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAACjU,CAAD,EAAO;EACV,QAAA,MAAI,CAACghB,MAAL,GAAchhB,CAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,cAJR;EAKE,MAAA,QAAQ,EAAEqQ,MALZ;EAME,MAAA,SAAS,EAAKA,MAAL,MANX;EAOE,MAAA,WAAW,EAAE,KAAKkQ,eAPpB;EAQE,MAAA,OAAO,EAAE,KAAKE,WARhB;EASE,MAAA,MAAM,EAAE,KAAKC,UATf;EAUE,MAAA,OAAO,EAAE,KAAK5M,WAVhB;EAWE,MAAA,YAAY,EAAE,KAAK2M,WAXrB;EAYE,MAAA,cAAc,EAAE,KAAKC,UAZvB;EAaE,MAAA,UAAU,EAAE,KAAKV,UAbnB;EAcE,MAAA,kBAAkB,EAAE,KAAKkE,sBAd3B;EAeE,MAAA,WAAW,EAAE,KAAK1E,WAfpB;EAgBE,MAAA,QAAQ,EAAE,KAAKC;EAhBjB,OAiBM,KAAKxb,KAjBX;EAkBE,MAAA,SAAS,EAAEiC,UAAU,CACnBwN,SADmB,EAEnB,uDAFmB;EAlBvB,QAuBEO,6BAAC,WAAD,EAAiB,KAAKhQ,KAAtB,CAvBF,CADF;EA2BD;;;IA9GqBiQ;;EAiHxB+P,SAAS,CAACzQ,SAAV,GAAsBA,WAAtB;EACAyQ,SAAS,CAAC9P,WAAV,GAAwB,WAAxB;;EC1HA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAFH;EAGhBib,EAAAA,QAAQ,EAAEla,SAAS,CAAClB,IAHJ;EAIhB6O,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAJL;EAKhBmf,EAAAA,gBAAgB,EAAEre,SAAS,CAAClB;EALZ,CAAlB;EAQA,IAAM8O,cAAY,GAAG;EACnBsM,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIMoE;;;;;EACJ,4BAAYpgB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK7B,KAAL,GAAa;EACX6O,MAAAA,MAAM,EAAE;EADG,KAAb;EAIA,UAAK/M,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EAT0B;EAU3B;;;;WAiBDkQ,cAAA,uBAAc;EAAA,sBACgB,KAAK7P,KADrB;EAAA,QACJwM,MADI,eACJA,MADI;EAAA,QACIgC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACnC,IAAR,CAAa,CAACG,MAAM,CAACF,KAArB;EACD;;WAEDkQ,cAAA,uBAAc;EACZ,SAAK7F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;EAGD;;WAEDH,aAAA,sBAAa;EACX,SAAK9F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;EAGD;;WAED7M,SAAA,kBAAS;EAAA,uBACiC,KAAK/P,KADtC;EAAA,QACCgc,QADD,gBACCA,QADD;EAAA,QACWxP,MADX,gBACWA,MADX;EAAA,QACmBiD,SADnB,gBACmBA,SADnB;EAEP,QAAMmQ,MAAM,GAAG,CAAC5D,QAAhB;EACA,QAAMqE,KAAK,GAAG,KAAKC,WAAnB;EACA,WACEtQ,6BAAC,WAAD;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnBwN,SADmB,EAEnB;EACE,uDAA+CuM,QADjD;EAEE,yDAAiD,CAACA,QAFpD;EAGE,qCAA6BxP,MAAM,CAACF,KAHtC;EAIE,iCAAyB+T,KAAK,KAAK,CAAV,IAAe,CAAC7T,MAAM,CAACF,KAJlD;EAKE,iCAAyB+T,KAAK,KAAK,CALrC;EAME,iCAAyBA,KAAK,KAAK,CANrC;EAOE,iCAAyBA,KAAK,KAAK,CAPrC;EAQE,yCACE,KAAKrgB,KAAL,CAAWmgB,gBAAX,IAA+B,KAAKpS,KAAL,CAAW6O,MAT9C;EAUE,wCACE,KAAK5c,KAAL,CAAWmgB,gBAAX,IAA+B,KAAKpS,KAAL,CAAW6O;EAX9C,OAFmB,EAenB,oCAfmB,CADvB;EAkBE,MAAA,OAAO,EAAE,KAAK/M,WAlBhB;EAmBE,MAAA,MAAM,EAAE+P;EAnBV,OAqBE5P,6BAAC,SAAD;EACE,MAAA,OAAO,EAAE,KAAKwM,WADhB;EAEE,MAAA,MAAM,EAAE,KAAKC;EAFf,OAGM,KAAKzc,KAHX,EArBF,CADF;EA6BD;;;;0BAjEiB;EAAA,+BAGZ,KAAKA,KAHO,CAEdwM,MAFc;EAAA,UAEJJ,MAFI,sBAEJA,MAFI;EAAA,UAEIE,KAFJ,sBAEIA,KAFJ;EAIhB,UAAI+T,KAAK,GAAG,CAAZ;;EACA,UAAIjU,MAAM,KAAK,CAAX,IAAgBE,KAApB,EAA2B;EACzB+T,QAAAA,KAAK,GAAG,CAAR;EACD,OAFD,MAEO,IAAIjU,MAAM,GAAG,IAAb,EAAmB;EACxBiU,QAAAA,KAAK,GAAG,CAAR;EACD,OAFM,MAEA,IAAIjU,MAAM,GAAG,IAAb,EAAmB;EACxBiU,QAAAA,KAAK,GAAG,CAAR;EACD;;EACD,aAAOA,KAAP;EACD;;;;IA1B4BpQ;;EAiF/BmQ,gBAAgB,CAAC7Q,SAAjB,GAA6BA,WAA7B;EACA6Q,gBAAgB,CAAC1Q,YAAjB,GAAgCA,cAAhC;EACA0Q,gBAAgB,CAAClQ,WAAjB,GAA+B,kBAA/B;;ECnGA,IAAMX,WAAS,GAAG;EAChBqC,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ;EADJ,CAAlB;;MAIqBqf;;;;;EACnB,gBAAYvgB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDkQ,cAAA,qBAAYmI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDnL,SAAA,kBAAS;EACP,WACEC;EACE,MAAA,SAAS,EAAC,mDADZ;EAEE,MAAA,IAAI,EAAC,cAFP;EAGE,MAAA,OAAO,EAAE,KAAKH;EAHhB,OAKEG;EAAI,MAAA,SAAS,EAAC;EAAd,OAA8C,KAAKhQ,KAAL,CAAW4R,QAAzD,CALF,CADF;EASD;;;IAtB+B3B;EAyBlCsQ,IAAI,CAAChR,SAAL,GAAiBA,WAAjB;EACAgR,IAAI,CAACrQ,WAAL,GAAmB,MAAnB;;EC7BA,IAAMX,WAAS,GAAG;EAChBiR,EAAAA,IAAI,EAAE1e,SAAS,CAACf,MADA;EAEhBkE,EAAAA,KAAK,EAAEnD,SAAS,CAAChB,MAFD;EAGhB2f,EAAAA,aAAa,EAAE3e,SAAS,CAAChB,MAHT;EAIhB4f,EAAAA,YAAY,EAAE5e,SAAS,CAACjB;EAJR,CAAlB;;MAOqB8f;;;;;EACnB,oBAAY3gB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDkQ,cAAA,uBAAc;EAAA,sBACoB,KAAK7P,KADzB;EAAA,QACJiF,KADI,eACJA,KADI;EAAA,QACGyb,YADH,eACGA,YADH;EAEZA,IAAAA,YAAY,CAACzb,KAAD,CAAZ;EACD;;WAED8K,SAAA,kBAAS;EAAA,uBACgC,KAAK/P,KADrC;EAAA,QACCwgB,IADD,gBACCA,IADD;EAAA,QACOvb,KADP,gBACOA,KADP;EAAA,QACcwb,aADd,gBACcA,aADd;EAEP,WACEzQ;EACE,MAAA,SAAS,EAAE/N,UAAU,CAAC;EACpB,qCAA6B,IADT;EAEpB,oCAA4BgD,KAAK,KAAKwb;EAFlB,OAAD,CADvB;EAKE,MAAA,IAAI,EAAC,UALP;EAME,MAAA,OAAO,EAAE,KAAK5Q;EANhB,OAQG2Q,IAAI,CAACvE,KARR,EASEjM;EAAM,MAAA,SAAS,EAAC;EAAhB,MATF,CADF;EAaD;;;IA3BmCC;EA8BtC0Q,QAAQ,CAACpR,SAAT,GAAqBA,WAArB;EACAoR,QAAQ,CAACzQ,WAAT,GAAuB,UAAvB;;ECnCA,IAAMX,WAAS,GAAG;EAChBqQ,EAAAA,MAAM,EAAE9d,SAAS,CAAClB,IADF;EAEhBggB,EAAAA,KAAK,EAAE9e,SAAS,CAACnB,KAFD;EAGhB8O,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAHL;EAIhB0f,EAAAA,YAAY,EAAE5e,SAAS,CAACjB,IAJR;EAKhB+Q,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ,GALJ;EAMhB2f,EAAAA,aAAa,EAAE/e,SAAS,CAAChB;EANT,CAAlB;;MASqBggB;;;;;EACnB,sBAAY9gB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK7B,KAAL,GAAa;EACX6O,MAAAA,MAAM,EAAE,KADG;EAEX6D,MAAAA,aAAa,EAAEzgB,KAAK,CAAC6gB,aAAN,IAAuB;EAF3B,KAAb;EAKA,UAAKE,eAAL,GAAuB,MAAKA,eAAL,CAAqBphB,IAArB,+BAAvB;EACA,UAAKqhB,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBrhB,IAAtB,+BAAxB;EACA,UAAKkQ,WAAL,GAAmB,MAAKA,WAAL,CAAiBlQ,IAAjB,+BAAnB;EACA,UAAKshB,UAAL,GAAkB,MAAKA,UAAL,CAAgBthB,IAAhB,+BAAlB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EACA,UAAKuhB,aAAL,GAAqB,MAAKA,aAAL,CAAmBvhB,IAAnB,+BAArB;EACA,UAAKwhB,eAAL,GAAuB,MAAKA,eAAL,CAAqBxhB,IAArB,+BAAvB;EACA,UAAKyhB,YAAL,GAAoB,MAAKA,YAAL,CAAkBzhB,IAAlB,+BAApB;EACA,UAAK0hB,YAAL,GAAoB,MAAKA,YAAL,CAAkB1hB,IAAlB,+BAApB;EACA,UAAK2hB,SAAL,GAAiB,MAAKA,SAAL,CAAe3hB,IAAf,+BAAjB;EACA,UAAKoa,cAAL,GAAsB,MAAKA,cAAL,CAAoBpa,IAApB,+BAAtB;EACA,UAAK4hB,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB5hB,IAAtB,+BAAxB;EACA,UAAK6hB,iBAAL,GAAyB,MAAKA,iBAAL,CAAuB7hB,IAAvB,+BAAzB;EArB0B;EAsB3B;;;;WAEDsa,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAAC2G,aAAV,KAA4B,KAAK7gB,KAAL,CAAW6gB,aAA3C,EAA0D;EACxD,WAAKG,gBAAL,CAAsB,KAAKhhB,KAAL,CAAW6gB,aAAjC;EACD;EACF;;WAEDE,kBAAA,yBAAgB9b,KAAhB,EAAuB;EACrB,SAAK0R,QAAL,CAAc;EACZ8J,MAAAA,aAAa,EAAExb;EADH,KAAd;EAGA,SAAKuc,iBAAL,CAAuBvc,KAAvB;EACD;;WAED+b,mBAAA,0BAAiB/b,KAAjB,EAAwB;EACtB,SAAK0R,QAAL,CAAc;EACZ8J,MAAAA,aAAa,EAAExb;EADH,KAAd;EAGA,SAAKuc,iBAAL,CAAuBvc,KAAvB;EACD;;WAEDuc,oBAAA,2BAAkBvc,KAAlB,EAAyB;EAAA,QACfyb,YADe,GACE,KAAK1gB,KADP,CACf0gB,YADe;EAEvBA,IAAAA,YAAY,CAACzb,KAAD,CAAZ;EACD;;WAED4K,cAAA,uBAAc;EACZ,SAAK8G,QAAL,CAAc,UAAAzH,SAAS;EAAA,aAAK;EAC1B0N,QAAAA,MAAM,EAAE,CAAC1N,SAAS,CAAC0N;EADO,OAAL;EAAA,KAAvB;EAGD;;WAEDJ,cAAA,uBAAc;EACZ1S,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK4P,cAA1C;EACD;;WAED0C,aAAA,sBAAa;EACX,SAAK9F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;EAGA9S,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0P,cAA7C;EACD;;WAEDmH,gBAAA,uBAAcjlB,CAAd,EAAiB;EAAA,QACP2kB,KADO,GACG,KAAK5gB,KADR,CACP4gB,KADO;;EAEf,QAAI,KAAK7S,KAAL,CAAW6O,MAAf,EAAuB;EACrB3gB,MAAAA,CAAC,CAACif,cAAF;EACA,UAAIuG,QAAQ,GAAG,KAAK1T,KAAL,CAAW0S,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,GAAG,CAAf,EAAkB;EAChBA,QAAAA,QAAQ,GAAGb,KAAK,CAACvhB,MAAN,GAAeuhB,KAAK,CAACvhB,MAAN,GAAe,CAA9B,GAAkC,CAA7C;EACD;;EACD,WAAK2hB,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDN,kBAAA,yBAAgBllB,CAAhB,EAAmB;EAAA,QACT2kB,KADS,GACC,KAAK5gB,KADN,CACT4gB,KADS;;EAEjB,QAAI,KAAK7S,KAAL,CAAW6O,MAAf,EAAuB;EACrB3gB,MAAAA,CAAC,CAACif,cAAF;EACA,UAAIuG,QAAQ,GAAG,KAAK1T,KAAL,CAAW0S,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,IAAIb,KAAK,CAACvhB,MAAtB,EAA8B;EAC5BoiB,QAAAA,QAAQ,GAAG,CAAX;EACD;;EACD,WAAKT,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDH,YAAA,mBAAUrlB,CAAV,EAAa;EACX,QAAI,KAAK8R,KAAL,CAAW6O,MAAf,EAAuB;EACrB3gB,MAAAA,CAAC,CAACif,cAAF;EACA,WAAK6F,eAAL,CAAqB,KAAKhT,KAAL,CAAW0S,aAAhC;EACD;EACF;;WAEDY,eAAA,sBAAaplB,CAAb,EAAgB;EACdA,IAAAA,CAAC,CAACif,cAAF;;EACA,QAAI,KAAKnN,KAAL,CAAW6O,MAAf,EAAuB;EACrB,WAAKmE,eAAL,CAAqB,KAAKhT,KAAL,CAAW0S,aAAhC;EACD,KAFD,MAEO;EACL,WAAK9J,QAAL,CAAc;EACZiG,QAAAA,MAAM,EAAE;EADI,OAAd;EAGD;EACF;;WAEDwE,eAAA,wBAAe;EACb,SAAKzK,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE,KADI;EAEZ6D,MAAAA,aAAa,EAAE;EAFH,KAAd;EAID;;WAED1G,iBAAA,wBAAe/B,KAAf,EAAsB;EACpB;EACA,QAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EACtB,WAAKuG,YAAL,CAAkBpJ,KAAlB;EACD,KAFD,MAEO,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,CAApB,EAAuB;EAC5B;EACA,WAAKyG,SAAL,CAAetJ,KAAf;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKwG,YAAL,CAAkBrJ,KAAlB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKqG,aAAL,CAAmBlJ,KAAnB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKsG,eAAL,CAAqBnJ,KAArB;EACD;EACF;;WAEDuJ,mBAAA,0BAAiBpjB,CAAjB,EAAoB;EAClB,SAAK4iB,eAAL,CAAqB5iB,CAArB;EACD;;WAED8iB,aAAA,sBAAa;EAAA;;EACX,QAAI,CAAC,KAAKlT,KAAL,CAAW6O,MAAhB,EAAwB;EACtB,aAAO,IAAP;EACD;;EAHU,QAKHgE,KALG,GAKO,KAAK5gB,KALZ,CAKH4gB,KALG;EAMX,WACE5Q,6BAAC,IAAD,QACG4Q,KAAK,CAACtiB,GAAN,CAAU,UAACkiB,IAAD,EAAOriB,CAAP;EAAA,aACT6R,6BAAC,QAAD;EACE,QAAA,IAAI,EAAEwQ,IADR;EAEE,QAAA,KAAK,EAAEriB,CAFT;EAGE,QAAA,YAAY,EAAE,MAAI,CAACojB,gBAHrB;EAIE,QAAA,aAAa,EAAE,MAAI,CAACxT,KAAL,CAAW0S,aAJ5B;EAKE,QAAA,GAAG,YAAUtiB,CAAC;EALhB,QADS;EAAA,KAAV,CADH,CADF;EAaD;;WAED4R,SAAA,kBAAS;EAAA;;EAAA,sBACuB,KAAK/P,KAD5B;EAAA,QACC4f,MADD,eACCA,MADD;EAAA,QACSnQ,SADT,eACSA,SADT;EAGP,WACEO,6BAAC,kBAAD;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnBwN,SADmB,EAEnB;EACE,8CAAsC,CAAC,CAACmQ,MAD1C;EAEE,6CAAqC,CAACA,MAFxC;EAGE,8CAAsC,KAAK7R,KAAL,CAAW6O;EAHnD,OAFmB,EAOnB,4EAPmB,CADvB;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,MAAA,QAAQ,EAAC,GAXX;EAYE,MAAA,GAAG,EAAE,aAAC7gB,CAAD,EAAO;EACV,QAAA,MAAI,CAAC2lB,UAAL,GAAkB3lB,CAAlB;EACD,OAdH;EAeE,MAAA,OAAO,EAAE,KAAK8T,WAfhB;EAgBE,MAAA,OAAO,EAAE,KAAK2M,WAhBhB;EAiBE,MAAA,MAAM,EAAE,KAAKC;EAjBf,OAmBG,KAAKzc,KAAL,CAAW4R,QAnBd,EAoBG,KAAKqP,UAAL,EApBH,CADF;EAwBD;;;IA3LqChR;EA8LxC6Q,UAAU,CAACvR,SAAX,GAAuBA,WAAvB;EACAuR,UAAU,CAAC5Q,WAAX,GAAyB,YAAzB;;EC1MA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAFH;EAGhB4gB,EAAAA,KAAK,EAAE7f,SAAS,CAACnB,KAHD;EAIhB8O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM0O,cAAY,GAAG;EACnBiS,EAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,GAAJ,EAAS,IAAT,EAAe,CAAf,EAAkB,GAAlB,EAAuB,IAAvB;EADY,CAArB;;MAIMC;;;;;EACJ,kCAAY5hB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK2R,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB5hB,IAAtB,+BAAxB;EAH0B;EAI3B;;;;WAED4hB,mBAAA,0BAAiBtc,KAAjB,EAAwB;EAAA,sBACK,KAAKjF,KADV;EAAA,QACd2hB,KADc,eACdA,KADc;EAAA,QACPnT,OADO,eACPA,OADO;;EAEtB,QAAIvJ,KAAK,IAAI,CAAT,IAAcA,KAAK,GAAG0c,KAAK,CAACtiB,MAAhC,EAAwC;EACtCmP,MAAAA,OAAO,CAACxC,UAAR,CAAmB2V,KAAK,CAAC1c,KAAD,CAAxB;EACD;EACF;;WAED8K,SAAA,kBAAS;EAAA,uBACmB,KAAK/P,KADxB;EAAA,QACC2hB,KADD,gBACCA,KADD;EAAA,QACQnV,MADR,gBACQA,MADR;EAEP,QAAMoU,KAAK,GAAGe,KAAK,CAACrjB,GAAN,CAAU,UAAA2N,IAAI;EAAA,aAAK;EAC/BgQ,QAAAA,KAAK,EAAKhQ,IAAL,MAD0B;EAE/BtQ,QAAAA,KAAK,EAAEsQ;EAFwB,OAAL;EAAA,KAAd,CAAd;EAIA,QAAM4U,aAAa,GAAGc,KAAK,CAACzc,OAAN,CAAcsH,MAAM,CAACN,YAArB,KAAsC,CAA5D;EAEA,WACE8D,6BAAC,UAAD;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,+BADmB,EAEnB,KAAKjC,KAAL,CAAWyP,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAK8R,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE7Q;EAAM,MAAA,SAAS,EAAC;EAAhB,uBATF,EAUEA;EAAK,MAAA,SAAS,EAAC;EAAf,OACMxD,MAAM,CAACN,YAAP,CAAoBgR,OAApB,CAA4B,CAA5B,CADN,OAVF,CADF;EAgBD;;;IAtCkCjN;;EAyCrC2R,sBAAsB,CAACrS,SAAvB,GAAmCA,WAAnC;EACAqS,sBAAsB,CAAClS,YAAvB,GAAsCA,cAAtC;EACAkS,sBAAsB,CAAC1R,WAAvB,GAAqC,wBAArC;;EC1CA,IAAMX,WAAS,GAAG;EAChBqC,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ,GADJ;EAEhB2gB,EAAAA,QAAQ,EAAE/f,SAAS,CAAClB,IAFJ;EAGhBkhB,EAAAA,YAAY,EAAEhgB,SAAS,CAAChB,MAHR;EAGgB;EAChCihB,EAAAA,sBAAsB,EAAEjgB,SAAS,CAAClB,IAJlB;EAKhBohB,EAAAA,iBAAiB,EAAElgB,SAAS,CAAClB,IALb;EAMhB6O,EAAAA,SAAS,EAAE3N,SAAS,CAACd;EANL,CAAlB;EASA,IAAM0O,cAAY,GAAG;EACnBmS,EAAAA,QAAQ,EAAE,IADS;EAEnBG,EAAAA,iBAAiB,EAAE;EAFA,CAArB;;MAKqBC;;;;;EACnB,sBAAYjiB,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKkiB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBviB,IAAxB,+BAA1B;EACA,UAAKwiB,eAAL,GAAuB,MAAKA,eAAL,CAAqBxiB,IAArB,+BAAvB;EAJiB;EAKlB;;;;WAEDuiB,qBAAA,8BAAqB;EACnB,WAAO,CACLlS,6BAAC,UAAD;EAAY,MAAA,GAAG,EAAC,aAAhB;EAA8B,MAAA,KAAK,EAAE;EAArC,MADK,EAELA,6BAAC,gBAAD;EAAkB,MAAA,GAAG,EAAC,oBAAtB;EAA2C,MAAA,KAAK,EAAE;EAAlD,MAFK,EAGLA,6BAAC,kBAAD;EAAoB,MAAA,GAAG,EAAC,sBAAxB;EAA+C,MAAA,KAAK,EAAE;EAAtD,MAHK,EAILA,6BAAC,WAAD;EAAa,MAAA,GAAG,EAAC,cAAjB;EAAgC,MAAA,KAAK,EAAE;EAAvC,MAJK,EAKLA,6BAAC,eAAD;EAAiB,MAAA,GAAG,EAAC,kBAArB;EAAwC,MAAA,KAAK,EAAE;EAA/C,MALK,EAMLA,6BAAC,eAAD;EAAiB,MAAA,GAAG,EAAC,kBAArB;EAAwC,MAAA,KAAK,EAAE;EAA/C,MANK,EAOLA,6BAAC,gBAAD;EAAkB,MAAA,GAAG,EAAC,mBAAtB;EAA0C,MAAA,KAAK,EAAE;EAAjD,MAPK,CAAP;EASD;;WAEDmS,kBAAA,2BAAkB;EAChB,WAAO,CACLnS,6BAAC,UAAD;EAAY,MAAA,GAAG,EAAC,aAAhB;EAA8B,MAAA,KAAK,EAAE;EAArC,MADK,EAELA,6BAAC,aAAD;EAAe,MAAA,GAAG,EAAC,gBAAnB;EAAoC,MAAA,KAAK,EAAE;EAA3C,MAFK,EAGLA,6BAAC,cAAD;EAAgB,MAAA,GAAG,EAAC,iBAApB;EAAsC,MAAA,KAAK,EAAE;EAA7C,MAHK,EAILA,6BAAC,gBAAD;EAAkB,MAAA,GAAG,EAAC,oBAAtB;EAA2C,MAAA,KAAK,EAAE;EAAlD,MAJK,EAKLA,6BAAC,kBAAD;EAAoB,MAAA,GAAG,EAAC,sBAAxB;EAA+C,MAAA,KAAK,EAAE;EAAtD,MALK,EAMLA,6BAAC,WAAD;EAAa,MAAA,GAAG,EAAC,cAAjB;EAAgC,MAAA,KAAK,EAAE;EAAvC,MANK,EAOLA,6BAAC,eAAD;EAAiB,MAAA,GAAG,EAAC,kBAArB;EAAwC,MAAA,KAAK,EAAE;EAA/C,MAPK,EAQLA,6BAAC,eAAD;EAAiB,MAAA,GAAG,EAAC,kBAArB;EAAwC,MAAA,KAAK,EAAE;EAA/C,MARK,EASLA,6BAAC,oBAAD;EAAsB,MAAA,GAAG,EAAC,wBAA1B;EAAmD,MAAA,KAAK,EAAE;EAA1D,MATK,EAULA,6BAAC,sBAAD;EACE,MAAA,KAAK,EAAE,CAAC,CAAD,EAAI,IAAJ,EAAU,GAAV,EAAe,CAAf,CADT;EAEE,MAAA,GAAG,EAAC,eAFN;EAGE,MAAA,KAAK,EAAE;EAHT,MAVK,EAeLA,6BAAC,gBAAD;EAAkB,MAAA,GAAG,EAAC,mBAAtB;EAA0C,MAAA,KAAK,EAAE;EAAjD,MAfK,CAAP;EAiBD;;WAEDoS,cAAA,uBAAc;EACZ,QAAMxQ,QAAQ,GAAG5B,cAAK,CAAC6B,QAAN,CAAeC,OAAf,CAAuB,KAAK9R,KAAL,CAAW4R,QAAlC,CAAjB;EACA,QAAMJ,eAAe,GAAG,KAAKxR,KAAL,CAAW+hB,sBAAX,GACpB,EADoB,GAEpB,KAAKG,kBAAL,EAFJ;;EAFY,sBAK0B,KAAKliB,KAL/B;EAAA,QAKJyP,SALI,eAKJA,SALI;EAAA,QAKUuC,WALV;;;EAMZ,WAAOT,oBAAoB,CAACC,eAAD,EAAkBI,QAAlB,EAA4BI,WAA5B,CAA3B;EACD;;WAEDjC,SAAA,kBAAS;EAAA,uBAC4C,KAAK/P,KADjD;EAAA,QACC6hB,QADD,gBACCA,QADD;EAAA,QACWpS,SADX,gBACWA,SADX;EAAA,QACsBuS,iBADtB,gBACsBA,iBADtB;EAEP,QAAMpQ,QAAQ,GAAG,KAAKwQ,WAAL,EAAjB;EAEA,WAAOJ,iBAAiB,GAAG,IAAH,GACtBhS;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,6BADmB,EAEnB;EACE,iDAAyC4f;EAD3C,OAFmB,EAKnBpS,SALmB;EADvB,OASGmC,QATH,CADF;EAaD;;;IAlEqC3B;EAqExCgS,UAAU,CAAC1S,SAAX,GAAuBA,WAAvB;EACA0S,UAAU,CAACvS,YAAX,GAA0BA,cAA1B;EACAuS,UAAU,CAAC/R,WAAX,GAAyB,YAAzB;;ECtGA,IAAMmS,UAAU,GAAG,OAAO1f,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAAC2f,SAAxC,GACf3f,MAAM,CAAC2f,SAAP,CAAiBC,SADF,GAEf,EAFJ;EAIA;;EAEA;;;;;;;;AAOA,EAAO,IAAMC,OAAO,GAAG,QAAQC,IAAR,CAAaJ,UAAb,CAAhB;EAGP;EACA;;AACA,EAAO,IAAMK,SAAS,GAAG,UAAUD,IAAV,CAAeJ,UAAf,KAA8B,CAACG,OAAjD;AACP,EAAO,IAAMG,OAAO,GAAG,QAAQF,IAAR,CAAaJ,UAAb,CAAhB;AACP,EAAO,IAAMO,MAAM,GAAGF,SAAS,IAAIF,OAAb,IAAwBG,OAAvC;;ECDP,IAAMpT,WAAS,GAAG;EAChBqC,EAAAA,QAAQ,EAAE9P,SAAS,CAACZ,GADJ;EAGhBmc,EAAAA,KAAK,EAAEvb,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAHS;EAIhBif,EAAAA,MAAM,EAAEje,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAJQ;EAKhB+hB,EAAAA,KAAK,EAAE/gB,SAAS,CAAClB,IALD;EAMhB0L,EAAAA,KAAK,EAAExK,SAAS,CAAClB,IAND;EAOhByS,EAAAA,WAAW,EAAEvR,SAAS,CAAClB,IAPP;EAQhBkiB,EAAAA,WAAW,EAAEhhB,SAAS,CAACd,MARP;EAShByO,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MATL;EAUhBqV,EAAAA,OAAO,EAAEvU,SAAS,CAACd,MAVH;EAYhBkS,EAAAA,SAAS,EAAEpR,SAAS,CAAChB,MAZL;EAahBqS,EAAAA,IAAI,EAAErR,SAAS,CAAClB,IAbA;EAchBwS,EAAAA,QAAQ,EAAEtR,SAAS,CAAClB,IAdJ;EAehB0S,EAAAA,GAAG,EAAExR,SAAS,CAACd,MAfC;EAgBhBoP,EAAAA,MAAM,EAAEtO,SAAS,CAACd,MAhBF;EAiBhBuS,EAAAA,OAAO,EAAEzR,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAjBO;EAmBhBgS,EAAAA,WAAW,EAAE3R,SAAS,CAACjB,IAnBP;EAoBhB6S,EAAAA,SAAS,EAAE5R,SAAS,CAACjB,IApBL;EAqBhB8S,EAAAA,SAAS,EAAE7R,SAAS,CAACjB,IArBL;EAsBhB+S,EAAAA,gBAAgB,EAAE9R,SAAS,CAACjB,IAtBZ;EAuBhBgT,EAAAA,SAAS,EAAE/R,SAAS,CAACjB,IAvBL;EAwBhBiT,EAAAA,OAAO,EAAEhS,SAAS,CAACjB,IAxBH;EAyBhBkT,EAAAA,SAAS,EAAEjS,SAAS,CAACjB,IAzBL;EA0BhBmT,EAAAA,QAAQ,EAAElS,SAAS,CAACjB,IA1BJ;EA2BhBoT,EAAAA,MAAM,EAAEnS,SAAS,CAACjB,IA3BF;EA4BhBqT,EAAAA,OAAO,EAAEpS,SAAS,CAACjB,IA5BH;EA6BhBsT,EAAAA,UAAU,EAAErS,SAAS,CAACjB,IA7BN;EA8BhBuT,EAAAA,gBAAgB,EAAEtS,SAAS,CAACjB,IA9BZ;EA+BhBwT,EAAAA,OAAO,EAAEvS,SAAS,CAACjB,IA/BH;EAgChByT,EAAAA,SAAS,EAAExS,SAAS,CAACjB,IAhCL;EAiChB0T,EAAAA,OAAO,EAAEzS,SAAS,CAACjB,IAjCH;EAkChB2T,EAAAA,SAAS,EAAE1S,SAAS,CAACjB,IAlCL;EAmChB4T,EAAAA,SAAS,EAAE3S,SAAS,CAACjB,IAnCL;EAoChB6T,EAAAA,gBAAgB,EAAE5S,SAAS,CAACjB,IApCZ;EAqChB8T,EAAAA,YAAY,EAAE7S,SAAS,CAACjB,IArCR;EAsChB+T,EAAAA,YAAY,EAAE9S,SAAS,CAACjB,IAtCR;EAuChBgU,EAAAA,YAAY,EAAE/S,SAAS,CAACjB,IAvCR;EAwChBiU,EAAAA,cAAc,EAAEhT,SAAS,CAACjB,IAxCV;EA0ChBwN,EAAAA,KAAK,EAAEvM,SAAS,CAACf;EA1CD,CAAlB;EA6CA,IAAM2O,cAAY,GAAG;EACnBmT,EAAAA,KAAK,EAAE,IADY;EAEnBvW,EAAAA,KAAK,EAAE,KAFY;EAGnB+G,EAAAA,WAAW,EAAE,KAHM;EAInBE,EAAAA,OAAO,EAAE,MAJU;EAKnBuP,EAAAA,WAAW,EAAE;EALM,CAArB;;MAQqBC;;;;;EACnB,kBAAY/iB,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKgjB,iBAAL,GAAyB,IAAzB;EAEA,UAAKvX,KAAL,GAAa,IAAb,CALiB;;EAMjB,UAAK8C,OAAL,GAAe,IAAIH,OAAJ,CAAYpO,KAAK,CAACqO,KAAlB,CAAf;EACA,UAAKG,OAAL,GAAe,MAAKD,OAAL,CAAaD,UAAb,EAAf;;EACA,UAAKC,OAAL,CAAae,4BAAb,CACE,MAAKkH,iBAAL,CAAuB7W,IAAvB,+BADF;;EAIA,UAAKsjB,QAAL,GAAgB,MAAKA,QAAL,CAActjB,IAAd,+BAAhB;EACA,UAAKoJ,YAAL,GAAoB,MAAKA,YAAL,CAAkBpJ,IAAlB,+BAApB;EACA,UAAKyiB,WAAL,GAAmB,MAAKA,WAAL,CAAiBziB,IAAjB,+BAAnB;EACA,UAAK2c,eAAL,GAAuB1J,QAAQ,CAAC,MAAK0J,eAAL,CAAqB3c,IAArB,+BAAD,EAAkC,GAAlC,CAA/B;EACA,UAAK0c,eAAL,GAAuB,MAAKA,eAAL,CAAqB1c,IAArB,+BAAvB;EACA,UAAKujB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBvjB,IAAxB,+BAA1B;EACA,UAAKwjB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BxjB,IAA5B,+BAA9B;EACA,UAAKyjB,aAAL,GAAqB,MAAKA,aAAL,CAAmBzjB,IAAnB,+BAArB;EACA,UAAK6c,WAAL,GAAmB,MAAKA,WAAL,CAAiB7c,IAAjB,+BAAnB;EACA,UAAK8c,UAAL,GAAkB,MAAKA,UAAL,CAAgB9c,IAAhB,+BAAlB;EArBiB;EAsBlB;;;;WAEDmQ,oBAAA,6BAAoB;EAClB,SAAK/G,YAAL;EACApG,IAAAA,MAAM,CAACwH,gBAAP,CAAwB,QAAxB,EAAkC,KAAKpB,YAAvC;EAEA0D,IAAAA,UAAU,CAACtC,gBAAX,CAA4B,KAAKgZ,sBAAjC;EACD;;WAEDhJ,uBAAA,gCAAuB;EACrB;EACAxX,IAAAA,MAAM,CAAC0H,mBAAP,CAA2B,QAA3B,EAAqC,KAAKtB,YAA1C;EACA0D,IAAAA,UAAU,CAACpC,mBAAX,CAA+B,KAAK8Y,sBAApC;;EACA,QAAI,KAAKH,iBAAT,EAA4B;EAC1BrgB,MAAAA,MAAM,CAAC+T,YAAP,CAAoB,KAAKsM,iBAAzB;EACD;EACF;;WAEDd,qBAAA,4BAAmBmB,gBAAnB,EAAqC;EAAA;;EACnC,WAAO,CACLrT,6BAAC,KAAD;EACE,MAAA,GAAG,EAAE,aAAAjU,CAAC,EAAI;EACR,QAAA,MAAI,CAAC0P,KAAL,GAAa1P,CAAb;EACA,QAAA,MAAI,CAACwS,OAAL,CAAa9C,KAAb,GAAqB,MAAI,CAACA,KAA1B;EACD,OAJH;EAKE,MAAA,GAAG,EAAC,OALN;EAME,MAAA,KAAK,EAAE;EANT,OAQG4X,gBARH,CADK,EAWLrT,6BAAC,WAAD;EAAa,MAAA,GAAG,EAAC,cAAjB;EAAgC,MAAA,KAAK,EAAE;EAAvC,MAXK,EAYLA,6BAAC,cAAD;EAAgB,MAAA,GAAG,EAAC,iBAApB;EAAsC,MAAA,KAAK,EAAE;EAA7C,MAZK,EAaLA,6BAAC,KAAD;EAAO,MAAA,GAAG,EAAC,OAAX;EAAmB,MAAA,KAAK,EAAE;EAA1B,MAbK,EAcLA,6BAAC,aAAD;EAAe,MAAA,GAAG,EAAC,iBAAnB;EAAqC,MAAA,KAAK,EAAE;EAA5C,MAdK,EAeLA,6BAAC,UAAD;EAAY,MAAA,GAAG,EAAC,aAAhB;EAA8B,MAAA,KAAK,EAAE;EAArC,MAfK,EAgBLA,6BAAC,QAAD;EAAU,MAAA,GAAG,EAAC,UAAd;EAAyB,MAAA,KAAK,EAAE;EAAhC,MAhBK,CAAP;EAkBD;;WAEDoS,cAAA,qBAAYpiB,KAAZ,EAAmB;EAAA,QAEJsjB,CAFI,GAKbtjB,KALa,CAEfyP,SAFe;EAAA,QAGL4T,gBAHK,GAKbrjB,KALa,CAGf4R,QAHe;EAAA,QAIZ2R,oBAJY,iCAKbvjB,KALa;;EAMjB,QAAM4R,QAAQ,GAAG5B,cAAK,CAAC6B,QAAN,CAAeC,OAAf,CAAuB,KAAK9R,KAAL,CAAW4R,QAAlC,EAA4C9C,MAA5C,CACf,UAAA7S,CAAC;EAAA,aAAI,CAAC8U,YAAY,CAAC9U,CAAD,CAAjB;EAAA,KADc,CAAjB;EAGA,QAAMuV,eAAe,GAAG,KAAK0Q,kBAAL,CAAwBmB,gBAAxB,CAAxB;EACA,WAAO9R,oBAAoB,CACzBC,eADyB,EAEzBI,QAFyB,EAGzB2R,oBAHyB,CAA3B;EAKD;;WAEDC,mBAAA,0BAAiB5M,KAAjB,EAAwBrW,IAAxB,EAA8B5E,KAA9B,EAAqC;EAAA;;EACnC,QAAI8nB,QAAJ;;EACA,QAAI,OAAO9nB,KAAP,KAAiB,QAArB,EAA+B;EAC7B,UAAIA,KAAK,KAAK,MAAd,EAAsB;EACpB8nB,QAAAA,QAAQ,GAAG,MAAX;EACD,OAFD,MAEO,IAAI9nB,KAAK,CAAC+nB,KAAN,CAAY,MAAZ,CAAJ,EAAyB;EAC9BD,QAAAA,QAAQ,GAAG9nB,KAAX;EACD;EACF,KAND,MAMO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;EACpC8nB,MAAAA,QAAQ,GAAM9nB,KAAN,OAAR;EACD;;EACDH,IAAAA,MAAM,CAACsC,MAAP,CAAc8Y,KAAd,uCACGrW,IADH,IACUkjB,QADV;EAGD;;WAEDR,WAAA,oBAAW;EAAA,sBAML,KAAKjjB,KANA;EAAA,QAEP6iB,KAFO,eAEPA,KAFO;EAAA,QAGMc,gBAHN,eAGPb,WAHO;EAAA,QAICc,WAJD,eAIP7D,MAJO;EAAA,QAKA8D,UALA,eAKPxG,KALO;;EAAA,gCAOU,KAAK9O,OAAL,CAAa3J,QAAb,EAPV;EAAA,QAOD4H,MAPC,yBAODA,MAPC;;EAQT,QAAMoK,KAAK,GAAG,EAAd;EACA,QAAIyG,KAAJ;EACA,QAAI0C,MAAJ;EACA,QAAI+C,WAAJ,CAXS;;EAcT,QAAIa,gBAAgB,KAAKhmB,SAArB,IAAkCgmB,gBAAgB,KAAK,MAA3D,EAAmE;EACjE;EACAb,MAAAA,WAAW,GAAGa,gBAAd;EACD,KAHD,MAGO,IAAInX,MAAM,CAACiB,UAAX,EAAuB;EAC5B;EACAqV,MAAAA,WAAW,GAAMtW,MAAM,CAACiB,UAAb,SAA2BjB,MAAM,CAACkB,WAA7C;EACD,KAHM,MAGA;EACL;EACAoV,MAAAA,WAAW,GAAG,MAAd;EACD,KAvBQ;;;EA0BT,QAAMgB,UAAU,GAAGhB,WAAW,CAACrkB,KAAZ,CAAkB,GAAlB,CAAnB;EACA,QAAMslB,eAAe,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAlD;;EAEA,QAAID,UAAU,KAAKlmB,SAAnB,EAA8B;EAC5B;EACA0f,MAAAA,KAAK,GAAGwG,UAAR;EACD,KAHD,MAGO,IAAID,WAAW,KAAKjmB,SAApB,EAA+B;EACpC;EACA0f,MAAAA,KAAK,GAAGuG,WAAW,GAAGG,eAAtB;EACD,KAHM,MAGA;EACL;EACA1G,MAAAA,KAAK,GAAG7Q,MAAM,CAACiB,UAAP,IAAqB,GAA7B;EACD;;EAED,QAAImW,WAAW,KAAKjmB,SAApB,EAA+B;EAC7B;EACAoiB,MAAAA,MAAM,GAAG6D,WAAT;EACD,KAHD,MAGO;EACL;EACA7D,MAAAA,MAAM,GAAG1C,KAAK,GAAG0G,eAAjB;EACD;;EAED,QAAIlB,KAAJ,EAAW;EACTjM,MAAAA,KAAK,CAACoN,UAAN,GAAsBD,eAAe,GAAG,GAAxC;EACD,KAFD,MAEO;EACL;EACA,WAAKP,gBAAL,CAAsB5M,KAAtB,EAA6B,OAA7B,EAAsCyG,KAAtC;EACA,WAAKmG,gBAAL,CAAsB5M,KAAtB,EAA6B,QAA7B,EAAuCmJ,MAAvC;EACD;;EAED,WAAOnJ,KAAP;EACD;EAGD;;;WACAhS,WAAA,oBAAW;EACT,WAAO,KAAK2J,OAAL,CAAa3J,QAAb,EAAP;EACD;;;EAuCD;WACA2G,OAAA,gBAAO;EACL,SAAKE,KAAL,CAAWF,IAAX;EACD;;;WAGDG,QAAA,iBAAQ;EACN,SAAKD,KAAL,CAAWC,KAAX;EACD;;;WAGDsK,OAAA,gBAAO;EACL,SAAKvK,KAAL,CAAWuK,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAKxK,KAAL,EAAWwK,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKzK,KAAL,EAAWyK,WAAX;EACD;;;WAGDtK,OAAA,cAAK1C,IAAL,EAAW;EACT,SAAKuC,KAAL,CAAWG,IAAX,CAAgB1C,IAAhB;EACD;;;WAGD2C,UAAA,iBAAQC,OAAR,EAAiB;EACf,SAAKL,KAAL,CAAWI,OAAX,CAAmBC,OAAnB;EACD;;;WAGDC,SAAA,gBAAOD,OAAP,EAAgB;EACd,SAAKL,KAAL,CAAWM,MAAX,CAAkBD,OAAlB;EACD;;;WAGDS,mBAAA,4BAAmB;EACjB,SAAKd,KAAL,CAAWc,gBAAX;EACD;;;WAGD0C,yBAAA,gCAAuBnK,QAAvB,EAAiC;EAC/B,WAAO,KAAKyJ,OAAL,CAAae,4BAAb,CAA0CxK,QAA1C,CAAP;EACD;;;WAGDiE,eAAA,wBAAe;;WAEfoa,yBAAA,gCAAuBnL,KAAvB,EAA8B;EAC5B,QAAIA,KAAK,CAAClZ,MAAN,KAAiB,KAAKyP,OAAL,CAAa5B,WAAlC,EAA+C;EAC7C,WAAK6B,OAAL,CAAatD,sBAAb,CAAoCuB,UAAU,CAACtB,YAA/C;EACD;EACF;;WAEDkR,kBAAA,2BAAkB;EAChB,SAAK6G,kBAAL;EACD;;WAED5G,kBAAA,2BAAkB;EAChB,SAAK4G,kBAAL;EACD;;WAEDE,gBAAA,yBAAgB;EACd,SAAKF,kBAAL;EACD;;WAEDA,qBAAA,8BAAqB;EAAA;;EACnB,QAAIe,oBAAoB,GAAG,IAA3B;EACAjU,IAAAA,cAAK,CAAC6B,QAAN,CAAenT,OAAf,CAAuB,KAAKsB,KAAL,CAAW4R,QAAlC,EAA4C,UAAAxQ,OAAO,EAAI;EACrD,UAAI,CAAC4O,cAAK,CAACkU,cAAN,CAAqB9iB,OAArB,CAAD,IAAkCA,OAAO,CAACpE,IAAR,KAAiBilB,UAAvD,EAAmE;EACjE;EACD;;EAHoD,UAK7CH,YAL6C,GAK5B1gB,OAAO,CAACpB,KALoB,CAK7C8hB,YAL6C;;EAMrD,UAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;EACpCmC,QAAAA,oBAAoB,GAAGnC,YAAvB;EACD;EACF,KATD;EAWA,SAAKtT,OAAL,CAAalD,YAAb,CAA0B,IAA1B;EACAoL,IAAAA,YAAY,CAAC,KAAKsM,iBAAN,CAAZ;EACA,SAAKA,iBAAL,GAAyBhQ,UAAU,CAAC,YAAM;EACxC,MAAA,MAAI,CAACxE,OAAL,CAAalD,YAAb,CAA0B,KAA1B;EACD,KAFkC,EAEhC2Y,oBAFgC,CAAnC;EAGD;;WAEDzN,oBAAA,2BAAkBzI,KAAlB,EAAyBmB,SAAzB,EAAoC;EAClC,QAAInB,KAAK,CAAC5C,YAAN,KAAuB+D,SAAS,CAAC/D,YAArC,EAAmD;EACjD,WAAKpC,YAAL,GADiD;;EAGjDiQ,MAAAA,SAAS,CAAC,KAAKzK,OAAL,CAAa5B,WAAd,CAAT;EACD;;EACD,SAAK4I,WAAL,GANkC;EAOnC;;WAEDiH,cAAA,uBAAc;EACZ,SAAKhO,OAAL,CAAapD,QAAb,CAAsB,IAAtB;EACD;;WAEDqR,aAAA,sBAAa;EACX,SAAKjO,OAAL,CAAapD,QAAb,CAAsB,KAAtB;EACD;;WAED2E,SAAA,kBAAS;EAAA;;EAAA,QACC8S,KADD,GACW,KAAK7iB,KADhB,CACC6iB,KADD;;EAAA,iCAEY,KAAKtU,OAAL,CAAa3J,QAAb,EAFZ;EAAA,QAEC4H,MAFD,0BAECA,MAFD;;EAAA,QAILY,MAJK,GAUHZ,MAVG,CAILY,MAJK;EAAA,QAKLO,UALK,GAUHnB,MAVG,CAKLmB,UALK;EAAA,QAMLT,OANK,GAUHV,MAVG,CAMLU,OANK;EAAA,QAOLC,OAPK,GAUHX,MAVG,CAOLW,OAPK;EAAA,QAQLhC,YARK,GAUHqB,MAVG,CAQLrB,YARK;EAAA,QASLyC,YATK,GAUHpB,MAVG,CASLoB,YATK;;EAYP,QAAM5N,KAAK,gBACN,KAAKA,KADC;EAETwM,MAAAA,MAAM,EAANA,MAFS;EAGTgC,MAAAA,OAAO,EAAE,KAAKA,OAHL;EAITD,MAAAA,OAAO,EAAE,KAAKA,OAJL;EAKTF,MAAAA,KAAK,EAAE,KAAKE,OAAL,CAAaF,KALX;EAMT5C,MAAAA,KAAK,EAAE,KAAKA,KAAL,GAAa,KAAKA,KAAL,CAAWA,KAAxB,GAAgC;EAN9B,MAAX;;EAQA,QAAMmG,QAAQ,GAAG,KAAKwQ,WAAL,CAAiBpiB,KAAjB,CAAjB;EAEA,WACEgQ;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB;EACE,4CAAoC,IADtC;EAEE,uCAA+B0L,UAFjC;EAGE,kCAA0BP,MAH5B;EAIE,mCAA2B,CAACA,MAJ9B;EAKE,mCAA2BF,OAL7B;EAME,mCAA2BC,OAN7B;EAOE,iCAAyB0V,KAP3B;EAQE,sCAA8B1X,YARhC;EASE,yCAAiC,CAACyC,YATpC;EAUE,uCAA+BA,YAVjC;EAWE,wCAAgC,CAACuW;EAXnC,OADmB,EAcnB,iBAdmB,EAenB,KAAKnkB,KAAL,CAAWyP,SAfQ,CADvB;EAkBE,MAAA,KAAK,EAAE,KAAKwT,QAAL,EAlBT;EAmBE,MAAA,GAAG,EAAE,aAAAlnB,CAAC,EAAI;EACR,QAAA,MAAI,CAACwS,OAAL,CAAa5B,WAAb,GAA2B5Q,CAA3B;EACD,OArBH;EAsBE,MAAA,IAAI,EAAC,QAtBP;EAuBE,MAAA,YAAY,EAAE,KAAKsgB,eAvBrB;EAwBE,MAAA,WAAW,EAAE,KAAKA,eAxBpB;EAyBE,MAAA,WAAW,EAAE,KAAKC,eAzBpB;EA0BE,MAAA,WAAW,EAAE,KAAKA,eA1BpB;EA2BE,MAAA,SAAS,EAAE,KAAK8G,aA3BlB;EA4BE,MAAA,OAAO,EAAE,KAAK5G,WA5BhB;EA6BE,MAAA,MAAM,EAAE,KAAKC,UA7Bf;EA8BE,MAAA,QAAQ,EAAC;EA9BX,OAgCG7K,QAhCH,CADF;EAoCD;;;;0BA1MkB;EACjB,aAAO,KAAKnG,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES5O,KAAK;EACb,WAAK+N,KAAL,CAAWa,KAAX,GAAmB5O,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK+N,KAAL,CAAWW,MAAlB;EACD;wBAEU1O,KAAK;EACd,WAAK+N,KAAL,CAAWW,MAAX,GAAoB1O,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK+N,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IAnMiCuC;EA8WpC8S,MAAM,CAACxT,SAAP,GAAmBA,WAAnB;EACAwT,MAAM,CAACrT,YAAP,GAAsBA,cAAtB;EACAqT,MAAM,CAAC7S,WAAP,GAAqB,QAArB;;MCpbqBkU;;;;;EACnB,wBAAYpkB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA2C,IAAAA,iBAAiB,CAAC,cAAD,EAAiB,wBAAjB,CAAjB;EAH0B;EAI3B;;;;WAEDxC,SAAA,kBAAS;EACP,WAAOC,6BAAC,sBAAD,EAA4B,KAAKhQ,KAAjC,CAAP;EACD;;;IATuCiQ;EAY1CmU,YAAY,CAAClU,WAAb,GAA2B,cAA3B;;ECXA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,MAAM,EAAE1K,SAAS,CAACf,MADF;EAEhByN,EAAAA,OAAO,EAAE1M,SAAS,CAACf,MAFH;EAGhB0O,EAAAA,SAAS,EAAE3N,SAAS,CAACd,MAHL;EAIhBqjB,EAAAA,WAAW,EAAEviB,SAAS,CAACd,MAJP;EAKhBsjB,EAAAA,WAAW,EAAExiB,SAAS,CAAClB,IALP;EAMhB2jB,EAAAA,KAAK,EAAEziB,SAAS,CAACnB;EAND,CAAlB;EASA,IAAM+O,cAAY,GAAG;EACnB2U,EAAAA,WAAW,EAAE,KADM;EAEnBC,EAAAA,WAAW,EAAE,IAFM;EAGnBC,EAAAA,KAAK,EAAE,CAAC,UAAD,EAAa,WAAb,CAHY;;EAAA,CAArB;;MAMMC;;;;;EACJ,+BAAYxkB,KAAZ,EAAmB4P,OAAnB,EAA4B;EAAA;;EAC1B,kCAAM5P,KAAN,EAAa4P,OAAb;EAEA,UAAK6U,iBAAL,GAAyB,MAAKA,iBAAL,CAAuB9kB,IAAvB,+BAAzB;EACA,UAAK+kB,WAAL,GAAmB,MAAKA,WAAL,CAAiB/kB,IAAjB,+BAAnB;EACA,UAAK4hB,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB5hB,IAAtB,+BAAxB;EAEA,UAAKoO,KAAL,GAAa,MAAK0W,iBAAL,EAAb;EAP0B;EAQ3B;;;;WAEDxK,qBAAA,8BAAqB;EACnB,SAAKyK,WAAL;EACD;;WAEDD,oBAAA,6BAAoB;EAAA,sBAGd,KAAKzkB,KAHS;EAAA,QAEhBukB,KAFgB,eAEhBA,KAFgB;EAAA,QAET/X,MAFS,eAETA,MAFS;EAAA,QAED6X,WAFC,eAEDA,WAFC;EAAA,QAEYC,WAFZ,eAEYA,WAFZ;EAAA,QAIV9O,UAJU,GAIsBhJ,MAJtB,CAIVgJ,UAJU;EAAA,QAIE1H,eAJF,GAIsBtB,MAJtB,CAIEsB,eAJF;EAKlB,QAAM6W,cAAc,GAAG;EACrB/D,MAAAA,KAAK,EAAE,EADc;EAErBC,MAAAA,aAAa,EAAE;EAFM,KAAvB;EAIA,QAAM+D,MAAM,GAAGtiB,KAAK,CAACtD,IAAN,CAAWwW,UAAU,IAAI,EAAzB,CAAf;;EAEA,QAAIoP,MAAM,CAACvlB,MAAP,KAAkB,CAAtB,EAAyB;EACvB,aAAOslB,cAAP;EACD;;EAED,QAAIL,WAAJ,EAAiB;EACfK,MAAAA,cAAc,CAAC/D,KAAf,CAAqBve,IAArB,CAA0B;EACxB4Z,QAAAA,KAAK,EAAEoI,WAAW,IAAI,KADE;EAExB1oB,QAAAA,KAAK,EAAE;EAFiB,OAA1B;EAID;;EAEDipB,IAAAA,MAAM,CAAClmB,OAAP,CAAe,UAAC2K,SAAD,EAAe;EAC5B;EACA,UAAIkb,KAAK,CAACllB,MAAN,IAAgB,CAACklB,KAAK,CAACM,QAAN,CAAexb,SAAS,CAACyb,IAAzB,CAArB,EAAqD;EACnD;EACD;;EAEDH,MAAAA,cAAc,CAAC/D,KAAf,CAAqBve,IAArB,CAA0B;EACxB4Z,QAAAA,KAAK,EAAE5S,SAAS,CAAC4S,KADO;EAExBtgB,QAAAA,KAAK,EAAE0N,SAAS,CAAC0b;EAFO,OAA1B;EAID,KAVD;EAYAJ,IAAAA,cAAc,CAAC9D,aAAf,GAA+B8D,cAAc,CAAC/D,KAAf,CAAqBoE,SAArB,CAC7B,UAAAxE,IAAI;EAAA,aAAI1S,eAAe,IAAIA,eAAe,CAACiX,QAAhB,KAA6BvE,IAAI,CAAC7kB,KAAzD;EAAA,KADyB,CAA/B;;EAIA,QAAIgpB,cAAc,CAAC9D,aAAf,KAAiC,CAAC,CAAtC,EAAyC;EACvC8D,MAAAA,cAAc,CAAC9D,aAAf,GAA+B,CAA/B;EACD;;EAED,WAAO8D,cAAP;EACD;;WAEDD,cAAA,uBAAc;EACZ,QAAMC,cAAc,GAAG,KAAKF,iBAAL,EAAvB;;EACA,QACEE,cAAc,CAAC9D,aAAf,KAAiC,KAAK9S,KAAL,CAAW8S,aAA5C,IACG,CAAC,KAAKoE,sBAAL,CAA4BN,cAAc,CAAC/D,KAA3C,EAAkD,KAAK7S,KAAL,CAAW6S,KAA7D,CAFN,EAGE;EACA,WAAKjK,QAAL,CAAcgO,cAAd;EACD;EACF;;WAEDM,yBAAA,gCAAuBC,MAAvB,EAA+BC,MAA/B,EAAuC;EACrC,QAAID,MAAM,CAAC7lB,MAAP,KAAkB8lB,MAAM,CAAC9lB,MAA7B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,SAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+mB,MAAM,CAAC7lB,MAA3B,EAAmClB,CAAC,EAApC,EAAwC;EACtC,UACE,CAACgnB,MAAM,CAAChnB,CAAD,CAAP,IACG+mB,MAAM,CAAC/mB,CAAD,CAAN,CAAU8d,KAAV,KAAoBkJ,MAAM,CAAChnB,CAAD,CAAN,CAAU8d,KADjC,IAEGiJ,MAAM,CAAC/mB,CAAD,CAAN,CAAUxC,KAAV,KAAoBwpB,MAAM,CAAChnB,CAAD,CAAN,CAAUxC,KAHnC,EAIE;EACA,eAAO,KAAP;EACD;EACF;;EAED,WAAO,IAAP;EACD;;WAED4lB,mBAAA,0BAAiBtc,KAAjB,EAAwB;EAAA,uBACmB,KAAKjF,KADxB;EAAA,QACdwM,MADc,gBACdA,MADc;EAAA,QACNgC,OADM,gBACNA,OADM;EAAA,QACG8V,WADH,gBACGA,WADH;EAAA,QAEd9O,UAFc,GAEChJ,MAFD,CAEdgJ,UAFc;EAKtB;;EACAlT,IAAAA,KAAK,CAACtD,IAAN,CAAWwW,UAAX,EAAuB9W,OAAvB,CAA+B,UAAC2K,SAAD,EAAYlL,CAAZ,EAAkB;EAC/C;EACA,UAAI8G,KAAK,MAAMqf,WAAW,GAAGnmB,CAAC,GAAG,CAAP,GAAWA,CAA5B,CAAT,EAAyC;EACvCkL,QAAAA,SAAS,CAACuM,IAAV,GAAiB,SAAjB;EACApH,QAAAA,OAAO,CAACpF,iBAAR,CAA0BC,SAA1B;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,CAACuM,IAAV,GAAiB,QAAjB;EACD;EACF,KARD;EASD;;WAED7F,SAAA,kBAAS;EAAA,sBAC0B,KAAKhC,KAD/B;EAAA,QACC6S,KADD,eACCA,KADD;EAAA,QACQC,aADR,eACQA,aADR;EAGP,WACE7Q,6BAAC,UAAD;EACE,MAAA,SAAS,EAAE/N,UAAU,CACnB,gCADmB,EAEnB,KAAKjC,KAAL,CAAWyP,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAK8R,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE7Q;EAAM,MAAA,SAAS,EAAC;EAAhB,wBATF,CADF;EAaD;;;IAzH+BC;;EA4HlCuU,mBAAmB,CAACjV,SAApB,GAAgCA,WAAhC;EACAiV,mBAAmB,CAAC9U,YAApB,GAAmCA,cAAnC;EACA8U,mBAAmB,CAACtU,WAApB,GAAkC,qBAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|