video-react-new 0.19.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/index.d.ts +785 -0
- 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 +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-react-new.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","../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 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","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","action","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","createStore","reducer","getActions","manager","dispatch","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","getState","subscribeToStateChange","listener","prevState","handleChange","prevStateCopy","subscribe","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","Math","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","index","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","indexOf","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;ECPO,IAAMW,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;EACLvH,IAAAA,IAAI,EAAE4F,UADD;EAEL2B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,aAAT,CAAuBD,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE6F,QADD;EAEL0B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,aAAT,CAAuBF,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE8F,OADD;EAELyB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,oBAAT,CAA8BH,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAE+F,gBADD;EAELwB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASI,aAAT,CAAuBJ,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEgG,OADD;EAELuB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASK,UAAT,CAAoBL,UAApB,EAAgC;EACrC,SAAO;EACLvH,IAAAA,IAAI,EAAEiG,IADD;EAELsB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASM,WAAT,CAAqBN,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAEkG,KADD;EAELqB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASO,SAAT,CAAmBP,UAAnB,EAA+B;EACpC,SAAO;EACLvH,IAAAA,IAAI,EAAEmG,GADD;EAELoB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASQ,aAAT,CAAuBR,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEoG,OADD;EAELmB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASS,YAAT,CAAsBT,UAAtB,EAAkC;EACvC,SAAO;EACLvH,IAAAA,IAAI,EAAEqG,MADD;EAELkB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASU,oBAAT,CAA8BV,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAEwG,eADD;EAELe,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASW,gBAAT,CAA0BX,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAEyG,WADD;EAELc,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASY,kBAAT,CAA4BZ,UAA5B,EAAwC;EAC7C,SAAO;EACLvH,IAAAA,IAAI,EAAE0G,aADD;EAELa,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASa,oBAAT,CAA8Bb,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAE2G,eADD;EAELY,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASc,gBAAT,CAA0Bd,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAE4G,WADD;EAELW,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASe,aAAT,CAAuBf,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE6G,OADD;EAELU,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASgB,WAAT,CAAqBhB,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAE8G,KADD;EAELS,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASiB,aAAT,CAAuBjB,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE+G,OADD;EAELQ,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASkB,aAAT,CAAuBlB,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEgH,OADD;EAELO,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASmB,oBAAT,CAA8BnB,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAEiH,gBADD;EAELM,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASoB,gBAAT,CAA0BpB,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAEkH,WADD;EAELK,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASqB,YAAT,CAAsBrB,UAAtB,EAAkC;EACvC,SAAO;EACLvH,IAAAA,IAAI,EAAEmH,MADD;EAELI,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASsB,WAAT,CAAqBtB,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAEoH,KADD;EAELG,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASuB,iBAAT,CAA2BC,IAA3B,EAAiC;EACtC,SAAO;EACL/I,IAAAA,IAAI,EAAEsG,YADD;EAELyC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,gBAAT,CAA0BD,IAA1B,EAAgC;EACrC,SAAO;EACL/I,IAAAA,IAAI,EAAEuG,WADD;EAELwC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,iBAAT,CAA2BC,SAA3B,EAAsC;EAC3C,SAAO;EACLlJ,IAAAA,IAAI,EAAEqH,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;EACLhL,IAAAA,IAAI,EAAE4K,iBADD;EAELI,IAAAA,YAAY,EAAZA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,QAAT,CAAkBC,QAAlB,EAA4B;EACjC,SAAO;EACLlL,IAAAA,IAAI,EAAE6K,eADD;EAELK,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,YAAT,CAAsBD,QAAtB,EAAgC;EACrC,SAAO;EACLlL,IAAAA,IAAI,EAAE8K,aADD;EAELI,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,IAAT,CACLC,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,MADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWH,IAAX;EAEA,SAAO;EACLpL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,KAAT,CACLH,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,OADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWC,KAAX;EAEA,SAAO;EACLxL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASI,UAAT,CACLJ,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,aADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWE,UAAX;EAEA,SAAO;EACLzL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASK,IAAT,CACL3C,IADK,EAELsC,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,MADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWG,IAAX,CAAgB3C,IAAhB;EAEA,SAAO;EACL/I,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASM,OAAT,CACLC,OADK,EAELP,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,eAAaM,OADT;EAEV7J,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWI,OAAX,CAAmBC,OAAnB;EAEA,SAAO;EACL5L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASQ,MAAT,CACLD,OADK,EAELP,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,cAAYM,OADR;EAEV7J,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWM,MAAX,CAAkBD,OAAlB;EAEA,SAAO;EACL5L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASS,UAAT,CACLC,IADK,EAELV,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,aADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EAEA,SAAO;EACL/L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASY,YAAT,CACLC,MADK,EAELb,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,eADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,MAAI9B,CAAC,GAAGiM,MAAR;;EACA,MAAIA,MAAM,GAAG,CAAb,EAAgB;EACdjM,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,MAAIiM,MAAM,GAAG,CAAb,EAAgB;EACdjM,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,OAAKsL,KAAL,CAAWW,MAAX,GAAoBjM,CAApB;EAEA,SAAO;EACLD,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASc,IAAT,CACLC,KADK,EAELf,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAEc,KAAK,GAAG,OAAH,GAAa,SADhB;EAEVrK,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWa,KAAX,GAAmBA,KAAnB;EAEA,SAAO;EACLpM,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASgB,gBAAT,CAA0BC,MAA1B,EAAkC;EACvC,MAAIC,UAAU,CAACC,OAAf,EAAwB;EACtB,QAAID,UAAU,CAACvB,YAAf,EAA6B;EAC3BuB,MAAAA,UAAU,CAAC7C,IAAX;EACD,KAFD,MAEO;EACL6C,MAAAA,UAAU,CAACnD,OAAX,CAAmB,KAAKqD,WAAxB;EACD;;EACD,WAAO;EACLzM,MAAAA,IAAI,EAAE2K,OADD;EAELU,MAAAA,SAAS,EAAE;EACTC,QAAAA,MAAM,EAAE,mBADC;EAETvJ,QAAAA,MAAM,EAAE;EAFC;EAFN,KAAP;EAOD;;EAED,SAAO;EACL/B,IAAAA,IAAI,EAAE4K,iBADD;EAELI,IAAAA,YAAY,EAAE,CAACsB,MAAM,CAACtB;EAFjB,GAAP;EAID;;;;;;;;;;;;;;;;;;;;;;EC5JD,IAAM0B,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;EAqBnB3C,EAAAA,YAAY,EAAE,KArBK;EAsBnB4C,EAAAA,eAAe,EAAE;EAtBE,CAArB;AAyBA,EAAe,SAAStB,MAAT,CAAgBuB,KAAhB,EAAsCvC,MAAtC,EAA8C;EAAA,MAA9BuC,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,YAAsB;EAAA;;EAC3D,UAAQpB,MAAM,CAACtL,IAAf;EACE,SAAK8K,aAAL;EACE,0BACK+C,KADL;EAEEH,QAAAA,YAAY,EAAEpC,MAAM,CAACJ;EAFvB;;EAIF,SAAKL,eAAL;EACE,0BACKgD,KADL;EAEEF,QAAAA,QAAQ,EAAErC,MAAM,CAACJ;EAFnB;;EAIF,SAAKN,iBAAL;EACE,0BACKiD,KADL;EAEE7C,QAAAA,YAAY,EAAE,CAAC,CAACM,MAAM,CAACN;EAFzB;;EAIF,SAAK1E,YAAL;EACE,0BACKuH,KADL;EAEEf,QAAAA,WAAW,EAAExB,MAAM,CAACvC;EAFtB;;EAIF,SAAKxC,WAAL;EACE,0BACKsH,KADL;EAEEf,QAAAA,WAAW,EAAE;EAFf;;EAIF,SAAKlH,UAAL;EACE,0BACKiI,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEkG,QAAAA,UAAU,EAAE,KAHd;EAIEL,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAKvH,QAAL;EACE,0BACKgI,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKlH,OAAL;EACE,0BACK+H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKjH,gBAAL;EACA,SAAKC,OAAL;EACE,0BACK6H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK/G,IAAL;EACE,0BACK4H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE6F,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,SAAKvH,KAAL;EACE,0BACK2H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE2F,QAAAA,MAAM,EAAE;EAHV;;EAKF,SAAK/G,GAAL;EACE,0BACK0H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE6F,QAAAA,KAAK,EAAE;EAHT;;EAKF,SAAKhH,OAAL;EACE,0BACKyH,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE0F,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK5G,MAAL;EACE,0BACKwH,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE0F,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK7F,KAAL;EACE,0BACKyG,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEuG,QAAAA,KAAK,EAAE,eAHT;EAIEV,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAK5G,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,0BACK0G,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;;EAIF,SAAKF,mBAAL;EACE,0BACKwG,KADL;EAEED,QAAAA,eAAe,EAAEtC,MAAM,CAACpC;EAF1B;;EAIF;EACE,aAAO2E,KAAP;EAnHJ;EAqHD;;EC/KD,IAAMnB,cAAY,GAAG;EACnBqB,EAAAA,KAAK,EAAE,CADY;EAEnB1C,EAAAA,SAAS,EAAE;EACTC,IAAAA,MAAM,EAAE,EADC;EAETvJ,IAAAA,MAAM,EAAE;EAFC;EAFQ,CAArB;AAQA,EAAe,SAASsJ,SAAT,CAAmBwC,KAAnB,EAAyCvC,MAAzC,EAAiD;EAAA,MAA9BuC,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,cAAsB;EAAA;;EAC9D,UAAQpB,MAAM,CAACtL,IAAf;EACE,SAAK2K,OAAL;EACE,0BACKkD,KADL;EAEEE,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAAN,GAAc,CAFvB;EAGE1C,QAAAA,SAAS,eACJwC,KAAK,CAACxC,SADF,EAEJC,MAAM,CAACD,SAFH;EAHX;;EAQF;EACE,aAAOwC,KAAP;EAXJ;EAaD;;ECrBc,kBAAUA,KAAV,EAAsBvC,MAAtB,EAA8B;EAAA,MAApBuC,KAAoB;EAApBA,IAAAA,KAAoB,GAAZ,EAAY;EAAA;;EAC3C,SAAO;EACLvB,IAAAA,MAAM,EAAEA,MAAM,CAACuB,KAAK,CAACvB,MAAP,EAAehB,MAAf,CADT;EAELD,IAAAA,SAAS,EAAEA,SAAS,CAACwC,KAAK,CAACxC,SAAP,EAAkBC,MAAlB;EAFf,GAAP;EAID;AAED,MAAa0C,aAAa,GAAG1B,MAAtB;AACP,MAAa2B,gBAAgB,GAAG5C,SAAzB;;MCNc6C;;;EACnB,mBAAYC,KAAZ,EAAmB;EACjB,SAAKA,KAAL,GAAaA,KAAK,IAAIC,iBAAW,CAACC,OAAD,CAAjC;EAEA,SAAK9C,KAAL,GAAa,IAAb;EACA,SAAKkB,WAAL,GAAmB,IAAnB;EACD;;;;WAED6B,aAAA,sBAAa;EACX,QAAMC,OAAO,GAAG,IAAhB;EADW,QAEHC,QAFG,GAEU,KAAKL,KAFf,CAEHK,QAFG;;EAGX,QAAMC,OAAO,gBACRC,aADQ,EAERC,YAFQ,CAAb;;EAKA,aAASC,iBAAT,CAA2BC,aAA3B,EAA0C;EACxC,aAAO,SAASC,UAAT,GAAsB;EAC3B;EACA,YAAMxD,MAAM,GAAGuD,aAAa,CAACpJ,KAAd,CAAoB8I,OAApB,EAA6BnM,SAA7B,CAAf;;EACA,YAAI,OAAOkJ,MAAP,KAAkB,WAAtB,EAAmC;EACjCkD,UAAAA,QAAQ,CAAClD,MAAD,CAAR;EACD;EACF,OAND;EAOD;;EAED,WAAO9M,MAAM,CAACoD,IAAP,CAAY6M,OAAZ,EACJM,MADI,CACG,UAAAzM,GAAG;EAAA,aAAI,OAAOmM,OAAO,CAACnM,GAAD,CAAd,KAAwB,UAA5B;EAAA,KADN,EAEJ0M,MAFI,CAEG,UAACC,YAAD,EAAe3M,GAAf,EAAuB;EAC7B2M,MAAAA,YAAY,CAAC3M,GAAD,CAAZ,GAAoBsM,iBAAiB,CAACH,OAAO,CAACnM,GAAD,CAAR,CAArC;EACA,aAAO2M,YAAP;EACD,KALI,EAKF,EALE,CAAP;EAMD;;WAEDC,WAAA,oBAAW;EACT,WAAO,KAAKf,KAAL,CAAWe,QAAX,EAAP;EACD;;;WAGDC,yBAAA,gCAAuBC,QAAvB,EAAiCF,QAAjC,EAA2C;EACzC,QAAI,CAACA,QAAL,EAAe;EACbA,MAAAA,QAAQ,GAAG,KAAKA,QAAL,CAAcvM,IAAd,CAAmB,IAAnB,CAAX;EACD;;EAED,QAAI0M,SAAS,GAAGH,QAAQ,EAAxB;;EAEA,QAAMI,YAAY,GAAG,SAAfA,YAAe,GAAM;EACzB,UAAMzB,KAAK,GAAGqB,QAAQ,EAAtB;;EACA,UAAIrB,KAAK,KAAKwB,SAAd,EAAyB;EACvB;EACD;;EACD,UAAME,aAAa,GAAGF,SAAtB;EACAA,MAAAA,SAAS,GAAGxB,KAAZ;EACAuB,MAAAA,QAAQ,CAACvB,KAAD,EAAQ0B,aAAR,CAAR;EACD,KARD;;EAUA,WAAO,KAAKpB,KAAL,CAAWqB,SAAX,CAAqBF,YAArB,CAAP;EACD;;;WAGDG,kCAAA,yCAAgCL,QAAhC,EAA0C;EAAA;;EACxC,WAAO,KAAKD,sBAAL,CACLC,QADK,EAEL;EAAA,aAAM,KAAI,CAACF,QAAL,GAAgB7D,SAAtB;EAAA,KAFK,CAAP;EAID;;;WAGDqE,+BAAA,sCAA6BN,QAA7B,EAAuC;EAAA;;EACrC,WAAO,KAAKD,sBAAL,CAA4BC,QAA5B,EAAsC;EAAA,aAAM,MAAI,CAACF,QAAL,GAAgB5C,MAAtB;EAAA,KAAtC,CAAP;EACD;;;;;ECvEH,IAAMqD,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB6L,EAAAA,QAAQ,EAAE9K,SAAS,CAACd,MAHJ;EAIhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM8L,YAAY,GAAG;EACnBF,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIqBG;;;;;EACnB,yBAAY/M,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBD,cAAA,uBAAc;EAAA,QACJxB,OADI,GACQ,KAAKzL,KADb,CACJyL,OADI;EAEZA,IAAAA,OAAO,CAACrD,IAAR;EACD;;WAED+E,SAAA,kBAAS;EAAA,sBACsB,KAAKnN,KAD3B;EAAA,QACCsJ,MADD,eACCA,MADD;EAAA,QACSsD,QADT,eACSA,QADT;EAEP,WACEQ;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,wBADmB,EAEnB,iCAFmB,uCAGgB2K,QAHhB,EAInB,KAAK5M,KAAL,CAAW6M,SAJQ,EAKnB;EACE,gCAAwBvD,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,KAAKsD;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;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAASuM,cAAT,OAA+C;EAAA,MAArBjE,MAAqB,QAArBA,MAAqB;EAAA,MAAbuD,SAAa,QAAbA,SAAa;;EAC5D,MAAIvD,MAAM,CAACwB,KAAX,EAAkB;EAChB,WAAO,IAAP;EACD;;EACD,SACEsC;EAAK,IAAA,SAAS,EAAEnL,UAAU,CAAC,iCAAD,EAAoC4K,SAApC;EAA1B,IADF;EAGD;EAEDU,cAAc,CAACZ,SAAf,GAA2BA,WAA3B;EACAY,cAAc,CAACD,WAAf,GAA6B,gBAA7B;;ECfA,IAAMX,WAAS,GAAG;EAChBa,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MADF;EAEhBsI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAHH;EAIhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;EAOA,SAASyM,WAAT,OAEG;EAAA,MADDD,MACC,QADDA,MACC;EAAA,MADOlE,MACP,QADOA,MACP;EAAA,MADemC,OACf,QADeA,OACf;EAAA,MADwBoB,SACxB,QADwBA,SACxB;;EACD,MAAI,CAACW,MAAD,IAAWlE,MAAM,CAACmB,UAAtB,EAAkC;EAChC,WAAO,IAAP;EACD;;EAED,SACE2C;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC,wBAAD,EAA2B4K,SAA3B,CADvB;EAEE,IAAA,KAAK,EAAE;EACLa,MAAAA,eAAe,aAAUF,MAAV;EADV,KAFT;EAKE,IAAA,OAAO,EAAE,mBAAM;EACb,UAAIlE,MAAM,CAACY,MAAX,EAAmB;EACjBuB,QAAAA,OAAO,CAACrD,IAAR;EACD;EACF;EATH,IADF;EAaD;;EAEDqF,WAAW,CAACd,SAAZ,GAAwBA,WAAxB;EACAc,WAAW,CAACH,WAAZ,GAA0B,aAA1B;;EC/BA;;EACA,IAAMK,KAAK,GAAGC,MAAM,CAACD,KAAP,IAAiB,UAAAhS,KAAK;EAAA,SAAIA,KAAK,KAAKA,KAAd;EAAA,CAApC;EAEA;;;;;;;;;;;;;;;AAaA,EAAO,SAASkS,UAAT,CAAoBjF,OAApB,EAAiCkF,KAAjC,EAAkD;EAAA,MAA9BlF,OAA8B;EAA9BA,IAAAA,OAA8B,GAApB,CAAoB;EAAA;;EAAA,MAAjBkF,KAAiB;EAAjBA,IAAAA,KAAiB,GAATlF,OAAS;EAAA;;EACvD,MAAIzJ,CAAC,GAAG4O,IAAI,CAACC,KAAL,CAAWpF,OAAO,GAAG,EAArB,CAAR;EACA,MAAIrM,CAAC,GAAGwR,IAAI,CAACC,KAAL,CAAYpF,OAAO,GAAG,EAAX,GAAiB,EAA5B,CAAR;EACA,MAAIxM,CAAC,GAAG2R,IAAI,CAACC,KAAL,CAAWpF,OAAO,GAAG,IAArB,CAAR;EACA,MAAMqF,EAAE,GAAGF,IAAI,CAACC,KAAL,CAAYF,KAAK,GAAG,EAAT,GAAe,EAA1B,CAAX;EACA,MAAMI,EAAE,GAAGH,IAAI,CAACC,KAAL,CAAWF,KAAK,GAAG,IAAnB,CAAX,CALuD;;EAQvD,MAAIH,KAAK,CAAC/E,OAAD,CAAL,IAAkBA,OAAO,KAAKuF,QAAlC,EAA4C;EAC1C;EACA;EACA/R,IAAAA,CAAC,GAAG,GAAJ;EACAG,IAAAA,CAAC,GAAG,GAAJ;EACA4C,IAAAA,CAAC,GAAG,GAAJ;EACD,GAdsD;;;EAiBvD/C,EAAAA,CAAC,GAAGA,CAAC,GAAG,CAAJ,IAAS8R,EAAE,GAAG,CAAd,GAAqB9R,CAArB,SAA4B,EAAhC,CAjBuD;EAoBvD;;EACAG,EAAAA,CAAC,IAAM,CAACH,CAAC,IAAI6R,EAAE,IAAI,EAAZ,KAAmB1R,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,SAASiP,YAAT,CAAsBrS,CAAtB,EAAyB;EAC9B,MAAIA,CAAC,CAACiE,KAAF,IAAWjE,CAAC,CAACiE,KAAF,CAAQoO,YAAvB,EAAqC;EACnC,WAAO,IAAP;EACD;;EACD,SAAOrS,CAAC,CAACiB,IAAF,KAAW,QAAX,IAAuBjB,CAAC,CAACiB,IAAF,KAAW,OAAzC;EACD;;EAED,IAAMqR,IAAI,GAAG,SAAPA,IAAO,CAACC,QAAD,EAAWzN,IAAX;EAAA,SAAoByN,QAAQ,CAACvC,MAAT,CAAgBlL,IAAhB,EAAsB,CAAtB,CAApB;EAAA,CAAb;;;EAGA,IAAM0N,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD,EAAaC,UAAb,EAA4B;EAC9C,MAAMC,KAAK,GAAGF,UAAU,CAACxR,IAAzB;EACA,MAAM2R,KAAK,GAAGF,UAAU,CAACzR,IAAzB;;EAEA,MAAI,OAAO0R,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,CAACpB,WAAN,KAAsBqB,KAAK,CAACrB,WAAnC;EACD;;EAED,SAAO,KAAP;EACD,CAbD;EAgBA;EACA;;;AACA,EAAO,SAASsB,oBAAT,CACLC,eADK,EAELC,SAFK,EAGLC,YAHK,EAILC,YAJK,EAKL;EAAA,MADAA,YACA;EADAA,IAAAA,YACA,GADe,CACf;EAAA;;EACA,MAAMC,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuBL,SAAvB,CAAjB;;EADA,MAEQM,KAFR,GAEkCL,YAFlC,CAEQK,KAFR;EAAA,MAEkBC,WAFlB,iCAEkCN,YAFlC;;;EAGA,SAAOE,QAAQ,CACZlD,MADI,CACG,UAAA9P,CAAC;EAAA,WAAI,CAACA,CAAC,CAAC+D,KAAF,CAAQsP,QAAb;EAAA,GADJ;EAAA,GAEJC,MAFI,CAGHV,eAAe,CAAC9C,MAAhB,CACE,UAAAhQ,CAAC;EAAA,WAAI,CAACsS,IAAI,CAACY,QAAD,EAAW,UAAAO,SAAS;EAAA,aAAIjB,WAAW,CAACiB,SAAD,EAAYzT,CAAZ,CAAf;EAAA,KAApB,CAAT;EAAA,GADH,CAHG,EAOJuC,GAPI,CAOA,UAAC8C,OAAD,EAAa;EAChB,QAAMqO,gBAAgB,GAAGpB,IAAI,CAACQ,eAAD,EAAkB,UAAA9S,CAAC;EAAA,aAAIwS,WAAW,CAACxS,CAAD,EAAIqF,OAAJ,CAAf;EAAA,KAAnB,CAA7B;EAEA,QAAM0L,YAAY,GAAG2C,gBAAgB,GAAGA,gBAAgB,CAACzP,KAApB,GAA4B,EAAjE;;EACA,QAAMA,KAAK,gBACNqP,WADM,EAENvC,YAFM,EAGN1L,OAAO,CAACpB,KAHF,CAAX;;EAKA,QAAM/D,CAAC,GAAGmR,cAAK,CAACsC,YAAN,CAAmBtO,OAAnB,EAA4BpB,KAA5B,EAAmCoB,OAAO,CAACpB,KAAR,CAAciP,QAAjD,CAAV;EACA,WAAOhT,CAAP;EACD,GAlBI,EAmBJ0T,IAnBI,CAoBH,UAAC9S,CAAD,EAAIjB,CAAJ;EAAA,WAAU,CAACiB,CAAC,CAACmD,KAAF,CAAQoP,KAAR,IAAiBJ,YAAlB,KAAmCpT,CAAC,CAACoE,KAAF,CAAQoP,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,SAAY9Q,UAAZ;EACAgR,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,IAAM3D,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhBkO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GAHJ;EAIhBqP,EAAAA,SAAS,EAAEzO,SAAS,CAAChB,MAJL;EAKhB0P,EAAAA,IAAI,EAAE1O,SAAS,CAAClB,IALA;EAMhBwI,EAAAA,KAAK,EAAEtH,SAAS,CAAClB,IAND;EAOhB6P,EAAAA,QAAQ,EAAE3O,SAAS,CAAClB,IAPJ;EAQhB8P,EAAAA,WAAW,EAAE5O,SAAS,CAAClB,IARP;EAShB+P,EAAAA,GAAG,EAAE7O,SAAS,CAACd,MATC;EAUhBwM,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MAVF;EAWhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAXL;EAYhB4P,EAAAA,OAAO,EAAE9O,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAZO;EAahBoP,EAAAA,WAAW,EAAE/O,SAAS,CAACd,MAbP;EAehB8P,EAAAA,WAAW,EAAEhP,SAAS,CAACjB,IAfP;EAgBhBkQ,EAAAA,SAAS,EAAEjP,SAAS,CAACjB,IAhBL;EAiBhBmQ,EAAAA,SAAS,EAAElP,SAAS,CAACjB,IAjBL;EAkBhBoQ,EAAAA,gBAAgB,EAAEnP,SAAS,CAACjB,IAlBZ;EAmBhBqQ,EAAAA,SAAS,EAAEpP,SAAS,CAACjB,IAnBL;EAoBhBsQ,EAAAA,OAAO,EAAErP,SAAS,CAACjB,IApBH;EAqBhBuQ,EAAAA,SAAS,EAAEtP,SAAS,CAACjB,IArBL;EAsBhBwQ,EAAAA,QAAQ,EAAEvP,SAAS,CAACjB,IAtBJ;EAuBhByQ,EAAAA,MAAM,EAAExP,SAAS,CAACjB,IAvBF;EAwBhB0Q,EAAAA,OAAO,EAAEzP,SAAS,CAACjB,IAxBH;EAyBhB2Q,EAAAA,UAAU,EAAE1P,SAAS,CAACjB,IAzBN;EA0BhB4Q,EAAAA,gBAAgB,EAAE3P,SAAS,CAACjB,IA1BZ;EA2BhB6Q,EAAAA,OAAO,EAAE5P,SAAS,CAACjB,IA3BH;EA4BhB8Q,EAAAA,SAAS,EAAE7P,SAAS,CAACjB,IA5BL;EA6BhB+Q,EAAAA,OAAO,EAAE9P,SAAS,CAACjB,IA7BH;EA8BhBgR,EAAAA,SAAS,EAAE/P,SAAS,CAACjB,IA9BL;EA+BhBiR,EAAAA,SAAS,EAAEhQ,SAAS,CAACjB,IA/BL;EAgChBkR,EAAAA,gBAAgB,EAAEjQ,SAAS,CAACjB,IAhCZ;EAiChBmR,EAAAA,YAAY,EAAElQ,SAAS,CAACjB,IAjCR;EAkChBoR,EAAAA,YAAY,EAAEnQ,SAAS,CAACjB,IAlCR;EAmChBqR,EAAAA,YAAY,EAAEpQ,SAAS,CAACjB,IAnCR;EAoChBsR,EAAAA,cAAc,EAAErQ,SAAS,CAACjB,IApCV;EAqChBuR,EAAAA,QAAQ,EAAEtQ,SAAS,CAACjB;EArCJ,CAAlB;;MAwCqBwR;;;;;EACnB,iBAAYrS,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKuI,KAAL,GAAa,IAAb,CAHiB;;EAIjB,UAAKH,IAAL,GAAY,MAAKA,IAAL,CAAUzI,IAAV,+BAAZ;EACA,UAAK6I,KAAL,GAAa,MAAKA,KAAL,CAAW7I,IAAX,+BAAb;EACA,UAAK+I,IAAL,GAAY,MAAKA,IAAL,CAAU/I,IAAV,+BAAZ;EACA,UAAKgJ,OAAL,GAAe,MAAKA,OAAL,CAAahJ,IAAb,+BAAf;EACA,UAAKkJ,MAAL,GAAc,MAAKA,MAAL,CAAYlJ,IAAZ,+BAAd;EACA,UAAK0J,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB1J,IAAtB,+BAAxB;EACA,UAAK2S,aAAL,GAAqB,MAAKA,aAAL,CAAmB3S,IAAnB,+BAArB;EACA,UAAK4S,cAAL,GAAsB,MAAKA,cAAL,CAAoB5S,IAApB,+BAAtB;EACA,UAAK2E,eAAL,GAAuB,MAAKA,eAAL,CAAqB3E,IAArB,+BAAvB;EACA,UAAK6E,aAAL,GAAqB,MAAKA,aAAL,CAAmB7E,IAAnB,+BAArB;EACA,UAAK+E,oBAAL,GAA4B,MAAKA,oBAAL,CAA0B/E,IAA1B,+BAA5B;EACA,UAAKiF,UAAL,GAAkB,MAAKA,UAAL,CAAgBjF,IAAhB,+BAAlB;EACA,UAAKgF,aAAL,GAAqB,MAAKA,aAAL,CAAmBhF,IAAnB,+BAArB;EACA,UAAKkF,WAAL,GAAmB,MAAKA,WAAL,CAAiBlF,IAAjB,+BAAnB;EACA,UAAK6S,WAAL,GAAmB,MAAKA,WAAL,CAAiB7S,IAAjB,+BAAnB;EACA,UAAK8E,aAAL,GAAqB,MAAKA,aAAL,CAAmB9E,IAAnB,+BAArB;EACA,UAAKoF,aAAL,GAAqB,MAAKA,aAAL,CAAmBpF,IAAnB,+BAArB;EACA,UAAKqF,YAAL,GAAoB,MAAKA,YAAL,CAAkBrF,IAAlB,+BAApB;EACA,UAAKoI,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BpI,IAA5B,+BAA9B;EACA,UAAKkG,WAAL,GAAmB,MAAKA,WAAL,CAAiBlG,IAAjB,+BAAnB;EACA,UAAK2F,aAAL,GAAqB,MAAKA,aAAL,CAAmB3F,IAAnB,+BAArB;EACA,UAAK4F,WAAL,GAAmB,MAAKA,WAAL,CAAiB5F,IAAjB,+BAAnB;EACA,UAAK6F,aAAL,GAAqB,MAAKA,aAAL,CAAmB7F,IAAnB,+BAArB;EACA,UAAK8F,aAAL,GAAqB,MAAKA,aAAL,CAAmB9F,IAAnB,+BAArB;EACA,UAAK+F,oBAAL,GAA4B,MAAKA,oBAAL,CAA0B/F,IAA1B,+BAA5B;EACA,UAAKgG,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBhG,IAAtB,+BAAxB;EACA,UAAKuF,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBvF,IAAtB,+BAAxB;EACA,UAAK0F,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB1F,IAAtB,+BAAxB;EACA,UAAKwF,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBxF,IAAxB,+BAA1B;EACA,UAAKsF,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BtF,IAA1B,+BAA5B;EACA,UAAK8S,cAAL,GAAsBxC,QAAQ,CAAC,MAAKwC,cAAL,CAAoB9S,IAApB,+BAAD,EAAiC,GAAjC,CAA9B;EACA,UAAK+S,cAAL,GAAsB,MAAKA,cAAL,CAAoB/S,IAApB,+BAAtB;EACA,UAAKgT,qBAAL,GAA6B,MAAKA,qBAAL,CAA2BhT,IAA3B,+BAA7B;EApCiB;EAqClB;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAK0F,WAAL,GADkB;;EAElB,QAAI,KAAKrK,KAAL,IAAc,KAAKA,KAAL,CAAWsK,UAA7B,EAAyC;EACvC,WAAKtK,KAAL,CAAWsK,UAAX,CAAsBC,UAAtB,GAAmC,KAAKH,qBAAxC;EACA,WAAKpK,KAAL,CAAWsK,UAAX,CAAsBE,aAAtB,GAAsC,KAAKJ,qBAA3C;EACD;EACF;;;WAGDL,gBAAA,yBAAgB;EAAA;;EACd,QAAI,CAAC,KAAK/J,KAAV,EAAiB;EACf,aAAO,IAAP;EACD;;EAED,WAAO+H,eAAe,CAACtE,MAAhB,CAAuB,UAACgH,UAAD,EAAa1T,GAAb,EAAqB;EACjD0T,MAAAA,UAAU,CAAC1T,GAAD,CAAV,GAAkB,MAAI,CAACiJ,KAAL,CAAWjJ,GAAX,CAAlB;EACA,aAAO0T,UAAP;EACD,KAHM,EAGJ,EAHI,CAAP;EAID;;;WA6CDL,wBAAA,iCAAwB;EAAA,sBACM,KAAK3S,KADX;EAAA,QACdyL,OADc,eACdA,OADc;EAAA,QACLnC,MADK,eACLA,MADK;;EAEtB,QAAI,KAAKf,KAAL,IAAc,KAAKA,KAAL,CAAWsK,UAA7B,EAAyC;EACvC,UAAMjI,eAAe,GAAGtI,KAAK,CAACtD,IAAN,CAAW,KAAKuJ,KAAL,CAAWsK,UAAtB,EAAkCxE,IAAlC,CACtB,UAAAnI,SAAS;EAAA,eAAIA,SAAS,CAAC+M,IAAV,KAAmB,SAAvB;EAAA,OADa,CAAxB;;EAGA,UAAIrI,eAAe,KAAKtB,MAAM,CAACsB,eAA/B,EAAgD;EAC9Ca,QAAAA,OAAO,CAACxF,iBAAR,CAA0B2E,eAA1B;EACD;EACF;EACF;;;WAGDxC,OAAA,gBAAO;EACL,QAAM8K,OAAO,GAAG,KAAK3K,KAAL,CAAWH,IAAX,EAAhB;;EACA,QAAI8K,OAAO,KAAKvV,SAAhB,EAA2B;EACzBuV,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGD5K,QAAA,iBAAQ;EACN,QAAM0K,OAAO,GAAG,KAAK3K,KAAL,CAAWC,KAAX,EAAhB;;EACA,QAAI0K,OAAO,KAAKvV,SAAhB,EAA2B;EACzBuV,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGDC,OAAA,gBAAO;EACL,SAAK9K,KAAL,CAAW8K,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAK/K,KAAL,EAAW+K,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKhL,KAAL,EAAWgL,WAAX;EACD;;;WAGD9K,aAAA,sBAAa;EACX,QAAI,KAAKF,KAAL,CAAW2B,MAAf,EAAuB;EACrB,WAAK9B,IAAL;EACD,KAFD,MAEO;EACL,WAAKI,KAAL;EACD;EACF;;;WAGDE,OAAA,cAAK3C,IAAL,EAAW;EACT,QAAI;EACF,WAAKwC,KAAL,CAAWsB,WAAX,GAAyB9D,IAAzB;EACD,KAFD,CAEE,OAAO9J,CAAP,EAAU;EAEX;EACF;;;WAGD0M,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,KAAKrJ,KADhB;EAAA,QACTsJ,MADS,gBACTA,MADS;EAAA,QACDmC,OADC,gBACDA,OADC;EAEjBA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;EAGD;;;WACAhF,kBAAA,2BAAyB;EAAA,uBACU,KAAKtE,KADf;EAAA,QACfyL,OADe,gBACfA,OADe;EAAA,QACNqF,WADM,gBACNA,WADM;EAEvBrF,IAAAA,OAAO,CAACnH,eAAR,CAAwB,KAAKgO,aAAL,EAAxB;;EACA,QAAIxB,WAAJ,EAAiB;EACfA,MAAAA,WAAW,MAAX;EACD;EACF;EAGD;;;WACAtM,gBAAA,yBAAuB;EAAA,uBACU,KAAKxE,KADf;EAAA,QACbyL,OADa,gBACbA,OADa;EAAA,QACJuF,SADI,gBACJA,SADI;EAGrBvF,IAAAA,OAAO,CAACjH,aAAR,CAAsB,KAAK8N,aAAL,EAAtB;;EAEA,QAAItB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACAtM,uBAAA,gCAA8B;EAAA,uBACU,KAAK1E,KADf;EAAA,QACpByL,OADoB,gBACpBA,OADoB;EAAA,QACXwF,gBADW,gBACXA,gBADW;EAE5BxF,IAAAA,OAAO,CAAC/G,oBAAR,CAA6B,KAAK4N,aAAL,EAA7B;;EAEA,QAAIrB,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACAtM,gBAAA,yBAAuB;EAAA,uBACU,KAAK3E,KADf;EAAA,QACbyL,OADa,gBACbA,OADa;EAAA,QACJyF,SADI,gBACJA,SADI;EAErBzF,IAAAA,OAAO,CAAC9G,aAAR,CAAsB,KAAK2N,aAAL,EAAtB;;EAEA,QAAIpB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGDtM,aAAA,sBAAoB;EAAA,uBACU,KAAK5E,KADf;EAAA,QACVyL,OADU,gBACVA,OADU;EAAA,QACD6F,MADC,gBACDA,MADC;EAElB7F,IAAAA,OAAO,CAAC7G,UAAR,CAAmB,KAAK0N,aAAL,EAAnB;;EAEA,QAAIhB,MAAJ,EAAY;EACVA,MAAAA,MAAM,MAAN;EACD;EACF;;;WAGDzM,cAAA,uBAAqB;EAAA,uBACU,KAAK7E,KADf;EAAA,QACXyL,OADW,gBACXA,OADW;EAAA,QACF8F,OADE,gBACFA,OADE;EAEnB9F,IAAAA,OAAO,CAAC5G,WAAR,CAAoB,KAAKyN,aAAL,EAApB;;EAEA,QAAIf,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;EAGD;;;WACAtM,uBAAA,gCAA8B;EAAA,uBACU,KAAKjF,KADf;EAAA,QACpByL,OADoB,gBACpBA,OADoB;EAAA,QACXgG,gBADW,gBACXA,gBADW;EAE5BhG,IAAAA,OAAO,CAACxG,oBAAR,CAA6B,KAAKqN,aAAL,EAA7B;;EAEA,QAAIb,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACAgB,iBAAA,0BAAwB;EAAA,wBACU,KAAKzS,KADf;EAAA,QACdyL,OADc,iBACdA,OADc;EAAA,QACL+F,UADK,iBACLA,UADK;;EAEtB,QAAI,KAAKjJ,KAAT,EAAgB;EACdkD,MAAAA,OAAO,CAACrG,oBAAR,CAA6B,KAAKkN,aAAL,EAA7B;EACD;;EAED,QAAId,UAAJ,EAAgB;EACdA,MAAAA,UAAU,MAAV;EACD;EACF;EAGD;;;WACAgB,cAAA,uBAAqB;EAAA,wBAGf,KAAKxS,KAHU;EAAA,QAEjBwQ,IAFiB,iBAEjBA,IAFiB;EAAA,QAEXlH,MAFW,iBAEXA,MAFW;EAAA,QAEHmC,OAFG,iBAEHA,OAFG;EAAA,QAEM0F,OAFN,iBAEMA,OAFN;;EAInB,QAAIX,IAAJ,EAAU;EACR,WAAK9H,IAAL,CAAU,CAAV;EACA,WAAKN,IAAL;EACD,KAHD,MAGO,IAAI,CAACkB,MAAM,CAACY,MAAZ,EAAoB;EACzB,WAAK1B,KAAL;EACD;;EACDiD,IAAAA,OAAO,CAAC3G,SAAR,CAAkB,KAAKwN,aAAL,EAAlB;;EAEA,QAAInB,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGD1M,gBAAA,yBAAuB;EAAA,wBACU,KAAKzE,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJsF,SADI,iBACJA,SADI;EAErBtF,IAAAA,OAAO,CAAChH,aAAR,CAAsB,KAAK6N,aAAL,EAAtB;;EAEA,QAAIvB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACAhM,gBAAA,yBAAuB;EAAA,wBACU,KAAK/E,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJ2F,SADI,iBACJA,SADI;EAErB3F,IAAAA,OAAO,CAAC1G,aAAR,CAAsB,KAAKuN,aAAL,EAAtB;;EAEA,QAAIlB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,eAAA,wBAAsB;EAAA,wBACU,KAAKhF,KADf;EAAA,QACZyL,OADY,iBACZA,OADY;EAAA,QACH4F,QADG,iBACHA,QADG;EAEpB5F,IAAAA,OAAO,CAACzG,YAAR,CAAqB,KAAKsN,aAAL,EAArB;;EAEA,QAAIjB,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;;WAGDtJ,yBAAA,kCAAyB;EAGzB;;;WACAzC,gBAAA,yBAAuB;EAAA,wBACU,KAAKtF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJkG,SADI,iBACJA,SADI;EAErBlG,IAAAA,OAAO,CAACnG,aAAR,CAAsB,KAAKgN,aAAL,EAAtB;;EACA,QAAIX,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGDpM,cAAA,uBAAqB;EAAA,wBACU,KAAKvF,KADf;EAAA,QACXyL,OADW,iBACXA,OADW;EAAA,QACFmG,OADE,iBACFA,OADE;EAEnBnG,IAAAA,OAAO,CAAClG,WAAR,CAAoB,KAAK+M,aAAL,EAApB;;EACA,QAAIV,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGDpM,gBAAA,yBAAuB;EAAA,wBACU,KAAKxF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJoG,SADI,iBACJA,SADI;EAErBpG,IAAAA,OAAO,CAACjG,aAAR,CAAsB,KAAK8M,aAAL,EAAtB;;EACA,QAAIT,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,gBAAA,yBAAuB;EAAA,wBACU,KAAKzF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJqG,SADI,iBACJA,SADI;EAErBrG,IAAAA,OAAO,CAAChG,aAAR,CAAsB,KAAK6M,aAAL,EAAtB;;EAEA,QAAIR,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,uBAAA,gCAA8B;EAAA,wBACqB,KAAK1F,KAD1B;EAAA,QACpByL,OADoB,iBACpBA,OADoB;EAAA,QACXsG,gBADW,iBACXA,gBADW;EAAA,QACOxB,SADP,iBACOA,SADP;;EAG5B,QAAIA,SAAS,IAAIA,SAAS,GAAG,CAA7B,EAAgC;EAC9B,WAAKhI,KAAL,CAAWsB,WAAX,GAAyB0G,SAAzB;EACD;;EAED9E,IAAAA,OAAO,CAAC/F,oBAAR,CAA6B,KAAK4M,aAAL,EAA7B;;EAEA,QAAIP,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACApM,mBAAA,4BAA0B;EAAA,wBACU,KAAK3F,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPuG,YADO,iBACPA,YADO;EAExBvG,IAAAA,OAAO,CAAC9F,gBAAR,CAAyB,KAAK2M,aAAL,EAAzB;;EAEA,QAAIN,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAGD;;;WACA9M,mBAAA,4BAA0B;EAAA,wBACU,KAAKlF,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPwG,YADO,iBACPA,YADO;EAExBxG,IAAAA,OAAO,CAACvG,gBAAR,CAAyB,KAAKoN,aAAL,EAAzB;;EAEA,QAAIL,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAED;;;;;WAGA5M,mBAAA,4BAA0B;EAAA,wBACU,KAAKrF,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPyG,YADO,iBACPA,YADO;EAExBzG,IAAAA,OAAO,CAACpG,gBAAR,CAAyB,KAAKiN,aAAL,EAAzB;;EAEA,QAAIJ,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;;;WAGD/M,qBAAA,8BAA4B;EAAA,wBACU,KAAKnF,KADf;EAAA,QAClByL,OADkB,iBAClBA,OADkB;EAAA,QACT0G,cADS,iBACTA,cADS;EAE1B1G,IAAAA,OAAO,CAACtG,kBAAR,CAA2B,KAAKmN,aAAL,EAA3B;;EAEA,QAAIH,cAAJ,EAAoB;EAClBA,MAAAA,cAAc,MAAd;EACD;EACF;EAGD;;;WACAtM,cAAA,uBAAqB;EAAA,wBACU,KAAK7F,KADf;EAAA,QACXyL,OADW,iBACXA,OADW;EAAA,QACFiG,OADE,iBACFA,OADE;EAEnBjG,IAAAA,OAAO,CAAC5F,WAAR,CAAoB,KAAKyM,aAAL,EAApB;;EACA,QAAIZ,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;WAED9L,eAAA,wBAAsB;EAAA,wBACU,KAAK5F,KADf;EAAA,QACZyL,OADY,iBACZA,OADY;EAAA,QACH2G,QADG,iBACHA,QADG;EAEpB3G,IAAAA,OAAO,CAAC7F,YAAR,CAAqB,KAAK0M,aAAL,EAArB;;EACA,QAAIF,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;WAEDM,iBAAA,0BAAiB;;WAEjBH,iBAAA,0BAAiB;EAAA;;EACf,QAAMvS,KAAK,gBACN,KAAKA,KADC;EAETuI,MAAAA,KAAK,EAAE,KAAKA;EAFH,MAAX,CADe;;;EAOf,QAAI,CAAC,KAAKA,KAAV,EAAiB;EACf,aAAO,IAAP;EACD,KATc;;;EAYf,WAAO6E,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,EACJlD,MADI,CACGqC,YADH,EAEJ9P,GAFI,CAEA,UAACvC,CAAD,EAAO;EACV,UAAIyX,MAAJ;;EACA,UAAI,OAAOzX,CAAC,CAACiB,IAAT,KAAkB,QAAtB,EAAgC;EAC9B;EACA,YAAIjB,CAAC,CAACiB,IAAF,KAAW,QAAf,EAAyB;EACvBwW,UAAAA,MAAM,gBAAQzX,CAAC,CAACiE,KAAV,CAAN;EACA,cAAMyT,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,CAAC5N,WAAL,OAAA,MAAI,YAAJ;EACD,WALD;EAMD;EACF,OAZD,MAYO;EACL2N,QAAAA,MAAM,GAAGxT,KAAT;EACD;;EACD,aAAOoN,cAAK,CAACsC,YAAN,CAAmB3T,CAAnB,EAAsByX,MAAtB,CAAP;EACD,KApBI,CAAP;EAqBD;;WAEDrG,SAAA,kBAAS;EAAA;;EAAA,wBAWH,KAAKnN,KAXF;EAAA,QAELwQ,IAFK,iBAELA,IAFK;EAAA,QAGLhD,MAHK,iBAGLA,MAHK;EAAA,QAILoD,OAJK,iBAILA,OAJK;EAAA,QAKLD,GALK,iBAKLA,GALK;EAAA,QAMLF,QANK,iBAMLA,QANK;EAAA,QAOLC,WAPK,iBAOLA,WAPK;EAAA,QAQLtH,KARK,iBAQLA,KARK;EAAA,QASLyH,WATK,iBASLA,WATK;EAAA,QAUL6C,OAVK,iBAULA,OAVK;EAaP,WACEtG;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC,uBAAD,EAA0B,KAAKjC,KAAL,CAAW6M,SAArC,CADvB;EAEE,MAAA,EAAE,EAAE6G,OAFN;EAGE,MAAA,WAAW,EAAE7C,WAHf;EAIE,MAAA,GAAG,EAAE,aAAC9U,CAAD,EAAO;EACV,QAAA,MAAI,CAACwM,KAAL,GAAaxM,CAAb;EACD,OANH;EAOE,MAAA,KAAK,EAAEqN,KAPT;EAQE,MAAA,OAAO,EAAEwH,OARX;EASE,MAAA,IAAI,EAAEJ,IATR;EAUE,MAAA,WAAW,EAAEE,WAVf;EAWE,MAAA,QAAQ,EAAED,QAXZ;EAYE,MAAA,MAAM,EAAEjD,MAZV;EAaE,MAAA,GAAG,EAAEmD,GAbP;EAcE,MAAA,WAAW,EAAE,KAAKrM,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,KAAK6N,WAnBhB;EAoBE,MAAA,SAAS,EAAE,KAAKzN,aApBlB;EAqBE,MAAA,QAAQ,EAAE,KAAKC,YArBjB;EAsBE,MAAA,MAAM,EAAE,KAAKJ,UAtBf;EAuBE,MAAA,OAAO,EAAE,KAAKC,WAvBhB;EAwBE,MAAA,UAAU,EAAE,KAAK4N,cAxBnB;EAyBE,MAAA,gBAAgB,EAAE,KAAKxN,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,KAAKoN,cAAL,EAtCH,CADF;EA0CD;;;;0BAtdkB;EACjB,aAAO,KAAKhK,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES1L,KAAK;EACb,WAAK6K,KAAL,CAAWa,KAAX,GAAmB1L,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK6K,KAAL,CAAWW,MAAlB;EACD;wBAEUxL,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,WAAK6K,KAAL,CAAWW,MAAX,GAAoBxL,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK6K,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IArGgC6C;EAshBnCgF,KAAK,CAAC1F,SAAN,GAAkBA,WAAlB;EACA0F,KAAK,CAAC/E,WAAN,GAAoB,OAApB;;ECjkBA,IAAMX,WAAS,GAAG;EAChBpB,EAAAA,OAAO,EAAEzJ,SAAS,CAACf,MADH;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;MAKqB2S;;;;;EACnB,iBAAY3T,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK4G,KAAL,GAAa,IAAb;EACA5T,IAAAA,KAAK,CAACuL,OAAN,CAAckB,+BAAd,CACE,MAAKoH,iBAAL,CAAuBlU,IAAvB,+BADF;EAIA,UAAKkL,KAAL,GAAa;EACXiJ,MAAAA,MAAM,EAAE,IADG;EAEXzL,MAAAA,SAAS,EAAE;EAFA,KAAb;EAR0B;EAY3B;;;;WAEDwL,oBAAA,2BAAkBhJ,KAAlB,EAAyBwB,SAAzB,EAAoC;EAAA;;EAClC,QACExB,KAAK,CAACE,KAAN,KAAgBsB,SAAS,CAACtB,KAA1B,IACGF,KAAK,CAACxC,SAAN,CAAgBtJ,MAAhB,KAA2B,UAFhC,EAGE;EACA,UAAI,KAAK6U,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;EAEZ/I,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAFD;EAGZ1C,QAAAA,SAAS,EAAEwC,KAAK,CAACxC;EAHL,OAAd,EATA;;EAgBA,WAAKuL,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;;WAEDzG,SAAA,kBAAS;EACP;EACA,QAAI,KAAKtC,KAAL,CAAWxC,SAAX,CAAqBtJ,MAArB,KAAgC,UAApC,EAAgD;EAC9C,aAAO,IAAP;EACD;;EACD,QAAMkV,KAAK,GAAG,KAAKpJ,KAAL,CAAWiJ,MAAX,GACV;EACAI,MAAAA,OAAO,EAAE;EADT,KADU,GAIV,IAJJ;EAMA,WACE9G;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB;EACE,iCAAyB,IAD3B;EAEE,2CAAmC,KAAK4I,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB,CAF9D;EAGE,+CAAuC,KAAKF,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB;EAHlE,OADmB,EAMnB,KAAK/K,KAAL,CAAW6M,SANQ,CADvB;EASE,MAAA,KAAK,EAAEoH,KATT;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,oBAAY,KAAKpJ,KAAL,CAAWxC,SAAX,CAAqBC;EAXnC,OAaE8E;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,4BADmB,kCAEW,KAAK4I,KAAL,CAAWxC,SAAX,CAAqBC,MAFhC;EADvB,MAbF,CADF;EAsBD;;;IA7EgC+E;EAgFnCsG,KAAK,CAAChH,SAAN,GAAkBA,WAAlB;EACAgH,KAAK,CAACrG,WAAN,GAAoB,OAApB;;EC1FA;;;;;;;;;AASA,EAAO,SAAS6G,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,kBAcQ9N,QAdR;EAAA,MAczB+N,IAdyB,aAczBA,IAdyB;EAAA,MAcFC,KAdE,aAcnBC,eAdmB;EAgBjC,MAAMC,UAAU,GAAGF,KAAK,CAACE,UAAN,IAAoBH,IAAI,CAACG,UAAzB,IAAuC,CAA1D;EACA,MAAMC,UAAU,GAAGnS,MAAM,CAACoS,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,GAAGtS,MAAM,CAACuS,WAAP,IAAsBR,IAAI,CAACO,SAA7C;EACA,MAAMR,GAAG,GAAGJ,GAAG,CAACI,GAAJ,GAAUQ,SAAV,GAAsBD,SAAlC,CAtBiC;;EAyBjC,SAAO;EACLR,IAAAA,IAAI,EAAEzG,IAAI,CAACoH,KAAL,CAAWX,IAAX,CADD;EAELC,IAAAA,GAAG,EAAE1G,IAAI,CAACoH,KAAL,CAAWV,GAAX;EAFA,GAAP;EAID;EAED;;;;;;;;;;;AAUA,EAAO,SAASW,kBAAT,CAA4BhB,EAA5B,EAAgCiB,KAAhC,EAAuC;EAC5C,MAAMzI,QAAQ,GAAG,EAAjB;EACA,MAAMyH,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;;EAEDjJ,EAAAA,QAAQ,CAACqJ,CAAT,GAAalI,IAAI,CAACmI,GAAL,CAAS,CAAT,EAAYnI,IAAI,CAACoI,GAAL,CAAS,CAAT,EAAY,CAACT,IAAI,GAAGE,QAAP,GAAkBJ,IAAnB,IAA2BA,IAAvC,CAAZ,CAAb;EACA5I,EAAAA,QAAQ,CAACwJ,CAAT,GAAarI,IAAI,CAACmI,GAAL,CAAS,CAAT,EAAYnI,IAAI,CAACoI,GAAL,CAAS,CAAT,EAAY,CAACL,QAAQ,GAAGH,IAAZ,IAAoBL,IAAhC,CAAZ,CAAb;EAEA,SAAO1I,QAAP;EACD;;AAUD,EAAO,SAASyJ,SAAT,CAAmBC,SAAnB,EAA8B;EACnC,MAAIA,SAAS,IAAIA,SAAS,CAACC,KAA3B,EAAkC;EAChCD,IAAAA,SAAS,CAACC,KAAV;EACD;EACF;;AAGD,EAAO,SAASC,QAAT,CAAkBnQ,GAAlB,EAAuBoQ,GAAvB,EAA4B;EACjC,MAAMvU,OAAO,GAAGmE,GAAG,CAACwG,SAAJ,CAAcpO,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,CAAWuY,WAAX,OAA6BD,GAAG,CAACC,WAAJ,EAAjC,EAAoD;EAClD,aAAO,IAAP;EACD;EACF;;EACD,SAAO,KAAP;EACD;;EC3FD,IAAM/J,WAAS,GAAG;EAChBgK,EAAAA,SAAS,EAAE7U,SAAS,CAAClB,IADL;EAEhBgW,EAAAA,YAAY,EAAE9U,SAAS,CAAClB,IAFR;EAGhB2K,EAAAA,OAAO,EAAEzJ,SAAS,CAACf,MAHH;EAIhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAJH;EAKhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MALF;EAMhB8V,EAAAA,SAAS,EAAE/U,SAAS,CAACnB;EANL,CAAlB;EASA,IAAMmM,cAAY,GAAG;EACnB6J,EAAAA,SAAS,EAAE,IADQ;EAEnBC,EAAAA,YAAY,EAAE;EAFK,CAArB;;MAKqBE;;;;;EACnB,oBAAY9W,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK+J,gBAAL,GAAwB,CACtB;EACEC,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKxO;EAFf,KADsB,EAKtB;EACEuO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKxO;EAFf,KALsB,EAStB;EACEuO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAK5N;EAFf,KATsB,EAatB;EACE2N,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC5C,MAAR,CAAe,CAAf,EAAkB;EAChBP,UAAAA,MAAM,EAAE,UADQ;EAEhBvJ,UAAAA,MAAM,EAAE;EAFQ,SAAlB,EAJ2B;EAQ5B;EAVH,KAbsB,EAyBtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC5C,MAAR,CAAe,EAAf,EAAmB;EACjBP,UAAAA,MAAM,EAAE,WADS;EAEjBvJ,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KAzBsB,EAqCtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC9C,OAAR,CAAgB,CAAhB,EAAmB;EACjBL,UAAAA,MAAM,EAAE,WADS;EAEjBvJ,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KArCsB,EAiDtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC9C,OAAR,CAAgB,EAAhB,EAAoB;EAClBL,UAAAA,MAAM,EAAE,YADU;EAElBvJ,UAAAA,MAAM,EAAE;EAFU,SAApB,EAJ2B;EAQ5B;EAVH,KAjDsB,EA6DtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC/C,IAAR,CAAa,CAAb,EAJ2B;EAK5B;EAPH,KA7DsB,EAsEtB;EACEsO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD,SAH0B;;;EAK3BgB,QAAAA,OAAO,CAAC/C,IAAR,CAAaY,MAAM,CAACM,QAApB;EACD;EARH,KAtEsB,EAgFtB;EACEoN,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EACA,YAAIxO,CAAC,GAAGqM,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAIjM,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACDwO,QAAAA,OAAO,CAACxC,YAAR,CAAqBhM,CAArB,EAAwB;EACtBqL,UAAAA,MAAM,EAAE,WADc;EAEtBvJ,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAZH,KAhFsB,EA8FtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EACA,YAAIxO,CAAC,GAAGqM,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAIjM,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,YAAMqL,MAAM,GAAGrL,CAAC,GAAG,CAAJ,GAAQ,aAAR,GAAwB,YAAvC;EACAwO,QAAAA,OAAO,CAACxC,YAAR,CAAqBhM,CAArB,EAAwB;EACtBqL,UAAAA,MAAM,EAANA,MADsB;EAEtBvJ,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAbH,KA9FsB,EA6GtB;EACEiY,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EAD2B,YAErBzC,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;;EACDyC,QAAAA,OAAO,CAAC3C,UAAR,CAAmBE,YAAnB,EAAiC;EAC/BV,UAAAA,MAAM,EAAE,cADuB;EAE/BvJ,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EAvBH,KA7GsB,EAsItB;EACEiY,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EAD2B,YAErBzC,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;;EACDyC,QAAAA,OAAO,CAAC3C,UAAR,CAAmBE,YAAnB,EAAiC;EAC/BV,UAAAA,MAAM,EAAE,aADuB;EAE/BvJ,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EArBH,KAtIsB,CAAxB;EA+JA,UAAK8X,SAAL,aAAqB,MAAKE,gBAA1B;EAEA,UAAKI,cAAL,GAAsB,MAAKA,cAAL,CAAoBxX,IAApB,+BAAtB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAK0X,iBAAL,GAAyB,MAAKA,iBAAL,CAAuB1X,IAAvB,+BAAzB;EAvK0B;EAwK3B;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAKiK,cAAL;EACAxQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C;EACAzQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,OAA1B,EAAmC,KAAKiG,WAAxC;EACAtG,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAKqQ,iBAA3C;EACD;;WAEDC,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAACV,SAAV,KAAwB,KAAK7W,KAAL,CAAW6W,SAAvC,EAAkD;EAChD,WAAKM,cAAL;EACD;EACF;;WAEDK,uBAAA,gCAAuB;EACrB7Q,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C;EACAzQ,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,OAA7B,EAAsC,KAAK+F,WAA3C;EACAtG,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAKmQ,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,CAAsB/K,MAAtB,CACvB,UAAC6K,SAAD,EAAYe,QAAZ;EAAA;;EAAA,aAAyBpc,MAAM,CAACsC,MAAP,CAAc+Y,SAAd,uCACtBY,cAAc,CAACG,QAAD,CADQ,IACKA,QADL,kBAAzB;EAAA,KADuB,EAIvB,EAJuB,CAAzB;EAMA,QAAMC,eAAe,GAAG,CAAC,KAAK7X,KAAL,CAAW6W,SAAX,IAAwB,EAAzB,EAA6B7K,MAA7B,CACtB,UAAC6K,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,eAAOzb,MAAM,CAACsC,MAAP,CAAc+Y,SAAd,yCACJY,cAAc,CAACG,QAAD,CADV,IACuBA,QADvB,mBAAP;EAGD;;EACD,aAAOf,SAAP;EACD,KATqB,EAUtBE,gBAVsB,CAAxB;;EAaA,QAAMe,aAAa,GAAG,SAAhBA,aAAgB,CAAC3Y,CAAD,EAAO;EAC3B,UAAI4Y,KAAK,GAAG,CAAZ;EACA,UAAMC,EAAE,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,CAAX;EACAA,MAAAA,EAAE,CAACtZ,OAAH,CAAW,UAACY,GAAD,EAAS;EAClB,YAAIH,CAAC,CAACG,GAAD,CAAL,EAAY;EACVyY,UAAAA,KAAK;EACN;EACF,OAJD;EAKA,aAAOA,KAAP;EACD,KATD;;EAWA,SAAKlB,SAAL,GAAiBrb,MAAM,CAACoD,IAAP,CAAYiZ,eAAZ,EACdvZ,GADc,CACV,UAAAgB,GAAG;EAAA,aAAIuY,eAAe,CAACvY,GAAD,CAAnB;EAAA,KADO,EAEdqQ,IAFc,CAET,UAAC9S,CAAD,EAAIjB,CAAJ;EAAA,aAAUkc,aAAa,CAAClc,CAAD,CAAb,GAAmBkc,aAAa,CAACjb,CAAD,CAA1C;EAAA,KAFS,CAAjB;EAGD;;WAED4L,aAAA,oBAAWa,MAAX,EAAmBmC,OAAnB,EAA4B;EAC1B,QAAInC,MAAM,CAACY,MAAX,EAAmB;EACjBuB,MAAAA,OAAO,CAACrD,IAAR,CAAa;EACXE,QAAAA,MAAM,EAAE,MADG;EAEXvJ,QAAAA,MAAM,EAAE;EAFG,OAAb;EAID,KALD,MAKO;EACL0M,MAAAA,OAAO,CAACjD,KAAR,CAAc;EACZF,QAAAA,MAAM,EAAE,OADI;EAEZvJ,QAAAA,MAAM,EAAE;EAFI,OAAd;EAID;EACF;;WAEDsK,mBAAA,0BAAiBC,MAAjB,EAAyBmC,OAAzB,EAAkC;EAChCA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;;WAED8N,iBAAA,wBAAenb,CAAf,EAAkB;EAAA,sBACY,KAAK+D,KADjB;EAAA,QACRsJ,MADQ,eACRA,MADQ;EAAA,QACAmC,OADA,eACAA,OADA;;EAEhB,QAAI,CAACnC,MAAM,CAACqB,QAAZ,EAAsB;EACpB;EACD;;EACD,QACEhE,QAAQ,CAACsR,aAAT,KACIzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,yBAAzB,CAAR,IACCzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,oCAAzB,CADT;EAAA,OAGCzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,iCAAzB,CAJb,CADF,EAME;EACA;EACD;;EAED,QAAMjB,OAAO,GAAG/a,CAAC,CAAC+a,OAAF,IAAa/a,CAAC,CAACic,KAA/B;EACA,QAAMR,IAAI,GAAGzb,CAAC,CAACkc,OAAF,IAAalc,CAAC,CAACmc,OAA5B;EACA,QAAMlB,KAAK,GAAGjb,CAAC,CAACoc,QAAhB;EACA,QAAMV,GAAG,GAAG1b,CAAC,CAACqc,MAAd;EAEA,QAAMV,QAAQ,GAAG,KAAKf,SAAL,CAAe9K,MAAf,CAAsB,UAAC5M,CAAD,EAAO;EAC5C,UAAI,CAACA,CAAC,CAAC6X,OAAH,IAAc7X,CAAC,CAAC6X,OAAF,GAAYA,OAAZ,KAAwB,CAA1C,EAA6C;EAC3C,eAAO,KAAP;EACD;;EACD,UACG7X,CAAC,CAACuY,IAAF,KAAW/Z,SAAX,IAAwBwB,CAAC,CAACuY,IAAF,KAAWA,IAApC,IACIvY,CAAC,CAAC+X,KAAF,KAAYvZ,SAAZ,IAAyBwB,CAAC,CAAC+X,KAAF,KAAYA,KADzC,IAEI/X,CAAC,CAACwY,GAAF,KAAUha,SAAV,IAAuBwB,CAAC,CAACwY,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,CAAgB3N,MAAhB,EAAwBmC,OAAxB;EACAxP,MAAAA,CAAC,CAACsc,cAAF;EACD;EACF;;;WAGDC,eAAA,sBAAalP,MAAb,EAAqBrN,CAArB,EAAwB;EACtB,QACE,CAACqN,MAAM,CAACqB,QAAR,IACG1O,CAAC,CAAC6C,MAAF,CAAS2Z,QAAT,KAAsB,OADzB,IAEGnP,MAAM,CAACe,UAAP,KAAsB,CAH3B,EAIE;EACA,aAAO,KAAP;EACD;;EACD,WAAO,IAAP;EACD;;WAED4C,cAAA,qBAAYhR,CAAZ,EAAe;EAAA,uBAC0B,KAAK+D,KAD/B;EAAA,QACLsJ,MADK,gBACLA,MADK;EAAA,QACGmC,OADH,gBACGA,OADH;EAAA,QACYkL,SADZ,gBACYA,SADZ;;EAEb,QAAI,CAAC,KAAK6B,YAAL,CAAkBlP,MAAlB,EAA0BrN,CAA1B,CAAD,IAAiC,CAAC0a,SAAtC,EAAiD;EAC/C;EACD;;EACD,SAAKlO,UAAL,CAAgBa,MAAhB,EAAwBmC,OAAxB,EALa;EAOd;;WAED4L,oBAAA,2BAAkBpb,CAAlB,EAAqB;EAAA,uBACuB,KAAK+D,KAD5B;EAAA,QACXsJ,MADW,gBACXA,MADW;EAAA,QACHmC,OADG,gBACHA,OADG;EAAA,QACMmL,YADN,gBACMA,YADN;;EAEnB,QAAI,CAAC,KAAK4B,YAAL,CAAkBlP,MAAlB,EAA0BrN,CAA1B,CAAD,IAAiC,CAAC2a,YAAtC,EAAoD;EAClD;EACD;;EACD,SAAKvN,gBAAL,CAAsBC,MAAtB,EAA8BmC,OAA9B,EALmB;EAOpB;EAGD;;;WACA0B,SAAA,kBAAS;EACP,WAAO,IAAP;EACD;;;IArUmCE;EAwUtCyJ,QAAQ,CAACnK,SAAT,GAAqBA,WAArB;EACAmK,QAAQ,CAAChK,YAAT,GAAwBA,cAAxB;EACAgK,QAAQ,CAACxJ,WAAT,GAAuB,UAAvB;;ECvVA,IAAMX,WAAS,GAAG;EAChBE,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MADL;EAEhB0X,EAAAA,WAAW,EAAE5W,SAAS,CAACjB,IAFP;EAGhB8X,EAAAA,WAAW,EAAE7W,SAAS,CAACjB,IAHP;EAIhB+X,EAAAA,WAAW,EAAE9W,SAAS,CAACjB,IAJP;EAKhBgY,EAAAA,QAAQ,EAAE/W,SAAS,CAACjB,IALJ;EAMhBiY,EAAAA,YAAY,EAAEhX,SAAS,CAACjB,IANR;EAOhBkY,EAAAA,cAAc,EAAEjX,SAAS,CAACjB,IAPV;EAQhBmY,EAAAA,SAAS,EAAElX,SAAS,CAACjB,IARL;EAShBoY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IATH;EAUhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAVF;EAWhBsY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAXH;EAYhBuY,EAAAA,UAAU,EAAEtX,SAAS,CAACjB,IAZN;EAahBwY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAbJ;EAchBqO,EAAAA,QAAQ,EAAEnN,SAAS,CAACP,IAdJ;EAehB+X,EAAAA,KAAK,EAAExX,SAAS,CAACd,MAfD;EAgBhBuY,EAAAA,QAAQ,EAAEzX,SAAS,CAACd,MAhBJ;EAiBhBwY,EAAAA,SAAS,EAAE1X,SAAS,CAACd;EAjBL,CAAlB;;MAoBqByY;;;;;EACnB,kBAAYzZ,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK0M,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAKga,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAKia,aAAL,GAAqB,MAAKA,aAAL,CAAmBja,IAAnB,+BAArB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EACA,UAAKoa,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBpa,IAAvB,+BAAzB;EACA,UAAKqa,WAAL,GAAmB,MAAKA,WAAL,CAAiBra,IAAjB,+BAAnB;EACA,UAAK4S,cAAL,GAAsB,MAAKA,cAAL,CAAoB5S,IAApB,+BAAtB;EAEA,UAAKkL,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE;EADG,KAAb;EAhB0B;EAmB3B;;;;WAEDzC,uBAAA,gCAAuB;EACrB7Q,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0S,aAA7C,EAA4D,IAA5D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAK0S,aAA9C,EAA6D,IAA7D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C,EAA6D,IAA7D;EACD;;WAED4C,cAAA,uBAAc;EAAA,QACJZ,UADI,GACW,KAAKpZ,KADhB,CACJoZ,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,KAAK1Y,KADR,CACb0Y,WADa;EAGrB;;EAEA/R,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAK2S,eAA5C,EAA6D,IAA7D;EACAhT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK4S,aAA1C,EAAyD,IAAzD;EACAjT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAK2S,eAA5C,EAA6D,IAA7D;EACAhT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAK4S,aAA3C,EAA0D,IAA1D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAKja,KAAL,CAAW8Y,YAAf,EAA6B;EAC3B,WAAK9Y,KAAL,CAAW8Y,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,KAAK3Y,KADR,CACb2Y,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,KAAKhZ,KALR,CAKXgZ,SALW;EAOnBrS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0S,aAA7C,EAA4D,IAA5D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAK0S,aAA9C,EAA6D,IAA7D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAKja,KAAL,CAAW+Y,cAAf,EAA+B;EAC7B,WAAK/Y,KAAL,CAAW+Y,cAAX,CAA0B1D,KAA1B;EACD;;EAED,QAAI2D,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAAC3D,KAAD,CAAT;EACD;EACF;;WAEDwE,cAAA,qBAAY5d,CAAZ,EAAe;EACb0K,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C,EAA0D,IAA1D;;EACA,QAAI,KAAKpX,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ0K,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C,EAA6D,IAA7D;;EACA,QAAI,KAAKpX,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDgR,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;;EAGjB,QAAI,KAAKvY,KAAL,CAAWmZ,OAAf,EAAwB;EACtB,WAAKnZ,KAAL,CAAWmZ,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,KAAK5Y,KAAL,CAAW4Y,WAAf,EAA4B;EAC1B,WAAK5Y,KAAL,CAAW4Y,WAAX;EACD;EACF;;WAEDC,WAAA,oBAAW;EACT,QAAI,KAAK7Y,KAAL,CAAW6Y,QAAf,EAAyB;EACvB,WAAK7Y,KAAL,CAAW6Y,QAAX;EACD;EACF;;WAEDkB,oBAAA,2BAAkB1E,KAAlB,EAAyB;EACvB,QAAM9T,IAAI,GAAG,KAAK6Y,MAAlB;EACA,QAAMxN,QAAQ,GAAGyN,kBAAA,CAAuB9Y,IAAvB,EAA6B8T,KAA7B,CAAjB;;EACA,QAAI,KAAKrV,KAAL,CAAWqZ,QAAf,EAAyB;EACvB,aAAOzM,QAAQ,CAACqJ,CAAhB;EACD;;EACD,WAAOrJ,QAAQ,CAACwJ,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,WAAOnN,cAAK,CAAC8B,QAAN,CAAe5Q,GAAf,CAAmB,KAAK0B,KAAL,CAAWiP,QAA9B,EAAwC,UAAAuL,KAAK;EAAA,aAClDpN,cAAK,CAACsC,YAAN,CAAmB8K,KAAnB,EAA0B;EAAEN,QAAAA,QAAQ,EAARA,QAAF;EAAYI,QAAAA,UAAU,EAAVA;EAAZ,OAA1B,CADkD;EAAA,KAA7C,CAAP;EAGD;;WAEDnN,SAAA,kBAAS;EAAA;;EAAA,sBAC0C,KAAKnN,KAD/C;EAAA,QACCqZ,QADD,eACCA,QADD;EAAA,QACWC,KADX,eACWA,KADX;EAAA,QACkBC,QADlB,eACkBA,QADlB;EAAA,QAC4BC,SAD5B,eAC4BA,SAD5B;EAGP,WACEpM;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,KAAKjC,KAAL,CAAW6M,SADQ,EAEnB;EACE,2CAAmCwM,QADrC;EAEE,6CAAqC,CAACA,QAFxC;EAGE,mCAA2B,KAAKxO,KAAL,CAAWoP;EAHxC,OAFmB,EAOnB,wBAPmB,CADvB;EAUE,MAAA,GAAG,EAAE,aAAAle,CAAC,EAAI;EACR,QAAA,MAAI,CAACqe,MAAL,GAAcre,CAAd;EACD,OAZH;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,IAAI,EAAC,QAdP;EAeE,MAAA,WAAW,EAAE,KAAK2d,eAfpB;EAgBE,MAAA,YAAY,EAAE,KAAKA,eAhBrB;EAiBE,MAAA,OAAO,EAAE,KAAKG,WAjBhB;EAkBE,MAAA,MAAM,EAAE,KAAKC,UAlBf;EAmBE,MAAA,OAAO,EAAE,KAAK7M,WAnBhB;EAoBE,oBAAYqM,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;;;IAxMiClF;EA2MpCoM,MAAM,CAAC9M,SAAP,GAAmBA,WAAnB;EACA8M,MAAM,CAACnM,WAAP,GAAqB,QAArB;;EC/NA,IAAMX,WAAS,GAAG;EAChB9C,EAAAA,WAAW,EAAE/H,SAAS,CAAChB,MADP;EAEhB8I,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MAFJ;EAGhBwZ,EAAAA,UAAU,EAAExY,SAAS,CAACd,MAHN;EAIhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;AAQA,EAAe,SAASyZ,eAAT,OAKZ;EAAA,MAJD5Q,WAIC,QAJDA,WAIC;EAAA,MAHDD,QAGC,QAHDA,QAGC;EAAA,MAFD0Q,UAEC,QAFDA,UAEC;EAAA,MADDzN,SACC,QADDA,SACC;EACD,SACEO;EACE,yBAAmBS,UAAU,CAAChE,WAAD,EAAcD,QAAd,CAD/B;EAEE,IAAA,SAAS,EAAE3H,UAAU,CACnB,0DADmB,EAEnB4K,SAFmB,CAFvB;EAME,IAAA,KAAK,EAAE;EACL6N,MAAAA,KAAK,EAAEJ;EADF;EANT,KAUElN;EAAM,IAAA,SAAS,EAAC;EAAhB,oBACgBkN,UADhB,CAVF,CADF;EAgBD;EAEDG,eAAe,CAAC9N,SAAhB,GAA4BA,WAA5B;EACA8N,eAAe,CAACnN,WAAhB,GAA8B,iBAA9B;;ECnCA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MADJ;EAEhBiJ,EAAAA,QAAQ,EAAEjI,SAAS,CAACf,MAFJ;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;AAOA,EAAe,SAAS2Z,eAAT,OAA4D;EAAA,MAAjC5Q,QAAiC,QAAjCA,QAAiC;EAAA,MAAvBH,QAAuB,QAAvBA,QAAuB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;;EACzE,MAAI,CAAC9C,QAAD,IAAa,CAACA,QAAQ,CAAC1K,MAA3B,EAAmC;EACjC,WAAO,IAAP;EACD;;EACD,MAAIub,WAAW,GAAG7Q,QAAQ,CAAC8Q,GAAT,CAAa9Q,QAAQ,CAAC1K,MAAT,GAAkB,CAA/B,CAAlB;EACA,MAAM4U,KAAK,GAAG,EAAd;;EAEA,MAAI2G,WAAW,GAAGhR,QAAlB,EAA4B;EAC1BgR,IAAAA,WAAW,GAAGhR,QAAd;EACD,GATwE;;;EAYzE,WAASkR,UAAT,CAAoB/U,IAApB,EAA0B8U,GAA1B,EAA+B;EAC7B,QAAME,OAAO,GAAGhV,IAAI,GAAG8U,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,EAAchR,QAAd,CAAxB;EAEA,MAAIoR,KAAK,GAAG,EAAZ,CApByE;;EAuBzE,OAAK,IAAI7c,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4L,QAAQ,CAAC1K,MAA7B,EAAqClB,CAAC,EAAtC,EAA0C;EACxC,QAAM8c,KAAK,GAAGlR,QAAQ,CAACkR,KAAT,CAAe9c,CAAf,CAAd;EACA,QAAM0c,GAAG,GAAG9Q,QAAQ,CAAC8Q,GAAT,CAAa1c,CAAb,CAAZ,CAFwC;;EAIxC,QAAM+c,IAAI,GACR9N;EACE,MAAA,KAAK,EAAE;EACLoH,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,YAAUzc;EALf,MADF;EASA6c,IAAAA,KAAK,CAAC3Y,IAAN,CAAW6Y,IAAX;EACD;;EAED,MAAIF,KAAK,CAAC3b,MAAN,KAAiB,CAArB,EAAwB;EACtB2b,IAAAA,KAAK,GAAG,IAAR;EACD;;EAED,SACE5N;EACE,IAAA,KAAK,EAAE6G,KADT;EAEE,IAAA,SAAS,EAAEhS,UAAU,CAAC,+BAAD,EAAkC4K,SAAlC;EAFvB,KAIEO;EAAM,IAAA,SAAS,EAAC;EAAhB,kBAJF,EAKG4N,KALH,CADF;EASD;EAEDL,eAAe,CAAChO,SAAhB,GAA4BA,WAA5B;EACAgO,eAAe,CAACrN,WAAhB,GAA8B,iBAA9B;;EC5DA,SAAS6N,gBAAT,OAEG;EAAA,MADDvR,QACC,QADDA,QACC;EAAA,MADSwR,SACT,QADSA,SACT;EAAA,MADoBvO,SACpB,QADoBA,SACpB;EAAA,MAD+BwO,IAC/B,QAD+BA,IAC/B;;EACD,MAAI,CAACD,SAAS,CAACrV,IAAf,EAAqB;EACnB,WAAO,IAAP;EACD;;EAED,MAAMA,IAAI,GAAGsV,IAAI,IAAIxN,UAAU,CAACuN,SAAS,CAACrV,IAAX,EAAiB6D,QAAjB,CAA/B;EAEA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC,+BAAD,EAAkC4K,SAAlC,CADvB;EAEE,IAAA,KAAK,EAAE;EACL2H,MAAAA,IAAI,EAAK4G,SAAS,CAACxO,QAAf;EADC,KAFT;EAKE,yBAAmB7G;EALrB,IADF;EASD;;EAEDoV,gBAAgB,CAACxO,SAAjB,GAA6B;EAC3B/C,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MADO;EAE3Bsa,EAAAA,SAAS,EAAEtZ,SAAS,CAACf,MAFM;EAG3B8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHM,CAA7B;EAKAma,gBAAgB,CAAC7N,WAAjB,GAA+B,kBAA/B;;ECrBA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhBqa,EAAAA,SAAS,EAAEtZ,SAAS,CAACf,MAFL;EAGhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAHH;EAIhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;MAOqBsa;;;;;EACnB,mBAAYtb,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKoM,UAAL,GAAkB,MAAKA,UAAL,CAAgBzZ,IAAhB,+BAAlB;EACA,UAAK4b,UAAL,GAAkB,MAAKA,UAAL,CAAgB5b,IAAhB,+BAAlB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EAEA,UAAK+Z,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAKga,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAKia,aAAL,GAAqB,MAAKA,aAAL,CAAmBja,IAAnB,+BAArB;EAV0B;EAW3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBoK,qBAAA,8BAAqB;EAErB;;;;;;;;WAMA8B,aAAA,sBAAa;EAAA,6BACoC,KAAKpZ,KAAL,CAAWsJ,MAD/C;EAAA,QACHO,WADG,sBACHA,WADG;EAAA,QACUC,WADV,sBACUA,WADV;EAAA,QACuBF,QADvB,sBACuBA,QADvB;EAEX,QAAM7D,IAAI,GAAG+D,WAAW,IAAID,WAA5B;EACA,QAAMkR,OAAO,GAAGhV,IAAI,GAAG6D,QAAvB;EACA,WAAOmR,OAAO,IAAI,CAAX,GAAe,CAAf,GAAmBA,OAA1B;EACD;;WAEDQ,aAAA,oBAAWlG,KAAX,EAAkB;EAAA,QAEJzL,QAFI,GAGZ,KAAK5J,KAHO,CAEdsJ,MAFc,CAEJM,QAFI;EAIhB,QAAM4R,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACA,QAAMoG,OAAO,GAAGD,QAAQ,GAAG5R,QAA3B,CALgB;;EAQhB,WAAO6R,OAAO,KAAK7R,QAAZ,GAAuB6R,OAAO,GAAG,GAAjC,GAAuCA,OAA9C;EACD;;WAED/B,kBAAA,2BAAkB;;WAElBE,gBAAA,uBAAcvE,KAAd,EAAqB;EAAA,QACX5J,OADW,GACC,KAAKzL,KADN,CACXyL,OADW;EAEnB,QAAMgQ,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB,CAFmB;;EAInB5J,IAAAA,OAAO,CAAC/C,IAAR,CAAa+S,OAAb;EACAhQ,IAAAA,OAAO,CAACzF,gBAAR,CAAyByV,OAAzB;EACD;;WAED9B,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACb5J,OADa,GACD,KAAKzL,KADJ,CACbyL,OADa;EAErB,QAAMgQ,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB;EACA5J,IAAAA,OAAO,CAAC3F,iBAAR,CAA0B2V,OAA1B;EACD;;WAED7C,cAAA,uBAAc;EAAA,QACJnN,OADI,GACQ,KAAKzL,KADb,CACJyL,OADI;EAEZA,IAAAA,OAAO,CAAC9C,OAAR,CAAgB,CAAhB;EACD;;WAEDkQ,WAAA,oBAAW;EAAA,QACDpN,OADC,GACW,KAAKzL,KADhB,CACDyL,OADC;EAETA,IAAAA,OAAO,CAAC5C,MAAR,CAAe,CAAf;EACD;;WAEDsE,SAAA,kBAAS;EAAA;;EAAA,sBAIH,KAAKnN,KAJF;EAAA,0CAELsJ,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,QAGLqR,SAHK,eAGLA,SAHK;EAKP,QAAMrV,IAAI,GAAG+D,WAAW,IAAID,WAA5B;EAEA,WACEuD,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAAAsO,KAAK,EAAI;EACZ,QAAA,MAAI,CAACtB,MAAL,GAAcsB,KAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,oBAJR;EAKE,MAAA,SAAS,EAAEzZ,UAAU,CACnB,iCADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CALvB;EASE,MAAA,QAAQ,EAAE,CAAC,KAAKuM,UAAL,KAAoB,GAArB,EAA0BmB,OAA1B,CAAkC,CAAlC,CATZ;EAUE,MAAA,SAAS,EAAE1M,UAAU,CAAC9H,IAAD,EAAO6D,QAAP,CAVvB;EAWE,MAAA,WAAW,EAAE,KAAK8P,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,OAkBEzL,6BAAC,eAAD;EACE,MAAA,QAAQ,EAAErD,QADZ;EAEE,MAAA,WAAW,EAAEhE,IAFf;EAGE,MAAA,QAAQ,EAAE6D;EAHZ,MAlBF,EAuBEwD,6BAAC,gBAAD;EAAkB,MAAA,QAAQ,EAAExD,QAA5B;EAAsC,MAAA,SAAS,EAAEwR;EAAjD,MAvBF,EAwBEhO,6BAAC,eAAD;EAAiB,MAAA,WAAW,EAAErH,IAA9B;EAAoC,MAAA,QAAQ,EAAE6D;EAA9C,MAxBF,CADF;EA4BD;;;IAvGkCyD;EA0GrCiO,OAAO,CAAC3O,SAAR,GAAoBA,WAApB;EACA2O,OAAO,CAAChO,WAAR,GAAsB,SAAtB;;ECrHA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;MAKqB2a;;;;;EACnB,2BAAY3b,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXuQ,MAAAA,SAAS,EAAE;EACTrV,QAAAA,IAAI,EAAE,IADG;EAET6G,QAAAA,QAAQ,EAAE;EAFD;EADA,KAAb;EAOA,UAAKgP,uBAAL,GAA+B,MAAKjC,eAAL,CAAqBha,IAArB,+BAA/B;EAV0B;EAW3B;;;;WAEDga,kBAAA,yBAAgBtE,KAAhB,EAAuB;EACrB,QAAI,CAACA,KAAK,CAACU,KAAX,EAAkB;EAChB;EACD;;EAHoB,QAKTnM,QALS,GAMjB,KAAK5J,KANY,CAKnBsJ,MALmB,CAKTM,QALS;EAOrB,QAAMrI,IAAI,GAAG,KAAKsa,OAAlB;EACA,QAAMJ,OAAO,GAAGpB,kBAAA,CAAuB9Y,IAAvB,EAA6B8T,KAA7B,EAAoCe,CAApC,GAAwCxM,QAAxD;EACA,QAAMgD,QAAQ,GAAGyI,KAAK,CAACU,KAAN,GAAcsE,cAAA,CAAmB9Y,IAAnB,EAAyBiT,IAAxD;EAEA,SAAKR,QAAL,CAAc;EACZoH,MAAAA,SAAS,EAAE;EACTrV,QAAAA,IAAI,EAAE0V,OADG;EAET7O,QAAAA,QAAQ,EAARA;EAFS;EADC,KAAd;EAMD;;WAEDO,SAAA,kBAAS;EAAA;;EAAA,QACCN,SADD,GACe,KAAK7M,KADpB,CACC6M,SADD;EAEP,WACEO;EACE,MAAA,WAAW,EAAE,KAAKwO,uBADpB;EAEE,MAAA,SAAS,EAAE3Z,UAAU,CACnB,0DADmB,EAEnB4K,SAFmB;EAFvB,OAOEO,6BAAC,OAAD;EACE,MAAA,SAAS,EAAE,KAAKvC,KAAL,CAAWuQ,SADxB;EAEE,MAAA,GAAG,EAAE,aAAArf,CAAC,EAAI;EACR,QAAA,MAAI,CAAC8f,OAAL,GAAe9f,CAAf;EACD;EAJH,OAKM,KAAKiE,KALX,EAPF,CADF;EAiBD;;;IApD0CqN;EAuD7CsO,eAAe,CAAChP,SAAhB,GAA4BA,WAA5B;EACAgP,eAAe,CAACrO,WAAhB,GAA8B,iBAA9B;;EChEA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;MAMqB8a;;;;;EACnB,sBAAY9b,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EACA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAF0B;EAG3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJyL,OADI,eACJA,OADI;EAAA,QACKnC,MADL,eACKA,MADL;;EAEZ,QAAIA,MAAM,CAACY,MAAX,EAAmB;EACjBuB,MAAAA,OAAO,CAACrD,IAAR;EACD,KAFD,MAEO;EACLqD,MAAAA,OAAO,CAACjD,KAAR;EACD;EACF;;WAED2E,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAEP,QAAMkP,WAAW,GAAGzS,MAAM,CAACY,MAAP,GAAgB,MAAhB,GAAyB,OAA7C;EAEA,WACEkD;EACE,MAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,QAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,OAHH;EAIE,MAAA,SAAS,EAAEkG,UAAU,CAAC4K,SAAD,EAAY;EAC/B,wCAAgC,IADD;EAE/B,mCAA2B,IAFI;EAG/B,kCAA0B,IAHK;EAI/B,kCAA0BvD,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,KAAK+C;EAbhB,OAeEG;EAAM,MAAA,SAAS,EAAC;EAAhB,OAAgD2O,WAAhD,CAfF,CADF;EAmBD;;;IAtCqC1O;EAyCxCyO,UAAU,CAACnP,SAAX,GAAuBA,WAAvB;EACAmP,UAAU,CAACxO,WAAX,GAAyB,YAAzB;;ECjDA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAFL;EAGhB4H,EAAAA,OAAO,EAAE9G,SAAS,CAACL,KAAV,CAAgB,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,CAAhB;EAHO,CAAlB;EAMA,IAAMqL,cAAY,GAAG;EACnBlE,EAAAA,OAAO,EAAE;EADU,CAArB;AAIA,8BAAe,UAACqK,IAAD,EAAU;EAAA,MACjBgJ,oBADiB;EAAA;EAAA;EAAA;;EAErB,kCAAYjc,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,oCAAMhN,KAAN,EAAagN,OAAb;EACA,YAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAF0B;EAG3B;;EALoB;;EAAA,WAOrBsN,WAPqB,GAOrB,uBAAc;EAAA,wBACiB,KAAKjN,KADtB;EAAA,UACJyL,OADI,eACJA,OADI;EAAA,UACK7C,OADL,eACKA,OADL;;EAGZ,UAAIqK,IAAI,KAAK,SAAb,EAAwB;EACtBxH,QAAAA,OAAO,CAAC9C,OAAR,CAAgBC,OAAhB;EACD,OAFD,MAEO;EACL6C,QAAAA,OAAO,CAAC5C,MAAR,CAAeD,OAAf;EACD;EACF,KAfoB;;EAAA,WAiBrBuE,MAjBqB,GAiBrB,kBAAS;EAAA;;EAAA,yBACwB,KAAKnN,KAD7B;EAAA,UACC4I,OADD,gBACCA,OADD;EAAA,UACUiE,SADV,gBACUA,SADV;EAEP,UAAM5K,UAAU,GAAG,CACjB,yBADiB,EAEjB,wBAFiB,EAGjB,sBAHiB,CAAnB;EAKAA,MAAAA,UAAU,CAACI,IAAX,2BAC0B4Q,IAD1B,SACkCrK,OADlC,uBAEqBqK,IAFrB;;EAIA,UAAIpG,SAAJ,EAAe;EACb5K,QAAAA,UAAU,CAACI,IAAX,CAAgBwK,SAAhB;EACD;;EACD,aACEO;EACE,QAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,UAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,SAHH;EAIE,QAAA,SAAS,EAAEkG,UAAU,CAAC1D,IAAX,CAAgB,GAAhB,CAJb;EAKE,QAAA,IAAI,EAAC,QALP;EAME,QAAA,OAAO,EAAE,KAAK0O;EANhB,SAQEG;EAAM,QAAA,SAAS,EAAC;EAAhB,SAAmD6F,IAAnD,SAA2DrK,OAA3D,cARF,CADF;EAYD,KA3CoB;;EAAA;EAAA,IACYyE,eADZ;;EA8CvB4O,EAAAA,oBAAoB,CAACtP,SAArB,GAAiCA,WAAjC;EACAsP,EAAAA,oBAAoB,CAACnP,YAArB,GAAoCA,cAApC;EACA,SAAOmP,oBAAP;EACD,CAjDD;;ECVA,IAAMC,cAAc,GAAGD,oBAAoB,CAAC,SAAD,CAA3C;EAEAC,cAAc,CAAC5O,WAAf,GAA6B,gBAA7B;;ECFA,IAAM6O,aAAa,GAAGF,oBAAoB,CAAC,QAAD,CAA1C;EACAE,aAAa,CAAC7O,WAAd,GAA4B,eAA5B;;ECAA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;MAMqBob;;;;;EACnB,4BAAYpc,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJsJ,MADI,eACJA,MADI;EAAA,QACImC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;;WAED6D,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAEP,WACEO;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,gDAAwCvD,MAAM,CAACtB,YADjD;EAEE,2CAAmC,CAACsB,MAAM,CAACtB;EAF7C,OAFmB,EAMnB,wGANmB,CADvB;EASE,MAAA,GAAG,EAAE,aAACjM,CAAD,EAAO;EACV,QAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,OAXH;EAYE,MAAA,IAAI,EAAC,QAZP;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,OAAO,EAAE,KAAKkR;EAdhB,OAgBEG;EAAM,MAAA,SAAS,EAAC;EAAhB,wBAhBF,CADF;EAoBD;;;IAlC2CC;EAqC9C+O,gBAAgB,CAACzP,SAAjB,GAA6BA,WAA7B;EACAyP,gBAAgB,CAAC9O,WAAjB,GAA+B,kBAA/B;;EC1CA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASqb,oBAAT,OAGG;EAAA,yBAFD/S,MAEC;EAAA,MAFSO,WAET,eAFSA,WAET;EAAA,MAFsBD,QAEtB,eAFsBA,QAEtB;EAAA,MADDiD,SACC,QADDA,SACC;EACD,MAAMyP,aAAa,GAAG1S,QAAQ,GAAGC,WAAjC;EACA,MAAM0S,aAAa,GAAG1O,UAAU,CAACyO,aAAD,CAAhC;EACA,SACElP;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,qFADmB,EAEnB4K,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,wCAAf;EAAwD,iBAAU;EAAlE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,uBADF,QAEOmP,aAFP,CANF,CADF;EAaD;;EAEDF,oBAAoB,CAAC1P,SAArB,GAAiCA,WAAjC;EACA0P,oBAAoB,CAAC/O,WAArB,GAAmC,sBAAnC;;EC3BA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASwb,kBAAT,OAA8E;EAAA,yBAAhDlT,MAAgD;EAAA,MAAtCO,WAAsC,eAAtCA,WAAsC;EAAA,MAAzBD,QAAyB,eAAzBA,QAAyB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;EAC5E,MAAM0P,aAAa,GAAG1O,UAAU,CAAChE,WAAD,EAAcD,QAAd,CAAhC;EACA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,mFADmB,EAEnB4K,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,sCAAf;EAAsD,iBAAU;EAAhE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,qBADF,EAEGmP,aAFH,CANF,CADF;EAaD;;EAEDC,kBAAkB,CAAC7P,SAAnB,GAA+BA,WAA/B;EACA6P,kBAAkB,CAAClP,WAAnB,GAAiC,oBAAjC;;ECvBA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASyb,eAAT,OAA8D;EAAA,MAAzB7S,QAAyB,QAAnCN,MAAmC,CAAzBM,QAAyB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;EAC5D,MAAM0P,aAAa,GAAG1O,UAAU,CAACjE,QAAD,CAAhC;EACA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB,+EAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,kCAAf;EAAkD,iBAAU;EAA5D,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,sBADF,EAEGmP,aAFH,CANF,CADF;EAaD;;EAEDE,eAAe,CAAC9P,SAAhB,GAA4BA,WAA5B;EACA8P,eAAe,CAACnP,WAAhB,GAA8B,iBAA9B;;ECzBA,IAAMX,WAAS,GAAG;EAChB+P,EAAAA,SAAS,EAAE5a,SAAS,CAACd,MADL;EAEhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAAS2b,WAAT,OAA+C;EAAA,MAAxBD,SAAwB,QAAxBA,SAAwB;EAAA,MAAb7P,SAAa,QAAbA,SAAa;EAC5D,MAAM+P,aAAa,GAAGF,SAAS,IAAI,GAAnC;EACA,SACEtP;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,2DADmB,EAEnB4K,SAFmB,CADvB;EAKE,IAAA,GAAG,EAAC;EALN,KAOEO,0CACEA,2CAAOwP,aAAP,CADF,CAPF,CADF;EAaD;EAEDD,WAAW,CAAChQ,SAAZ,GAAwBA,WAAxB;EACAgQ,WAAW,CAACrP,WAAZ,GAA0B,aAA1B;;ECvBA,IAAMX,WAAS,GAAG;EAChBkQ,EAAAA,OAAO,EAAE/a,SAAS,CAACd,MADH;EAEhBmY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhByY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAHH;EAIhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAJF;EAKhBgM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM8L,cAAY,GAAG;EACnB+P,EAAAA,OAAO,EAAE;EADU,CAArB;;MAIqBC;;;;;EACnB,8BAAY9c,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAK+S,cAAL,GAAsB,MAAKA,cAAL,CAAoB/S,IAApB,+BAAtB;EAN0B;EAO3B;;;;WAED6X,uBAAA,8BAAqBvb,CAArB,EAAwB;EACtB,SAAK6d,UAAL,CAAgB7d,CAAhB;EACD;;WAEDyW,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,WAAKtL,WAAL,CAAiBoI,KAAjB;EACD;EACF;;WAEDpI,cAAA,qBAAYoI,KAAZ,EAAmB;EAAA,QACT8D,OADS,GACG,KAAKnZ,KADR,CACTmZ,OADS;EAEjBA,IAAAA,OAAO,CAAC9D,KAAD,CAAP;EACD;;WAEDwE,cAAA,qBAAY5d,CAAZ,EAAe;EACb0K,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK0L,cAA1C;;EACA,QAAI,KAAK1S,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ0K,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKwL,cAA7C;;EACA,QAAI,KAAK1S,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDkR,SAAA,kBAAS;EACP,QAAM4P,GAAG,GAAG,KAAK/c,KAAL,CAAW6c,OAAvB;;EACA,QAAM7c,KAAK,gBAAQ,KAAKA,KAAb,CAAX;;EACA,WAAOA,KAAK,CAAC6c,OAAb;EACA,WAAO7c,KAAK,CAAC6M,SAAb;EACA,WACEO,6BAAC,GAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC,KAAKjC,KAAL,CAAW6M,SAAZ,CADvB;EAEE,MAAA,IAAI,EAAC,QAFP;EAGE,MAAA,QAAQ,EAAC,GAHX;EAIE,MAAA,OAAO,EAAE,KAAKI,WAJhB;EAKE,MAAA,OAAO,EAAE,KAAK4M,WALhB;EAME,MAAA,MAAM,EAAE,KAAKC;EANf,OAOM9Z,KAPN,EADF;EAWD;;;IAzD6CqN;EA4DhDyP,kBAAkB,CAACnQ,SAAnB,GAA+BA,WAA/B;EACAmQ,kBAAkB,CAAChQ,YAAnB,GAAkCA,cAAlC;EACAgQ,kBAAkB,CAACxP,WAAnB,GAAiC,oBAAjC;;EC3EA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhBkO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ;EAFJ,CAAlB;;MAKqB8b;;;;;EACnB,iBAAYhd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDpL,SAAA,kBAAS;EAAA,QACC8B,QADD,GACc,KAAKjP,KADnB,CACCiP,QADD;EAEP,WACE7B;EAAK,MAAA,SAAS,EAAC,sBAAf;EAAsC,MAAA,OAAO,EAAE,KAAKH;EAApD,OACEG;EAAK,MAAA,SAAS,EAAC;EAAf,OAA+C6B,QAA/C,CADF,CADF;EAKD;;;IAnBgC5B;EAsBnC2P,KAAK,CAACrQ,SAAN,GAAkBA,WAAlB;EACAqQ,KAAK,CAAC1P,WAAN,GAAoB,OAApB;;ECzBA,IAAMX,WAAS,GAAG;EAChBsQ,EAAAA,MAAM,EAAEnb,SAAS,CAAClB,IADF;EAEhBuY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhByY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAHH;EAIhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAJF;EAKhBgM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM8L,cAAY,GAAG;EACnBmQ,EAAAA,MAAM,EAAE;EADW,CAArB;AAIA,EAAe,SAASC,WAAT,CAAqBld,KAArB,EAA4B;EAAA,MACjCid,MADiC,GACXjd,KADW,CACjCid,MADiC;EAAA,MACzBpQ,SADyB,GACX7M,KADW,CACzB6M,SADyB;;EAEzC,MAAMmL,EAAE,gBAAQhY,KAAR,CAAR;;EACA,SAAOgY,EAAE,CAAC/I,QAAV;EACA,SAAO+I,EAAE,CAACiF,MAAV;EACA,SAAOjF,EAAE,CAACnL,SAAV;EACA,SACEO,6BAAC,kBAAD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,4CAAsC,CAAC,CAACoQ,MAD1C;EAEE,2CAAqC,CAACA;EAFxC,KAFmB,EAMnB,4EANmB;EADvB,KASMjF,EATN,GAWE5K,6BAAC,KAAD,EAAWpN,KAAX,CAXF,CADF;EAeD;EAEDkd,WAAW,CAACvQ,SAAZ,GAAwBA,WAAxB;EACAuQ,WAAW,CAACpQ,YAAZ,GAA2BA,cAA3B;EACAoQ,WAAW,CAAC5P,WAAZ,GAA0B,aAA1B;;ECvCA,IAAMX,WAAS,GAAG;EAChB2N,EAAAA,UAAU,EAAExY,SAAS,CAACd,MADN;EAEhBqY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAFJ;EAGhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;EAMA,IAAM8L,cAAY,GAAG;EACnBwN,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,MAAbxM,SAAa,QAAbA,SAAa;EACxD,MAAMoH,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,SACElN;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC4K,SAAD,EAAY,8BAAZ,CADvB;EAEE,IAAA,KAAK,EAAEoH;EAFT,KAIE7G;EAAM,IAAA,SAAS,EAAC;EAAhB,IAJF,CADF;EAQD;;EAED+P,WAAW,CAACxQ,SAAZ,GAAwBA,WAAxB;EACAwQ,WAAW,CAACrQ,YAAZ,GAA2BA,cAA3B;EACAqQ,WAAW,CAAC7P,WAAZ,GAA0B,aAA1B;;EC5BA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhBiY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAJH;EAKhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB;EALF,CAAlB;;MAQMwc;;;;;EACJ,qBAAYrd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXyP,MAAAA,UAAU,EAAE;EADD,KAAb;EAIA,UAAKX,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAK2d,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B3d,IAA5B,+BAA9B;EACA,UAAK4d,UAAL,GAAkB,MAAKA,UAAL,CAAgB5d,IAAhB,+BAAlB;EACA,UAAKyZ,UAAL,GAAkB,MAAKA,UAAL,CAAgBzZ,IAAhB,+BAAlB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAf0B;EAgB3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBkM,aAAA,sBAAa;EAAA,QACH9P,MADG,GACQ,KAAKtJ,KADb,CACHsJ,MADG;;EAEX,QAAIA,MAAM,CAACF,KAAX,EAAkB;EAChB,aAAO,CAAP;EACD;;EACD,WAAOE,MAAM,CAACJ,MAAd;EACD;;WAEDqU,aAAA,sBAAa;EAAA,sBACiB,KAAKvd,KADtB;EAAA,QACHsJ,MADG,eACHA,MADG;EAAA,QACKmC,OADL,eACKA,OADL;;EAEX,QAAInC,MAAM,CAACF,KAAX,EAAkB;EAChBqC,MAAAA,OAAO,CAACtC,IAAR,CAAa,KAAb;EACD;EACF;;WAEDwQ,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACb5J,OADa,GACD,KAAKzL,KADJ,CACbyL,OADa;EAErB,SAAK8R,UAAL;EACA,QAAM/B,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACA5J,IAAAA,OAAO,CAACxC,YAAR,CAAqBuS,QAArB;EACD;;WAED5C,cAAA,uBAAc;EAAA,uBACgB,KAAK5Y,KADrB;EAAA,QACJsJ,MADI,gBACJA,MADI;EAAA,QACImC,OADJ,gBACIA,OADJ;EAEZ,SAAK8R,UAAL;EACA9R,IAAAA,OAAO,CAACxC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAED2P,WAAA,oBAAW;EAAA,uBACmB,KAAK7Y,KADxB;EAAA,QACDsJ,MADC,gBACDA,MADC;EAAA,QACOmC,OADP,gBACOA,OADP;EAET,SAAK8R,UAAL;EACA9R,IAAAA,OAAO,CAACxC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAED2Q,cAAA,qBAAY5d,CAAZ,EAAe;EACb,QAAI,KAAK+D,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ,QAAI,KAAK+D,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDqhB,yBAAA,gCAAuBhD,UAAvB,EAAmC;EACjC,QAAIA,UAAU,KAAK,KAAKzP,KAAL,CAAWyP,UAA9B,EAA0C;EACxC,WAAKtG,QAAL,CAAc;EACZsG,QAAAA,UAAU,EAAVA;EADY,OAAd;EAGD;EACF;;WAEDrN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAAC8E,eAAN;EACD;;WAEDhN,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAGP,QAAM3D,MAAM,GAAG,CAACI,MAAM,CAACJ,MAAP,GAAgB,GAAjB,EAAsBqR,OAAtB,CAA8B,CAA9B,CAAf;EACA,WACEnN,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,QAAA,MAAI,CAACqe,MAAL,GAAcre,CAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,cAJR;EAKE,MAAA,QAAQ,EAAEmN,MALZ;EAME,MAAA,SAAS,EAAKA,MAAL,MANX;EAOE,MAAA,WAAW,EAAE,KAAKyQ,eAPpB;EAQE,MAAA,OAAO,EAAE,KAAKE,WARhB;EASE,MAAA,MAAM,EAAE,KAAKC,UATf;EAUE,MAAA,OAAO,EAAE,KAAK7M,WAVhB;EAWE,MAAA,YAAY,EAAE,KAAK4M,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,KAAK7Y,KAjBX;EAkBE,MAAA,SAAS,EAAEiC,UAAU,CACnB4K,SADmB,EAEnB,uDAFmB;EAlBvB,QAuBEO,6BAAC,WAAD,EAAiB,KAAKpN,KAAtB,CAvBF,CADF;EA2BD;;;IA9GqBqN;;EAiHxBgQ,SAAS,CAAC1Q,SAAV,GAAsBA,WAAtB;EACA0Q,SAAS,CAAC/P,WAAV,GAAwB,WAAxB;;EC1HA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhBsY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAHJ;EAIhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAJL;EAKhBwc,EAAAA,gBAAgB,EAAE1b,SAAS,CAAClB;EALZ,CAAlB;EAQA,IAAMkM,cAAY,GAAG;EACnBuM,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIMoE;;;;;EACJ,4BAAYzd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE;EADG,KAAb;EAIA,UAAKhN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EAT0B;EAU3B;;;;WAiBDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJsJ,MADI,eACJA,MADI;EAAA,QACImC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACtC,IAAR,CAAa,CAACG,MAAM,CAACF,KAArB;EACD;;WAEDyQ,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;;WAED9M,SAAA,kBAAS;EAAA,uBACiC,KAAKnN,KADtC;EAAA,QACCqZ,QADD,gBACCA,QADD;EAAA,QACW/P,MADX,gBACWA,MADX;EAAA,QACmBuD,SADnB,gBACmBA,SADnB;EAEP,QAAMoQ,MAAM,GAAG,CAAC5D,QAAhB;EACA,QAAMqE,KAAK,GAAG,KAAKC,WAAnB;EACA,WACEvQ,6BAAC,WAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,uDAA+CwM,QADjD;EAEE,yDAAiD,CAACA,QAFpD;EAGE,qCAA6B/P,MAAM,CAACF,KAHtC;EAIE,iCAAyBsU,KAAK,KAAK,CAAV,IAAe,CAACpU,MAAM,CAACF,KAJlD;EAKE,iCAAyBsU,KAAK,KAAK,CALrC;EAME,iCAAyBA,KAAK,KAAK,CANrC;EAOE,iCAAyBA,KAAK,KAAK,CAPrC;EAQE,yCACE,KAAK1d,KAAL,CAAWwd,gBAAX,IAA+B,KAAK3S,KAAL,CAAWoP,MAT9C;EAUE,wCACE,KAAKja,KAAL,CAAWwd,gBAAX,IAA+B,KAAK3S,KAAL,CAAWoP;EAX9C,OAFmB,EAenB,oCAfmB,CADvB;EAkBE,MAAA,OAAO,EAAE,KAAKhN,WAlBhB;EAmBE,MAAA,MAAM,EAAEgQ;EAnBV,OAqBE7P,6BAAC,SAAD;EACE,MAAA,OAAO,EAAE,KAAKyM,WADhB;EAEE,MAAA,MAAM,EAAE,KAAKC;EAFf,OAGM,KAAK9Z,KAHX,EArBF,CADF;EA6BD;;;;0BAjEiB;EAAA,+BAGZ,KAAKA,KAHO,CAEdsJ,MAFc;EAAA,UAEJJ,MAFI,sBAEJA,MAFI;EAAA,UAEIE,KAFJ,sBAEIA,KAFJ;EAIhB,UAAIsU,KAAK,GAAG,CAAZ;;EACA,UAAIxU,MAAM,KAAK,CAAX,IAAgBE,KAApB,EAA2B;EACzBsU,QAAAA,KAAK,GAAG,CAAR;EACD,OAFD,MAEO,IAAIxU,MAAM,GAAG,IAAb,EAAmB;EACxBwU,QAAAA,KAAK,GAAG,CAAR;EACD,OAFM,MAEA,IAAIxU,MAAM,GAAG,IAAb,EAAmB;EACxBwU,QAAAA,KAAK,GAAG,CAAR;EACD;;EACD,aAAOA,KAAP;EACD;;;;IA1B4BrQ;;EAiF/BoQ,gBAAgB,CAAC9Q,SAAjB,GAA6BA,WAA7B;EACA8Q,gBAAgB,CAAC3Q,YAAjB,GAAgCA,cAAhC;EACA2Q,gBAAgB,CAACnQ,WAAjB,GAA+B,kBAA/B;;ECnGA,IAAMX,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ;EADJ,CAAlB;;MAIqB0c;;;;;EACnB,gBAAY5d,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDpL,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,KAAKpN,KAAL,CAAWiP,QAAzD,CALF,CADF;EASD;;;IAtB+B5B;EAyBlCuQ,IAAI,CAACjR,SAAL,GAAiBA,WAAjB;EACAiR,IAAI,CAACtQ,WAAL,GAAmB,MAAnB;;EC7BA,IAAMX,WAAS,GAAG;EAChBkR,EAAAA,IAAI,EAAE/b,SAAS,CAACf,MADA;EAEhB+c,EAAAA,KAAK,EAAEhc,SAAS,CAAChB,MAFD;EAGhBid,EAAAA,aAAa,EAAEjc,SAAS,CAAChB,MAHT;EAIhBkd,EAAAA,YAAY,EAAElc,SAAS,CAACjB;EAJR,CAAlB;;MAOqBod;;;;;EACnB,oBAAYje,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACoB,KAAKjN,KADzB;EAAA,QACJ8d,KADI,eACJA,KADI;EAAA,QACGE,YADH,eACGA,YADH;EAEZA,IAAAA,YAAY,CAACF,KAAD,CAAZ;EACD;;WAED3Q,SAAA,kBAAS;EAAA,uBACgC,KAAKnN,KADrC;EAAA,QACC6d,IADD,gBACCA,IADD;EAAA,QACOC,KADP,gBACOA,KADP;EAAA,QACcC,aADd,gBACcA,aADd;EAEP,WACE3Q;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC;EACpB,qCAA6B,IADT;EAEpB,oCAA4B6b,KAAK,KAAKC;EAFlB,OAAD,CADvB;EAKE,MAAA,IAAI,EAAC,UALP;EAME,MAAA,OAAO,EAAE,KAAK9Q;EANhB,OAQG4Q,IAAI,CAACvE,KARR,EASElM;EAAM,MAAA,SAAS,EAAC;EAAhB,MATF,CADF;EAaD;;;IA3BmCC;EA8BtC4Q,QAAQ,CAACtR,SAAT,GAAqBA,WAArB;EACAsR,QAAQ,CAAC3Q,WAAT,GAAuB,UAAvB;;ECnCA,IAAMX,WAAS,GAAG;EAChBsQ,EAAAA,MAAM,EAAEnb,SAAS,CAAClB,IADF;EAEhBsd,EAAAA,KAAK,EAAEpc,SAAS,CAACnB,KAFD;EAGhBkM,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhBgd,EAAAA,YAAY,EAAElc,SAAS,CAACjB,IAJR;EAKhBoO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GALJ;EAMhBid,EAAAA,aAAa,EAAErc,SAAS,CAAChB;EANT,CAAlB;;MASqBsd;;;;;EACnB,sBAAYpe,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE,KADG;EAEX8D,MAAAA,aAAa,EAAE/d,KAAK,CAACme,aAAN,IAAuB;EAF3B,KAAb;EAKA,UAAKE,eAAL,GAAuB,MAAKA,eAAL,CAAqB1e,IAArB,+BAAvB;EACA,UAAK2e,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB3e,IAAtB,+BAAxB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAK4e,UAAL,GAAkB,MAAKA,UAAL,CAAgB5e,IAAhB,+BAAlB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAK6e,aAAL,GAAqB,MAAKA,aAAL,CAAmB7e,IAAnB,+BAArB;EACA,UAAK8e,eAAL,GAAuB,MAAKA,eAAL,CAAqB9e,IAArB,+BAAvB;EACA,UAAK+e,YAAL,GAAoB,MAAKA,YAAL,CAAkB/e,IAAlB,+BAApB;EACA,UAAKgf,YAAL,GAAoB,MAAKA,YAAL,CAAkBhf,IAAlB,+BAApB;EACA,UAAKif,SAAL,GAAiB,MAAKA,SAAL,CAAejf,IAAf,+BAAjB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKkf,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EACA,UAAKmf,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBnf,IAAvB,+BAAzB;EArB0B;EAsB3B;;;;WAED2X,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAAC4G,aAAV,KAA4B,KAAKne,KAAL,CAAWme,aAA3C,EAA0D;EACxD,WAAKG,gBAAL,CAAsB,KAAKte,KAAL,CAAWme,aAAjC;EACD;EACF;;WAEDE,kBAAA,yBAAgBP,KAAhB,EAAuB;EACrB,SAAK9J,QAAL,CAAc;EACZ+J,MAAAA,aAAa,EAAED;EADH,KAAd;EAGA,SAAKgB,iBAAL,CAAuBhB,KAAvB;EACD;;WAEDQ,mBAAA,0BAAiBR,KAAjB,EAAwB;EACtB,SAAK9J,QAAL,CAAc;EACZ+J,MAAAA,aAAa,EAAED;EADH,KAAd;EAGA,SAAKgB,iBAAL,CAAuBhB,KAAvB;EACD;;WAEDgB,oBAAA,2BAAkBhB,KAAlB,EAAyB;EAAA,QACfE,YADe,GACE,KAAKhe,KADP,CACfge,YADe;EAEvBA,IAAAA,YAAY,CAACF,KAAD,CAAZ;EACD;;WAED7Q,cAAA,uBAAc;EACZ,SAAK+G,QAAL,CAAc,UAAA3H,SAAS;EAAA,aAAK;EAC1B4N,QAAAA,MAAM,EAAE,CAAC5N,SAAS,CAAC4N;EADO,OAAL;EAAA,KAAvB;EAGD;;WAEDJ,cAAA,uBAAc;EACZlT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C;EACD;;WAED0C,aAAA,sBAAa;EACX,SAAK9F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;EAGAtT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C;EACD;;WAEDoH,gBAAA,uBAAcviB,CAAd,EAAiB;EAAA,QACPiiB,KADO,GACG,KAAKle,KADR,CACPke,KADO;;EAEf,QAAI,KAAKrT,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,UAAIwG,QAAQ,GAAG,KAAKlU,KAAL,CAAWkT,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,GAAG,CAAf,EAAkB;EAChBA,QAAAA,QAAQ,GAAGb,KAAK,CAAC7e,MAAN,GAAe6e,KAAK,CAAC7e,MAAN,GAAe,CAA9B,GAAkC,CAA7C;EACD;;EACD,WAAKif,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDN,kBAAA,yBAAgBxiB,CAAhB,EAAmB;EAAA,QACTiiB,KADS,GACC,KAAKle,KADN,CACTke,KADS;;EAEjB,QAAI,KAAKrT,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,UAAIwG,QAAQ,GAAG,KAAKlU,KAAL,CAAWkT,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,IAAIb,KAAK,CAAC7e,MAAtB,EAA8B;EAC5B0f,QAAAA,QAAQ,GAAG,CAAX;EACD;;EACD,WAAKT,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDH,YAAA,mBAAU3iB,CAAV,EAAa;EACX,QAAI,KAAK4O,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,WAAK8F,eAAL,CAAqB,KAAKxT,KAAL,CAAWkT,aAAhC;EACD;EACF;;WAEDY,eAAA,sBAAa1iB,CAAb,EAAgB;EACdA,IAAAA,CAAC,CAACsc,cAAF;;EACA,QAAI,KAAK1N,KAAL,CAAWoP,MAAf,EAAuB;EACrB,WAAKoE,eAAL,CAAqB,KAAKxT,KAAL,CAAWkT,aAAhC;EACD,KAFD,MAEO;EACL,WAAK/J,QAAL,CAAc;EACZiG,QAAAA,MAAM,EAAE;EADI,OAAd;EAGD;EACF;;WAEDyE,eAAA,wBAAe;EACb,SAAK1K,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE,KADI;EAEZ8D,MAAAA,aAAa,EAAE;EAFH,KAAd;EAID;;WAED3G,iBAAA,wBAAe/B,KAAf,EAAsB;EACpB;EACA,QAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EACtB,WAAKwG,YAAL,CAAkBrJ,KAAlB;EACD,KAFD,MAEO,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,CAApB,EAAuB;EAC5B;EACA,WAAK0G,SAAL,CAAevJ,KAAf;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKyG,YAAL,CAAkBtJ,KAAlB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKsG,aAAL,CAAmBnJ,KAAnB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKuG,eAAL,CAAqBpJ,KAArB;EACD;EACF;;WAEDwJ,mBAAA,0BAAiB1gB,CAAjB,EAAoB;EAClB,SAAKkgB,eAAL,CAAqBlgB,CAArB;EACD;;WAEDogB,aAAA,sBAAa;EAAA;;EACX,QAAI,CAAC,KAAK1T,KAAL,CAAWoP,MAAhB,EAAwB;EACtB,aAAO,IAAP;EACD;;EAHU,QAKHiE,KALG,GAKO,KAAKle,KALZ,CAKHke,KALG;EAMX,WACE9Q,6BAAC,IAAD,QACG8Q,KAAK,CAAC5f,GAAN,CAAU,UAACuf,IAAD,EAAO1f,CAAP;EAAA,aACTiP,6BAAC,QAAD;EACE,QAAA,IAAI,EAAEyQ,IADR;EAEE,QAAA,KAAK,EAAE1f,CAFT;EAGE,QAAA,YAAY,EAAE,MAAI,CAAC0gB,gBAHrB;EAIE,QAAA,aAAa,EAAE,MAAI,CAAChU,KAAL,CAAWkT,aAJ5B;EAKE,QAAA,GAAG,YAAU5f,CAAC;EALhB,QADS;EAAA,KAAV,CADH,CADF;EAaD;;WAEDgP,SAAA,kBAAS;EAAA;;EAAA,sBACuB,KAAKnN,KAD5B;EAAA,QACCid,MADD,eACCA,MADD;EAAA,QACSpQ,SADT,eACSA,SADT;EAGP,WACEO,6BAAC,kBAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,8CAAsC,CAAC,CAACoQ,MAD1C;EAEE,6CAAqC,CAACA,MAFxC;EAGE,8CAAsC,KAAKpS,KAAL,CAAWoP;EAHnD,OAFmB,EAOnB,4EAPmB,CADvB;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,MAAA,QAAQ,EAAC,GAXX;EAYE,MAAA,GAAG,EAAE,aAACle,CAAD,EAAO;EACV,QAAA,MAAI,CAACijB,UAAL,GAAkBjjB,CAAlB;EACD,OAdH;EAeE,MAAA,OAAO,EAAE,KAAKkR,WAfhB;EAgBE,MAAA,OAAO,EAAE,KAAK4M,WAhBhB;EAiBE,MAAA,MAAM,EAAE,KAAKC;EAjBf,OAmBG,KAAK9Z,KAAL,CAAWiP,QAnBd,EAoBG,KAAKsP,UAAL,EApBH,CADF;EAwBD;;;IA3LqClR;EA8LxC+Q,UAAU,CAACzR,SAAX,GAAuBA,WAAvB;EACAyR,UAAU,CAAC9Q,WAAX,GAAyB,YAAzB;;EC1MA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhBke,EAAAA,KAAK,EAAEnd,SAAS,CAACnB,KAHD;EAIhBkM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM8L,cAAY,GAAG;EACnBmS,EAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,GAAJ,EAAS,IAAT,EAAe,CAAf,EAAkB,GAAlB,EAAuB,IAAvB;EADY,CAArB;;MAIMC;;;;;EACJ,kCAAYlf,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK6R,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EAH0B;EAI3B;;;;WAEDkf,mBAAA,0BAAiBf,KAAjB,EAAwB;EAAA,sBACK,KAAK9d,KADV;EAAA,QACdif,KADc,eACdA,KADc;EAAA,QACPxT,OADO,eACPA,OADO;;EAEtB,QAAIqS,KAAK,IAAI,CAAT,IAAcA,KAAK,GAAGmB,KAAK,CAAC5f,MAAhC,EAAwC;EACtCoM,MAAAA,OAAO,CAAC3C,UAAR,CAAmBmW,KAAK,CAACnB,KAAD,CAAxB;EACD;EACF;;WAED3Q,SAAA,kBAAS;EAAA,uBACmB,KAAKnN,KADxB;EAAA,QACCif,KADD,gBACCA,KADD;EAAA,QACQ3V,MADR,gBACQA,MADR;EAEP,QAAM4U,KAAK,GAAGe,KAAK,CAAC3gB,GAAN,CAAU,UAAAyK,IAAI;EAAA,aAAK;EAC/BuQ,QAAAA,KAAK,EAAKvQ,IAAL,MAD0B;EAE/BpN,QAAAA,KAAK,EAAEoN;EAFwB,OAAL;EAAA,KAAd,CAAd;EAIA,QAAMoV,aAAa,GAAGc,KAAK,CAACE,OAAN,CAAc7V,MAAM,CAACN,YAArB,KAAsC,CAA5D;EAEA,WACEoE,6BAAC,UAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,+BADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAKgS,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE/Q;EAAM,MAAA,SAAS,EAAC;EAAhB,uBATF,EAUEA;EAAK,MAAA,SAAS,EAAC;EAAf,OACM9D,MAAM,CAACN,YAAP,CAAoBuR,OAApB,CAA4B,CAA5B,CADN,OAVF,CADF;EAgBD;;;IAtCkClN;;EAyCrC6R,sBAAsB,CAACvS,SAAvB,GAAmCA,WAAnC;EACAuS,sBAAsB,CAACpS,YAAvB,GAAsCA,cAAtC;EACAoS,sBAAsB,CAAC5R,WAAvB,GAAqC,wBAArC;;EC1CA,IAAMX,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GADJ;EAEhBke,EAAAA,QAAQ,EAAEtd,SAAS,CAAClB,IAFJ;EAGhBye,EAAAA,YAAY,EAAEvd,SAAS,CAAChB,MAHR;EAGgB;EAChCwe,EAAAA,sBAAsB,EAAExd,SAAS,CAAClB,IAJlB;EAKhB2e,EAAAA,iBAAiB,EAAEzd,SAAS,CAAClB,IALb;EAMhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EANL,CAAlB;EASA,IAAM8L,cAAY,GAAG;EACnBsS,EAAAA,QAAQ,EAAE,IADS;EAEnBG,EAAAA,iBAAiB,EAAE;EAFA,CAArB;;MAKqBC;;;;;EACnB,sBAAYxf,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKyf,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB9f,IAAxB,+BAA1B;EACA,UAAK+f,eAAL,GAAuB,MAAKA,eAAL,CAAqB/f,IAArB,+BAAvB;EAJiB;EAKlB;;;;WAED8f,qBAAA,8BAAqB;EACnB,WAAO,CACLrS,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;;WAEDsS,kBAAA,2BAAkB;EAChB,WAAO,CACLtS,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;;WAEDuS,cAAA,uBAAc;EACZ,QAAM1Q,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,CAAjB;EACA,QAAMJ,eAAe,GAAG,KAAK7O,KAAL,CAAWsf,sBAAX,GACpB,EADoB,GAEpB,KAAKG,kBAAL,EAFJ;;EAFY,sBAK0B,KAAKzf,KAL/B;EAAA,QAKJ6M,SALI,eAKJA,SALI;EAAA,QAKUwC,WALV;;;EAMZ,WAAOT,oBAAoB,CAACC,eAAD,EAAkBI,QAAlB,EAA4BI,WAA5B,CAA3B;EACD;;WAEDlC,SAAA,kBAAS;EAAA,uBAC4C,KAAKnN,KADjD;EAAA,QACCof,QADD,gBACCA,QADD;EAAA,QACWvS,SADX,gBACWA,SADX;EAAA,QACsB0S,iBADtB,gBACsBA,iBADtB;EAEP,QAAMtQ,QAAQ,GAAG,KAAK0Q,WAAL,EAAjB;EAEA,WAAOJ,iBAAiB,GAAG,IAAH,GACtBnS;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,6BADmB,EAEnB;EACE,iDAAyCmd;EAD3C,OAFmB,EAKnBvS,SALmB;EADvB,OASGoC,QATH,CADF;EAaD;;;IAlEqC5B;EAqExCmS,UAAU,CAAC7S,SAAX,GAAuBA,WAAvB;EACA6S,UAAU,CAAC1S,YAAX,GAA0BA,cAA1B;EACA0S,UAAU,CAAClS,WAAX,GAAyB,YAAzB;;ECtGA,IAAMsS,UAAU,GAAG,OAAOjd,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACkd,SAAxC,GACfld,MAAM,CAACkd,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,IAAMvT,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GADJ;EAGhBwZ,EAAAA,KAAK,EAAE5Y,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAHS;EAIhBsc,EAAAA,MAAM,EAAEtb,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAJQ;EAKhBsf,EAAAA,KAAK,EAAEte,SAAS,CAAClB,IALD;EAMhBwI,EAAAA,KAAK,EAAEtH,SAAS,CAAClB,IAND;EAOhB8P,EAAAA,WAAW,EAAE5O,SAAS,CAAClB,IAPP;EAQhByf,EAAAA,WAAW,EAAEve,SAAS,CAACd,MARP;EAShB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MATL;EAUhB0S,EAAAA,OAAO,EAAE5R,SAAS,CAACd,MAVH;EAYhBuP,EAAAA,SAAS,EAAEzO,SAAS,CAAChB,MAZL;EAahB0P,EAAAA,IAAI,EAAE1O,SAAS,CAAClB,IAbA;EAchB6P,EAAAA,QAAQ,EAAE3O,SAAS,CAAClB,IAdJ;EAehB+P,EAAAA,GAAG,EAAE7O,SAAS,CAACd,MAfC;EAgBhBwM,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MAhBF;EAiBhB4P,EAAAA,OAAO,EAAE9O,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAjBO;EAmBhBqP,EAAAA,WAAW,EAAEhP,SAAS,CAACjB,IAnBP;EAoBhBkQ,EAAAA,SAAS,EAAEjP,SAAS,CAACjB,IApBL;EAqBhBmQ,EAAAA,SAAS,EAAElP,SAAS,CAACjB,IArBL;EAsBhBoQ,EAAAA,gBAAgB,EAAEnP,SAAS,CAACjB,IAtBZ;EAuBhBqQ,EAAAA,SAAS,EAAEpP,SAAS,CAACjB,IAvBL;EAwBhBsQ,EAAAA,OAAO,EAAErP,SAAS,CAACjB,IAxBH;EAyBhBuQ,EAAAA,SAAS,EAAEtP,SAAS,CAACjB,IAzBL;EA0BhBwQ,EAAAA,QAAQ,EAAEvP,SAAS,CAACjB,IA1BJ;EA2BhByQ,EAAAA,MAAM,EAAExP,SAAS,CAACjB,IA3BF;EA4BhB0Q,EAAAA,OAAO,EAAEzP,SAAS,CAACjB,IA5BH;EA6BhB2Q,EAAAA,UAAU,EAAE1P,SAAS,CAACjB,IA7BN;EA8BhB4Q,EAAAA,gBAAgB,EAAE3P,SAAS,CAACjB,IA9BZ;EA+BhB6Q,EAAAA,OAAO,EAAE5P,SAAS,CAACjB,IA/BH;EAgChB8Q,EAAAA,SAAS,EAAE7P,SAAS,CAACjB,IAhCL;EAiChB+Q,EAAAA,OAAO,EAAE9P,SAAS,CAACjB,IAjCH;EAkChBgR,EAAAA,SAAS,EAAE/P,SAAS,CAACjB,IAlCL;EAmChBiR,EAAAA,SAAS,EAAEhQ,SAAS,CAACjB,IAnCL;EAoChBkR,EAAAA,gBAAgB,EAAEjQ,SAAS,CAACjB,IApCZ;EAqChBmR,EAAAA,YAAY,EAAElQ,SAAS,CAACjB,IArCR;EAsChBoR,EAAAA,YAAY,EAAEnQ,SAAS,CAACjB,IAtCR;EAuChBqR,EAAAA,YAAY,EAAEpQ,SAAS,CAACjB,IAvCR;EAwChBsR,EAAAA,cAAc,EAAErQ,SAAS,CAACjB,IAxCV;EA0ChBsK,EAAAA,KAAK,EAAErJ,SAAS,CAACf;EA1CD,CAAlB;EA6CA,IAAM+L,cAAY,GAAG;EACnBsT,EAAAA,KAAK,EAAE,IADY;EAEnBhX,EAAAA,KAAK,EAAE,KAFY;EAGnBsH,EAAAA,WAAW,EAAE,KAHM;EAInBE,EAAAA,OAAO,EAAE,MAJU;EAKnByP,EAAAA,WAAW,EAAE;EALM,CAArB;;MAQqBC;;;;;EACnB,kBAAYtgB,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKugB,iBAAL,GAAyB,IAAzB;EAEA,UAAKhY,KAAL,GAAa,IAAb,CALiB;;EAMjB,UAAKgD,OAAL,GAAe,IAAIL,OAAJ,CAAYlL,KAAK,CAACmL,KAAlB,CAAf;EACA,UAAKM,OAAL,GAAe,MAAKF,OAAL,CAAaD,UAAb,EAAf;;EACA,UAAKC,OAAL,CAAamB,4BAAb,CACE,MAAKmH,iBAAL,CAAuBlU,IAAvB,+BADF;;EAIA,UAAK6gB,QAAL,GAAgB,MAAKA,QAAL,CAAc7gB,IAAd,+BAAhB;EACA,UAAKiG,YAAL,GAAoB,MAAKA,YAAL,CAAkBjG,IAAlB,+BAApB;EACA,UAAKggB,WAAL,GAAmB,MAAKA,WAAL,CAAiBhgB,IAAjB,+BAAnB;EACA,UAAKga,eAAL,GAAuB1J,QAAQ,CAAC,MAAK0J,eAAL,CAAqBha,IAArB,+BAAD,EAAkC,GAAlC,CAA/B;EACA,UAAK+Z,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAK8gB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB9gB,IAAxB,+BAA1B;EACA,UAAK+gB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B/gB,IAA5B,+BAA9B;EACA,UAAKghB,aAAL,GAAqB,MAAKA,aAAL,CAAmBhhB,IAAnB,+BAArB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EArBiB;EAsBlB;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAKtH,YAAL;EACAjD,IAAAA,MAAM,CAACqE,gBAAP,CAAwB,QAAxB,EAAkC,KAAKpB,YAAvC;EAEA2D,IAAAA,UAAU,CAACvC,gBAAX,CAA4B,KAAK0Z,sBAAjC;EACD;;WAEDlJ,uBAAA,gCAAuB;EACrB;EACA7U,IAAAA,MAAM,CAACuE,mBAAP,CAA2B,QAA3B,EAAqC,KAAKtB,YAA1C;EACA2D,IAAAA,UAAU,CAACrC,mBAAX,CAA+B,KAAKwZ,sBAApC;;EACA,QAAI,KAAKH,iBAAT,EAA4B;EAC1B5d,MAAAA,MAAM,CAACoR,YAAP,CAAoB,KAAKwM,iBAAzB;EACD;EACF;;WAEDd,qBAAA,4BAAmBmB,gBAAnB,EAAqC;EAAA;;EACnC,WAAO,CACLxT,6BAAC,KAAD;EACE,MAAA,GAAG,EAAE,aAAArR,CAAC,EAAI;EACR,QAAA,MAAI,CAACwM,KAAL,GAAaxM,CAAb;EACA,QAAA,MAAI,CAACwP,OAAL,CAAahD,KAAb,GAAqB,MAAI,CAACA,KAA1B;EACD,OAJH;EAKE,MAAA,GAAG,EAAC,OALN;EAME,MAAA,KAAK,EAAE;EANT,OAQGqY,gBARH,CADK,EAWLxT,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;;WAEDuS,cAAA,qBAAY3f,KAAZ,EAAmB;EAAA,QAEJ6gB,CAFI,GAKb7gB,KALa,CAEf6M,SAFe;EAAA,QAGL+T,gBAHK,GAKb5gB,KALa,CAGfiP,QAHe;EAAA,QAIZ6R,oBAJY,iCAKb9gB,KALa;;EAMjB,QAAMiP,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,EAA4ClD,MAA5C,CACf,UAAA9P,CAAC;EAAA,aAAI,CAACmS,YAAY,CAACnS,CAAD,CAAjB;EAAA,KADc,CAAjB;EAGA,QAAM4S,eAAe,GAAG,KAAK4Q,kBAAL,CAAwBmB,gBAAxB,CAAxB;EACA,WAAOhS,oBAAoB,CACzBC,eADyB,EAEzBI,QAFyB,EAGzB6R,oBAHyB,CAA3B;EAKD;;WAEDC,mBAAA,0BAAiB9M,KAAjB,EAAwB1T,IAAxB,EAA8B5E,KAA9B,EAAqC;EAAA;;EACnC,QAAIqlB,QAAJ;;EACA,QAAI,OAAOrlB,KAAP,KAAiB,QAArB,EAA+B;EAC7B,UAAIA,KAAK,KAAK,MAAd,EAAsB;EACpBqlB,QAAAA,QAAQ,GAAG,MAAX;EACD,OAFD,MAEO,IAAIrlB,KAAK,CAACslB,KAAN,CAAY,MAAZ,CAAJ,EAAyB;EAC9BD,QAAAA,QAAQ,GAAGrlB,KAAX;EACD;EACF,KAND,MAMO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;EACpCqlB,MAAAA,QAAQ,GAAMrlB,KAAN,OAAR;EACD;;EACDH,IAAAA,MAAM,CAACsC,MAAP,CAAcmW,KAAd,uCACG1T,IADH,IACUygB,QADV;EAGD;;WAEDR,WAAA,oBAAW;EAAA,sBAML,KAAKxgB,KANA;EAAA,QAEPogB,KAFO,eAEPA,KAFO;EAAA,QAGMc,gBAHN,eAGPb,WAHO;EAAA,QAICc,WAJD,eAIP/D,MAJO;EAAA,QAKAgE,UALA,eAKP1G,KALO;;EAAA,gCAOU,KAAKnP,OAAL,CAAaW,QAAb,EAPV;EAAA,QAOD5C,MAPC,yBAODA,MAPC;;EAQT,QAAM2K,KAAK,GAAG,EAAd;EACA,QAAIyG,KAAJ;EACA,QAAI0C,MAAJ;EACA,QAAIiD,WAAJ,CAXS;;EAcT,QAAIa,gBAAgB,KAAKvjB,SAArB,IAAkCujB,gBAAgB,KAAK,MAA3D,EAAmE;EACjE;EACAb,MAAAA,WAAW,GAAGa,gBAAd;EACD,KAHD,MAGO,IAAI5X,MAAM,CAACiB,UAAX,EAAuB;EAC5B;EACA8V,MAAAA,WAAW,GAAM/W,MAAM,CAACiB,UAAb,SAA2BjB,MAAM,CAACkB,WAA7C;EACD,KAHM,MAGA;EACL;EACA6V,MAAAA,WAAW,GAAG,MAAd;EACD,KAvBQ;;;EA0BT,QAAMgB,UAAU,GAAGhB,WAAW,CAAC5hB,KAAZ,CAAkB,GAAlB,CAAnB;EACA,QAAM6iB,eAAe,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAlD;;EAEA,QAAID,UAAU,KAAKzjB,SAAnB,EAA8B;EAC5B;EACA+c,MAAAA,KAAK,GAAG0G,UAAR;EACD,KAHD,MAGO,IAAID,WAAW,KAAKxjB,SAApB,EAA+B;EACpC;EACA+c,MAAAA,KAAK,GAAGyG,WAAW,GAAGG,eAAtB;EACD,KAHM,MAGA;EACL;EACA5G,MAAAA,KAAK,GAAGpR,MAAM,CAACiB,UAAP,IAAqB,GAA7B;EACD;;EAED,QAAI4W,WAAW,KAAKxjB,SAApB,EAA+B;EAC7B;EACAyf,MAAAA,MAAM,GAAG+D,WAAT;EACD,KAHD,MAGO;EACL;EACA/D,MAAAA,MAAM,GAAG1C,KAAK,GAAG4G,eAAjB;EACD;;EAED,QAAIlB,KAAJ,EAAW;EACTnM,MAAAA,KAAK,CAACsN,UAAN,GAAsBD,eAAe,GAAG,GAAxC;EACD,KAFD,MAEO;EACL;EACA,WAAKP,gBAAL,CAAsB9M,KAAtB,EAA6B,OAA7B,EAAsCyG,KAAtC;EACA,WAAKqG,gBAAL,CAAsB9M,KAAtB,EAA6B,QAA7B,EAAuCmJ,MAAvC;EACD;;EAED,WAAOnJ,KAAP;EACD;EAGD;;;WACA/H,WAAA,oBAAW;EACT,WAAO,KAAKX,OAAL,CAAaW,QAAb,EAAP;EACD;;;EAuCD;WACA9D,OAAA,gBAAO;EACL,SAAKG,KAAL,CAAWH,IAAX;EACD;;;WAGDI,QAAA,iBAAQ;EACN,SAAKD,KAAL,CAAWC,KAAX;EACD;;;WAGD6K,OAAA,gBAAO;EACL,SAAK9K,KAAL,CAAW8K,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAK/K,KAAL,EAAW+K,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKhL,KAAL,EAAWgL,WAAX;EACD;;;WAGD7K,OAAA,cAAK3C,IAAL,EAAW;EACT,SAAKwC,KAAL,CAAWG,IAAX,CAAgB3C,IAAhB;EACD;;;WAGD4C,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;;;WAGD8C,yBAAA,gCAAuBC,QAAvB,EAAiC;EAC/B,WAAO,KAAKb,OAAL,CAAamB,4BAAb,CAA0CN,QAA1C,CAAP;EACD;;;WAGDxG,eAAA,wBAAe;;WAEf8a,yBAAA,gCAAuBrL,KAAvB,EAA8B;EAC5B,QAAIA,KAAK,CAACvW,MAAN,KAAiB,KAAKyM,OAAL,CAAa9B,WAAlC,EAA+C;EAC7C,WAAKgC,OAAL,CAAa1D,sBAAb,CAAoCwB,UAAU,CAACvB,YAA/C;EACD;EACF;;WAED0R,kBAAA,2BAAkB;EAChB,SAAK+G,kBAAL;EACD;;WAED9G,kBAAA,2BAAkB;EAChB,SAAK8G,kBAAL;EACD;;WAEDE,gBAAA,yBAAgB;EACd,SAAKF,kBAAL;EACD;;WAEDA,qBAAA,8BAAqB;EAAA;;EACnB,QAAIe,oBAAoB,GAAG,IAA3B;EACApU,IAAAA,cAAK,CAAC8B,QAAN,CAAexQ,OAAf,CAAuB,KAAKsB,KAAL,CAAWiP,QAAlC,EAA4C,UAAA7N,OAAO,EAAI;EACrD,UAAI,CAACgM,cAAK,CAACqU,cAAN,CAAqBrgB,OAArB,CAAD,IAAkCA,OAAO,CAACpE,IAAR,KAAiBwiB,UAAvD,EAAmE;EACjE;EACD;;EAHoD,UAK7CH,YAL6C,GAK5Bje,OAAO,CAACpB,KALoB,CAK7Cqf,YAL6C;;EAMrD,UAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;EACpCmC,QAAAA,oBAAoB,GAAGnC,YAAvB;EACD;EACF,KATD;EAWA,SAAK5T,OAAL,CAAatD,YAAb,CAA0B,IAA1B;EACA4L,IAAAA,YAAY,CAAC,KAAKwM,iBAAN,CAAZ;EACA,SAAKA,iBAAL,GAAyBlQ,UAAU,CAAC,YAAM;EACxC,MAAA,MAAI,CAAC5E,OAAL,CAAatD,YAAb,CAA0B,KAA1B;EACD,KAFkC,EAEhCqZ,oBAFgC,CAAnC;EAGD;;WAED3N,oBAAA,2BAAkBhJ,KAAlB,EAAyBwB,SAAzB,EAAoC;EAClC,QAAIxB,KAAK,CAAC7C,YAAN,KAAuBqE,SAAS,CAACrE,YAArC,EAAmD;EACjD,WAAKpC,YAAL,GADiD;;EAGjDyQ,MAAAA,SAAS,CAAC,KAAK9K,OAAL,CAAa9B,WAAd,CAAT;EACD;;EACD,SAAKmJ,WAAL,GANkC;EAOnC;;WAEDiH,cAAA,uBAAc;EACZ,SAAKpO,OAAL,CAAaxD,QAAb,CAAsB,IAAtB;EACD;;WAED6R,aAAA,sBAAa;EACX,SAAKrO,OAAL,CAAaxD,QAAb,CAAsB,KAAtB;EACD;;WAEDkF,SAAA,kBAAS;EAAA;;EAAA,QACCiT,KADD,GACW,KAAKpgB,KADhB,CACCogB,KADD;;EAAA,iCAEY,KAAK7U,OAAL,CAAaW,QAAb,EAFZ;EAAA,QAEC5C,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,QAQLjC,YARK,GAUHsB,MAVG,CAQLtB,YARK;EAAA,QASL0C,YATK,GAUHpB,MAVG,CASLoB,YATK;;EAYP,QAAM1K,KAAK,gBACN,KAAKA,KADC;EAETsJ,MAAAA,MAAM,EAANA,MAFS;EAGTmC,MAAAA,OAAO,EAAE,KAAKA,OAHL;EAITF,MAAAA,OAAO,EAAE,KAAKA,OAJL;EAKTJ,MAAAA,KAAK,EAAE,KAAKI,OAAL,CAAaJ,KALX;EAMT5C,MAAAA,KAAK,EAAE,KAAKA,KAAL,GAAa,KAAKA,KAAL,CAAWA,KAAxB,GAAgC;EAN9B,MAAX;;EAQA,QAAM0G,QAAQ,GAAG,KAAK0Q,WAAL,CAAiB3f,KAAjB,CAAjB;EAEA,WACEoN;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB;EACE,4CAAoC,IADtC;EAEE,uCAA+BwI,UAFjC;EAGE,kCAA0BP,MAH5B;EAIE,mCAA2B,CAACA,MAJ9B;EAKE,mCAA2BF,OAL7B;EAME,mCAA2BC,OAN7B;EAOE,iCAAyBmW,KAP3B;EAQE,sCAA8BpY,YARhC;EASE,yCAAiC,CAAC0C,YATpC;EAUE,uCAA+BA,YAVjC;EAWE,wCAAgC,CAACgX;EAXnC,OADmB,EAcnB,iBAdmB,EAenB,KAAK1hB,KAAL,CAAW6M,SAfQ,CADvB;EAkBE,MAAA,KAAK,EAAE,KAAK2T,QAAL,EAlBT;EAmBE,MAAA,GAAG,EAAE,aAAAzkB,CAAC,EAAI;EACR,QAAA,MAAI,CAACwP,OAAL,CAAa9B,WAAb,GAA2B1N,CAA3B;EACD,OArBH;EAsBE,MAAA,IAAI,EAAC,QAtBP;EAuBE,MAAA,YAAY,EAAE,KAAK2d,eAvBrB;EAwBE,MAAA,WAAW,EAAE,KAAKA,eAxBpB;EAyBE,MAAA,WAAW,EAAE,KAAKC,eAzBpB;EA0BE,MAAA,WAAW,EAAE,KAAKA,eA1BpB;EA2BE,MAAA,SAAS,EAAE,KAAKgH,aA3BlB;EA4BE,MAAA,OAAO,EAAE,KAAK9G,WA5BhB;EA6BE,MAAA,MAAM,EAAE,KAAKC,UA7Bf;EA8BE,MAAA,QAAQ,EAAC;EA9BX,OAgCG7K,QAhCH,CADF;EAoCD;;;;0BA1MkB;EACjB,aAAO,KAAK1G,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES1L,KAAK;EACb,WAAK6K,KAAL,CAAWa,KAAX,GAAmB1L,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK6K,KAAL,CAAWW,MAAlB;EACD;wBAEUxL,KAAK;EACd,WAAK6K,KAAL,CAAWW,MAAX,GAAoBxL,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK6K,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IAnMiC6C;EA8WpCiT,MAAM,CAACqB,YAAP,GAAsB;EAAExW,EAAAA,KAAK,EAAErJ,SAAS,CAACf;EAAnB,CAAtB;EACAuf,MAAM,CAAC3T,SAAP,GAAmBA,WAAnB;EACA2T,MAAM,CAACxT,YAAP,GAAsBA,cAAtB;EACAwT,MAAM,CAAChT,WAAP,GAAqB,QAArB;;MCrbqBsU;;;;;EACnB,wBAAY5hB,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA4C,IAAAA,iBAAiB,CAAC,cAAD,EAAiB,wBAAjB,CAAjB;EAH0B;EAI3B;;;;WAEDzC,SAAA,kBAAS;EACP,WAAOC,6BAAC,sBAAD,EAA4B,KAAKpN,KAAjC,CAAP;EACD;;;IATuCqN;EAY1CuU,YAAY,CAACtU,WAAb,GAA2B,cAA3B;;ECXA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhB6gB,EAAAA,WAAW,EAAE/f,SAAS,CAACd,MAJP;EAKhB8gB,EAAAA,WAAW,EAAEhgB,SAAS,CAAClB,IALP;EAMhBmhB,EAAAA,KAAK,EAAEjgB,SAAS,CAACnB;EAND,CAAlB;EASA,IAAMmM,cAAY,GAAG;EACnB+U,EAAAA,WAAW,EAAE,KADM;EAEnBC,EAAAA,WAAW,EAAE,IAFM;EAGnBC,EAAAA,KAAK,EAAE,CAAC,UAAD,EAAa,WAAb,CAHY;;EAAA,CAArB;;MAMMC;;;;;EACJ,+BAAYhiB,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKiV,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBtiB,IAAvB,+BAAzB;EACA,UAAKuiB,WAAL,GAAmB,MAAKA,WAAL,CAAiBviB,IAAjB,+BAAnB;EACA,UAAKkf,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EAEA,UAAKkL,KAAL,GAAa,MAAKoX,iBAAL,EAAb;EAP0B;EAQ3B;;;;WAED3K,qBAAA,8BAAqB;EACnB,SAAK4K,WAAL;EACD;;WAEDD,oBAAA,6BAAoB;EAAA,sBAGd,KAAKjiB,KAHS;EAAA,QAEhB+hB,KAFgB,eAEhBA,KAFgB;EAAA,QAETzY,MAFS,eAETA,MAFS;EAAA,QAEDuY,WAFC,eAEDA,WAFC;EAAA,QAEYC,WAFZ,eAEYA,WAFZ;EAAA,QAIVjP,UAJU,GAIsBvJ,MAJtB,CAIVuJ,UAJU;EAAA,QAIEjI,eAJF,GAIsBtB,MAJtB,CAIEsB,eAJF;EAKlB,QAAMuX,cAAc,GAAG;EACrBjE,MAAAA,KAAK,EAAE,EADc;EAErBC,MAAAA,aAAa,EAAE;EAFM,KAAvB;EAIA,QAAMiE,MAAM,GAAG9f,KAAK,CAACtD,IAAN,CAAW6T,UAAU,IAAI,EAAzB,CAAf;;EAEA,QAAIuP,MAAM,CAAC/iB,MAAP,KAAkB,CAAtB,EAAyB;EACvB,aAAO8iB,cAAP;EACD;;EAED,QAAIL,WAAJ,EAAiB;EACfK,MAAAA,cAAc,CAACjE,KAAf,CAAqB7b,IAArB,CAA0B;EACxBiX,QAAAA,KAAK,EAAEuI,WAAW,IAAI,KADE;EAExBlmB,QAAAA,KAAK,EAAE;EAFiB,OAA1B;EAID;;EAEDymB,IAAAA,MAAM,CAAC1jB,OAAP,CAAe,UAACwH,SAAD,EAAe;EAC5B;EACA,UAAI6b,KAAK,CAAC1iB,MAAN,IAAgB,CAAC0iB,KAAK,CAACM,QAAN,CAAenc,SAAS,CAACoc,IAAzB,CAArB,EAAqD;EACnD;EACD;;EAEDH,MAAAA,cAAc,CAACjE,KAAf,CAAqB7b,IAArB,CAA0B;EACxBiX,QAAAA,KAAK,EAAEpT,SAAS,CAACoT,KADO;EAExB3d,QAAAA,KAAK,EAAEuK,SAAS,CAACqc;EAFO,OAA1B;EAID,KAVD;EAYAJ,IAAAA,cAAc,CAAChE,aAAf,GAA+BgE,cAAc,CAACjE,KAAf,CAAqBsE,SAArB,CAC7B,UAAA3E,IAAI;EAAA,aAAIjT,eAAe,IAAIA,eAAe,CAAC2X,QAAhB,KAA6B1E,IAAI,CAACliB,KAAzD;EAAA,KADyB,CAA/B;;EAIA,QAAIwmB,cAAc,CAAChE,aAAf,KAAiC,CAAC,CAAtC,EAAyC;EACvCgE,MAAAA,cAAc,CAAChE,aAAf,GAA+B,CAA/B;EACD;;EAED,WAAOgE,cAAP;EACD;;WAEDD,cAAA,uBAAc;EACZ,QAAMC,cAAc,GAAG,KAAKF,iBAAL,EAAvB;;EACA,QACEE,cAAc,CAAChE,aAAf,KAAiC,KAAKtT,KAAL,CAAWsT,aAA5C,IACG,CAAC,KAAKsE,sBAAL,CAA4BN,cAAc,CAACjE,KAA3C,EAAkD,KAAKrT,KAAL,CAAWqT,KAA7D,CAFN,EAGE;EACA,WAAKlK,QAAL,CAAcmO,cAAd;EACD;EACF;;WAEDM,yBAAA,gCAAuBC,MAAvB,EAA+BC,MAA/B,EAAuC;EACrC,QAAID,MAAM,CAACrjB,MAAP,KAAkBsjB,MAAM,CAACtjB,MAA7B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,SAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGukB,MAAM,CAACrjB,MAA3B,EAAmClB,CAAC,EAApC,EAAwC;EACtC,UACE,CAACwkB,MAAM,CAACxkB,CAAD,CAAP,IACGukB,MAAM,CAACvkB,CAAD,CAAN,CAAUmb,KAAV,KAAoBqJ,MAAM,CAACxkB,CAAD,CAAN,CAAUmb,KADjC,IAEGoJ,MAAM,CAACvkB,CAAD,CAAN,CAAUxC,KAAV,KAAoBgnB,MAAM,CAACxkB,CAAD,CAAN,CAAUxC,KAHnC,EAIE;EACA,eAAO,KAAP;EACD;EACF;;EAED,WAAO,IAAP;EACD;;WAEDkjB,mBAAA,0BAAiBf,KAAjB,EAAwB;EAAA,uBACmB,KAAK9d,KADxB;EAAA,QACdsJ,MADc,gBACdA,MADc;EAAA,QACNmC,OADM,gBACNA,OADM;EAAA,QACGqW,WADH,gBACGA,WADH;EAAA,QAEdjP,UAFc,GAECvJ,MAFD,CAEduJ,UAFc;EAKtB;;EACAvQ,IAAAA,KAAK,CAACtD,IAAN,CAAW6T,UAAX,EAAuBnU,OAAvB,CAA+B,UAACwH,SAAD,EAAY/H,CAAZ,EAAkB;EAC/C;EACA,UAAI2f,KAAK,MAAMgE,WAAW,GAAG3jB,CAAC,GAAG,CAAP,GAAWA,CAA5B,CAAT,EAAyC;EACvC+H,QAAAA,SAAS,CAAC+M,IAAV,GAAiB,SAAjB;EACAxH,QAAAA,OAAO,CAACxF,iBAAR,CAA0BC,SAA1B;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,CAAC+M,IAAV,GAAiB,QAAjB;EACD;EACF,KARD;EASD;;WAED9F,SAAA,kBAAS;EAAA,sBAC0B,KAAKtC,KAD/B;EAAA,QACCqT,KADD,eACCA,KADD;EAAA,QACQC,aADR,eACQA,aADR;EAGP,WACE/Q,6BAAC,UAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,gCADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAKgS,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE/Q;EAAM,MAAA,SAAS,EAAC;EAAhB,wBATF,CADF;EAaD;;;IAzH+BC;;EA4HlC2U,mBAAmB,CAACrV,SAApB,GAAgCA,WAAhC;EACAqV,mBAAmB,CAAClV,YAApB,GAAmCA,cAAnC;EACAkV,mBAAmB,CAAC1U,WAApB,GAAkC,qBAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"video-react-new.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","../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 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","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","action","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","createStore","reducer","getActions","manager","dispatch","actions","playerActions","videoActions","bindActionCreator","actionCreator","bindAction","filter","reduce","boundActions","getState","subscribeToStateChange","listener","prevState","handleChange","prevStateCopy","subscribe","subscribeToOperationStateChange","subscribeToPlayerStateChange","propTypes","position","className","defaultProps","BigPlayButton","context","handleClick","componentDidMount","render","React","Component","displayName","LoadingSpinner","poster","PosterImage","backgroundImage","isNaN","Number","formatTime","guide","Math","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","index","activateIndex","onSelectItem","MenuItem","items","selectedIndex","MenuButton","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleSelectItem","handleIndexChange","newIndex","menuButton","rates","PlaybackRateMenuButton","indexOf","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;;;ECPO,IAAMW,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;EACLvH,IAAAA,IAAI,EAAE4F,UADD;EAEL2B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,aAAT,CAAuBD,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE6F,QADD;EAEL0B,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,aAAT,CAAuBF,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE8F,OADD;EAELyB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,oBAAT,CAA8BH,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAE+F,gBADD;EAELwB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASI,aAAT,CAAuBJ,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEgG,OADD;EAELuB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASK,UAAT,CAAoBL,UAApB,EAAgC;EACrC,SAAO;EACLvH,IAAAA,IAAI,EAAEiG,IADD;EAELsB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASM,WAAT,CAAqBN,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAEkG,KADD;EAELqB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASO,SAAT,CAAmBP,UAAnB,EAA+B;EACpC,SAAO;EACLvH,IAAAA,IAAI,EAAEmG,GADD;EAELoB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASQ,aAAT,CAAuBR,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEoG,OADD;EAELmB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASS,YAAT,CAAsBT,UAAtB,EAAkC;EACvC,SAAO;EACLvH,IAAAA,IAAI,EAAEqG,MADD;EAELkB,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASU,oBAAT,CAA8BV,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAEwG,eADD;EAELe,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASW,gBAAT,CAA0BX,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAEyG,WADD;EAELc,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASY,kBAAT,CAA4BZ,UAA5B,EAAwC;EAC7C,SAAO;EACLvH,IAAAA,IAAI,EAAE0G,aADD;EAELa,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASa,oBAAT,CAA8Bb,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAE2G,eADD;EAELY,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASc,gBAAT,CAA0Bd,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAE4G,WADD;EAELW,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASe,aAAT,CAAuBf,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE6G,OADD;EAELU,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASgB,WAAT,CAAqBhB,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAE8G,KADD;EAELS,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASiB,aAAT,CAAuBjB,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAE+G,OADD;EAELQ,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASkB,aAAT,CAAuBlB,UAAvB,EAAmC;EACxC,SAAO;EACLvH,IAAAA,IAAI,EAAEgH,OADD;EAELO,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASmB,oBAAT,CAA8BnB,UAA9B,EAA0C;EAC/C,SAAO;EACLvH,IAAAA,IAAI,EAAEiH,gBADD;EAELM,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASoB,gBAAT,CAA0BpB,UAA1B,EAAsC;EAC3C,SAAO;EACLvH,IAAAA,IAAI,EAAEkH,WADD;EAELK,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASqB,YAAT,CAAsBrB,UAAtB,EAAkC;EACvC,SAAO;EACLvH,IAAAA,IAAI,EAAEmH,MADD;EAELI,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASsB,WAAT,CAAqBtB,UAArB,EAAiC;EACtC,SAAO;EACLvH,IAAAA,IAAI,EAAEoH,KADD;EAELG,IAAAA,UAAU,EAAVA;EAFK,GAAP;EAID;AAED,EAAO,SAASuB,iBAAT,CAA2BC,IAA3B,EAAiC;EACtC,SAAO;EACL/I,IAAAA,IAAI,EAAEsG,YADD;EAELyC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,gBAAT,CAA0BD,IAA1B,EAAgC;EACrC,SAAO;EACL/I,IAAAA,IAAI,EAAEuG,WADD;EAELwC,IAAAA,IAAI,EAAJA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,iBAAT,CAA2BC,SAA3B,EAAsC;EAC3C,SAAO;EACLlJ,IAAAA,IAAI,EAAEqH,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;EACLhL,IAAAA,IAAI,EAAE4K,iBADD;EAELI,IAAAA,YAAY,EAAZA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,QAAT,CAAkBC,QAAlB,EAA4B;EACjC,SAAO;EACLlL,IAAAA,IAAI,EAAE6K,eADD;EAELK,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASC,YAAT,CAAsBD,QAAtB,EAAgC;EACrC,SAAO;EACLlL,IAAAA,IAAI,EAAE8K,aADD;EAELI,IAAAA,QAAQ,EAARA;EAFK,GAAP;EAID;AAED,EAAO,SAASE,IAAT,CACLC,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,MADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWH,IAAX;EAEA,SAAO;EACLpL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASG,KAAT,CACLH,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,OADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWC,KAAX;EAEA,SAAO;EACLxL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASI,UAAT,CACLJ,SADK,EAKL;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,aADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWE,UAAX;EAEA,SAAO;EACLzL,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASK,IAAT,CACL3C,IADK,EAELsC,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,MADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWG,IAAX,CAAgB3C,IAAhB;EAEA,SAAO;EACL/I,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASM,OAAT,CACLC,OADK,EAELP,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,eAAaM,OADT;EAEV7J,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWI,OAAX,CAAmBC,OAAnB;EAEA,SAAO;EACL5L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;;AAGD,EAAO,SAASQ,MAAT,CACLD,OADK,EAELP,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,cAAYM,OADR;EAEV7J,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWM,MAAX,CAAkBD,OAAlB;EAEA,SAAO;EACL5L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASS,UAAT,CACLC,IADK,EAELV,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,aADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EAEA,SAAO;EACL/L,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASY,YAAT,CACLC,MADK,EAELb,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAE,eADE;EAEVvJ,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,MAAI9B,CAAC,GAAGiM,MAAR;;EACA,MAAIA,MAAM,GAAG,CAAb,EAAgB;EACdjM,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,MAAIiM,MAAM,GAAG,CAAb,EAAgB;EACdjM,IAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,OAAKsL,KAAL,CAAWW,MAAX,GAAoBjM,CAApB;EAEA,SAAO;EACLD,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASc,IAAT,CACLC,KADK,EAELf,SAFK,EAML;EAAA,MAJAA,SAIA;EAJAA,IAAAA,SAIA,GAJY;EACVC,MAAAA,MAAM,EAAEc,KAAK,GAAG,OAAH,GAAa,SADhB;EAEVrK,MAAAA,MAAM,EAAE;EAFE,KAIZ;EAAA;;EACA,OAAKwJ,KAAL,CAAWa,KAAX,GAAmBA,KAAnB;EAEA,SAAO;EACLpM,IAAAA,IAAI,EAAE2K,OADD;EAELU,IAAAA,SAAS,EAATA;EAFK,GAAP;EAID;AAED,EAAO,SAASgB,gBAAT,CAA0BC,MAA1B,EAAkC;EACvC,MAAIC,UAAU,CAACC,OAAf,EAAwB;EACtB,QAAID,UAAU,CAACvB,YAAf,EAA6B;EAC3BuB,MAAAA,UAAU,CAAC7C,IAAX;EACD,KAFD,MAEO;EACL6C,MAAAA,UAAU,CAACnD,OAAX,CAAmB,KAAKqD,WAAxB;EACD;;EACD,WAAO;EACLzM,MAAAA,IAAI,EAAE2K,OADD;EAELU,MAAAA,SAAS,EAAE;EACTC,QAAAA,MAAM,EAAE,mBADC;EAETvJ,QAAAA,MAAM,EAAE;EAFC;EAFN,KAAP;EAOD;;EAED,SAAO;EACL/B,IAAAA,IAAI,EAAE4K,iBADD;EAELI,IAAAA,YAAY,EAAE,CAACsB,MAAM,CAACtB;EAFjB,GAAP;EAID;;;;;;;;;;;;;;;;;;;;;;EC5JD,IAAM0B,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;EAqBnB3C,EAAAA,YAAY,EAAE,KArBK;EAsBnB4C,EAAAA,eAAe,EAAE;EAtBE,CAArB;AAyBA,EAAe,SAAStB,MAAT,CAAgBuB,KAAhB,EAAsCvC,MAAtC,EAA8C;EAAA,MAA9BuC,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,YAAsB;EAAA;;EAC3D,UAAQpB,MAAM,CAACtL,IAAf;EACE,SAAK8K,aAAL;EACE,0BACK+C,KADL;EAEEH,QAAAA,YAAY,EAAEpC,MAAM,CAACJ;EAFvB;;EAIF,SAAKL,eAAL;EACE,0BACKgD,KADL;EAEEF,QAAAA,QAAQ,EAAErC,MAAM,CAACJ;EAFnB;;EAIF,SAAKN,iBAAL;EACE,0BACKiD,KADL;EAEE7C,QAAAA,YAAY,EAAE,CAAC,CAACM,MAAM,CAACN;EAFzB;;EAIF,SAAK1E,YAAL;EACE,0BACKuH,KADL;EAEEf,QAAAA,WAAW,EAAExB,MAAM,CAACvC;EAFtB;;EAIF,SAAKxC,WAAL;EACE,0BACKsH,KADL;EAEEf,QAAAA,WAAW,EAAE;EAFf;;EAIF,SAAKlH,UAAL;EACE,0BACKiI,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEkG,QAAAA,UAAU,EAAE,KAHd;EAIEL,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAKvH,QAAL;EACE,0BACKgI,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKlH,OAAL;EACE,0BACK+H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAKjH,gBAAL;EACA,SAAKC,OAAL;EACE,0BACK6H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEyF,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK/G,IAAL;EACE,0BACK4H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE6F,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,SAAKvH,KAAL;EACE,0BACK2H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE2F,QAAAA,MAAM,EAAE;EAHV;;EAKF,SAAK/G,GAAL;EACE,0BACK0H,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE6F,QAAAA,KAAK,EAAE;EAHT;;EAKF,SAAKhH,OAAL;EACE,0BACKyH,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE0F,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK5G,MAAL;EACE,0BACKwH,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGE0F,QAAAA,OAAO,EAAE;EAHX;;EAKF,SAAK7F,KAAL;EACE,0BACKyG,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;EAGEuG,QAAAA,KAAK,EAAE,eAHT;EAIEV,QAAAA,KAAK,EAAE;EAJT;;EAMF,SAAK5G,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,0BACK0G,KADL,EAEKvC,MAAM,CAAC/D,UAFZ;;EAIF,SAAKF,mBAAL;EACE,0BACKwG,KADL;EAEED,QAAAA,eAAe,EAAEtC,MAAM,CAACpC;EAF1B;;EAIF;EACE,aAAO2E,KAAP;EAnHJ;EAqHD;;EC/KD,IAAMnB,cAAY,GAAG;EACnBqB,EAAAA,KAAK,EAAE,CADY;EAEnB1C,EAAAA,SAAS,EAAE;EACTC,IAAAA,MAAM,EAAE,EADC;EAETvJ,IAAAA,MAAM,EAAE;EAFC;EAFQ,CAArB;AAQA,EAAe,SAASsJ,SAAT,CAAmBwC,KAAnB,EAAyCvC,MAAzC,EAAiD;EAAA,MAA9BuC,KAA8B;EAA9BA,IAAAA,KAA8B,GAAtBnB,cAAsB;EAAA;;EAC9D,UAAQpB,MAAM,CAACtL,IAAf;EACE,SAAK2K,OAAL;EACE,0BACKkD,KADL;EAEEE,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAAN,GAAc,CAFvB;EAGE1C,QAAAA,SAAS,eACJwC,KAAK,CAACxC,SADF,EAEJC,MAAM,CAACD,SAFH;EAHX;;EAQF;EACE,aAAOwC,KAAP;EAXJ;EAaD;;ECrBc,kBAAUA,KAAV,EAAsBvC,MAAtB,EAA8B;EAAA,MAApBuC,KAAoB;EAApBA,IAAAA,KAAoB,GAAZ,EAAY;EAAA;;EAC3C,SAAO;EACLvB,IAAAA,MAAM,EAAEA,MAAM,CAACuB,KAAK,CAACvB,MAAP,EAAehB,MAAf,CADT;EAELD,IAAAA,SAAS,EAAEA,SAAS,CAACwC,KAAK,CAACxC,SAAP,EAAkBC,MAAlB;EAFf,GAAP;EAID;AAED,MAAa0C,aAAa,GAAG1B,MAAtB;AACP,MAAa2B,gBAAgB,GAAG5C,SAAzB;;MCNc6C;;;EACnB,mBAAYC,KAAZ,EAAmB;EACjB,SAAKA,KAAL,GAAaA,KAAK,IAAIC,iBAAW,CAACC,OAAD,CAAjC;EAEA,SAAK9C,KAAL,GAAa,IAAb;EACA,SAAKkB,WAAL,GAAmB,IAAnB;EACD;;;;WAED6B,aAAA,sBAAa;EACX,QAAMC,OAAO,GAAG,IAAhB;EADW,QAEHC,QAFG,GAEU,KAAKL,KAFf,CAEHK,QAFG;;EAGX,QAAMC,OAAO,gBACRC,aADQ,EAERC,YAFQ,CAAb;;EAKA,aAASC,iBAAT,CAA2BC,aAA3B,EAA0C;EACxC,aAAO,SAASC,UAAT,GAAsB;EAC3B;EACA,YAAMxD,MAAM,GAAGuD,aAAa,CAACpJ,KAAd,CAAoB8I,OAApB,EAA6BnM,SAA7B,CAAf;;EACA,YAAI,OAAOkJ,MAAP,KAAkB,WAAtB,EAAmC;EACjCkD,UAAAA,QAAQ,CAAClD,MAAD,CAAR;EACD;EACF,OAND;EAOD;;EAED,WAAO9M,MAAM,CAACoD,IAAP,CAAY6M,OAAZ,EACJM,MADI,CACG,UAAAzM,GAAG;EAAA,aAAI,OAAOmM,OAAO,CAACnM,GAAD,CAAd,KAAwB,UAA5B;EAAA,KADN,EAEJ0M,MAFI,CAEG,UAACC,YAAD,EAAe3M,GAAf,EAAuB;EAC7B2M,MAAAA,YAAY,CAAC3M,GAAD,CAAZ,GAAoBsM,iBAAiB,CAACH,OAAO,CAACnM,GAAD,CAAR,CAArC;EACA,aAAO2M,YAAP;EACD,KALI,EAKF,EALE,CAAP;EAMD;;WAEDC,WAAA,oBAAW;EACT,WAAO,KAAKf,KAAL,CAAWe,QAAX,EAAP;EACD;;;WAGDC,yBAAA,gCAAuBC,QAAvB,EAAiCF,QAAjC,EAA2C;EACzC,QAAI,CAACA,QAAL,EAAe;EACbA,MAAAA,QAAQ,GAAG,KAAKA,QAAL,CAAcvM,IAAd,CAAmB,IAAnB,CAAX;EACD;;EAED,QAAI0M,SAAS,GAAGH,QAAQ,EAAxB;;EAEA,QAAMI,YAAY,GAAG,SAAfA,YAAe,GAAM;EACzB,UAAMzB,KAAK,GAAGqB,QAAQ,EAAtB;;EACA,UAAIrB,KAAK,KAAKwB,SAAd,EAAyB;EACvB;EACD;;EACD,UAAME,aAAa,GAAGF,SAAtB;EACAA,MAAAA,SAAS,GAAGxB,KAAZ;EACAuB,MAAAA,QAAQ,CAACvB,KAAD,EAAQ0B,aAAR,CAAR;EACD,KARD;;EAUA,WAAO,KAAKpB,KAAL,CAAWqB,SAAX,CAAqBF,YAArB,CAAP;EACD;;;WAGDG,kCAAA,yCAAgCL,QAAhC,EAA0C;EAAA;;EACxC,WAAO,KAAKD,sBAAL,CACLC,QADK,EAEL;EAAA,aAAM,KAAI,CAACF,QAAL,GAAgB7D,SAAtB;EAAA,KAFK,CAAP;EAID;;;WAGDqE,+BAAA,sCAA6BN,QAA7B,EAAuC;EAAA;;EACrC,WAAO,KAAKD,sBAAL,CAA4BC,QAA5B,EAAsC;EAAA,aAAM,MAAI,CAACF,QAAL,GAAgB5C,MAAtB;EAAA,KAAtC,CAAP;EACD;;;;;ECvEH,IAAMqD,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB6L,EAAAA,QAAQ,EAAE9K,SAAS,CAACd,MAHJ;EAIhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM8L,YAAY,GAAG;EACnBF,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIqBG;;;;;EACnB,yBAAY/M,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBD,cAAA,uBAAc;EAAA,QACJxB,OADI,GACQ,KAAKzL,KADb,CACJyL,OADI;EAEZA,IAAAA,OAAO,CAACrD,IAAR;EACD;;WAED+E,SAAA,kBAAS;EAAA,sBACsB,KAAKnN,KAD3B;EAAA,QACCsJ,MADD,eACCA,MADD;EAAA,QACSsD,QADT,eACSA,QADT;EAEP,WACEQ;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,wBADmB,EAEnB,iCAFmB,uCAGgB2K,QAHhB,EAInB,KAAK5M,KAAL,CAAW6M,SAJQ,EAKnB;EACE,gCAAwBvD,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,KAAKsD;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;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAASuM,cAAT,OAA+C;EAAA,MAArBjE,MAAqB,QAArBA,MAAqB;EAAA,MAAbuD,SAAa,QAAbA,SAAa;;EAC5D,MAAIvD,MAAM,CAACwB,KAAX,EAAkB;EAChB,WAAO,IAAP;EACD;;EACD,SACEsC;EAAK,IAAA,SAAS,EAAEnL,UAAU,CAAC,iCAAD,EAAoC4K,SAApC;EAA1B,IADF;EAGD;EAEDU,cAAc,CAACZ,SAAf,GAA2BA,WAA3B;EACAY,cAAc,CAACD,WAAf,GAA6B,gBAA7B;;ECfA,IAAMX,WAAS,GAAG;EAChBa,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MADF;EAEhBsI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAHH;EAIhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;EAOA,SAASyM,WAAT,OAEG;EAAA,MADDD,MACC,QADDA,MACC;EAAA,MADOlE,MACP,QADOA,MACP;EAAA,MADemC,OACf,QADeA,OACf;EAAA,MADwBoB,SACxB,QADwBA,SACxB;;EACD,MAAI,CAACW,MAAD,IAAWlE,MAAM,CAACmB,UAAtB,EAAkC;EAChC,WAAO,IAAP;EACD;;EAED,SACE2C;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC,wBAAD,EAA2B4K,SAA3B,CADvB;EAEE,IAAA,KAAK,EAAE;EACLa,MAAAA,eAAe,aAAUF,MAAV;EADV,KAFT;EAKE,IAAA,OAAO,EAAE,mBAAM;EACb,UAAIlE,MAAM,CAACY,MAAX,EAAmB;EACjBuB,QAAAA,OAAO,CAACrD,IAAR;EACD;EACF;EATH,IADF;EAaD;;EAEDqF,WAAW,CAACd,SAAZ,GAAwBA,WAAxB;EACAc,WAAW,CAACH,WAAZ,GAA0B,aAA1B;;EC/BA;;EACA,IAAMK,KAAK,GAAGC,MAAM,CAACD,KAAP,IAAiB,UAAAhS,KAAK;EAAA,SAAIA,KAAK,KAAKA,KAAd;EAAA,CAApC;EAEA;;;;;;;;;;;;;;;AAaA,EAAO,SAASkS,UAAT,CAAoBjF,OAApB,EAAiCkF,KAAjC,EAAkD;EAAA,MAA9BlF,OAA8B;EAA9BA,IAAAA,OAA8B,GAApB,CAAoB;EAAA;;EAAA,MAAjBkF,KAAiB;EAAjBA,IAAAA,KAAiB,GAATlF,OAAS;EAAA;;EACvD,MAAIzJ,CAAC,GAAG4O,IAAI,CAACC,KAAL,CAAWpF,OAAO,GAAG,EAArB,CAAR;EACA,MAAIrM,CAAC,GAAGwR,IAAI,CAACC,KAAL,CAAYpF,OAAO,GAAG,EAAX,GAAiB,EAA5B,CAAR;EACA,MAAIxM,CAAC,GAAG2R,IAAI,CAACC,KAAL,CAAWpF,OAAO,GAAG,IAArB,CAAR;EACA,MAAMqF,EAAE,GAAGF,IAAI,CAACC,KAAL,CAAYF,KAAK,GAAG,EAAT,GAAe,EAA1B,CAAX;EACA,MAAMI,EAAE,GAAGH,IAAI,CAACC,KAAL,CAAWF,KAAK,GAAG,IAAnB,CAAX,CALuD;;EAQvD,MAAIH,KAAK,CAAC/E,OAAD,CAAL,IAAkBA,OAAO,KAAKuF,QAAlC,EAA4C;EAC1C;EACA;EACA/R,IAAAA,CAAC,GAAG,GAAJ;EACAG,IAAAA,CAAC,GAAG,GAAJ;EACA4C,IAAAA,CAAC,GAAG,GAAJ;EACD,GAdsD;;;EAiBvD/C,EAAAA,CAAC,GAAGA,CAAC,GAAG,CAAJ,IAAS8R,EAAE,GAAG,CAAd,GAAqB9R,CAArB,SAA4B,EAAhC,CAjBuD;EAoBvD;;EACAG,EAAAA,CAAC,IAAM,CAACH,CAAC,IAAI6R,EAAE,IAAI,EAAZ,KAAmB1R,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,SAASiP,YAAT,CAAsBrS,CAAtB,EAAyB;EAC9B,MAAIA,CAAC,CAACiE,KAAF,IAAWjE,CAAC,CAACiE,KAAF,CAAQoO,YAAvB,EAAqC;EACnC,WAAO,IAAP;EACD;;EACD,SAAOrS,CAAC,CAACiB,IAAF,KAAW,QAAX,IAAuBjB,CAAC,CAACiB,IAAF,KAAW,OAAzC;EACD;;EAED,IAAMqR,IAAI,GAAG,SAAPA,IAAO,CAACC,QAAD,EAAWzN,IAAX;EAAA,SAAoByN,QAAQ,CAACvC,MAAT,CAAgBlL,IAAhB,EAAsB,CAAtB,CAApB;EAAA,CAAb;;;EAGA,IAAM0N,WAAW,GAAG,SAAdA,WAAc,CAACC,UAAD,EAAaC,UAAb,EAA4B;EAC9C,MAAMC,KAAK,GAAGF,UAAU,CAACxR,IAAzB;EACA,MAAM2R,KAAK,GAAGF,UAAU,CAACzR,IAAzB;;EAEA,MAAI,OAAO0R,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,CAACpB,WAAN,KAAsBqB,KAAK,CAACrB,WAAnC;EACD;;EAED,SAAO,KAAP;EACD,CAbD;EAgBA;EACA;;;AACA,EAAO,SAASsB,oBAAT,CACLC,eADK,EAELC,SAFK,EAGLC,YAHK,EAILC,YAJK,EAKL;EAAA,MADAA,YACA;EADAA,IAAAA,YACA,GADe,CACf;EAAA;;EACA,MAAMC,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuBL,SAAvB,CAAjB;;EADA,MAEQM,KAFR,GAEkCL,YAFlC,CAEQK,KAFR;EAAA,MAEkBC,WAFlB,iCAEkCN,YAFlC;;;EAGA,SAAOE,QAAQ,CACZlD,MADI,CACG,UAAA9P,CAAC;EAAA,WAAI,CAACA,CAAC,CAAC+D,KAAF,CAAQsP,QAAb;EAAA,GADJ;EAAA,GAEJC,MAFI,CAGHV,eAAe,CAAC9C,MAAhB,CACE,UAAAhQ,CAAC;EAAA,WAAI,CAACsS,IAAI,CAACY,QAAD,EAAW,UAAAO,SAAS;EAAA,aAAIjB,WAAW,CAACiB,SAAD,EAAYzT,CAAZ,CAAf;EAAA,KAApB,CAAT;EAAA,GADH,CAHG,EAOJuC,GAPI,CAOA,UAAC8C,OAAD,EAAa;EAChB,QAAMqO,gBAAgB,GAAGpB,IAAI,CAACQ,eAAD,EAAkB,UAAA9S,CAAC;EAAA,aAAIwS,WAAW,CAACxS,CAAD,EAAIqF,OAAJ,CAAf;EAAA,KAAnB,CAA7B;EAEA,QAAM0L,YAAY,GAAG2C,gBAAgB,GAAGA,gBAAgB,CAACzP,KAApB,GAA4B,EAAjE;;EACA,QAAMA,KAAK,gBACNqP,WADM,EAENvC,YAFM,EAGN1L,OAAO,CAACpB,KAHF,CAAX;;EAKA,QAAM/D,CAAC,GAAGmR,cAAK,CAACsC,YAAN,CAAmBtO,OAAnB,EAA4BpB,KAA5B,EAAmCoB,OAAO,CAACpB,KAAR,CAAciP,QAAjD,CAAV;EACA,WAAOhT,CAAP;EACD,GAlBI,EAmBJ0T,IAnBI,CAoBH,UAAC9S,CAAD,EAAIjB,CAAJ;EAAA,WAAU,CAACiB,CAAC,CAACmD,KAAF,CAAQoP,KAAR,IAAiBJ,YAAlB,KAAmCpT,CAAC,CAACoE,KAAF,CAAQoP,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,SAAY9Q,UAAZ;EACAgR,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,IAAM3D,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhBkO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GAHJ;EAIhBqP,EAAAA,SAAS,EAAEzO,SAAS,CAAChB,MAJL;EAKhB0P,EAAAA,IAAI,EAAE1O,SAAS,CAAClB,IALA;EAMhBwI,EAAAA,KAAK,EAAEtH,SAAS,CAAClB,IAND;EAOhB6P,EAAAA,QAAQ,EAAE3O,SAAS,CAAClB,IAPJ;EAQhB8P,EAAAA,WAAW,EAAE5O,SAAS,CAAClB,IARP;EAShB+P,EAAAA,GAAG,EAAE7O,SAAS,CAACd,MATC;EAUhBwM,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MAVF;EAWhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAXL;EAYhB4P,EAAAA,OAAO,EAAE9O,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAZO;EAahBoP,EAAAA,WAAW,EAAE/O,SAAS,CAACd,MAbP;EAehB8P,EAAAA,WAAW,EAAEhP,SAAS,CAACjB,IAfP;EAgBhBkQ,EAAAA,SAAS,EAAEjP,SAAS,CAACjB,IAhBL;EAiBhBmQ,EAAAA,SAAS,EAAElP,SAAS,CAACjB,IAjBL;EAkBhBoQ,EAAAA,gBAAgB,EAAEnP,SAAS,CAACjB,IAlBZ;EAmBhBqQ,EAAAA,SAAS,EAAEpP,SAAS,CAACjB,IAnBL;EAoBhBsQ,EAAAA,OAAO,EAAErP,SAAS,CAACjB,IApBH;EAqBhBuQ,EAAAA,SAAS,EAAEtP,SAAS,CAACjB,IArBL;EAsBhBwQ,EAAAA,QAAQ,EAAEvP,SAAS,CAACjB,IAtBJ;EAuBhByQ,EAAAA,MAAM,EAAExP,SAAS,CAACjB,IAvBF;EAwBhB0Q,EAAAA,OAAO,EAAEzP,SAAS,CAACjB,IAxBH;EAyBhB2Q,EAAAA,UAAU,EAAE1P,SAAS,CAACjB,IAzBN;EA0BhB4Q,EAAAA,gBAAgB,EAAE3P,SAAS,CAACjB,IA1BZ;EA2BhB6Q,EAAAA,OAAO,EAAE5P,SAAS,CAACjB,IA3BH;EA4BhB8Q,EAAAA,SAAS,EAAE7P,SAAS,CAACjB,IA5BL;EA6BhB+Q,EAAAA,OAAO,EAAE9P,SAAS,CAACjB,IA7BH;EA8BhBgR,EAAAA,SAAS,EAAE/P,SAAS,CAACjB,IA9BL;EA+BhBiR,EAAAA,SAAS,EAAEhQ,SAAS,CAACjB,IA/BL;EAgChBkR,EAAAA,gBAAgB,EAAEjQ,SAAS,CAACjB,IAhCZ;EAiChBmR,EAAAA,YAAY,EAAElQ,SAAS,CAACjB,IAjCR;EAkChBoR,EAAAA,YAAY,EAAEnQ,SAAS,CAACjB,IAlCR;EAmChBqR,EAAAA,YAAY,EAAEpQ,SAAS,CAACjB,IAnCR;EAoChBsR,EAAAA,cAAc,EAAErQ,SAAS,CAACjB,IApCV;EAqChBuR,EAAAA,QAAQ,EAAEtQ,SAAS,CAACjB;EArCJ,CAAlB;;MAwCqBwR;;;;;EACnB,iBAAYrS,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKuI,KAAL,GAAa,IAAb,CAHiB;;EAIjB,UAAKH,IAAL,GAAY,MAAKA,IAAL,CAAUzI,IAAV,+BAAZ;EACA,UAAK6I,KAAL,GAAa,MAAKA,KAAL,CAAW7I,IAAX,+BAAb;EACA,UAAK+I,IAAL,GAAY,MAAKA,IAAL,CAAU/I,IAAV,+BAAZ;EACA,UAAKgJ,OAAL,GAAe,MAAKA,OAAL,CAAahJ,IAAb,+BAAf;EACA,UAAKkJ,MAAL,GAAc,MAAKA,MAAL,CAAYlJ,IAAZ,+BAAd;EACA,UAAK0J,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB1J,IAAtB,+BAAxB;EACA,UAAK2S,aAAL,GAAqB,MAAKA,aAAL,CAAmB3S,IAAnB,+BAArB;EACA,UAAK4S,cAAL,GAAsB,MAAKA,cAAL,CAAoB5S,IAApB,+BAAtB;EACA,UAAK2E,eAAL,GAAuB,MAAKA,eAAL,CAAqB3E,IAArB,+BAAvB;EACA,UAAK6E,aAAL,GAAqB,MAAKA,aAAL,CAAmB7E,IAAnB,+BAArB;EACA,UAAK+E,oBAAL,GAA4B,MAAKA,oBAAL,CAA0B/E,IAA1B,+BAA5B;EACA,UAAKiF,UAAL,GAAkB,MAAKA,UAAL,CAAgBjF,IAAhB,+BAAlB;EACA,UAAKgF,aAAL,GAAqB,MAAKA,aAAL,CAAmBhF,IAAnB,+BAArB;EACA,UAAKkF,WAAL,GAAmB,MAAKA,WAAL,CAAiBlF,IAAjB,+BAAnB;EACA,UAAK6S,WAAL,GAAmB,MAAKA,WAAL,CAAiB7S,IAAjB,+BAAnB;EACA,UAAK8E,aAAL,GAAqB,MAAKA,aAAL,CAAmB9E,IAAnB,+BAArB;EACA,UAAKoF,aAAL,GAAqB,MAAKA,aAAL,CAAmBpF,IAAnB,+BAArB;EACA,UAAKqF,YAAL,GAAoB,MAAKA,YAAL,CAAkBrF,IAAlB,+BAApB;EACA,UAAKoI,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BpI,IAA5B,+BAA9B;EACA,UAAKkG,WAAL,GAAmB,MAAKA,WAAL,CAAiBlG,IAAjB,+BAAnB;EACA,UAAK2F,aAAL,GAAqB,MAAKA,aAAL,CAAmB3F,IAAnB,+BAArB;EACA,UAAK4F,WAAL,GAAmB,MAAKA,WAAL,CAAiB5F,IAAjB,+BAAnB;EACA,UAAK6F,aAAL,GAAqB,MAAKA,aAAL,CAAmB7F,IAAnB,+BAArB;EACA,UAAK8F,aAAL,GAAqB,MAAKA,aAAL,CAAmB9F,IAAnB,+BAArB;EACA,UAAK+F,oBAAL,GAA4B,MAAKA,oBAAL,CAA0B/F,IAA1B,+BAA5B;EACA,UAAKgG,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBhG,IAAtB,+BAAxB;EACA,UAAKuF,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBvF,IAAtB,+BAAxB;EACA,UAAK0F,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB1F,IAAtB,+BAAxB;EACA,UAAKwF,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBxF,IAAxB,+BAA1B;EACA,UAAKsF,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BtF,IAA1B,+BAA5B;EACA,UAAK8S,cAAL,GAAsBxC,QAAQ,CAAC,MAAKwC,cAAL,CAAoB9S,IAApB,+BAAD,EAAiC,GAAjC,CAA9B;EACA,UAAK+S,cAAL,GAAsB,MAAKA,cAAL,CAAoB/S,IAApB,+BAAtB;EACA,UAAKgT,qBAAL,GAA6B,MAAKA,qBAAL,CAA2BhT,IAA3B,+BAA7B;EApCiB;EAqClB;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAK0F,WAAL,GADkB;;EAElB,QAAI,KAAKrK,KAAL,IAAc,KAAKA,KAAL,CAAWsK,UAA7B,EAAyC;EACvC,WAAKtK,KAAL,CAAWsK,UAAX,CAAsBC,UAAtB,GAAmC,KAAKH,qBAAxC;EACA,WAAKpK,KAAL,CAAWsK,UAAX,CAAsBE,aAAtB,GAAsC,KAAKJ,qBAA3C;EACD;EACF;;;WAGDL,gBAAA,yBAAgB;EAAA;;EACd,QAAI,CAAC,KAAK/J,KAAV,EAAiB;EACf,aAAO,IAAP;EACD;;EAED,WAAO+H,eAAe,CAACtE,MAAhB,CAAuB,UAACgH,UAAD,EAAa1T,GAAb,EAAqB;EACjD0T,MAAAA,UAAU,CAAC1T,GAAD,CAAV,GAAkB,MAAI,CAACiJ,KAAL,CAAWjJ,GAAX,CAAlB;EACA,aAAO0T,UAAP;EACD,KAHM,EAGJ,EAHI,CAAP;EAID;;;WA6CDL,wBAAA,iCAAwB;EAAA,sBACM,KAAK3S,KADX;EAAA,QACdyL,OADc,eACdA,OADc;EAAA,QACLnC,MADK,eACLA,MADK;;EAEtB,QAAI,KAAKf,KAAL,IAAc,KAAKA,KAAL,CAAWsK,UAA7B,EAAyC;EACvC,UAAMjI,eAAe,GAAGtI,KAAK,CAACtD,IAAN,CAAW,KAAKuJ,KAAL,CAAWsK,UAAtB,EAAkCxE,IAAlC,CACtB,UAAAnI,SAAS;EAAA,eAAIA,SAAS,CAAC+M,IAAV,KAAmB,SAAvB;EAAA,OADa,CAAxB;;EAGA,UAAIrI,eAAe,KAAKtB,MAAM,CAACsB,eAA/B,EAAgD;EAC9Ca,QAAAA,OAAO,CAACxF,iBAAR,CAA0B2E,eAA1B;EACD;EACF;EACF;;;WAGDxC,OAAA,gBAAO;EACL,QAAM8K,OAAO,GAAG,KAAK3K,KAAL,CAAWH,IAAX,EAAhB;;EACA,QAAI8K,OAAO,KAAKvV,SAAhB,EAA2B;EACzBuV,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGD5K,QAAA,iBAAQ;EACN,QAAM0K,OAAO,GAAG,KAAK3K,KAAL,CAAWC,KAAX,EAAhB;;EACA,QAAI0K,OAAO,KAAKvV,SAAhB,EAA2B;EACzBuV,MAAAA,OAAO,CAACC,KAAR,CAAc,YAAM,EAApB,EAAwBC,IAAxB,CAA6B,YAAM,EAAnC;EACD;EACF;;;WAGDC,OAAA,gBAAO;EACL,SAAK9K,KAAL,CAAW8K,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAK/K,KAAL,EAAW+K,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKhL,KAAL,EAAWgL,WAAX;EACD;;;WAGD9K,aAAA,sBAAa;EACX,QAAI,KAAKF,KAAL,CAAW2B,MAAf,EAAuB;EACrB,WAAK9B,IAAL;EACD,KAFD,MAEO;EACL,WAAKI,KAAL;EACD;EACF;;;WAGDE,OAAA,cAAK3C,IAAL,EAAW;EACT,QAAI;EACF,WAAKwC,KAAL,CAAWsB,WAAX,GAAyB9D,IAAzB;EACD,KAFD,CAEE,OAAO9J,CAAP,EAAU;EAEX;EACF;;;WAGD0M,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,KAAKrJ,KADhB;EAAA,QACTsJ,MADS,gBACTA,MADS;EAAA,QACDmC,OADC,gBACDA,OADC;EAEjBA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;EAGD;;;WACAhF,kBAAA,2BAAyB;EAAA,uBACU,KAAKtE,KADf;EAAA,QACfyL,OADe,gBACfA,OADe;EAAA,QACNqF,WADM,gBACNA,WADM;EAEvBrF,IAAAA,OAAO,CAACnH,eAAR,CAAwB,KAAKgO,aAAL,EAAxB;;EACA,QAAIxB,WAAJ,EAAiB;EACfA,MAAAA,WAAW,MAAX;EACD;EACF;EAGD;;;WACAtM,gBAAA,yBAAuB;EAAA,uBACU,KAAKxE,KADf;EAAA,QACbyL,OADa,gBACbA,OADa;EAAA,QACJuF,SADI,gBACJA,SADI;EAGrBvF,IAAAA,OAAO,CAACjH,aAAR,CAAsB,KAAK8N,aAAL,EAAtB;;EAEA,QAAItB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACAtM,uBAAA,gCAA8B;EAAA,uBACU,KAAK1E,KADf;EAAA,QACpByL,OADoB,gBACpBA,OADoB;EAAA,QACXwF,gBADW,gBACXA,gBADW;EAE5BxF,IAAAA,OAAO,CAAC/G,oBAAR,CAA6B,KAAK4N,aAAL,EAA7B;;EAEA,QAAIrB,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACAtM,gBAAA,yBAAuB;EAAA,uBACU,KAAK3E,KADf;EAAA,QACbyL,OADa,gBACbA,OADa;EAAA,QACJyF,SADI,gBACJA,SADI;EAErBzF,IAAAA,OAAO,CAAC9G,aAAR,CAAsB,KAAK2N,aAAL,EAAtB;;EAEA,QAAIpB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGDtM,aAAA,sBAAoB;EAAA,uBACU,KAAK5E,KADf;EAAA,QACVyL,OADU,gBACVA,OADU;EAAA,QACD6F,MADC,gBACDA,MADC;EAElB7F,IAAAA,OAAO,CAAC7G,UAAR,CAAmB,KAAK0N,aAAL,EAAnB;;EAEA,QAAIhB,MAAJ,EAAY;EACVA,MAAAA,MAAM,MAAN;EACD;EACF;;;WAGDzM,cAAA,uBAAqB;EAAA,uBACU,KAAK7E,KADf;EAAA,QACXyL,OADW,gBACXA,OADW;EAAA,QACF8F,OADE,gBACFA,OADE;EAEnB9F,IAAAA,OAAO,CAAC5G,WAAR,CAAoB,KAAKyN,aAAL,EAApB;;EAEA,QAAIf,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;EAGD;;;WACAtM,uBAAA,gCAA8B;EAAA,uBACU,KAAKjF,KADf;EAAA,QACpByL,OADoB,gBACpBA,OADoB;EAAA,QACXgG,gBADW,gBACXA,gBADW;EAE5BhG,IAAAA,OAAO,CAACxG,oBAAR,CAA6B,KAAKqN,aAAL,EAA7B;;EAEA,QAAIb,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACAgB,iBAAA,0BAAwB;EAAA,wBACU,KAAKzS,KADf;EAAA,QACdyL,OADc,iBACdA,OADc;EAAA,QACL+F,UADK,iBACLA,UADK;;EAEtB,QAAI,KAAKjJ,KAAT,EAAgB;EACdkD,MAAAA,OAAO,CAACrG,oBAAR,CAA6B,KAAKkN,aAAL,EAA7B;EACD;;EAED,QAAId,UAAJ,EAAgB;EACdA,MAAAA,UAAU,MAAV;EACD;EACF;EAGD;;;WACAgB,cAAA,uBAAqB;EAAA,wBAGf,KAAKxS,KAHU;EAAA,QAEjBwQ,IAFiB,iBAEjBA,IAFiB;EAAA,QAEXlH,MAFW,iBAEXA,MAFW;EAAA,QAEHmC,OAFG,iBAEHA,OAFG;EAAA,QAEM0F,OAFN,iBAEMA,OAFN;;EAInB,QAAIX,IAAJ,EAAU;EACR,WAAK9H,IAAL,CAAU,CAAV;EACA,WAAKN,IAAL;EACD,KAHD,MAGO,IAAI,CAACkB,MAAM,CAACY,MAAZ,EAAoB;EACzB,WAAK1B,KAAL;EACD;;EACDiD,IAAAA,OAAO,CAAC3G,SAAR,CAAkB,KAAKwN,aAAL,EAAlB;;EAEA,QAAInB,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGD1M,gBAAA,yBAAuB;EAAA,wBACU,KAAKzE,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJsF,SADI,iBACJA,SADI;EAErBtF,IAAAA,OAAO,CAAChH,aAAR,CAAsB,KAAK6N,aAAL,EAAtB;;EAEA,QAAIvB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACAhM,gBAAA,yBAAuB;EAAA,wBACU,KAAK/E,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJ2F,SADI,iBACJA,SADI;EAErB3F,IAAAA,OAAO,CAAC1G,aAAR,CAAsB,KAAKuN,aAAL,EAAtB;;EAEA,QAAIlB,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,eAAA,wBAAsB;EAAA,wBACU,KAAKhF,KADf;EAAA,QACZyL,OADY,iBACZA,OADY;EAAA,QACH4F,QADG,iBACHA,QADG;EAEpB5F,IAAAA,OAAO,CAACzG,YAAR,CAAqB,KAAKsN,aAAL,EAArB;;EAEA,QAAIjB,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;;WAGDtJ,yBAAA,kCAAyB;EAGzB;;;WACAzC,gBAAA,yBAAuB;EAAA,wBACU,KAAKtF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJkG,SADI,iBACJA,SADI;EAErBlG,IAAAA,OAAO,CAACnG,aAAR,CAAsB,KAAKgN,aAAL,EAAtB;;EACA,QAAIX,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;;;WAGDpM,cAAA,uBAAqB;EAAA,wBACU,KAAKvF,KADf;EAAA,QACXyL,OADW,iBACXA,OADW;EAAA,QACFmG,OADE,iBACFA,OADE;EAEnBnG,IAAAA,OAAO,CAAClG,WAAR,CAAoB,KAAK+M,aAAL,EAApB;;EACA,QAAIV,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;;WAGDpM,gBAAA,yBAAuB;EAAA,wBACU,KAAKxF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJoG,SADI,iBACJA,SADI;EAErBpG,IAAAA,OAAO,CAACjG,aAAR,CAAsB,KAAK8M,aAAL,EAAtB;;EACA,QAAIT,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,gBAAA,yBAAuB;EAAA,wBACU,KAAKzF,KADf;EAAA,QACbyL,OADa,iBACbA,OADa;EAAA,QACJqG,SADI,iBACJA,SADI;EAErBrG,IAAAA,OAAO,CAAChG,aAAR,CAAsB,KAAK6M,aAAL,EAAtB;;EAEA,QAAIR,SAAJ,EAAe;EACbA,MAAAA,SAAS,MAAT;EACD;EACF;EAGD;;;WACApM,uBAAA,gCAA8B;EAAA,wBACqB,KAAK1F,KAD1B;EAAA,QACpByL,OADoB,iBACpBA,OADoB;EAAA,QACXsG,gBADW,iBACXA,gBADW;EAAA,QACOxB,SADP,iBACOA,SADP;;EAG5B,QAAIA,SAAS,IAAIA,SAAS,GAAG,CAA7B,EAAgC;EAC9B,WAAKhI,KAAL,CAAWsB,WAAX,GAAyB0G,SAAzB;EACD;;EAED9E,IAAAA,OAAO,CAAC/F,oBAAR,CAA6B,KAAK4M,aAAL,EAA7B;;EAEA,QAAIP,gBAAJ,EAAsB;EACpBA,MAAAA,gBAAgB,MAAhB;EACD;EACF;EAGD;;;WACApM,mBAAA,4BAA0B;EAAA,wBACU,KAAK3F,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPuG,YADO,iBACPA,YADO;EAExBvG,IAAAA,OAAO,CAAC9F,gBAAR,CAAyB,KAAK2M,aAAL,EAAzB;;EAEA,QAAIN,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAGD;;;WACA9M,mBAAA,4BAA0B;EAAA,wBACU,KAAKlF,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPwG,YADO,iBACPA,YADO;EAExBxG,IAAAA,OAAO,CAACvG,gBAAR,CAAyB,KAAKoN,aAAL,EAAzB;;EAEA,QAAIL,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;EAED;;;;;WAGA5M,mBAAA,4BAA0B;EAAA,wBACU,KAAKrF,KADf;EAAA,QAChByL,OADgB,iBAChBA,OADgB;EAAA,QACPyG,YADO,iBACPA,YADO;EAExBzG,IAAAA,OAAO,CAACpG,gBAAR,CAAyB,KAAKiN,aAAL,EAAzB;;EAEA,QAAIJ,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,MAAZ;EACD;EACF;;;WAGD/M,qBAAA,8BAA4B;EAAA,wBACU,KAAKnF,KADf;EAAA,QAClByL,OADkB,iBAClBA,OADkB;EAAA,QACT0G,cADS,iBACTA,cADS;EAE1B1G,IAAAA,OAAO,CAACtG,kBAAR,CAA2B,KAAKmN,aAAL,EAA3B;;EAEA,QAAIH,cAAJ,EAAoB;EAClBA,MAAAA,cAAc,MAAd;EACD;EACF;EAGD;;;WACAtM,cAAA,uBAAqB;EAAA,wBACU,KAAK7F,KADf;EAAA,QACXyL,OADW,iBACXA,OADW;EAAA,QACFiG,OADE,iBACFA,OADE;EAEnBjG,IAAAA,OAAO,CAAC5F,WAAR,CAAoB,KAAKyM,aAAL,EAApB;;EACA,QAAIZ,OAAJ,EAAa;EACXA,MAAAA,OAAO,MAAP;EACD;EACF;;WAED9L,eAAA,wBAAsB;EAAA,wBACU,KAAK5F,KADf;EAAA,QACZyL,OADY,iBACZA,OADY;EAAA,QACH2G,QADG,iBACHA,QADG;EAEpB3G,IAAAA,OAAO,CAAC7F,YAAR,CAAqB,KAAK0M,aAAL,EAArB;;EACA,QAAIF,QAAJ,EAAc;EACZA,MAAAA,QAAQ,MAAR;EACD;EACF;;WAEDM,iBAAA,0BAAiB;;WAEjBH,iBAAA,0BAAiB;EAAA;;EACf,QAAMvS,KAAK,gBACN,KAAKA,KADC;EAETuI,MAAAA,KAAK,EAAE,KAAKA;EAFH,MAAX,CADe;;;EAOf,QAAI,CAAC,KAAKA,KAAV,EAAiB;EACf,aAAO,IAAP;EACD,KATc;;;EAYf,WAAO6E,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,EACJlD,MADI,CACGqC,YADH,EAEJ9P,GAFI,CAEA,UAACvC,CAAD,EAAO;EACV,UAAIyX,MAAJ;;EACA,UAAI,OAAOzX,CAAC,CAACiB,IAAT,KAAkB,QAAtB,EAAgC;EAC9B;EACA,YAAIjB,CAAC,CAACiB,IAAF,KAAW,QAAf,EAAyB;EACvBwW,UAAAA,MAAM,gBAAQzX,CAAC,CAACiE,KAAV,CAAN;EACA,cAAMyT,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,CAAC5N,WAAL,OAAA,MAAI,YAAJ;EACD,WALD;EAMD;EACF,OAZD,MAYO;EACL2N,QAAAA,MAAM,GAAGxT,KAAT;EACD;;EACD,aAAOoN,cAAK,CAACsC,YAAN,CAAmB3T,CAAnB,EAAsByX,MAAtB,CAAP;EACD,KApBI,CAAP;EAqBD;;WAEDrG,SAAA,kBAAS;EAAA;;EAAA,wBAWH,KAAKnN,KAXF;EAAA,QAELwQ,IAFK,iBAELA,IAFK;EAAA,QAGLhD,MAHK,iBAGLA,MAHK;EAAA,QAILoD,OAJK,iBAILA,OAJK;EAAA,QAKLD,GALK,iBAKLA,GALK;EAAA,QAMLF,QANK,iBAMLA,QANK;EAAA,QAOLC,WAPK,iBAOLA,WAPK;EAAA,QAQLtH,KARK,iBAQLA,KARK;EAAA,QASLyH,WATK,iBASLA,WATK;EAAA,QAUL6C,OAVK,iBAULA,OAVK;EAaP,WACEtG;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC,uBAAD,EAA0B,KAAKjC,KAAL,CAAW6M,SAArC,CADvB;EAEE,MAAA,EAAE,EAAE6G,OAFN;EAGE,MAAA,WAAW,EAAE7C,WAHf;EAIE,MAAA,GAAG,EAAE,aAAC9U,CAAD,EAAO;EACV,QAAA,MAAI,CAACwM,KAAL,GAAaxM,CAAb;EACD,OANH;EAOE,MAAA,KAAK,EAAEqN,KAPT;EAQE,MAAA,OAAO,EAAEwH,OARX;EASE,MAAA,IAAI,EAAEJ,IATR;EAUE,MAAA,WAAW,EAAEE,WAVf;EAWE,MAAA,QAAQ,EAAED,QAXZ;EAYE,MAAA,MAAM,EAAEjD,MAZV;EAaE,MAAA,GAAG,EAAEmD,GAbP;EAcE,MAAA,WAAW,EAAE,KAAKrM,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,KAAK6N,WAnBhB;EAoBE,MAAA,SAAS,EAAE,KAAKzN,aApBlB;EAqBE,MAAA,QAAQ,EAAE,KAAKC,YArBjB;EAsBE,MAAA,MAAM,EAAE,KAAKJ,UAtBf;EAuBE,MAAA,OAAO,EAAE,KAAKC,WAvBhB;EAwBE,MAAA,UAAU,EAAE,KAAK4N,cAxBnB;EAyBE,MAAA,gBAAgB,EAAE,KAAKxN,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,KAAKoN,cAAL,EAtCH,CADF;EA0CD;;;;0BAtdkB;EACjB,aAAO,KAAKhK,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES1L,KAAK;EACb,WAAK6K,KAAL,CAAWa,KAAX,GAAmB1L,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK6K,KAAL,CAAWW,MAAlB;EACD;wBAEUxL,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,WAAK6K,KAAL,CAAWW,MAAX,GAAoBxL,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK6K,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IArGgC6C;EAshBnCgF,KAAK,CAAC1F,SAAN,GAAkBA,WAAlB;EACA0F,KAAK,CAAC/E,WAAN,GAAoB,OAApB;;ECjkBA,IAAMX,WAAS,GAAG;EAChBpB,EAAAA,OAAO,EAAEzJ,SAAS,CAACf,MADH;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;MAKqB2S;;;;;EACnB,iBAAY3T,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK4G,KAAL,GAAa,IAAb;EACA5T,IAAAA,KAAK,CAACuL,OAAN,CAAckB,+BAAd,CACE,MAAKoH,iBAAL,CAAuBlU,IAAvB,+BADF;EAIA,UAAKkL,KAAL,GAAa;EACXiJ,MAAAA,MAAM,EAAE,IADG;EAEXzL,MAAAA,SAAS,EAAE;EAFA,KAAb;EAR0B;EAY3B;;;;WAEDwL,oBAAA,2BAAkBhJ,KAAlB,EAAyBwB,SAAzB,EAAoC;EAAA;;EAClC,QACExB,KAAK,CAACE,KAAN,KAAgBsB,SAAS,CAACtB,KAA1B,IACGF,KAAK,CAACxC,SAAN,CAAgBtJ,MAAhB,KAA2B,UAFhC,EAGE;EACA,UAAI,KAAK6U,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;EAEZ/I,QAAAA,KAAK,EAAEF,KAAK,CAACE,KAFD;EAGZ1C,QAAAA,SAAS,EAAEwC,KAAK,CAACxC;EAHL,OAAd,EATA;;EAgBA,WAAKuL,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;;WAEDzG,SAAA,kBAAS;EACP;EACA,QAAI,KAAKtC,KAAL,CAAWxC,SAAX,CAAqBtJ,MAArB,KAAgC,UAApC,EAAgD;EAC9C,aAAO,IAAP;EACD;;EACD,QAAMkV,KAAK,GAAG,KAAKpJ,KAAL,CAAWiJ,MAAX,GACV;EACAI,MAAAA,OAAO,EAAE;EADT,KADU,GAIV,IAJJ;EAMA,WACE9G;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB;EACE,iCAAyB,IAD3B;EAEE,2CAAmC,KAAK4I,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB,CAF9D;EAGE,+CAAuC,KAAKF,KAAL,CAAWE,KAAX,GAAmB,CAAnB,KAAyB;EAHlE,OADmB,EAMnB,KAAK/K,KAAL,CAAW6M,SANQ,CADvB;EASE,MAAA,KAAK,EAAEoH,KATT;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,oBAAY,KAAKpJ,KAAL,CAAWxC,SAAX,CAAqBC;EAXnC,OAaE8E;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,4BADmB,kCAEW,KAAK4I,KAAL,CAAWxC,SAAX,CAAqBC,MAFhC;EADvB,MAbF,CADF;EAsBD;;;IA7EgC+E;EAgFnCsG,KAAK,CAAChH,SAAN,GAAkBA,WAAlB;EACAgH,KAAK,CAACrG,WAAN,GAAoB,OAApB;;EC1FA;;;;;;;;;AASA,EAAO,SAAS6G,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,kBAcQ9N,QAdR;EAAA,MAczB+N,IAdyB,aAczBA,IAdyB;EAAA,MAcFC,KAdE,aAcnBC,eAdmB;EAgBjC,MAAMC,UAAU,GAAGF,KAAK,CAACE,UAAN,IAAoBH,IAAI,CAACG,UAAzB,IAAuC,CAA1D;EACA,MAAMC,UAAU,GAAGnS,MAAM,CAACoS,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,GAAGtS,MAAM,CAACuS,WAAP,IAAsBR,IAAI,CAACO,SAA7C;EACA,MAAMR,GAAG,GAAGJ,GAAG,CAACI,GAAJ,GAAUQ,SAAV,GAAsBD,SAAlC,CAtBiC;;EAyBjC,SAAO;EACLR,IAAAA,IAAI,EAAEzG,IAAI,CAACoH,KAAL,CAAWX,IAAX,CADD;EAELC,IAAAA,GAAG,EAAE1G,IAAI,CAACoH,KAAL,CAAWV,GAAX;EAFA,GAAP;EAID;EAED;;;;;;;;;;;AAUA,EAAO,SAASW,kBAAT,CAA4BhB,EAA5B,EAAgCiB,KAAhC,EAAuC;EAC5C,MAAMzI,QAAQ,GAAG,EAAjB;EACA,MAAMyH,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;;EAEDjJ,EAAAA,QAAQ,CAACqJ,CAAT,GAAalI,IAAI,CAACmI,GAAL,CAAS,CAAT,EAAYnI,IAAI,CAACoI,GAAL,CAAS,CAAT,EAAY,CAACT,IAAI,GAAGE,QAAP,GAAkBJ,IAAnB,IAA2BA,IAAvC,CAAZ,CAAb;EACA5I,EAAAA,QAAQ,CAACwJ,CAAT,GAAarI,IAAI,CAACmI,GAAL,CAAS,CAAT,EAAYnI,IAAI,CAACoI,GAAL,CAAS,CAAT,EAAY,CAACL,QAAQ,GAAGH,IAAZ,IAAoBL,IAAhC,CAAZ,CAAb;EAEA,SAAO1I,QAAP;EACD;;AAUD,EAAO,SAASyJ,SAAT,CAAmBC,SAAnB,EAA8B;EACnC,MAAIA,SAAS,IAAIA,SAAS,CAACC,KAA3B,EAAkC;EAChCD,IAAAA,SAAS,CAACC,KAAV;EACD;EACF;;AAGD,EAAO,SAASC,QAAT,CAAkBnQ,GAAlB,EAAuBoQ,GAAvB,EAA4B;EACjC,MAAMvU,OAAO,GAAGmE,GAAG,CAACwG,SAAJ,CAAcpO,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,CAAWuY,WAAX,OAA6BD,GAAG,CAACC,WAAJ,EAAjC,EAAoD;EAClD,aAAO,IAAP;EACD;EACF;;EACD,SAAO,KAAP;EACD;;EC3FD,IAAM/J,WAAS,GAAG;EAChBgK,EAAAA,SAAS,EAAE7U,SAAS,CAAClB,IADL;EAEhBgW,EAAAA,YAAY,EAAE9U,SAAS,CAAClB,IAFR;EAGhB2K,EAAAA,OAAO,EAAEzJ,SAAS,CAACf,MAHH;EAIhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAJH;EAKhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MALF;EAMhB8V,EAAAA,SAAS,EAAE/U,SAAS,CAACnB;EANL,CAAlB;EASA,IAAMmM,cAAY,GAAG;EACnB6J,EAAAA,SAAS,EAAE,IADQ;EAEnBC,EAAAA,YAAY,EAAE;EAFK,CAArB;;MAKqBE;;;;;EACnB,oBAAY9W,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK+J,gBAAL,GAAwB,CACtB;EACEC,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKxO;EAFf,KADsB,EAKtB;EACEuO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAKxO;EAFf,KALsB,EAStB;EACEuO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,MAAK5N;EAFf,KATsB,EAatB;EACE2N,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC5C,MAAR,CAAe,CAAf,EAAkB;EAChBP,UAAAA,MAAM,EAAE,UADQ;EAEhBvJ,UAAAA,MAAM,EAAE;EAFQ,SAAlB,EAJ2B;EAQ5B;EAVH,KAbsB,EAyBtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC5C,MAAR,CAAe,EAAf,EAAmB;EACjBP,UAAAA,MAAM,EAAE,WADS;EAEjBvJ,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KAzBsB,EAqCtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC9C,OAAR,CAAgB,CAAhB,EAAmB;EACjBL,UAAAA,MAAM,EAAE,WADS;EAEjBvJ,UAAAA,MAAM,EAAE;EAFS,SAAnB,EAJ2B;EAQ5B;EAVH,KArCsB,EAiDtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC9C,OAAR,CAAgB,EAAhB,EAAoB;EAClBL,UAAAA,MAAM,EAAE,YADU;EAElBvJ,UAAAA,MAAM,EAAE;EAFU,SAApB,EAJ2B;EAQ5B;EAVH,KAjDsB,EA6DtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD;;EACDgB,QAAAA,OAAO,CAAC/C,IAAR,CAAa,CAAb,EAJ2B;EAK5B;EAPH,KA7DsB,EAsEtB;EACEsO,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B,YAAI,CAACnC,MAAM,CAACmB,UAAZ,EAAwB;EACtB;EACD,SAH0B;;;EAK3BgB,QAAAA,OAAO,CAAC/C,IAAR,CAAaY,MAAM,CAACM,QAApB;EACD;EARH,KAtEsB,EAgFtB;EACEoN,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EACA,YAAIxO,CAAC,GAAGqM,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAIjM,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACDwO,QAAAA,OAAO,CAACxC,YAAR,CAAqBhM,CAArB,EAAwB;EACtBqL,UAAAA,MAAM,EAAE,WADc;EAEtBvJ,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAZH,KAhFsB,EA8FtB;EACEiY,MAAAA,OAAO,EAAE,EADX;EACe;EACbC,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EACA,YAAIxO,CAAC,GAAGqM,MAAM,CAACJ,MAAP,GAAgB,IAAxB;;EACA,YAAIjM,CAAC,GAAG,CAAR,EAAW;EACTA,UAAAA,CAAC,GAAG,CAAJ;EACD;;EACD,YAAMqL,MAAM,GAAGrL,CAAC,GAAG,CAAJ,GAAQ,aAAR,GAAwB,YAAvC;EACAwO,QAAAA,OAAO,CAACxC,YAAR,CAAqBhM,CAArB,EAAwB;EACtBqL,UAAAA,MAAM,EAANA,MADsB;EAEtBvJ,UAAAA,MAAM,EAAE;EAFc,SAAxB;EAID;EAbH,KA9FsB,EA6GtB;EACEiY,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EAD2B,YAErBzC,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;;EACDyC,QAAAA,OAAO,CAAC3C,UAAR,CAAmBE,YAAnB,EAAiC;EAC/BV,UAAAA,MAAM,EAAE,cADuB;EAE/BvJ,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EAvBH,KA7GsB,EAsItB;EACEiY,MAAAA,OAAO,EAAE,GADX;EACgB;EACdE,MAAAA,KAAK,EAAE,IAFT;EAGED,MAAAA,MAAM,EAAE,gBAAC3N,MAAD,EAASmC,OAAT,EAAqB;EAC3B;EAD2B,YAErBzC,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;;EACDyC,QAAAA,OAAO,CAAC3C,UAAR,CAAmBE,YAAnB,EAAiC;EAC/BV,UAAAA,MAAM,EAAE,aADuB;EAE/BvJ,UAAAA,MAAM,EAAE;EAFuB,SAAjC;EAID;EArBH,KAtIsB,CAAxB;EA+JA,UAAK8X,SAAL,aAAqB,MAAKE,gBAA1B;EAEA,UAAKI,cAAL,GAAsB,MAAKA,cAAL,CAAoBxX,IAApB,+BAAtB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAK0X,iBAAL,GAAyB,MAAKA,iBAAL,CAAuB1X,IAAvB,+BAAzB;EAvK0B;EAwK3B;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAKiK,cAAL;EACAxQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C;EACAzQ,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,OAA1B,EAAmC,KAAKiG,WAAxC;EACAtG,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAKqQ,iBAA3C;EACD;;WAEDC,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAACV,SAAV,KAAwB,KAAK7W,KAAL,CAAW6W,SAAvC,EAAkD;EAChD,WAAKM,cAAL;EACD;EACF;;WAEDK,uBAAA,gCAAuB;EACrB7Q,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C;EACAzQ,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,OAA7B,EAAsC,KAAK+F,WAA3C;EACAtG,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAKmQ,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,CAAsB/K,MAAtB,CACvB,UAAC6K,SAAD,EAAYe,QAAZ;EAAA;;EAAA,aAAyBpc,MAAM,CAACsC,MAAP,CAAc+Y,SAAd,uCACtBY,cAAc,CAACG,QAAD,CADQ,IACKA,QADL,kBAAzB;EAAA,KADuB,EAIvB,EAJuB,CAAzB;EAMA,QAAMC,eAAe,GAAG,CAAC,KAAK7X,KAAL,CAAW6W,SAAX,IAAwB,EAAzB,EAA6B7K,MAA7B,CACtB,UAAC6K,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,eAAOzb,MAAM,CAACsC,MAAP,CAAc+Y,SAAd,yCACJY,cAAc,CAACG,QAAD,CADV,IACuBA,QADvB,mBAAP;EAGD;;EACD,aAAOf,SAAP;EACD,KATqB,EAUtBE,gBAVsB,CAAxB;;EAaA,QAAMe,aAAa,GAAG,SAAhBA,aAAgB,CAAC3Y,CAAD,EAAO;EAC3B,UAAI4Y,KAAK,GAAG,CAAZ;EACA,UAAMC,EAAE,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,CAAX;EACAA,MAAAA,EAAE,CAACtZ,OAAH,CAAW,UAACY,GAAD,EAAS;EAClB,YAAIH,CAAC,CAACG,GAAD,CAAL,EAAY;EACVyY,UAAAA,KAAK;EACN;EACF,OAJD;EAKA,aAAOA,KAAP;EACD,KATD;;EAWA,SAAKlB,SAAL,GAAiBrb,MAAM,CAACoD,IAAP,CAAYiZ,eAAZ,EACdvZ,GADc,CACV,UAAAgB,GAAG;EAAA,aAAIuY,eAAe,CAACvY,GAAD,CAAnB;EAAA,KADO,EAEdqQ,IAFc,CAET,UAAC9S,CAAD,EAAIjB,CAAJ;EAAA,aAAUkc,aAAa,CAAClc,CAAD,CAAb,GAAmBkc,aAAa,CAACjb,CAAD,CAA1C;EAAA,KAFS,CAAjB;EAGD;;WAED4L,aAAA,oBAAWa,MAAX,EAAmBmC,OAAnB,EAA4B;EAC1B,QAAInC,MAAM,CAACY,MAAX,EAAmB;EACjBuB,MAAAA,OAAO,CAACrD,IAAR,CAAa;EACXE,QAAAA,MAAM,EAAE,MADG;EAEXvJ,QAAAA,MAAM,EAAE;EAFG,OAAb;EAID,KALD,MAKO;EACL0M,MAAAA,OAAO,CAACjD,KAAR,CAAc;EACZF,QAAAA,MAAM,EAAE,OADI;EAEZvJ,QAAAA,MAAM,EAAE;EAFI,OAAd;EAID;EACF;;WAEDsK,mBAAA,0BAAiBC,MAAjB,EAAyBmC,OAAzB,EAAkC;EAChCA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;;WAED8N,iBAAA,wBAAenb,CAAf,EAAkB;EAAA,sBACY,KAAK+D,KADjB;EAAA,QACRsJ,MADQ,eACRA,MADQ;EAAA,QACAmC,OADA,eACAA,OADA;;EAEhB,QAAI,CAACnC,MAAM,CAACqB,QAAZ,EAAsB;EACpB;EACD;;EACD,QACEhE,QAAQ,CAACsR,aAAT,KACIzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,yBAAzB,CAAR,IACCzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,oCAAzB,CADT;EAAA,OAGCzB,QAAQ,CAAC7P,QAAQ,CAACsR,aAAV,EAAyB,iCAAzB,CAJb,CADF,EAME;EACA;EACD;;EAED,QAAMjB,OAAO,GAAG/a,CAAC,CAAC+a,OAAF,IAAa/a,CAAC,CAACic,KAA/B;EACA,QAAMR,IAAI,GAAGzb,CAAC,CAACkc,OAAF,IAAalc,CAAC,CAACmc,OAA5B;EACA,QAAMlB,KAAK,GAAGjb,CAAC,CAACoc,QAAhB;EACA,QAAMV,GAAG,GAAG1b,CAAC,CAACqc,MAAd;EAEA,QAAMV,QAAQ,GAAG,KAAKf,SAAL,CAAe9K,MAAf,CAAsB,UAAC5M,CAAD,EAAO;EAC5C,UAAI,CAACA,CAAC,CAAC6X,OAAH,IAAc7X,CAAC,CAAC6X,OAAF,GAAYA,OAAZ,KAAwB,CAA1C,EAA6C;EAC3C,eAAO,KAAP;EACD;;EACD,UACG7X,CAAC,CAACuY,IAAF,KAAW/Z,SAAX,IAAwBwB,CAAC,CAACuY,IAAF,KAAWA,IAApC,IACIvY,CAAC,CAAC+X,KAAF,KAAYvZ,SAAZ,IAAyBwB,CAAC,CAAC+X,KAAF,KAAYA,KADzC,IAEI/X,CAAC,CAACwY,GAAF,KAAUha,SAAV,IAAuBwB,CAAC,CAACwY,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,CAAgB3N,MAAhB,EAAwBmC,OAAxB;EACAxP,MAAAA,CAAC,CAACsc,cAAF;EACD;EACF;;;WAGDC,eAAA,sBAAalP,MAAb,EAAqBrN,CAArB,EAAwB;EACtB,QACE,CAACqN,MAAM,CAACqB,QAAR,IACG1O,CAAC,CAAC6C,MAAF,CAAS2Z,QAAT,KAAsB,OADzB,IAEGnP,MAAM,CAACe,UAAP,KAAsB,CAH3B,EAIE;EACA,aAAO,KAAP;EACD;;EACD,WAAO,IAAP;EACD;;WAED4C,cAAA,qBAAYhR,CAAZ,EAAe;EAAA,uBAC0B,KAAK+D,KAD/B;EAAA,QACLsJ,MADK,gBACLA,MADK;EAAA,QACGmC,OADH,gBACGA,OADH;EAAA,QACYkL,SADZ,gBACYA,SADZ;;EAEb,QAAI,CAAC,KAAK6B,YAAL,CAAkBlP,MAAlB,EAA0BrN,CAA1B,CAAD,IAAiC,CAAC0a,SAAtC,EAAiD;EAC/C;EACD;;EACD,SAAKlO,UAAL,CAAgBa,MAAhB,EAAwBmC,OAAxB,EALa;EAOd;;WAED4L,oBAAA,2BAAkBpb,CAAlB,EAAqB;EAAA,uBACuB,KAAK+D,KAD5B;EAAA,QACXsJ,MADW,gBACXA,MADW;EAAA,QACHmC,OADG,gBACHA,OADG;EAAA,QACMmL,YADN,gBACMA,YADN;;EAEnB,QAAI,CAAC,KAAK4B,YAAL,CAAkBlP,MAAlB,EAA0BrN,CAA1B,CAAD,IAAiC,CAAC2a,YAAtC,EAAoD;EAClD;EACD;;EACD,SAAKvN,gBAAL,CAAsBC,MAAtB,EAA8BmC,OAA9B,EALmB;EAOpB;EAGD;;;WACA0B,SAAA,kBAAS;EACP,WAAO,IAAP;EACD;;;IArUmCE;EAwUtCyJ,QAAQ,CAACnK,SAAT,GAAqBA,WAArB;EACAmK,QAAQ,CAAChK,YAAT,GAAwBA,cAAxB;EACAgK,QAAQ,CAACxJ,WAAT,GAAuB,UAAvB;;ECvVA,IAAMX,WAAS,GAAG;EAChBE,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MADL;EAEhB0X,EAAAA,WAAW,EAAE5W,SAAS,CAACjB,IAFP;EAGhB8X,EAAAA,WAAW,EAAE7W,SAAS,CAACjB,IAHP;EAIhB+X,EAAAA,WAAW,EAAE9W,SAAS,CAACjB,IAJP;EAKhBgY,EAAAA,QAAQ,EAAE/W,SAAS,CAACjB,IALJ;EAMhBiY,EAAAA,YAAY,EAAEhX,SAAS,CAACjB,IANR;EAOhBkY,EAAAA,cAAc,EAAEjX,SAAS,CAACjB,IAPV;EAQhBmY,EAAAA,SAAS,EAAElX,SAAS,CAACjB,IARL;EAShBoY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IATH;EAUhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAVF;EAWhBsY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAXH;EAYhBuY,EAAAA,UAAU,EAAEtX,SAAS,CAACjB,IAZN;EAahBwY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAbJ;EAchBqO,EAAAA,QAAQ,EAAEnN,SAAS,CAACP,IAdJ;EAehB+X,EAAAA,KAAK,EAAExX,SAAS,CAACd,MAfD;EAgBhBuY,EAAAA,QAAQ,EAAEzX,SAAS,CAACd,MAhBJ;EAiBhBwY,EAAAA,SAAS,EAAE1X,SAAS,CAACd;EAjBL,CAAlB;;MAoBqByY;;;;;EACnB,kBAAYzZ,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK0M,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAKga,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAKia,aAAL,GAAqB,MAAKA,aAAL,CAAmBja,IAAnB,+BAArB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EACA,UAAKoa,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBpa,IAAvB,+BAAzB;EACA,UAAKqa,WAAL,GAAmB,MAAKA,WAAL,CAAiBra,IAAjB,+BAAnB;EACA,UAAK4S,cAAL,GAAsB,MAAKA,cAAL,CAAoB5S,IAApB,+BAAtB;EAEA,UAAKkL,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE;EADG,KAAb;EAhB0B;EAmB3B;;;;WAEDzC,uBAAA,gCAAuB;EACrB7Q,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0S,aAA7C,EAA4D,IAA5D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAK0S,aAA9C,EAA6D,IAA7D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C,EAA6D,IAA7D;EACD;;WAED4C,cAAA,uBAAc;EAAA,QACJZ,UADI,GACW,KAAKpZ,KADhB,CACJoZ,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,KAAK1Y,KADR,CACb0Y,WADa;EAGrB;;EAEA/R,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAK2S,eAA5C,EAA6D,IAA7D;EACAhT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK4S,aAA1C,EAAyD,IAAzD;EACAjT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,WAA1B,EAAuC,KAAK2S,eAA5C,EAA6D,IAA7D;EACAhT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,UAA1B,EAAsC,KAAK4S,aAA3C,EAA0D,IAA1D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAKja,KAAL,CAAW8Y,YAAf,EAA6B;EAC3B,WAAK9Y,KAAL,CAAW8Y,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,KAAK3Y,KADR,CACb2Y,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,KAAKhZ,KALR,CAKXgZ,SALW;EAOnBrS,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAK0S,aAA7C,EAA4D,IAA5D;EACAjT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,WAA7B,EAA0C,KAAKyS,eAA/C,EAAgE,IAAhE;EACAhT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,UAA7B,EAAyC,KAAK0S,aAA9C,EAA6D,IAA7D;EAEA,SAAK5F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;;EAIA,QAAI,KAAKja,KAAL,CAAW+Y,cAAf,EAA+B;EAC7B,WAAK/Y,KAAL,CAAW+Y,cAAX,CAA0B1D,KAA1B;EACD;;EAED,QAAI2D,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAAC3D,KAAD,CAAT;EACD;EACF;;WAEDwE,cAAA,qBAAY5d,CAAZ,EAAe;EACb0K,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C,EAA0D,IAA1D;;EACA,QAAI,KAAKpX,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ0K,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C,EAA6D,IAA7D;;EACA,QAAI,KAAKpX,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDgR,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;;EAGjB,QAAI,KAAKvY,KAAL,CAAWmZ,OAAf,EAAwB;EACtB,WAAKnZ,KAAL,CAAWmZ,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,KAAK5Y,KAAL,CAAW4Y,WAAf,EAA4B;EAC1B,WAAK5Y,KAAL,CAAW4Y,WAAX;EACD;EACF;;WAEDC,WAAA,oBAAW;EACT,QAAI,KAAK7Y,KAAL,CAAW6Y,QAAf,EAAyB;EACvB,WAAK7Y,KAAL,CAAW6Y,QAAX;EACD;EACF;;WAEDkB,oBAAA,2BAAkB1E,KAAlB,EAAyB;EACvB,QAAM9T,IAAI,GAAG,KAAK6Y,MAAlB;EACA,QAAMxN,QAAQ,GAAGyN,kBAAA,CAAuB9Y,IAAvB,EAA6B8T,KAA7B,CAAjB;;EACA,QAAI,KAAKrV,KAAL,CAAWqZ,QAAf,EAAyB;EACvB,aAAOzM,QAAQ,CAACqJ,CAAhB;EACD;;EACD,WAAOrJ,QAAQ,CAACwJ,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,WAAOnN,cAAK,CAAC8B,QAAN,CAAe5Q,GAAf,CAAmB,KAAK0B,KAAL,CAAWiP,QAA9B,EAAwC,UAAAuL,KAAK;EAAA,aAClDpN,cAAK,CAACsC,YAAN,CAAmB8K,KAAnB,EAA0B;EAAEN,QAAAA,QAAQ,EAARA,QAAF;EAAYI,QAAAA,UAAU,EAAVA;EAAZ,OAA1B,CADkD;EAAA,KAA7C,CAAP;EAGD;;WAEDnN,SAAA,kBAAS;EAAA;;EAAA,sBAC0C,KAAKnN,KAD/C;EAAA,QACCqZ,QADD,eACCA,QADD;EAAA,QACWC,KADX,eACWA,KADX;EAAA,QACkBC,QADlB,eACkBA,QADlB;EAAA,QAC4BC,SAD5B,eAC4BA,SAD5B;EAGP,WACEpM;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,KAAKjC,KAAL,CAAW6M,SADQ,EAEnB;EACE,2CAAmCwM,QADrC;EAEE,6CAAqC,CAACA,QAFxC;EAGE,mCAA2B,KAAKxO,KAAL,CAAWoP;EAHxC,OAFmB,EAOnB,wBAPmB,CADvB;EAUE,MAAA,GAAG,EAAE,aAAAle,CAAC,EAAI;EACR,QAAA,MAAI,CAACqe,MAAL,GAAcre,CAAd;EACD,OAZH;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,IAAI,EAAC,QAdP;EAeE,MAAA,WAAW,EAAE,KAAK2d,eAfpB;EAgBE,MAAA,YAAY,EAAE,KAAKA,eAhBrB;EAiBE,MAAA,OAAO,EAAE,KAAKG,WAjBhB;EAkBE,MAAA,MAAM,EAAE,KAAKC,UAlBf;EAmBE,MAAA,OAAO,EAAE,KAAK7M,WAnBhB;EAoBE,oBAAYqM,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;;;IAxMiClF;EA2MpCoM,MAAM,CAAC9M,SAAP,GAAmBA,WAAnB;EACA8M,MAAM,CAACnM,WAAP,GAAqB,QAArB;;EC/NA,IAAMX,WAAS,GAAG;EAChB9C,EAAAA,WAAW,EAAE/H,SAAS,CAAChB,MADP;EAEhB8I,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MAFJ;EAGhBwZ,EAAAA,UAAU,EAAExY,SAAS,CAACd,MAHN;EAIhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;AAQA,EAAe,SAASyZ,eAAT,OAKZ;EAAA,MAJD5Q,WAIC,QAJDA,WAIC;EAAA,MAHDD,QAGC,QAHDA,QAGC;EAAA,MAFD0Q,UAEC,QAFDA,UAEC;EAAA,MADDzN,SACC,QADDA,SACC;EACD,SACEO;EACE,yBAAmBS,UAAU,CAAChE,WAAD,EAAcD,QAAd,CAD/B;EAEE,IAAA,SAAS,EAAE3H,UAAU,CACnB,0DADmB,EAEnB4K,SAFmB,CAFvB;EAME,IAAA,KAAK,EAAE;EACL6N,MAAAA,KAAK,EAAEJ;EADF;EANT,KAUElN;EAAM,IAAA,SAAS,EAAC;EAAhB,oBACgBkN,UADhB,CAVF,CADF;EAgBD;EAEDG,eAAe,CAAC9N,SAAhB,GAA4BA,WAA5B;EACA8N,eAAe,CAACnN,WAAhB,GAA8B,iBAA9B;;ECnCA,IAAMX,WAAS,GAAG;EAChB/C,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MADJ;EAEhBiJ,EAAAA,QAAQ,EAAEjI,SAAS,CAACf,MAFJ;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;AAOA,EAAe,SAAS2Z,eAAT,OAA4D;EAAA,MAAjC5Q,QAAiC,QAAjCA,QAAiC;EAAA,MAAvBH,QAAuB,QAAvBA,QAAuB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;;EACzE,MAAI,CAAC9C,QAAD,IAAa,CAACA,QAAQ,CAAC1K,MAA3B,EAAmC;EACjC,WAAO,IAAP;EACD;;EACD,MAAIub,WAAW,GAAG7Q,QAAQ,CAAC8Q,GAAT,CAAa9Q,QAAQ,CAAC1K,MAAT,GAAkB,CAA/B,CAAlB;EACA,MAAM4U,KAAK,GAAG,EAAd;;EAEA,MAAI2G,WAAW,GAAGhR,QAAlB,EAA4B;EAC1BgR,IAAAA,WAAW,GAAGhR,QAAd;EACD,GATwE;;;EAYzE,WAASkR,UAAT,CAAoB/U,IAApB,EAA0B8U,GAA1B,EAA+B;EAC7B,QAAME,OAAO,GAAGhV,IAAI,GAAG8U,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,EAAchR,QAAd,CAAxB;EAEA,MAAIoR,KAAK,GAAG,EAAZ,CApByE;;EAuBzE,OAAK,IAAI7c,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4L,QAAQ,CAAC1K,MAA7B,EAAqClB,CAAC,EAAtC,EAA0C;EACxC,QAAM8c,KAAK,GAAGlR,QAAQ,CAACkR,KAAT,CAAe9c,CAAf,CAAd;EACA,QAAM0c,GAAG,GAAG9Q,QAAQ,CAAC8Q,GAAT,CAAa1c,CAAb,CAAZ,CAFwC;;EAIxC,QAAM+c,IAAI,GACR9N;EACE,MAAA,KAAK,EAAE;EACLoH,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,YAAUzc;EALf,MADF;EASA6c,IAAAA,KAAK,CAAC3Y,IAAN,CAAW6Y,IAAX;EACD;;EAED,MAAIF,KAAK,CAAC3b,MAAN,KAAiB,CAArB,EAAwB;EACtB2b,IAAAA,KAAK,GAAG,IAAR;EACD;;EAED,SACE5N;EACE,IAAA,KAAK,EAAE6G,KADT;EAEE,IAAA,SAAS,EAAEhS,UAAU,CAAC,+BAAD,EAAkC4K,SAAlC;EAFvB,KAIEO;EAAM,IAAA,SAAS,EAAC;EAAhB,kBAJF,EAKG4N,KALH,CADF;EASD;EAEDL,eAAe,CAAChO,SAAhB,GAA4BA,WAA5B;EACAgO,eAAe,CAACrN,WAAhB,GAA8B,iBAA9B;;EC5DA,SAAS6N,gBAAT,OAEG;EAAA,MADDvR,QACC,QADDA,QACC;EAAA,MADSwR,SACT,QADSA,SACT;EAAA,MADoBvO,SACpB,QADoBA,SACpB;EAAA,MAD+BwO,IAC/B,QAD+BA,IAC/B;;EACD,MAAI,CAACD,SAAS,CAACrV,IAAf,EAAqB;EACnB,WAAO,IAAP;EACD;;EAED,MAAMA,IAAI,GAAGsV,IAAI,IAAIxN,UAAU,CAACuN,SAAS,CAACrV,IAAX,EAAiB6D,QAAjB,CAA/B;EAEA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC,+BAAD,EAAkC4K,SAAlC,CADvB;EAEE,IAAA,KAAK,EAAE;EACL2H,MAAAA,IAAI,EAAK4G,SAAS,CAACxO,QAAf;EADC,KAFT;EAKE,yBAAmB7G;EALrB,IADF;EASD;;EAEDoV,gBAAgB,CAACxO,SAAjB,GAA6B;EAC3B/C,EAAAA,QAAQ,EAAE9H,SAAS,CAAChB,MADO;EAE3Bsa,EAAAA,SAAS,EAAEtZ,SAAS,CAACf,MAFM;EAG3B8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHM,CAA7B;EAKAma,gBAAgB,CAAC7N,WAAjB,GAA+B,kBAA/B;;ECrBA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhBqa,EAAAA,SAAS,EAAEtZ,SAAS,CAACf,MAFL;EAGhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAHH;EAIhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;;MAOqBsa;;;;;EACnB,mBAAYtb,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKoM,UAAL,GAAkB,MAAKA,UAAL,CAAgBzZ,IAAhB,+BAAlB;EACA,UAAK4b,UAAL,GAAkB,MAAKA,UAAL,CAAgB5b,IAAhB,+BAAlB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EAEA,UAAK+Z,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAKga,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAKia,aAAL,GAAqB,MAAKA,aAAL,CAAmBja,IAAnB,+BAArB;EAV0B;EAW3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBoK,qBAAA,8BAAqB;EAErB;;;;;;;;WAMA8B,aAAA,sBAAa;EAAA,6BACoC,KAAKpZ,KAAL,CAAWsJ,MAD/C;EAAA,QACHO,WADG,sBACHA,WADG;EAAA,QACUC,WADV,sBACUA,WADV;EAAA,QACuBF,QADvB,sBACuBA,QADvB;EAEX,QAAM7D,IAAI,GAAG+D,WAAW,IAAID,WAA5B;EACA,QAAMkR,OAAO,GAAGhV,IAAI,GAAG6D,QAAvB;EACA,WAAOmR,OAAO,IAAI,CAAX,GAAe,CAAf,GAAmBA,OAA1B;EACD;;WAEDQ,aAAA,oBAAWlG,KAAX,EAAkB;EAAA,QAEJzL,QAFI,GAGZ,KAAK5J,KAHO,CAEdsJ,MAFc,CAEJM,QAFI;EAIhB,QAAM4R,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACA,QAAMoG,OAAO,GAAGD,QAAQ,GAAG5R,QAA3B,CALgB;;EAQhB,WAAO6R,OAAO,KAAK7R,QAAZ,GAAuB6R,OAAO,GAAG,GAAjC,GAAuCA,OAA9C;EACD;;WAED/B,kBAAA,2BAAkB;;WAElBE,gBAAA,uBAAcvE,KAAd,EAAqB;EAAA,QACX5J,OADW,GACC,KAAKzL,KADN,CACXyL,OADW;EAEnB,QAAMgQ,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB,CAFmB;;EAInB5J,IAAAA,OAAO,CAAC/C,IAAR,CAAa+S,OAAb;EACAhQ,IAAAA,OAAO,CAACzF,gBAAR,CAAyByV,OAAzB;EACD;;WAED9B,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACb5J,OADa,GACD,KAAKzL,KADJ,CACbyL,OADa;EAErB,QAAMgQ,OAAO,GAAG,KAAKF,UAAL,CAAgBlG,KAAhB,CAAhB;EACA5J,IAAAA,OAAO,CAAC3F,iBAAR,CAA0B2V,OAA1B;EACD;;WAED7C,cAAA,uBAAc;EAAA,QACJnN,OADI,GACQ,KAAKzL,KADb,CACJyL,OADI;EAEZA,IAAAA,OAAO,CAAC9C,OAAR,CAAgB,CAAhB;EACD;;WAEDkQ,WAAA,oBAAW;EAAA,QACDpN,OADC,GACW,KAAKzL,KADhB,CACDyL,OADC;EAETA,IAAAA,OAAO,CAAC5C,MAAR,CAAe,CAAf;EACD;;WAEDsE,SAAA,kBAAS;EAAA;;EAAA,sBAIH,KAAKnN,KAJF;EAAA,0CAELsJ,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,QAGLqR,SAHK,eAGLA,SAHK;EAKP,QAAMrV,IAAI,GAAG+D,WAAW,IAAID,WAA5B;EAEA,WACEuD,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAAAsO,KAAK,EAAI;EACZ,QAAA,MAAI,CAACtB,MAAL,GAAcsB,KAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,oBAJR;EAKE,MAAA,SAAS,EAAEzZ,UAAU,CACnB,iCADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CALvB;EASE,MAAA,QAAQ,EAAE,CAAC,KAAKuM,UAAL,KAAoB,GAArB,EAA0BmB,OAA1B,CAAkC,CAAlC,CATZ;EAUE,MAAA,SAAS,EAAE1M,UAAU,CAAC9H,IAAD,EAAO6D,QAAP,CAVvB;EAWE,MAAA,WAAW,EAAE,KAAK8P,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,OAkBEzL,6BAAC,eAAD;EACE,MAAA,QAAQ,EAAErD,QADZ;EAEE,MAAA,WAAW,EAAEhE,IAFf;EAGE,MAAA,QAAQ,EAAE6D;EAHZ,MAlBF,EAuBEwD,6BAAC,gBAAD;EAAkB,MAAA,QAAQ,EAAExD,QAA5B;EAAsC,MAAA,SAAS,EAAEwR;EAAjD,MAvBF,EAwBEhO,6BAAC,eAAD;EAAiB,MAAA,WAAW,EAAErH,IAA9B;EAAoC,MAAA,QAAQ,EAAE6D;EAA9C,MAxBF,CADF;EA4BD;;;IAvGkCyD;EA0GrCiO,OAAO,CAAC3O,SAAR,GAAoBA,WAApB;EACA2O,OAAO,CAAChO,WAAR,GAAsB,SAAtB;;ECrHA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;MAKqB2a;;;;;EACnB,2BAAY3b,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXuQ,MAAAA,SAAS,EAAE;EACTrV,QAAAA,IAAI,EAAE,IADG;EAET6G,QAAAA,QAAQ,EAAE;EAFD;EADA,KAAb;EAOA,UAAKgP,uBAAL,GAA+B,MAAKjC,eAAL,CAAqBha,IAArB,+BAA/B;EAV0B;EAW3B;;;;WAEDga,kBAAA,yBAAgBtE,KAAhB,EAAuB;EACrB,QAAI,CAACA,KAAK,CAACU,KAAX,EAAkB;EAChB;EACD;;EAHoB,QAKTnM,QALS,GAMjB,KAAK5J,KANY,CAKnBsJ,MALmB,CAKTM,QALS;EAOrB,QAAMrI,IAAI,GAAG,KAAKsa,OAAlB;EACA,QAAMJ,OAAO,GAAGpB,kBAAA,CAAuB9Y,IAAvB,EAA6B8T,KAA7B,EAAoCe,CAApC,GAAwCxM,QAAxD;EACA,QAAMgD,QAAQ,GAAGyI,KAAK,CAACU,KAAN,GAAcsE,cAAA,CAAmB9Y,IAAnB,EAAyBiT,IAAxD;EAEA,SAAKR,QAAL,CAAc;EACZoH,MAAAA,SAAS,EAAE;EACTrV,QAAAA,IAAI,EAAE0V,OADG;EAET7O,QAAAA,QAAQ,EAARA;EAFS;EADC,KAAd;EAMD;;WAEDO,SAAA,kBAAS;EAAA;;EAAA,QACCN,SADD,GACe,KAAK7M,KADpB,CACC6M,SADD;EAEP,WACEO;EACE,MAAA,WAAW,EAAE,KAAKwO,uBADpB;EAEE,MAAA,SAAS,EAAE3Z,UAAU,CACnB,0DADmB,EAEnB4K,SAFmB;EAFvB,OAOEO,6BAAC,OAAD;EACE,MAAA,SAAS,EAAE,KAAKvC,KAAL,CAAWuQ,SADxB;EAEE,MAAA,GAAG,EAAE,aAAArf,CAAC,EAAI;EACR,QAAA,MAAI,CAAC8f,OAAL,GAAe9f,CAAf;EACD;EAJH,OAKM,KAAKiE,KALX,EAPF,CADF;EAiBD;;;IApD0CqN;EAuD7CsO,eAAe,CAAChP,SAAhB,GAA4BA,WAA5B;EACAgP,eAAe,CAACrO,WAAhB,GAA8B,iBAA9B;;EChEA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;MAMqB8a;;;;;EACnB,sBAAY9b,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EACA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAF0B;EAG3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJyL,OADI,eACJA,OADI;EAAA,QACKnC,MADL,eACKA,MADL;;EAEZ,QAAIA,MAAM,CAACY,MAAX,EAAmB;EACjBuB,MAAAA,OAAO,CAACrD,IAAR;EACD,KAFD,MAEO;EACLqD,MAAAA,OAAO,CAACjD,KAAR;EACD;EACF;;WAED2E,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAEP,QAAMkP,WAAW,GAAGzS,MAAM,CAACY,MAAP,GAAgB,MAAhB,GAAyB,OAA7C;EAEA,WACEkD;EACE,MAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,QAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,OAHH;EAIE,MAAA,SAAS,EAAEkG,UAAU,CAAC4K,SAAD,EAAY;EAC/B,wCAAgC,IADD;EAE/B,mCAA2B,IAFI;EAG/B,kCAA0B,IAHK;EAI/B,kCAA0BvD,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,KAAK+C;EAbhB,OAeEG;EAAM,MAAA,SAAS,EAAC;EAAhB,OAAgD2O,WAAhD,CAfF,CADF;EAmBD;;;IAtCqC1O;EAyCxCyO,UAAU,CAACnP,SAAX,GAAuBA,WAAvB;EACAmP,UAAU,CAACxO,WAAX,GAAyB,YAAzB;;ECjDA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAFL;EAGhB4H,EAAAA,OAAO,EAAE9G,SAAS,CAACL,KAAV,CAAgB,CAAC,CAAD,EAAI,EAAJ,EAAQ,EAAR,CAAhB;EAHO,CAAlB;EAMA,IAAMqL,cAAY,GAAG;EACnBlE,EAAAA,OAAO,EAAE;EADU,CAArB;AAIA,8BAAe,UAACqK,IAAD,EAAU;EAAA,MACjBgJ,oBADiB;EAAA;EAAA;EAAA;;EAErB,kCAAYjc,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,oCAAMhN,KAAN,EAAagN,OAAb;EACA,YAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAF0B;EAG3B;;EALoB;;EAAA,WAOrBsN,WAPqB,GAOrB,uBAAc;EAAA,wBACiB,KAAKjN,KADtB;EAAA,UACJyL,OADI,eACJA,OADI;EAAA,UACK7C,OADL,eACKA,OADL;;EAGZ,UAAIqK,IAAI,KAAK,SAAb,EAAwB;EACtBxH,QAAAA,OAAO,CAAC9C,OAAR,CAAgBC,OAAhB;EACD,OAFD,MAEO;EACL6C,QAAAA,OAAO,CAAC5C,MAAR,CAAeD,OAAf;EACD;EACF,KAfoB;;EAAA,WAiBrBuE,MAjBqB,GAiBrB,kBAAS;EAAA;;EAAA,yBACwB,KAAKnN,KAD7B;EAAA,UACC4I,OADD,gBACCA,OADD;EAAA,UACUiE,SADV,gBACUA,SADV;EAEP,UAAM5K,UAAU,GAAG,CACjB,yBADiB,EAEjB,wBAFiB,EAGjB,sBAHiB,CAAnB;EAKAA,MAAAA,UAAU,CAACI,IAAX,2BAC0B4Q,IAD1B,SACkCrK,OADlC,uBAEqBqK,IAFrB;;EAIA,UAAIpG,SAAJ,EAAe;EACb5K,QAAAA,UAAU,CAACI,IAAX,CAAgBwK,SAAhB;EACD;;EACD,aACEO;EACE,QAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,UAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,SAHH;EAIE,QAAA,SAAS,EAAEkG,UAAU,CAAC1D,IAAX,CAAgB,GAAhB,CAJb;EAKE,QAAA,IAAI,EAAC,QALP;EAME,QAAA,OAAO,EAAE,KAAK0O;EANhB,SAQEG;EAAM,QAAA,SAAS,EAAC;EAAhB,SAAmD6F,IAAnD,SAA2DrK,OAA3D,cARF,CADF;EAYD,KA3CoB;;EAAA;EAAA,IACYyE,eADZ;;EA8CvB4O,EAAAA,oBAAoB,CAACtP,SAArB,GAAiCA,WAAjC;EACAsP,EAAAA,oBAAoB,CAACnP,YAArB,GAAoCA,cAApC;EACA,SAAOmP,oBAAP;EACD,CAjDD;;ECVA,IAAMC,cAAc,GAAGD,oBAAoB,CAAC,SAAD,CAA3C;EAEAC,cAAc,CAAC5O,WAAf,GAA6B,gBAA7B;;ECFA,IAAM6O,aAAa,GAAGF,oBAAoB,CAAC,QAAD,CAA1C;EACAE,aAAa,CAAC7O,WAAd,GAA4B,eAA5B;;ECAA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;;MAMqBob;;;;;EACnB,4BAAYpc,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJsJ,MADI,eACJA,MADI;EAAA,QACImC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACpC,gBAAR,CAAyBC,MAAzB;EACD;;WAED6D,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAEP,WACEO;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,gDAAwCvD,MAAM,CAACtB,YADjD;EAEE,2CAAmC,CAACsB,MAAM,CAACtB;EAF7C,OAFmB,EAMnB,wGANmB,CADvB;EASE,MAAA,GAAG,EAAE,aAACjM,CAAD,EAAO;EACV,QAAA,MAAI,CAACigB,MAAL,GAAcjgB,CAAd;EACD,OAXH;EAYE,MAAA,IAAI,EAAC,QAZP;EAaE,MAAA,QAAQ,EAAC,GAbX;EAcE,MAAA,OAAO,EAAE,KAAKkR;EAdhB,OAgBEG;EAAM,MAAA,SAAS,EAAC;EAAhB,wBAhBF,CADF;EAoBD;;;IAlC2CC;EAqC9C+O,gBAAgB,CAACzP,SAAjB,GAA6BA,WAA7B;EACAyP,gBAAgB,CAAC9O,WAAjB,GAA+B,kBAA/B;;EC1CA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASqb,oBAAT,OAGG;EAAA,yBAFD/S,MAEC;EAAA,MAFSO,WAET,eAFSA,WAET;EAAA,MAFsBD,QAEtB,eAFsBA,QAEtB;EAAA,MADDiD,SACC,QADDA,SACC;EACD,MAAMyP,aAAa,GAAG1S,QAAQ,GAAGC,WAAjC;EACA,MAAM0S,aAAa,GAAG1O,UAAU,CAACyO,aAAD,CAAhC;EACA,SACElP;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,qFADmB,EAEnB4K,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,wCAAf;EAAwD,iBAAU;EAAlE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,uBADF,QAEOmP,aAFP,CANF,CADF;EAaD;;EAEDF,oBAAoB,CAAC1P,SAArB,GAAiCA,WAAjC;EACA0P,oBAAoB,CAAC/O,WAArB,GAAmC,sBAAnC;;EC3BA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASwb,kBAAT,OAA8E;EAAA,yBAAhDlT,MAAgD;EAAA,MAAtCO,WAAsC,eAAtCA,WAAsC;EAAA,MAAzBD,QAAyB,eAAzBA,QAAyB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;EAC5E,MAAM0P,aAAa,GAAG1O,UAAU,CAAChE,WAAD,EAAcD,QAAd,CAAhC;EACA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,mFADmB,EAEnB4K,SAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,sCAAf;EAAsD,iBAAU;EAAhE,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,qBADF,EAEGmP,aAFH,CANF,CADF;EAaD;;EAEDC,kBAAkB,CAAC7P,SAAnB,GAA+BA,WAA/B;EACA6P,kBAAkB,CAAClP,WAAnB,GAAiC,oBAAjC;;ECvBA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;;EAKA,SAASyb,eAAT,OAA8D;EAAA,MAAzB7S,QAAyB,QAAnCN,MAAmC,CAAzBM,QAAyB;EAAA,MAAbiD,SAAa,QAAbA,SAAa;EAC5D,MAAM0P,aAAa,GAAG1O,UAAU,CAACjE,QAAD,CAAhC;EACA,SACEwD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB,+EAFmB;EADvB,KAMEO;EAAK,IAAA,SAAS,EAAC,kCAAf;EAAkD,iBAAU;EAA5D,KACEA;EAAM,IAAA,SAAS,EAAC;EAAhB,sBADF,EAEGmP,aAFH,CANF,CADF;EAaD;;EAEDE,eAAe,CAAC9P,SAAhB,GAA4BA,WAA5B;EACA8P,eAAe,CAACnP,WAAhB,GAA8B,iBAA9B;;ECzBA,IAAMX,WAAS,GAAG;EAChB+P,EAAAA,SAAS,EAAE5a,SAAS,CAACd,MADL;EAEhB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAFL,CAAlB;AAKA,EAAe,SAAS2b,WAAT,OAA+C;EAAA,MAAxBD,SAAwB,QAAxBA,SAAwB;EAAA,MAAb7P,SAAa,QAAbA,SAAa;EAC5D,MAAM+P,aAAa,GAAGF,SAAS,IAAI,GAAnC;EACA,SACEtP;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB,2DADmB,EAEnB4K,SAFmB,CADvB;EAKE,IAAA,GAAG,EAAC;EALN,KAOEO,0CACEA,2CAAOwP,aAAP,CADF,CAPF,CADF;EAaD;EAEDD,WAAW,CAAChQ,SAAZ,GAAwBA,WAAxB;EACAgQ,WAAW,CAACrP,WAAZ,GAA0B,aAA1B;;ECvBA,IAAMX,WAAS,GAAG;EAChBkQ,EAAAA,OAAO,EAAE/a,SAAS,CAACd,MADH;EAEhBmY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhByY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAHH;EAIhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAJF;EAKhBgM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM8L,cAAY,GAAG;EACnB+P,EAAAA,OAAO,EAAE;EADU,CAArB;;MAIqBC;;;;;EACnB,8BAAY9c,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAK+S,cAAL,GAAsB,MAAKA,cAAL,CAAoB/S,IAApB,+BAAtB;EAN0B;EAO3B;;;;WAED6X,uBAAA,8BAAqBvb,CAArB,EAAwB;EACtB,SAAK6d,UAAL,CAAgB7d,CAAhB;EACD;;WAEDyW,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,WAAKtL,WAAL,CAAiBoI,KAAjB;EACD;EACF;;WAEDpI,cAAA,qBAAYoI,KAAZ,EAAmB;EAAA,QACT8D,OADS,GACG,KAAKnZ,KADR,CACTmZ,OADS;EAEjBA,IAAAA,OAAO,CAAC9D,KAAD,CAAP;EACD;;WAEDwE,cAAA,qBAAY5d,CAAZ,EAAe;EACb0K,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAK0L,cAA1C;;EACA,QAAI,KAAK1S,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ0K,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKwL,cAA7C;;EACA,QAAI,KAAK1S,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDkR,SAAA,kBAAS;EACP,QAAM4P,GAAG,GAAG,KAAK/c,KAAL,CAAW6c,OAAvB;;EACA,QAAM7c,KAAK,gBAAQ,KAAKA,KAAb,CAAX;;EACA,WAAOA,KAAK,CAAC6c,OAAb;EACA,WAAO7c,KAAK,CAAC6M,SAAb;EACA,WACEO,6BAAC,GAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC,KAAKjC,KAAL,CAAW6M,SAAZ,CADvB;EAEE,MAAA,IAAI,EAAC,QAFP;EAGE,MAAA,QAAQ,EAAC,GAHX;EAIE,MAAA,OAAO,EAAE,KAAKI,WAJhB;EAKE,MAAA,OAAO,EAAE,KAAK4M,WALhB;EAME,MAAA,MAAM,EAAE,KAAKC;EANf,OAOM9Z,KAPN,EADF;EAWD;;;IAzD6CqN;EA4DhDyP,kBAAkB,CAACnQ,SAAnB,GAA+BA,WAA/B;EACAmQ,kBAAkB,CAAChQ,YAAnB,GAAkCA,cAAlC;EACAgQ,kBAAkB,CAACxP,WAAnB,GAAiC,oBAAjC;;EC3EA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhBkO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ;EAFJ,CAAlB;;MAKqB8b;;;;;EACnB,iBAAYhd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDpL,SAAA,kBAAS;EAAA,QACC8B,QADD,GACc,KAAKjP,KADnB,CACCiP,QADD;EAEP,WACE7B;EAAK,MAAA,SAAS,EAAC,sBAAf;EAAsC,MAAA,OAAO,EAAE,KAAKH;EAApD,OACEG;EAAK,MAAA,SAAS,EAAC;EAAf,OAA+C6B,QAA/C,CADF,CADF;EAKD;;;IAnBgC5B;EAsBnC2P,KAAK,CAACrQ,SAAN,GAAkBA,WAAlB;EACAqQ,KAAK,CAAC1P,WAAN,GAAoB,OAApB;;ECzBA,IAAMX,WAAS,GAAG;EAChBsQ,EAAAA,MAAM,EAAEnb,SAAS,CAAClB,IADF;EAEhBuY,EAAAA,OAAO,EAAErX,SAAS,CAACjB,IAAV,CAAeL,UAFR;EAGhByY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAHH;EAIhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB,IAJF;EAKhBgM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EALL,CAAlB;EAQA,IAAM8L,cAAY,GAAG;EACnBmQ,EAAAA,MAAM,EAAE;EADW,CAArB;AAIA,EAAe,SAASC,WAAT,CAAqBld,KAArB,EAA4B;EAAA,MACjCid,MADiC,GACXjd,KADW,CACjCid,MADiC;EAAA,MACzBpQ,SADyB,GACX7M,KADW,CACzB6M,SADyB;;EAEzC,MAAMmL,EAAE,gBAAQhY,KAAR,CAAR;;EACA,SAAOgY,EAAE,CAAC/I,QAAV;EACA,SAAO+I,EAAE,CAACiF,MAAV;EACA,SAAOjF,EAAE,CAACnL,SAAV;EACA,SACEO,6BAAC,kBAAD;EACE,IAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,4CAAsC,CAAC,CAACoQ,MAD1C;EAEE,2CAAqC,CAACA;EAFxC,KAFmB,EAMnB,4EANmB;EADvB,KASMjF,EATN,GAWE5K,6BAAC,KAAD,EAAWpN,KAAX,CAXF,CADF;EAeD;EAEDkd,WAAW,CAACvQ,SAAZ,GAAwBA,WAAxB;EACAuQ,WAAW,CAACpQ,YAAZ,GAA2BA,cAA3B;EACAoQ,WAAW,CAAC5P,WAAZ,GAA0B,aAA1B;;ECvCA,IAAMX,WAAS,GAAG;EAChB2N,EAAAA,UAAU,EAAExY,SAAS,CAACd,MADN;EAEhBqY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAFJ;EAGhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAHL,CAAlB;EAMA,IAAM8L,cAAY,GAAG;EACnBwN,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,MAAbxM,SAAa,QAAbA,SAAa;EACxD,MAAMoH,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,SACElN;EACE,IAAA,SAAS,EAAEnL,UAAU,CAAC4K,SAAD,EAAY,8BAAZ,CADvB;EAEE,IAAA,KAAK,EAAEoH;EAFT,KAIE7G;EAAM,IAAA,SAAS,EAAC;EAAhB,IAJF,CADF;EAQD;;EAED+P,WAAW,CAACxQ,SAAZ,GAAwBA,WAAxB;EACAwQ,WAAW,CAACrQ,YAAZ,GAA2BA,cAA3B;EACAqQ,WAAW,CAAC7P,WAAZ,GAA0B,aAA1B;;EC5BA,IAAMX,WAAS,GAAG;EAChBlB,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MADH;EAEhBuI,EAAAA,MAAM,EAAExH,SAAS,CAACf,MAFF;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhBiY,EAAAA,OAAO,EAAEnX,SAAS,CAACjB,IAJH;EAKhBqY,EAAAA,MAAM,EAAEpX,SAAS,CAACjB;EALF,CAAlB;;MAQMwc;;;;;EACJ,qBAAYrd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXyP,MAAAA,UAAU,EAAE;EADD,KAAb;EAIA,UAAKX,eAAL,GAAuB,MAAKA,eAAL,CAAqBha,IAArB,+BAAvB;EACA,UAAK2d,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B3d,IAA5B,+BAA9B;EACA,UAAK4d,UAAL,GAAkB,MAAKA,UAAL,CAAgB5d,IAAhB,+BAAlB;EACA,UAAKyZ,UAAL,GAAkB,MAAKA,UAAL,CAAgBzZ,IAAhB,+BAAlB;EACA,UAAKiZ,WAAL,GAAmB,MAAKA,WAAL,CAAiBjZ,IAAjB,+BAAnB;EACA,UAAKkZ,QAAL,GAAgB,MAAKA,QAAL,CAAclZ,IAAd,+BAAhB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAf0B;EAgB3B;;;;WAEDuN,oBAAA,6BAAoB;;WAEpBkM,aAAA,sBAAa;EAAA,QACH9P,MADG,GACQ,KAAKtJ,KADb,CACHsJ,MADG;;EAEX,QAAIA,MAAM,CAACF,KAAX,EAAkB;EAChB,aAAO,CAAP;EACD;;EACD,WAAOE,MAAM,CAACJ,MAAd;EACD;;WAEDqU,aAAA,sBAAa;EAAA,sBACiB,KAAKvd,KADtB;EAAA,QACHsJ,MADG,eACHA,MADG;EAAA,QACKmC,OADL,eACKA,OADL;;EAEX,QAAInC,MAAM,CAACF,KAAX,EAAkB;EAChBqC,MAAAA,OAAO,CAACtC,IAAR,CAAa,KAAb;EACD;EACF;;WAEDwQ,kBAAA,yBAAgBtE,KAAhB,EAAuB;EAAA,QACb5J,OADa,GACD,KAAKzL,KADJ,CACbyL,OADa;EAErB,SAAK8R,UAAL;EACA,QAAM/B,QAAQ,GAAG,KAAKpB,MAAL,CAAYL,iBAAZ,CAA8B1E,KAA9B,CAAjB;EACA5J,IAAAA,OAAO,CAACxC,YAAR,CAAqBuS,QAArB;EACD;;WAED5C,cAAA,uBAAc;EAAA,uBACgB,KAAK5Y,KADrB;EAAA,QACJsJ,MADI,gBACJA,MADI;EAAA,QACImC,OADJ,gBACIA,OADJ;EAEZ,SAAK8R,UAAL;EACA9R,IAAAA,OAAO,CAACxC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAED2P,WAAA,oBAAW;EAAA,uBACmB,KAAK7Y,KADxB;EAAA,QACDsJ,MADC,gBACDA,MADC;EAAA,QACOmC,OADP,gBACOA,OADP;EAET,SAAK8R,UAAL;EACA9R,IAAAA,OAAO,CAACxC,YAAR,CAAqBK,MAAM,CAACJ,MAAP,GAAgB,GAArC;EACD;;WAED2Q,cAAA,qBAAY5d,CAAZ,EAAe;EACb,QAAI,KAAK+D,KAAL,CAAWiZ,OAAf,EAAwB;EACtB,WAAKjZ,KAAL,CAAWiZ,OAAX,CAAmBhd,CAAnB;EACD;EACF;;WAED6d,aAAA,oBAAW7d,CAAX,EAAc;EACZ,QAAI,KAAK+D,KAAL,CAAWkZ,MAAf,EAAuB;EACrB,WAAKlZ,KAAL,CAAWkZ,MAAX,CAAkBjd,CAAlB;EACD;EACF;;WAEDqhB,yBAAA,gCAAuBhD,UAAvB,EAAmC;EACjC,QAAIA,UAAU,KAAK,KAAKzP,KAAL,CAAWyP,UAA9B,EAA0C;EACxC,WAAKtG,QAAL,CAAc;EACZsG,QAAAA,UAAU,EAAVA;EADY,OAAd;EAGD;EACF;;WAEDrN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAAC8E,eAAN;EACD;;WAEDhN,SAAA,kBAAS;EAAA;;EAAA,uBACuB,KAAKnN,KAD5B;EAAA,QACCsJ,MADD,gBACCA,MADD;EAAA,QACSuD,SADT,gBACSA,SADT;EAGP,QAAM3D,MAAM,GAAG,CAACI,MAAM,CAACJ,MAAP,GAAgB,GAAjB,EAAsBqR,OAAtB,CAA8B,CAA9B,CAAf;EACA,WACEnN,6BAAC,MAAD;EACE,MAAA,GAAG,EAAE,aAACrR,CAAD,EAAO;EACV,QAAA,MAAI,CAACqe,MAAL,GAAcre,CAAd;EACD,OAHH;EAIE,MAAA,KAAK,EAAC,cAJR;EAKE,MAAA,QAAQ,EAAEmN,MALZ;EAME,MAAA,SAAS,EAAKA,MAAL,MANX;EAOE,MAAA,WAAW,EAAE,KAAKyQ,eAPpB;EAQE,MAAA,OAAO,EAAE,KAAKE,WARhB;EASE,MAAA,MAAM,EAAE,KAAKC,UATf;EAUE,MAAA,OAAO,EAAE,KAAK7M,WAVhB;EAWE,MAAA,YAAY,EAAE,KAAK4M,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,KAAK7Y,KAjBX;EAkBE,MAAA,SAAS,EAAEiC,UAAU,CACnB4K,SADmB,EAEnB,uDAFmB;EAlBvB,QAuBEO,6BAAC,WAAD,EAAiB,KAAKpN,KAAtB,CAvBF,CADF;EA2BD;;;IA9GqBqN;;EAiHxBgQ,SAAS,CAAC1Q,SAAV,GAAsBA,WAAtB;EACA0Q,SAAS,CAAC/P,WAAV,GAAwB,WAAxB;;EC1HA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhBsY,EAAAA,QAAQ,EAAEvX,SAAS,CAAClB,IAHJ;EAIhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAJL;EAKhBwc,EAAAA,gBAAgB,EAAE1b,SAAS,CAAClB;EALZ,CAAlB;EAQA,IAAMkM,cAAY,GAAG;EACnBuM,EAAAA,QAAQ,EAAE;EADS,CAArB;;MAIMoE;;;;;EACJ,4BAAYzd,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE;EADG,KAAb;EAIA,UAAKhN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EAT0B;EAU3B;;;;WAiBDsN,cAAA,uBAAc;EAAA,sBACgB,KAAKjN,KADrB;EAAA,QACJsJ,MADI,eACJA,MADI;EAAA,QACImC,OADJ,eACIA,OADJ;EAEZA,IAAAA,OAAO,CAACtC,IAAR,CAAa,CAACG,MAAM,CAACF,KAArB;EACD;;WAEDyQ,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;;WAED9M,SAAA,kBAAS;EAAA,uBACiC,KAAKnN,KADtC;EAAA,QACCqZ,QADD,gBACCA,QADD;EAAA,QACW/P,MADX,gBACWA,MADX;EAAA,QACmBuD,SADnB,gBACmBA,SADnB;EAEP,QAAMoQ,MAAM,GAAG,CAAC5D,QAAhB;EACA,QAAMqE,KAAK,GAAG,KAAKC,WAAnB;EACA,WACEvQ,6BAAC,WAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,uDAA+CwM,QADjD;EAEE,yDAAiD,CAACA,QAFpD;EAGE,qCAA6B/P,MAAM,CAACF,KAHtC;EAIE,iCAAyBsU,KAAK,KAAK,CAAV,IAAe,CAACpU,MAAM,CAACF,KAJlD;EAKE,iCAAyBsU,KAAK,KAAK,CALrC;EAME,iCAAyBA,KAAK,KAAK,CANrC;EAOE,iCAAyBA,KAAK,KAAK,CAPrC;EAQE,yCACE,KAAK1d,KAAL,CAAWwd,gBAAX,IAA+B,KAAK3S,KAAL,CAAWoP,MAT9C;EAUE,wCACE,KAAKja,KAAL,CAAWwd,gBAAX,IAA+B,KAAK3S,KAAL,CAAWoP;EAX9C,OAFmB,EAenB,oCAfmB,CADvB;EAkBE,MAAA,OAAO,EAAE,KAAKhN,WAlBhB;EAmBE,MAAA,MAAM,EAAEgQ;EAnBV,OAqBE7P,6BAAC,SAAD;EACE,MAAA,OAAO,EAAE,KAAKyM,WADhB;EAEE,MAAA,MAAM,EAAE,KAAKC;EAFf,OAGM,KAAK9Z,KAHX,EArBF,CADF;EA6BD;;;;0BAjEiB;EAAA,+BAGZ,KAAKA,KAHO,CAEdsJ,MAFc;EAAA,UAEJJ,MAFI,sBAEJA,MAFI;EAAA,UAEIE,KAFJ,sBAEIA,KAFJ;EAIhB,UAAIsU,KAAK,GAAG,CAAZ;;EACA,UAAIxU,MAAM,KAAK,CAAX,IAAgBE,KAApB,EAA2B;EACzBsU,QAAAA,KAAK,GAAG,CAAR;EACD,OAFD,MAEO,IAAIxU,MAAM,GAAG,IAAb,EAAmB;EACxBwU,QAAAA,KAAK,GAAG,CAAR;EACD,OAFM,MAEA,IAAIxU,MAAM,GAAG,IAAb,EAAmB;EACxBwU,QAAAA,KAAK,GAAG,CAAR;EACD;;EACD,aAAOA,KAAP;EACD;;;;IA1B4BrQ;;EAiF/BoQ,gBAAgB,CAAC9Q,SAAjB,GAA6BA,WAA7B;EACA8Q,gBAAgB,CAAC3Q,YAAjB,GAAgCA,cAAhC;EACA2Q,gBAAgB,CAACnQ,WAAjB,GAA+B,kBAA/B;;ECnGA,IAAMX,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ;EADJ,CAAlB;;MAIqB0c;;;;;EACnB,gBAAY5d,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,qBAAYoI,KAAZ,EAAmB;EACjBA,IAAAA,KAAK,CAACkD,cAAN,GADiB;EAGlB;;WAEDpL,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,KAAKpN,KAAL,CAAWiP,QAAzD,CALF,CADF;EASD;;;IAtB+B5B;EAyBlCuQ,IAAI,CAACjR,SAAL,GAAiBA,WAAjB;EACAiR,IAAI,CAACtQ,WAAL,GAAmB,MAAnB;;EC7BA,IAAMX,WAAS,GAAG;EAChBkR,EAAAA,IAAI,EAAE/b,SAAS,CAACf,MADA;EAEhB+c,EAAAA,KAAK,EAAEhc,SAAS,CAAChB,MAFD;EAGhBid,EAAAA,aAAa,EAAEjc,SAAS,CAAChB,MAHT;EAIhBkd,EAAAA,YAAY,EAAElc,SAAS,CAACjB;EAJR,CAAlB;;MAOqBod;;;;;EACnB,oBAAYje,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EAH0B;EAI3B;;;;WAEDsN,cAAA,uBAAc;EAAA,sBACoB,KAAKjN,KADzB;EAAA,QACJ8d,KADI,eACJA,KADI;EAAA,QACGE,YADH,eACGA,YADH;EAEZA,IAAAA,YAAY,CAACF,KAAD,CAAZ;EACD;;WAED3Q,SAAA,kBAAS;EAAA,uBACgC,KAAKnN,KADrC;EAAA,QACC6d,IADD,gBACCA,IADD;EAAA,QACOC,KADP,gBACOA,KADP;EAAA,QACcC,aADd,gBACcA,aADd;EAEP,WACE3Q;EACE,MAAA,SAAS,EAAEnL,UAAU,CAAC;EACpB,qCAA6B,IADT;EAEpB,oCAA4B6b,KAAK,KAAKC;EAFlB,OAAD,CADvB;EAKE,MAAA,IAAI,EAAC,UALP;EAME,MAAA,OAAO,EAAE,KAAK9Q;EANhB,OAQG4Q,IAAI,CAACvE,KARR,EASElM;EAAM,MAAA,SAAS,EAAC;EAAhB,MATF,CADF;EAaD;;;IA3BmCC;EA8BtC4Q,QAAQ,CAACtR,SAAT,GAAqBA,WAArB;EACAsR,QAAQ,CAAC3Q,WAAT,GAAuB,UAAvB;;ECnCA,IAAMX,WAAS,GAAG;EAChBsQ,EAAAA,MAAM,EAAEnb,SAAS,CAAClB,IADF;EAEhBsd,EAAAA,KAAK,EAAEpc,SAAS,CAACnB,KAFD;EAGhBkM,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhBgd,EAAAA,YAAY,EAAElc,SAAS,CAACjB,IAJR;EAKhBoO,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GALJ;EAMhBid,EAAAA,aAAa,EAAErc,SAAS,CAAChB;EANT,CAAlB;;MASqBsd;;;;;EACnB,sBAAYpe,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKnC,KAAL,GAAa;EACXoP,MAAAA,MAAM,EAAE,KADG;EAEX8D,MAAAA,aAAa,EAAE/d,KAAK,CAACme,aAAN,IAAuB;EAF3B,KAAb;EAKA,UAAKE,eAAL,GAAuB,MAAKA,eAAL,CAAqB1e,IAArB,+BAAvB;EACA,UAAK2e,gBAAL,GAAwB,MAAKA,gBAAL,CAAsB3e,IAAtB,+BAAxB;EACA,UAAKsN,WAAL,GAAmB,MAAKA,WAAL,CAAiBtN,IAAjB,+BAAnB;EACA,UAAK4e,UAAL,GAAkB,MAAKA,UAAL,CAAgB5e,IAAhB,+BAAlB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EACA,UAAK6e,aAAL,GAAqB,MAAKA,aAAL,CAAmB7e,IAAnB,+BAArB;EACA,UAAK8e,eAAL,GAAuB,MAAKA,eAAL,CAAqB9e,IAArB,+BAAvB;EACA,UAAK+e,YAAL,GAAoB,MAAKA,YAAL,CAAkB/e,IAAlB,+BAApB;EACA,UAAKgf,YAAL,GAAoB,MAAKA,YAAL,CAAkBhf,IAAlB,+BAApB;EACA,UAAKif,SAAL,GAAiB,MAAKA,SAAL,CAAejf,IAAf,+BAAjB;EACA,UAAKyX,cAAL,GAAsB,MAAKA,cAAL,CAAoBzX,IAApB,+BAAtB;EACA,UAAKkf,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EACA,UAAKmf,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBnf,IAAvB,+BAAzB;EArB0B;EAsB3B;;;;WAED2X,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAIA,SAAS,CAAC4G,aAAV,KAA4B,KAAKne,KAAL,CAAWme,aAA3C,EAA0D;EACxD,WAAKG,gBAAL,CAAsB,KAAKte,KAAL,CAAWme,aAAjC;EACD;EACF;;WAEDE,kBAAA,yBAAgBP,KAAhB,EAAuB;EACrB,SAAK9J,QAAL,CAAc;EACZ+J,MAAAA,aAAa,EAAED;EADH,KAAd;EAGA,SAAKgB,iBAAL,CAAuBhB,KAAvB;EACD;;WAEDQ,mBAAA,0BAAiBR,KAAjB,EAAwB;EACtB,SAAK9J,QAAL,CAAc;EACZ+J,MAAAA,aAAa,EAAED;EADH,KAAd;EAGA,SAAKgB,iBAAL,CAAuBhB,KAAvB;EACD;;WAEDgB,oBAAA,2BAAkBhB,KAAlB,EAAyB;EAAA,QACfE,YADe,GACE,KAAKhe,KADP,CACfge,YADe;EAEvBA,IAAAA,YAAY,CAACF,KAAD,CAAZ;EACD;;WAED7Q,cAAA,uBAAc;EACZ,SAAK+G,QAAL,CAAc,UAAA3H,SAAS;EAAA,aAAK;EAC1B4N,QAAAA,MAAM,EAAE,CAAC5N,SAAS,CAAC4N;EADO,OAAL;EAAA,KAAvB;EAGD;;WAEDJ,cAAA,uBAAc;EACZlT,IAAAA,QAAQ,CAACK,gBAAT,CAA0B,SAA1B,EAAqC,KAAKoQ,cAA1C;EACD;;WAED0C,aAAA,sBAAa;EACX,SAAK9F,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE;EADI,KAAd;EAGAtT,IAAAA,QAAQ,CAACO,mBAAT,CAA6B,SAA7B,EAAwC,KAAKkQ,cAA7C;EACD;;WAEDoH,gBAAA,uBAAcviB,CAAd,EAAiB;EAAA,QACPiiB,KADO,GACG,KAAKle,KADR,CACPke,KADO;;EAEf,QAAI,KAAKrT,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,UAAIwG,QAAQ,GAAG,KAAKlU,KAAL,CAAWkT,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,GAAG,CAAf,EAAkB;EAChBA,QAAAA,QAAQ,GAAGb,KAAK,CAAC7e,MAAN,GAAe6e,KAAK,CAAC7e,MAAN,GAAe,CAA9B,GAAkC,CAA7C;EACD;;EACD,WAAKif,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDN,kBAAA,yBAAgBxiB,CAAhB,EAAmB;EAAA,QACTiiB,KADS,GACC,KAAKle,KADN,CACTke,KADS;;EAEjB,QAAI,KAAKrT,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,UAAIwG,QAAQ,GAAG,KAAKlU,KAAL,CAAWkT,aAAX,GAA2B,CAA1C;;EACA,UAAIgB,QAAQ,IAAIb,KAAK,CAAC7e,MAAtB,EAA8B;EAC5B0f,QAAAA,QAAQ,GAAG,CAAX;EACD;;EACD,WAAKT,gBAAL,CAAsBS,QAAtB;EACD;EACF;;WAEDH,YAAA,mBAAU3iB,CAAV,EAAa;EACX,QAAI,KAAK4O,KAAL,CAAWoP,MAAf,EAAuB;EACrBhe,MAAAA,CAAC,CAACsc,cAAF;EACA,WAAK8F,eAAL,CAAqB,KAAKxT,KAAL,CAAWkT,aAAhC;EACD;EACF;;WAEDY,eAAA,sBAAa1iB,CAAb,EAAgB;EACdA,IAAAA,CAAC,CAACsc,cAAF;;EACA,QAAI,KAAK1N,KAAL,CAAWoP,MAAf,EAAuB;EACrB,WAAKoE,eAAL,CAAqB,KAAKxT,KAAL,CAAWkT,aAAhC;EACD,KAFD,MAEO;EACL,WAAK/J,QAAL,CAAc;EACZiG,QAAAA,MAAM,EAAE;EADI,OAAd;EAGD;EACF;;WAEDyE,eAAA,wBAAe;EACb,SAAK1K,QAAL,CAAc;EACZiG,MAAAA,MAAM,EAAE,KADI;EAEZ8D,MAAAA,aAAa,EAAE;EAFH,KAAd;EAID;;WAED3G,iBAAA,wBAAe/B,KAAf,EAAsB;EACpB;EACA,QAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EACtB,WAAKwG,YAAL,CAAkBrJ,KAAlB;EACD,KAFD,MAEO,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,CAApB,EAAuB;EAC5B;EACA,WAAK0G,SAAL,CAAevJ,KAAf;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKyG,YAAL,CAAkBtJ,KAAlB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKsG,aAAL,CAAmBnJ,KAAnB;EACD,KAHM,MAGA,IAAIA,KAAK,CAAC6C,KAAN,KAAgB,EAApB,EAAwB;EAC7B;EACA,WAAKuG,eAAL,CAAqBpJ,KAArB;EACD;EACF;;WAEDwJ,mBAAA,0BAAiB1gB,CAAjB,EAAoB;EAClB,SAAKkgB,eAAL,CAAqBlgB,CAArB;EACD;;WAEDogB,aAAA,sBAAa;EAAA;;EACX,QAAI,CAAC,KAAK1T,KAAL,CAAWoP,MAAhB,EAAwB;EACtB,aAAO,IAAP;EACD;;EAHU,QAKHiE,KALG,GAKO,KAAKle,KALZ,CAKHke,KALG;EAMX,WACE9Q,6BAAC,IAAD,QACG8Q,KAAK,CAAC5f,GAAN,CAAU,UAACuf,IAAD,EAAO1f,CAAP;EAAA,aACTiP,6BAAC,QAAD;EACE,QAAA,IAAI,EAAEyQ,IADR;EAEE,QAAA,KAAK,EAAE1f,CAFT;EAGE,QAAA,YAAY,EAAE,MAAI,CAAC0gB,gBAHrB;EAIE,QAAA,aAAa,EAAE,MAAI,CAAChU,KAAL,CAAWkT,aAJ5B;EAKE,QAAA,GAAG,YAAU5f,CAAC;EALhB,QADS;EAAA,KAAV,CADH,CADF;EAaD;;WAEDgP,SAAA,kBAAS;EAAA;;EAAA,sBACuB,KAAKnN,KAD5B;EAAA,QACCid,MADD,eACCA,MADD;EAAA,QACSpQ,SADT,eACSA,SADT;EAGP,WACEO,6BAAC,kBAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB4K,SADmB,EAEnB;EACE,8CAAsC,CAAC,CAACoQ,MAD1C;EAEE,6CAAqC,CAACA,MAFxC;EAGE,8CAAsC,KAAKpS,KAAL,CAAWoP;EAHnD,OAFmB,EAOnB,4EAPmB,CADvB;EAUE,MAAA,IAAI,EAAC,QAVP;EAWE,MAAA,QAAQ,EAAC,GAXX;EAYE,MAAA,GAAG,EAAE,aAACle,CAAD,EAAO;EACV,QAAA,MAAI,CAACijB,UAAL,GAAkBjjB,CAAlB;EACD,OAdH;EAeE,MAAA,OAAO,EAAE,KAAKkR,WAfhB;EAgBE,MAAA,OAAO,EAAE,KAAK4M,WAhBhB;EAiBE,MAAA,MAAM,EAAE,KAAKC;EAjBf,OAmBG,KAAK9Z,KAAL,CAAWiP,QAnBd,EAoBG,KAAKsP,UAAL,EApBH,CADF;EAwBD;;;IA3LqClR;EA8LxC+Q,UAAU,CAACzR,SAAX,GAAuBA,WAAvB;EACAyR,UAAU,CAAC9Q,WAAX,GAAyB,YAAzB;;EC1MA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhBke,EAAAA,KAAK,EAAEnd,SAAS,CAACnB,KAHD;EAIhBkM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EAJL,CAAlB;EAOA,IAAM8L,cAAY,GAAG;EACnBmS,EAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,GAAJ,EAAS,IAAT,EAAe,CAAf,EAAkB,GAAlB,EAAuB,IAAvB;EADY,CAArB;;MAIMC;;;;;EACJ,kCAAYlf,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAK6R,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EAH0B;EAI3B;;;;WAEDkf,mBAAA,0BAAiBf,KAAjB,EAAwB;EAAA,sBACK,KAAK9d,KADV;EAAA,QACdif,KADc,eACdA,KADc;EAAA,QACPxT,OADO,eACPA,OADO;;EAEtB,QAAIqS,KAAK,IAAI,CAAT,IAAcA,KAAK,GAAGmB,KAAK,CAAC5f,MAAhC,EAAwC;EACtCoM,MAAAA,OAAO,CAAC3C,UAAR,CAAmBmW,KAAK,CAACnB,KAAD,CAAxB;EACD;EACF;;WAED3Q,SAAA,kBAAS;EAAA,uBACmB,KAAKnN,KADxB;EAAA,QACCif,KADD,gBACCA,KADD;EAAA,QACQ3V,MADR,gBACQA,MADR;EAEP,QAAM4U,KAAK,GAAGe,KAAK,CAAC3gB,GAAN,CAAU,UAAAyK,IAAI;EAAA,aAAK;EAC/BuQ,QAAAA,KAAK,EAAKvQ,IAAL,MAD0B;EAE/BpN,QAAAA,KAAK,EAAEoN;EAFwB,OAAL;EAAA,KAAd,CAAd;EAIA,QAAMoV,aAAa,GAAGc,KAAK,CAACE,OAAN,CAAc7V,MAAM,CAACN,YAArB,KAAsC,CAA5D;EAEA,WACEoE,6BAAC,UAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,+BADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAKgS,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE/Q;EAAM,MAAA,SAAS,EAAC;EAAhB,uBATF,EAUEA;EAAK,MAAA,SAAS,EAAC;EAAf,OACM9D,MAAM,CAACN,YAAP,CAAoBuR,OAApB,CAA4B,CAA5B,CADN,OAVF,CADF;EAgBD;;;IAtCkClN;;EAyCrC6R,sBAAsB,CAACvS,SAAvB,GAAmCA,WAAnC;EACAuS,sBAAsB,CAACpS,YAAvB,GAAsCA,cAAtC;EACAoS,sBAAsB,CAAC5R,WAAvB,GAAqC,wBAArC;;EC1CA,IAAMX,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GADJ;EAEhBke,EAAAA,QAAQ,EAAEtd,SAAS,CAAClB,IAFJ;EAGhBye,EAAAA,YAAY,EAAEvd,SAAS,CAAChB,MAHR;EAGgB;EAChCwe,EAAAA,sBAAsB,EAAExd,SAAS,CAAClB,IAJlB;EAKhB2e,EAAAA,iBAAiB,EAAEzd,SAAS,CAAClB,IALb;EAMhBiM,EAAAA,SAAS,EAAE/K,SAAS,CAACd;EANL,CAAlB;EASA,IAAM8L,cAAY,GAAG;EACnBsS,EAAAA,QAAQ,EAAE,IADS;EAEnBG,EAAAA,iBAAiB,EAAE;EAFA,CAArB;;MAKqBC;;;;;EACnB,sBAAYxf,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKyf,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB9f,IAAxB,+BAA1B;EACA,UAAK+f,eAAL,GAAuB,MAAKA,eAAL,CAAqB/f,IAArB,+BAAvB;EAJiB;EAKlB;;;;WAED8f,qBAAA,8BAAqB;EACnB,WAAO,CACLrS,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;;WAEDsS,kBAAA,2BAAkB;EAChB,WAAO,CACLtS,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;;WAEDuS,cAAA,uBAAc;EACZ,QAAM1Q,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,CAAjB;EACA,QAAMJ,eAAe,GAAG,KAAK7O,KAAL,CAAWsf,sBAAX,GACpB,EADoB,GAEpB,KAAKG,kBAAL,EAFJ;;EAFY,sBAK0B,KAAKzf,KAL/B;EAAA,QAKJ6M,SALI,eAKJA,SALI;EAAA,QAKUwC,WALV;;;EAMZ,WAAOT,oBAAoB,CAACC,eAAD,EAAkBI,QAAlB,EAA4BI,WAA5B,CAA3B;EACD;;WAEDlC,SAAA,kBAAS;EAAA,uBAC4C,KAAKnN,KADjD;EAAA,QACCof,QADD,gBACCA,QADD;EAAA,QACWvS,SADX,gBACWA,SADX;EAAA,QACsB0S,iBADtB,gBACsBA,iBADtB;EAEP,QAAMtQ,QAAQ,GAAG,KAAK0Q,WAAL,EAAjB;EAEA,WAAOJ,iBAAiB,GAAG,IAAH,GACtBnS;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,6BADmB,EAEnB;EACE,iDAAyCmd;EAD3C,OAFmB,EAKnBvS,SALmB;EADvB,OASGoC,QATH,CADF;EAaD;;;IAlEqC5B;EAqExCmS,UAAU,CAAC7S,SAAX,GAAuBA,WAAvB;EACA6S,UAAU,CAAC1S,YAAX,GAA0BA,cAA1B;EACA0S,UAAU,CAAClS,WAAX,GAAyB,YAAzB;;ECtGA,IAAMsS,UAAU,GAAG,OAAOjd,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACkd,SAAxC,GACfld,MAAM,CAACkd,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,IAAMvT,WAAS,GAAG;EAChBsC,EAAAA,QAAQ,EAAEnN,SAAS,CAACZ,GADJ;EAGhBwZ,EAAAA,KAAK,EAAE5Y,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAHS;EAIhBsc,EAAAA,MAAM,EAAEtb,SAAS,CAACJ,SAAV,CAAoB,CAACI,SAAS,CAACd,MAAX,EAAmBc,SAAS,CAAChB,MAA7B,CAApB,CAJQ;EAKhBsf,EAAAA,KAAK,EAAEte,SAAS,CAAClB,IALD;EAMhBwI,EAAAA,KAAK,EAAEtH,SAAS,CAAClB,IAND;EAOhB8P,EAAAA,WAAW,EAAE5O,SAAS,CAAClB,IAPP;EAQhByf,EAAAA,WAAW,EAAEve,SAAS,CAACd,MARP;EAShB6L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MATL;EAUhB0S,EAAAA,OAAO,EAAE5R,SAAS,CAACd,MAVH;EAYhBuP,EAAAA,SAAS,EAAEzO,SAAS,CAAChB,MAZL;EAahB0P,EAAAA,IAAI,EAAE1O,SAAS,CAAClB,IAbA;EAchB6P,EAAAA,QAAQ,EAAE3O,SAAS,CAAClB,IAdJ;EAehB+P,EAAAA,GAAG,EAAE7O,SAAS,CAACd,MAfC;EAgBhBwM,EAAAA,MAAM,EAAE1L,SAAS,CAACd,MAhBF;EAiBhB4P,EAAAA,OAAO,EAAE9O,SAAS,CAACL,KAAV,CAAgB,CAAC,MAAD,EAAS,UAAT,EAAqB,MAArB,CAAhB,CAjBO;EAmBhBqP,EAAAA,WAAW,EAAEhP,SAAS,CAACjB,IAnBP;EAoBhBkQ,EAAAA,SAAS,EAAEjP,SAAS,CAACjB,IApBL;EAqBhBmQ,EAAAA,SAAS,EAAElP,SAAS,CAACjB,IArBL;EAsBhBoQ,EAAAA,gBAAgB,EAAEnP,SAAS,CAACjB,IAtBZ;EAuBhBqQ,EAAAA,SAAS,EAAEpP,SAAS,CAACjB,IAvBL;EAwBhBsQ,EAAAA,OAAO,EAAErP,SAAS,CAACjB,IAxBH;EAyBhBuQ,EAAAA,SAAS,EAAEtP,SAAS,CAACjB,IAzBL;EA0BhBwQ,EAAAA,QAAQ,EAAEvP,SAAS,CAACjB,IA1BJ;EA2BhByQ,EAAAA,MAAM,EAAExP,SAAS,CAACjB,IA3BF;EA4BhB0Q,EAAAA,OAAO,EAAEzP,SAAS,CAACjB,IA5BH;EA6BhB2Q,EAAAA,UAAU,EAAE1P,SAAS,CAACjB,IA7BN;EA8BhB4Q,EAAAA,gBAAgB,EAAE3P,SAAS,CAACjB,IA9BZ;EA+BhB6Q,EAAAA,OAAO,EAAE5P,SAAS,CAACjB,IA/BH;EAgChB8Q,EAAAA,SAAS,EAAE7P,SAAS,CAACjB,IAhCL;EAiChB+Q,EAAAA,OAAO,EAAE9P,SAAS,CAACjB,IAjCH;EAkChBgR,EAAAA,SAAS,EAAE/P,SAAS,CAACjB,IAlCL;EAmChBiR,EAAAA,SAAS,EAAEhQ,SAAS,CAACjB,IAnCL;EAoChBkR,EAAAA,gBAAgB,EAAEjQ,SAAS,CAACjB,IApCZ;EAqChBmR,EAAAA,YAAY,EAAElQ,SAAS,CAACjB,IArCR;EAsChBoR,EAAAA,YAAY,EAAEnQ,SAAS,CAACjB,IAtCR;EAuChBqR,EAAAA,YAAY,EAAEpQ,SAAS,CAACjB,IAvCR;EAwChBsR,EAAAA,cAAc,EAAErQ,SAAS,CAACjB,IAxCV;EA0ChBsK,EAAAA,KAAK,EAAErJ,SAAS,CAACf;EA1CD,CAAlB;EA6CA,IAAM+L,cAAY,GAAG;EACnBsT,EAAAA,KAAK,EAAE,IADY;EAEnBhX,EAAAA,KAAK,EAAE,KAFY;EAGnBsH,EAAAA,WAAW,EAAE,KAHM;EAInBE,EAAAA,OAAO,EAAE,MAJU;EAKnByP,EAAAA,WAAW,EAAE;EALM,CAArB;;MAQqBC;;;;;EACnB,kBAAYtgB,KAAZ,EAAmB;EAAA;;EACjB,kCAAMA,KAAN;EAEA,UAAKugB,iBAAL,GAAyB,IAAzB;EAEA,UAAKhY,KAAL,GAAa,IAAb,CALiB;;EAMjB,UAAKgD,OAAL,GAAe,IAAIL,OAAJ,CAAYlL,KAAK,CAACmL,KAAlB,CAAf;EACA,UAAKM,OAAL,GAAe,MAAKF,OAAL,CAAaD,UAAb,EAAf;;EACA,UAAKC,OAAL,CAAamB,4BAAb,CACE,MAAKmH,iBAAL,CAAuBlU,IAAvB,+BADF;;EAIA,UAAK6gB,QAAL,GAAgB,MAAKA,QAAL,CAAc7gB,IAAd,+BAAhB;EACA,UAAKiG,YAAL,GAAoB,MAAKA,YAAL,CAAkBjG,IAAlB,+BAApB;EACA,UAAKggB,WAAL,GAAmB,MAAKA,WAAL,CAAiBhgB,IAAjB,+BAAnB;EACA,UAAKga,eAAL,GAAuB1J,QAAQ,CAAC,MAAK0J,eAAL,CAAqBha,IAArB,+BAAD,EAAkC,GAAlC,CAA/B;EACA,UAAK+Z,eAAL,GAAuB,MAAKA,eAAL,CAAqB/Z,IAArB,+BAAvB;EACA,UAAK8gB,kBAAL,GAA0B,MAAKA,kBAAL,CAAwB9gB,IAAxB,+BAA1B;EACA,UAAK+gB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B/gB,IAA5B,+BAA9B;EACA,UAAKghB,aAAL,GAAqB,MAAKA,aAAL,CAAmBhhB,IAAnB,+BAArB;EACA,UAAKka,WAAL,GAAmB,MAAKA,WAAL,CAAiBla,IAAjB,+BAAnB;EACA,UAAKma,UAAL,GAAkB,MAAKA,UAAL,CAAgBna,IAAhB,+BAAlB;EArBiB;EAsBlB;;;;WAEDuN,oBAAA,6BAAoB;EAClB,SAAKtH,YAAL;EACAjD,IAAAA,MAAM,CAACqE,gBAAP,CAAwB,QAAxB,EAAkC,KAAKpB,YAAvC;EAEA2D,IAAAA,UAAU,CAACvC,gBAAX,CAA4B,KAAK0Z,sBAAjC;EACD;;WAEDlJ,uBAAA,gCAAuB;EACrB;EACA7U,IAAAA,MAAM,CAACuE,mBAAP,CAA2B,QAA3B,EAAqC,KAAKtB,YAA1C;EACA2D,IAAAA,UAAU,CAACrC,mBAAX,CAA+B,KAAKwZ,sBAApC;;EACA,QAAI,KAAKH,iBAAT,EAA4B;EAC1B5d,MAAAA,MAAM,CAACoR,YAAP,CAAoB,KAAKwM,iBAAzB;EACD;EACF;;WAEDd,qBAAA,4BAAmBmB,gBAAnB,EAAqC;EAAA;;EACnC,WAAO,CACLxT,6BAAC,KAAD;EACE,MAAA,GAAG,EAAE,aAAArR,CAAC,EAAI;EACR,QAAA,MAAI,CAACwM,KAAL,GAAaxM,CAAb;EACA,QAAA,MAAI,CAACwP,OAAL,CAAahD,KAAb,GAAqB,MAAI,CAACA,KAA1B;EACD,OAJH;EAKE,MAAA,GAAG,EAAC,OALN;EAME,MAAA,KAAK,EAAE;EANT,OAQGqY,gBARH,CADK,EAWLxT,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;;WAEDuS,cAAA,qBAAY3f,KAAZ,EAAmB;EAAA,QAEJ6gB,CAFI,GAKb7gB,KALa,CAEf6M,SAFe;EAAA,QAGL+T,gBAHK,GAKb5gB,KALa,CAGfiP,QAHe;EAAA,QAIZ6R,oBAJY,iCAKb9gB,KALa;;EAMjB,QAAMiP,QAAQ,GAAG7B,cAAK,CAAC8B,QAAN,CAAeC,OAAf,CAAuB,KAAKnP,KAAL,CAAWiP,QAAlC,EAA4ClD,MAA5C,CACf,UAAA9P,CAAC;EAAA,aAAI,CAACmS,YAAY,CAACnS,CAAD,CAAjB;EAAA,KADc,CAAjB;EAGA,QAAM4S,eAAe,GAAG,KAAK4Q,kBAAL,CAAwBmB,gBAAxB,CAAxB;EACA,WAAOhS,oBAAoB,CACzBC,eADyB,EAEzBI,QAFyB,EAGzB6R,oBAHyB,CAA3B;EAKD;;WAEDC,mBAAA,0BAAiB9M,KAAjB,EAAwB1T,IAAxB,EAA8B5E,KAA9B,EAAqC;EAAA;;EACnC,QAAIqlB,QAAJ;;EACA,QAAI,OAAOrlB,KAAP,KAAiB,QAArB,EAA+B;EAC7B,UAAIA,KAAK,KAAK,MAAd,EAAsB;EACpBqlB,QAAAA,QAAQ,GAAG,MAAX;EACD,OAFD,MAEO,IAAIrlB,KAAK,CAACslB,KAAN,CAAY,MAAZ,CAAJ,EAAyB;EAC9BD,QAAAA,QAAQ,GAAGrlB,KAAX;EACD;EACF,KAND,MAMO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;EACpCqlB,MAAAA,QAAQ,GAAMrlB,KAAN,OAAR;EACD;;EACDH,IAAAA,MAAM,CAACsC,MAAP,CAAcmW,KAAd,uCACG1T,IADH,IACUygB,QADV;EAGD;;WAEDR,WAAA,oBAAW;EAAA,sBAML,KAAKxgB,KANA;EAAA,QAEPogB,KAFO,eAEPA,KAFO;EAAA,QAGMc,gBAHN,eAGPb,WAHO;EAAA,QAICc,WAJD,eAIP/D,MAJO;EAAA,QAKAgE,UALA,eAKP1G,KALO;;EAAA,gCAOU,KAAKnP,OAAL,CAAaW,QAAb,EAPV;EAAA,QAOD5C,MAPC,yBAODA,MAPC;;EAQT,QAAM2K,KAAK,GAAG,EAAd;EACA,QAAIyG,KAAJ;EACA,QAAI0C,MAAJ;EACA,QAAIiD,WAAJ,CAXS;;EAcT,QAAIa,gBAAgB,KAAKvjB,SAArB,IAAkCujB,gBAAgB,KAAK,MAA3D,EAAmE;EACjE;EACAb,MAAAA,WAAW,GAAGa,gBAAd;EACD,KAHD,MAGO,IAAI5X,MAAM,CAACiB,UAAX,EAAuB;EAC5B;EACA8V,MAAAA,WAAW,GAAM/W,MAAM,CAACiB,UAAb,SAA2BjB,MAAM,CAACkB,WAA7C;EACD,KAHM,MAGA;EACL;EACA6V,MAAAA,WAAW,GAAG,MAAd;EACD,KAvBQ;;;EA0BT,QAAMgB,UAAU,GAAGhB,WAAW,CAAC5hB,KAAZ,CAAkB,GAAlB,CAAnB;EACA,QAAM6iB,eAAe,GAAGD,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAlD;;EAEA,QAAID,UAAU,KAAKzjB,SAAnB,EAA8B;EAC5B;EACA+c,MAAAA,KAAK,GAAG0G,UAAR;EACD,KAHD,MAGO,IAAID,WAAW,KAAKxjB,SAApB,EAA+B;EACpC;EACA+c,MAAAA,KAAK,GAAGyG,WAAW,GAAGG,eAAtB;EACD,KAHM,MAGA;EACL;EACA5G,MAAAA,KAAK,GAAGpR,MAAM,CAACiB,UAAP,IAAqB,GAA7B;EACD;;EAED,QAAI4W,WAAW,KAAKxjB,SAApB,EAA+B;EAC7B;EACAyf,MAAAA,MAAM,GAAG+D,WAAT;EACD,KAHD,MAGO;EACL;EACA/D,MAAAA,MAAM,GAAG1C,KAAK,GAAG4G,eAAjB;EACD;;EAED,QAAIlB,KAAJ,EAAW;EACTnM,MAAAA,KAAK,CAACsN,UAAN,GAAsBD,eAAe,GAAG,GAAxC;EACD,KAFD,MAEO;EACL;EACA,WAAKP,gBAAL,CAAsB9M,KAAtB,EAA6B,OAA7B,EAAsCyG,KAAtC;EACA,WAAKqG,gBAAL,CAAsB9M,KAAtB,EAA6B,QAA7B,EAAuCmJ,MAAvC;EACD;;EAED,WAAOnJ,KAAP;EACD;EAGD;;;WACA/H,WAAA,oBAAW;EACT,WAAO,KAAKX,OAAL,CAAaW,QAAb,EAAP;EACD;;;EAuCD;WACA9D,OAAA,gBAAO;EACL,SAAKG,KAAL,CAAWH,IAAX;EACD;;;WAGDI,QAAA,iBAAQ;EACN,SAAKD,KAAL,CAAWC,KAAX;EACD;;;WAGD6K,OAAA,gBAAO;EACL,SAAK9K,KAAL,CAAW8K,IAAX;EACD;;;WAGDC,eAAA,wBAAsB;EAAA;;EACpB,wBAAK/K,KAAL,EAAW+K,YAAX;EACD;;;WAGDC,cAAA,uBAAqB;EAAA;;EACnB,yBAAKhL,KAAL,EAAWgL,WAAX;EACD;;;WAGD7K,OAAA,cAAK3C,IAAL,EAAW;EACT,SAAKwC,KAAL,CAAWG,IAAX,CAAgB3C,IAAhB;EACD;;;WAGD4C,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;;;WAGD8C,yBAAA,gCAAuBC,QAAvB,EAAiC;EAC/B,WAAO,KAAKb,OAAL,CAAamB,4BAAb,CAA0CN,QAA1C,CAAP;EACD;;;WAGDxG,eAAA,wBAAe;;WAEf8a,yBAAA,gCAAuBrL,KAAvB,EAA8B;EAC5B,QAAIA,KAAK,CAACvW,MAAN,KAAiB,KAAKyM,OAAL,CAAa9B,WAAlC,EAA+C;EAC7C,WAAKgC,OAAL,CAAa1D,sBAAb,CAAoCwB,UAAU,CAACvB,YAA/C;EACD;EACF;;WAED0R,kBAAA,2BAAkB;EAChB,SAAK+G,kBAAL;EACD;;WAED9G,kBAAA,2BAAkB;EAChB,SAAK8G,kBAAL;EACD;;WAEDE,gBAAA,yBAAgB;EACd,SAAKF,kBAAL;EACD;;WAEDA,qBAAA,8BAAqB;EAAA;;EACnB,QAAIe,oBAAoB,GAAG,IAA3B;EACApU,IAAAA,cAAK,CAAC8B,QAAN,CAAexQ,OAAf,CAAuB,KAAKsB,KAAL,CAAWiP,QAAlC,EAA4C,UAAA7N,OAAO,EAAI;EACrD,UAAI,CAACgM,cAAK,CAACqU,cAAN,CAAqBrgB,OAArB,CAAD,IAAkCA,OAAO,CAACpE,IAAR,KAAiBwiB,UAAvD,EAAmE;EACjE;EACD;;EAHoD,UAK7CH,YAL6C,GAK5Bje,OAAO,CAACpB,KALoB,CAK7Cqf,YAL6C;;EAMrD,UAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;EACpCmC,QAAAA,oBAAoB,GAAGnC,YAAvB;EACD;EACF,KATD;EAWA,SAAK5T,OAAL,CAAatD,YAAb,CAA0B,IAA1B;EACA4L,IAAAA,YAAY,CAAC,KAAKwM,iBAAN,CAAZ;EACA,SAAKA,iBAAL,GAAyBlQ,UAAU,CAAC,YAAM;EACxC,MAAA,MAAI,CAAC5E,OAAL,CAAatD,YAAb,CAA0B,KAA1B;EACD,KAFkC,EAEhCqZ,oBAFgC,CAAnC;EAGD;;WAED3N,oBAAA,2BAAkBhJ,KAAlB,EAAyBwB,SAAzB,EAAoC;EAClC,QAAIxB,KAAK,CAAC7C,YAAN,KAAuBqE,SAAS,CAACrE,YAArC,EAAmD;EACjD,WAAKpC,YAAL,GADiD;;EAGjDyQ,MAAAA,SAAS,CAAC,KAAK9K,OAAL,CAAa9B,WAAd,CAAT;EACD;;EACD,SAAKmJ,WAAL,GANkC;EAOnC;;WAEDiH,cAAA,uBAAc;EACZ,SAAKpO,OAAL,CAAaxD,QAAb,CAAsB,IAAtB;EACD;;WAED6R,aAAA,sBAAa;EACX,SAAKrO,OAAL,CAAaxD,QAAb,CAAsB,KAAtB;EACD;;WAEDkF,SAAA,kBAAS;EAAA;;EAAA,QACCiT,KADD,GACW,KAAKpgB,KADhB,CACCogB,KADD;;EAAA,iCAEY,KAAK7U,OAAL,CAAaW,QAAb,EAFZ;EAAA,QAEC5C,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,QAQLjC,YARK,GAUHsB,MAVG,CAQLtB,YARK;EAAA,QASL0C,YATK,GAUHpB,MAVG,CASLoB,YATK;;EAYP,QAAM1K,KAAK,gBACN,KAAKA,KADC;EAETsJ,MAAAA,MAAM,EAANA,MAFS;EAGTmC,MAAAA,OAAO,EAAE,KAAKA,OAHL;EAITF,MAAAA,OAAO,EAAE,KAAKA,OAJL;EAKTJ,MAAAA,KAAK,EAAE,KAAKI,OAAL,CAAaJ,KALX;EAMT5C,MAAAA,KAAK,EAAE,KAAKA,KAAL,GAAa,KAAKA,KAAL,CAAWA,KAAxB,GAAgC;EAN9B,MAAX;;EAQA,QAAM0G,QAAQ,GAAG,KAAK0Q,WAAL,CAAiB3f,KAAjB,CAAjB;EAEA,WACEoN;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB;EACE,4CAAoC,IADtC;EAEE,uCAA+BwI,UAFjC;EAGE,kCAA0BP,MAH5B;EAIE,mCAA2B,CAACA,MAJ9B;EAKE,mCAA2BF,OAL7B;EAME,mCAA2BC,OAN7B;EAOE,iCAAyBmW,KAP3B;EAQE,sCAA8BpY,YARhC;EASE,yCAAiC,CAAC0C,YATpC;EAUE,uCAA+BA,YAVjC;EAWE,wCAAgC,CAACgX;EAXnC,OADmB,EAcnB,iBAdmB,EAenB,KAAK1hB,KAAL,CAAW6M,SAfQ,CADvB;EAkBE,MAAA,KAAK,EAAE,KAAK2T,QAAL,EAlBT;EAmBE,MAAA,GAAG,EAAE,aAAAzkB,CAAC,EAAI;EACR,QAAA,MAAI,CAACwP,OAAL,CAAa9B,WAAb,GAA2B1N,CAA3B;EACD,OArBH;EAsBE,MAAA,IAAI,EAAC,QAtBP;EAuBE,MAAA,YAAY,EAAE,KAAK2d,eAvBrB;EAwBE,MAAA,WAAW,EAAE,KAAKA,eAxBpB;EAyBE,MAAA,WAAW,EAAE,KAAKC,eAzBpB;EA0BE,MAAA,WAAW,EAAE,KAAKA,eA1BpB;EA2BE,MAAA,SAAS,EAAE,KAAKgH,aA3BlB;EA4BE,MAAA,OAAO,EAAE,KAAK9G,WA5BhB;EA6BE,MAAA,MAAM,EAAE,KAAKC,UA7Bf;EA8BE,MAAA,QAAQ,EAAC;EA9BX,OAgCG7K,QAhCH,CADF;EAoCD;;;;0BA1MkB;EACjB,aAAO,KAAK1G,KAAL,CAAWS,YAAlB;EACD;EAGD;;wBACiBD,MAAM;EACrB,WAAKR,KAAL,CAAWS,YAAX,GAA0BD,IAA1B;EACD;;;0BAEW;EACV,aAAO,KAAKR,KAAL,CAAWa,KAAlB;EACD;wBAES1L,KAAK;EACb,WAAK6K,KAAL,CAAWa,KAAX,GAAmB1L,GAAnB;EACD;;;0BAEY;EACX,aAAO,KAAK6K,KAAL,CAAWW,MAAlB;EACD;wBAEUxL,KAAK;EACd,WAAK6K,KAAL,CAAWW,MAAX,GAAoBxL,GAApB;EACD;;;;0BAGgB;EACf,aAAO,KAAK6K,KAAL,CAAWgC,UAAlB;EACD;;;;0BAGiB;EAChB,aAAO,KAAKhC,KAAL,CAAWiC,WAAlB;EACD;;;;IAnMiC6C;EA8WpCiT,MAAM,CAAC3T,SAAP,GAAmBA,WAAnB;EACA2T,MAAM,CAACxT,YAAP,GAAsBA,cAAtB;EACAwT,MAAM,CAAChT,WAAP,GAAqB,QAArB;;MCpbqBqU;;;;;EACnB,wBAAY3hB,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA4C,IAAAA,iBAAiB,CAAC,cAAD,EAAiB,wBAAjB,CAAjB;EAH0B;EAI3B;;;;WAEDzC,SAAA,kBAAS;EACP,WAAOC,6BAAC,sBAAD,EAA4B,KAAKpN,KAAjC,CAAP;EACD;;;IATuCqN;EAY1CsU,YAAY,CAACrU,WAAb,GAA2B,cAA3B;;ECXA,IAAMX,WAAS,GAAG;EAChBrD,EAAAA,MAAM,EAAExH,SAAS,CAACf,MADF;EAEhB0K,EAAAA,OAAO,EAAE3J,SAAS,CAACf,MAFH;EAGhB8L,EAAAA,SAAS,EAAE/K,SAAS,CAACd,MAHL;EAIhB4gB,EAAAA,WAAW,EAAE9f,SAAS,CAACd,MAJP;EAKhB6gB,EAAAA,WAAW,EAAE/f,SAAS,CAAClB,IALP;EAMhBkhB,EAAAA,KAAK,EAAEhgB,SAAS,CAACnB;EAND,CAAlB;EASA,IAAMmM,cAAY,GAAG;EACnB8U,EAAAA,WAAW,EAAE,KADM;EAEnBC,EAAAA,WAAW,EAAE,IAFM;EAGnBC,EAAAA,KAAK,EAAE,CAAC,UAAD,EAAa,WAAb,CAHY;;EAAA,CAArB;;MAMMC;;;;;EACJ,+BAAY/hB,KAAZ,EAAmBgN,OAAnB,EAA4B;EAAA;;EAC1B,kCAAMhN,KAAN,EAAagN,OAAb;EAEA,UAAKgV,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBriB,IAAvB,+BAAzB;EACA,UAAKsiB,WAAL,GAAmB,MAAKA,WAAL,CAAiBtiB,IAAjB,+BAAnB;EACA,UAAKkf,gBAAL,GAAwB,MAAKA,gBAAL,CAAsBlf,IAAtB,+BAAxB;EAEA,UAAKkL,KAAL,GAAa,MAAKmX,iBAAL,EAAb;EAP0B;EAQ3B;;;;WAED1K,qBAAA,8BAAqB;EACnB,SAAK2K,WAAL;EACD;;WAEDD,oBAAA,6BAAoB;EAAA,sBAGd,KAAKhiB,KAHS;EAAA,QAEhB8hB,KAFgB,eAEhBA,KAFgB;EAAA,QAETxY,MAFS,eAETA,MAFS;EAAA,QAEDsY,WAFC,eAEDA,WAFC;EAAA,QAEYC,WAFZ,eAEYA,WAFZ;EAAA,QAIVhP,UAJU,GAIsBvJ,MAJtB,CAIVuJ,UAJU;EAAA,QAIEjI,eAJF,GAIsBtB,MAJtB,CAIEsB,eAJF;EAKlB,QAAMsX,cAAc,GAAG;EACrBhE,MAAAA,KAAK,EAAE,EADc;EAErBC,MAAAA,aAAa,EAAE;EAFM,KAAvB;EAIA,QAAMgE,MAAM,GAAG7f,KAAK,CAACtD,IAAN,CAAW6T,UAAU,IAAI,EAAzB,CAAf;;EAEA,QAAIsP,MAAM,CAAC9iB,MAAP,KAAkB,CAAtB,EAAyB;EACvB,aAAO6iB,cAAP;EACD;;EAED,QAAIL,WAAJ,EAAiB;EACfK,MAAAA,cAAc,CAAChE,KAAf,CAAqB7b,IAArB,CAA0B;EACxBiX,QAAAA,KAAK,EAAEsI,WAAW,IAAI,KADE;EAExBjmB,QAAAA,KAAK,EAAE;EAFiB,OAA1B;EAID;;EAEDwmB,IAAAA,MAAM,CAACzjB,OAAP,CAAe,UAACwH,SAAD,EAAe;EAC5B;EACA,UAAI4b,KAAK,CAACziB,MAAN,IAAgB,CAACyiB,KAAK,CAACM,QAAN,CAAelc,SAAS,CAACmc,IAAzB,CAArB,EAAqD;EACnD;EACD;;EAEDH,MAAAA,cAAc,CAAChE,KAAf,CAAqB7b,IAArB,CAA0B;EACxBiX,QAAAA,KAAK,EAAEpT,SAAS,CAACoT,KADO;EAExB3d,QAAAA,KAAK,EAAEuK,SAAS,CAACoc;EAFO,OAA1B;EAID,KAVD;EAYAJ,IAAAA,cAAc,CAAC/D,aAAf,GAA+B+D,cAAc,CAAChE,KAAf,CAAqBqE,SAArB,CAC7B,UAAA1E,IAAI;EAAA,aAAIjT,eAAe,IAAIA,eAAe,CAAC0X,QAAhB,KAA6BzE,IAAI,CAACliB,KAAzD;EAAA,KADyB,CAA/B;;EAIA,QAAIumB,cAAc,CAAC/D,aAAf,KAAiC,CAAC,CAAtC,EAAyC;EACvC+D,MAAAA,cAAc,CAAC/D,aAAf,GAA+B,CAA/B;EACD;;EAED,WAAO+D,cAAP;EACD;;WAEDD,cAAA,uBAAc;EACZ,QAAMC,cAAc,GAAG,KAAKF,iBAAL,EAAvB;;EACA,QACEE,cAAc,CAAC/D,aAAf,KAAiC,KAAKtT,KAAL,CAAWsT,aAA5C,IACG,CAAC,KAAKqE,sBAAL,CAA4BN,cAAc,CAAChE,KAA3C,EAAkD,KAAKrT,KAAL,CAAWqT,KAA7D,CAFN,EAGE;EACA,WAAKlK,QAAL,CAAckO,cAAd;EACD;EACF;;WAEDM,yBAAA,gCAAuBC,MAAvB,EAA+BC,MAA/B,EAAuC;EACrC,QAAID,MAAM,CAACpjB,MAAP,KAAkBqjB,MAAM,CAACrjB,MAA7B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,SAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGskB,MAAM,CAACpjB,MAA3B,EAAmClB,CAAC,EAApC,EAAwC;EACtC,UACE,CAACukB,MAAM,CAACvkB,CAAD,CAAP,IACGskB,MAAM,CAACtkB,CAAD,CAAN,CAAUmb,KAAV,KAAoBoJ,MAAM,CAACvkB,CAAD,CAAN,CAAUmb,KADjC,IAEGmJ,MAAM,CAACtkB,CAAD,CAAN,CAAUxC,KAAV,KAAoB+mB,MAAM,CAACvkB,CAAD,CAAN,CAAUxC,KAHnC,EAIE;EACA,eAAO,KAAP;EACD;EACF;;EAED,WAAO,IAAP;EACD;;WAEDkjB,mBAAA,0BAAiBf,KAAjB,EAAwB;EAAA,uBACmB,KAAK9d,KADxB;EAAA,QACdsJ,MADc,gBACdA,MADc;EAAA,QACNmC,OADM,gBACNA,OADM;EAAA,QACGoW,WADH,gBACGA,WADH;EAAA,QAEdhP,UAFc,GAECvJ,MAFD,CAEduJ,UAFc;EAKtB;;EACAvQ,IAAAA,KAAK,CAACtD,IAAN,CAAW6T,UAAX,EAAuBnU,OAAvB,CAA+B,UAACwH,SAAD,EAAY/H,CAAZ,EAAkB;EAC/C;EACA,UAAI2f,KAAK,MAAM+D,WAAW,GAAG1jB,CAAC,GAAG,CAAP,GAAWA,CAA5B,CAAT,EAAyC;EACvC+H,QAAAA,SAAS,CAAC+M,IAAV,GAAiB,SAAjB;EACAxH,QAAAA,OAAO,CAACxF,iBAAR,CAA0BC,SAA1B;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,CAAC+M,IAAV,GAAiB,QAAjB;EACD;EACF,KARD;EASD;;WAED9F,SAAA,kBAAS;EAAA,sBAC0B,KAAKtC,KAD/B;EAAA,QACCqT,KADD,eACCA,KADD;EAAA,QACQC,aADR,eACQA,aADR;EAGP,WACE/Q,6BAAC,UAAD;EACE,MAAA,SAAS,EAAEnL,UAAU,CACnB,gCADmB,EAEnB,KAAKjC,KAAL,CAAW6M,SAFQ,CADvB;EAKE,MAAA,YAAY,EAAE,KAAKgS,gBALrB;EAME,MAAA,KAAK,EAAEX,KANT;EAOE,MAAA,aAAa,EAAEC;EAPjB,OASE/Q;EAAM,MAAA,SAAS,EAAC;EAAhB,wBATF,CADF;EAaD;;;IAzH+BC;;EA4HlC0U,mBAAmB,CAACpV,SAApB,GAAgCA,WAAhC;EACAoV,mBAAmB,CAACjV,YAApB,GAAmCA,cAAnC;EACAiV,mBAAmB,CAACzU,WAApB,GAAkC,qBAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|