{"version":3,"file":"jss.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/is-in-browser/dist/module.js","../../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../src/utils/cloneStyle.js","../src/utils/createRule.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../src/utils/toCssValue.js","../src/utils/getWhitespaceSymbols.js","../src/utils/toCss.js","../src/utils/escape.js","../src/plugins/styleRule.js","../src/plugins/conditionalRule.js","../src/plugins/keyframesRule.js","../src/plugins/keyframeRule.js","../src/plugins/fontFaceRule.js","../src/plugins/viewportRule.js","../src/plugins/simpleRule.js","../src/plugins/index.js","../src/RuleList.js","../src/StyleSheet.js","../src/PluginsRegistry.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../src/SheetsRegistry.js","../src/sheets.js","../src/utils/globalThis.js","../src/utils/moduleId.js","../src/utils/createGenerateId.js","../src/DomRenderer.js","../src/Jss.js","../src/utils/createJss.js","../src/SheetsManager.js","../src/utils/hasCSSTOMSupport.js","../src/utils/getDynamicStyles.js","../src/index.js"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","const plainObjectConstrurctor = {}.constructor\n\nexport default function cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style\n if (Array.isArray(style)) return style.map(cloneStyle)\n if (style.constructor !== plainObjectConstrurctor) return style\n\n const newStyle = {}\n for (const name in style) {\n newStyle[name] = cloneStyle(style[name])\n }\n return newStyle\n}\n","import warning from 'tiny-warning'\nimport cloneStyle from './cloneStyle'\n\n/**\n * Create a rule instance.\n */\nexport default function createRule(name = 'unnamed', decl, options) {\n const {jss} = options\n const declCopy = cloneStyle(decl)\n\n const rule = jss.plugins.onCreateRule(name, declCopy, options)\n if (rule) return rule\n\n // It is an at-rule and it has no instance.\n if (name[0] === '@') {\n warning(false, `[JSS] Unknown rule ${name}`)\n }\n\n return null\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","const join = (value, by) => {\n let result = ''\n for (let i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break\n if (result) result += by\n result += value[i]\n }\n return result\n}\n\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nconst toCssValue = (value) => {\n if (!Array.isArray(value)) return value\n\n let cssValue = ''\n\n // Support space separated values via `[['5px', '10px']]`.\n if (Array.isArray(value[0])) {\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '!important') break\n if (cssValue) cssValue += ', '\n cssValue += join(value[i], ' ')\n }\n } else cssValue = join(value, ', ')\n\n // Add !important, because it was ignored.\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important'\n }\n\n return cssValue\n}\n\nexport default toCssValue\n","export default function getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n }\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n }\n}\n","import toCssValue from './toCssValue'\nimport getWhitespaceSymbols from './getWhitespaceSymbols'\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n let result = ''\n for (let index = 0; index < indent; index++) result += ' '\n return result + str\n}\n\n/**\n * Converts a Rule to CSS string.\n */\nexport default function toCss(selector, style, options = {}) {\n let result = ''\n\n if (!style) return result\n\n let {indent = 0} = options\n const {fallbacks} = style\n\n if (options.format === false) {\n indent = -Infinity\n }\n const {linebreak, space} = getWhitespaceSymbols(options)\n\n if (selector) indent++\n\n // Apply fallbacks first.\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (let index = 0; index < fallbacks.length; index++) {\n const fallback = fallbacks[index]\n for (const prop in fallback) {\n const value = fallback[prop]\n if (value != null) {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (const prop in fallbacks) {\n const value = fallbacks[prop]\n if (value != null) {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n }\n }\n\n for (const prop in style) {\n const value = style[prop]\n if (value != null && prop !== 'fallbacks') {\n if (result) result += linebreak\n result += indentStr(`${prop}:${space}${toCssValue(value)};`, indent)\n }\n }\n\n // Allow empty style in this case, because properties will be added dynamically.\n if (!result && !options.allowEmpty) return result\n\n // When rule is being stringified before selector was defined.\n if (!selector) return result\n\n indent--\n\n if (result) result = `${linebreak}${result}${linebreak}`\n\n return indentStr(`${selector}${space}{${result}`, indent) + indentStr('}', indent)\n}\n","const escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g\nconst nativeEscape = typeof CSS !== 'undefined' && CSS.escape\n\nexport default (str) => (nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1'))\n","import warning from 'tiny-warning'\nimport toCss from '../utils/toCss'\nimport toCssValue from '../utils/toCssValue'\nimport escape from '../utils/escape'\n\nexport class BaseStyleRule {\n type = 'style'\n\n isProcessed = false\n\n constructor(key, style, options) {\n const {sheet, Renderer} = options\n this.key = key\n this.options = options\n this.style = style\n if (sheet) this.renderer = sheet.renderer\n else if (Renderer) this.renderer = new Renderer()\n }\n\n /**\n * Get or set a style property.\n */\n prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]\n\n // Don't do anything if the value has not changed.\n const force = options ? options.force : false\n if (!force && this.style[name] === value) return this\n\n let newValue = value\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this)\n }\n\n const isEmpty = newValue == null || newValue === false\n const isDefined = name in this.style\n\n // Value is empty and wasn't defined before.\n if (isEmpty && !isDefined && !force) return this\n\n // We are going to remove this value.\n const remove = isEmpty && isDefined\n\n if (remove) delete this.style[name]\n else this.style[name] = newValue\n\n // Renderable is defined if StyleSheet option `link` is true.\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name)\n else this.renderer.setProperty(this.renderable, name, newValue)\n return this\n }\n\n const {sheet} = this.options\n if (sheet && sheet.attached) {\n warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".')\n }\n return this\n }\n}\n\nexport class StyleRule extends BaseStyleRule {\n constructor(key, style, options) {\n super(key, style, options)\n const {selector, scoped, sheet, generateId} = options\n if (selector) {\n this.selectorText = selector\n } else if (scoped !== false) {\n this.id = generateId(this, sheet)\n this.selectorText = `.${escape(this.id)}`\n }\n }\n\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n set selector(selector) {\n if (selector === this.selectorText) return\n\n this.selectorText = selector\n\n const {renderer, renderable} = this\n\n if (!renderable || !renderer) return\n\n const hasChanged = renderer.setSelector(renderable, selector)\n\n // If selector setter is not implemented, rerender the rule.\n if (!hasChanged) {\n renderer.replaceRule(renderable, this)\n }\n }\n\n /**\n * Get selector string.\n */\n get selector() {\n return this.selectorText\n }\n\n /**\n * Apply rule to an element inline.\n */\n applyTo(renderable) {\n const {renderer} = this\n if (renderer) {\n const json = this.toJSON()\n for (const prop in json) {\n renderer.setProperty(renderable, prop, json[prop])\n }\n }\n return this\n }\n\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n toJSON() {\n const json = {}\n for (const prop in this.style) {\n const value = this.style[prop]\n if (typeof value !== 'object') json[prop] = value\n else if (Array.isArray(value)) json[prop] = toCssValue(value)\n }\n return json\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.selectorText, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n if (key[0] === '@' || (options.parent && options.parent.type === 'keyframes')) {\n return null\n }\n return new StyleRule(key, style, options)\n }\n}\n","import RuleList from '../RuleList'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst atRegExp = /@([\\w-]+)/\n\n/**\n * Conditional rule for @media, @supports\n */\nexport class ConditionalRule {\n type = 'conditional'\n\n isProcessed = false\n\n constructor(key, styles, options) {\n this.key = key\n const atMatch = key.match(atRegExp)\n this.at = atMatch ? atMatch[1] : 'unknown'\n // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n this.query = options.name || `@${this.at}`\n this.options = options\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Get a rule.\n */\n getRule(name) {\n return this.rules.get(name)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Create and register rule, run plugins.\n */\n addRule(name, style, options) {\n const rule = this.rules.add(name, style, options)\n if (!rule) return null\n this.options.jss.plugins.onProcessRule(rule)\n return rule\n }\n\n /**\n * Replace rule, run plugins.\n */\n replaceRule(name, style, options) {\n const newRule = this.rules.replace(name, style, options)\n if (newRule) this.options.jss.plugins.onProcessRule(newRule)\n return newRule\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options = defaultToStringOptions) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.query} {}`\n }\n const children = this.rules.toString(options)\n return children ? `${this.query} {${linebreak}${children}${linebreak}}` : ''\n }\n}\n\nconst keyRegExp = /@media|@supports\\s+/\n\nexport default {\n onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null\n }\n}\n","import warning from 'tiny-warning'\nimport RuleList from '../RuleList'\nimport escape from '../utils/escape'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nconst defaultToStringOptions = {\n indent: 1,\n children: true\n}\n\nconst nameRegExp = /@keyframes\\s+([\\w-]+)/\n\n/**\n * Rule for @keyframes\n */\nexport class KeyframesRule {\n type = 'keyframes'\n\n at = '@keyframes'\n\n isProcessed = false\n\n constructor(key, frames, options) {\n const nameMatch = key.match(nameRegExp)\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1]\n } else {\n this.name = 'noname'\n warning(false, `[JSS] Bad keyframes name ${key}`)\n }\n this.key = `${this.type}-${this.name}`\n this.options = options\n const {scoped, sheet, generateId} = options\n this.id = scoped === false ? this.name : escape(generateId(this, sheet))\n this.rules = new RuleList({...options, parent: this})\n\n for (const name in frames) {\n this.rules.add(name, frames[name], {\n ...options,\n parent: this\n })\n }\n\n this.rules.process()\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options = defaultToStringOptions) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (options.indent == null) options.indent = defaultToStringOptions.indent\n if (options.children == null) options.children = defaultToStringOptions.children\n if (options.children === false) {\n return `${this.at} ${this.id} {}`\n }\n let children = this.rules.toString(options)\n if (children) children = `${linebreak}${children}${linebreak}`\n return `${this.at} ${this.id} {${children}}`\n }\n}\n\nconst keyRegExp = /@keyframes\\s+/\n\nconst refRegExp = /\\$([\\w-]+)/g\n\nconst findReferencedKeyframe = (val, keyframes) => {\n if (typeof val === 'string') {\n return val.replace(refRegExp, (match, name) => {\n if (name in keyframes) {\n return keyframes[name]\n }\n\n warning(false, `[JSS] Referenced keyframes rule \"${name}\" is not defined.`)\n\n return match\n })\n }\n\n return val\n}\n\n/**\n * Replace the reference for a animation name.\n */\nconst replaceRef = (style, prop, keyframes) => {\n const value = style[prop]\n const refKeyframe = findReferencedKeyframe(value, keyframes)\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe\n }\n}\n\nexport default {\n onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp.test(key)\n ? new KeyframesRule(key, frames, options)\n : null\n },\n\n // Animation name ref replacer.\n onProcessStyle: (style, rule, sheet) => {\n if (rule.type !== 'style' || !sheet) return style\n\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes)\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes)\n return style\n },\n\n onChangeValue(val, prop, rule) {\n const {sheet} = rule.options\n\n if (!sheet) {\n return val\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes)\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes)\n default:\n return val\n }\n }\n}\n","import toCss from '../utils/toCss'\nimport {BaseStyleRule} from './styleRule'\n\nexport class KeyframeRule extends BaseStyleRule {\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const opts = link ? {...options, allowEmpty: true} : options\n return toCss(this.key, this.style, opts)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options)\n }\n return null\n }\n}\n","import toCss from '../utils/toCss'\nimport getWhitespaceSymbols from '../utils/getWhitespaceSymbols'\n\nexport class FontFaceRule {\n type = 'font-face'\n\n at = '@font-face'\n\n isProcessed = false\n\n constructor(key, style, options) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n const {linebreak} = getWhitespaceSymbols(options)\n if (Array.isArray(this.style)) {\n let str = ''\n for (let index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index])\n if (this.style[index + 1]) str += linebreak\n }\n return str\n }\n\n return toCss(this.at, this.style, options)\n }\n}\n\nconst keyRegExp = /@font-face/\n\nexport default {\n onCreateRule(key, style, options) {\n return keyRegExp.test(key) ? new FontFaceRule(key, style, options) : null\n }\n}\n","import toCss from '../utils/toCss'\n\nexport class ViewportRule {\n type = 'viewport'\n\n at = '@viewport'\n\n isProcessed = false\n\n constructor(key, style, options) {\n this.key = key\n this.style = style\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n toString(options) {\n return toCss(this.key, this.style, options)\n }\n}\n\nexport default {\n onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport'\n ? new ViewportRule(key, style, options)\n : null\n }\n}\n","export class SimpleRule {\n type = 'simple'\n\n isProcessed = false\n\n constructor(key, value, options) {\n this.key = key\n this.value = value\n this.options = options\n }\n\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n toString(options) {\n if (Array.isArray(this.value)) {\n let str = ''\n for (let index = 0; index < this.value.length; index++) {\n str += `${this.key} ${this.value[index]};`\n if (this.value[index + 1]) str += '\\n'\n }\n return str\n }\n\n return `${this.key} ${this.value};`\n }\n}\n\nconst keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n}\n\nexport default {\n onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null\n }\n}\n","import pluginStyleRule, {StyleRule} from './styleRule'\nimport pluginConditionalRule, {ConditionalRule} from './conditionalRule'\nimport pluginKeyframesRule, {KeyframesRule} from './keyframesRule'\nimport pluginKeyframeRule, {KeyframeRule} from './keyframeRule'\nimport pluginFontFaceRule, {FontFaceRule} from './fontFaceRule'\nimport pluginViewportRule, {ViewportRule} from './viewportRule'\nimport pluginSimpleRule, {SimpleRule} from './simpleRule'\n\nexport const plugins = [\n pluginStyleRule,\n pluginConditionalRule,\n pluginKeyframesRule,\n pluginKeyframeRule,\n pluginFontFaceRule,\n pluginViewportRule,\n pluginSimpleRule\n]\n\nexport {\n StyleRule,\n ConditionalRule,\n KeyframesRule,\n KeyframeRule,\n FontFaceRule,\n ViewportRule,\n SimpleRule\n}\n","import createRule from './utils/createRule'\nimport {StyleRule, KeyframesRule} from './plugins/index'\nimport escape from './utils/escape'\nimport getWhitespaceSymbols from './utils/getWhitespaceSymbols'\n\nconst defaultUpdateOptions = {\n process: true\n}\n\nconst forceUpdateOptions = {\n force: true,\n process: true\n}\n\n/**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\nexport default class RuleList {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n map = {}\n\n // Original styles object.\n raw = {}\n\n // Used to ensure correct rules order.\n index = []\n\n counter = 0\n\n constructor(options) {\n this.options = options\n this.classes = options.classes\n this.keyframes = options.keyframes\n }\n\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n add(name, decl, ruleOptions) {\n const {parent, sheet, jss, Renderer, generateId, scoped} = this.options\n const options = {\n classes: this.classes,\n parent,\n sheet,\n jss,\n Renderer,\n generateId,\n scoped,\n name,\n keyframes: this.keyframes,\n selector: undefined,\n ...ruleOptions\n }\n\n // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n let key = name\n if (name in this.raw) {\n key = `${name}-d${this.counter++}`\n }\n\n // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n this.raw[key] = decl\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = `.${escape(this.classes[key])}`\n }\n\n const rule = createRule(key, decl, options)\n\n if (!rule) return null\n\n this.register(rule)\n\n const index = options.index === undefined ? this.index.length : options.index\n this.index.splice(index, 0, rule)\n\n return rule\n }\n\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n replace(name, decl, ruleOptions) {\n const oldRule = this.get(name)\n const oldIndex = this.index.indexOf(oldRule)\n if (oldRule) {\n this.remove(oldRule)\n }\n let options = ruleOptions\n if (oldIndex !== -1) options = {...ruleOptions, index: oldIndex}\n return this.add(name, decl, options)\n }\n\n /**\n * Get a rule by name or selector.\n */\n get(nameOrSelector) {\n return this.map[nameOrSelector]\n }\n\n /**\n * Delete a rule.\n */\n remove(rule) {\n this.unregister(rule)\n delete this.raw[rule.key]\n this.index.splice(this.index.indexOf(rule), 1)\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.index.indexOf(rule)\n }\n\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n process() {\n const {plugins} = this.options.jss\n // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n this.index.slice(0).forEach(plugins.onProcessRule, plugins)\n }\n\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n register(rule) {\n this.map[rule.key] = rule\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule\n if (rule.id) this.classes[rule.key] = rule.id\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id\n }\n }\n\n /**\n * Unregister a rule.\n */\n unregister(rule) {\n delete this.map[rule.key]\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector]\n delete this.classes[rule.key]\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name]\n }\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args) {\n let name\n let data\n let options\n\n if (typeof args[0] === 'string') {\n name = args[0]\n data = args[1]\n options = args[2]\n } else {\n data = args[0]\n options = args[1]\n name = null\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options)\n } else {\n for (let index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options)\n }\n }\n }\n\n /**\n * Execute plugins, update rule props.\n */\n updateOne(rule, data, options = defaultUpdateOptions) {\n const {\n jss: {plugins},\n sheet\n } = this.options\n\n // It is a rules container like for e.g. ConditionalRule.\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options)\n return\n }\n\n const {style} = rule\n\n plugins.onUpdate(data, rule, sheet, options)\n\n // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet)\n\n // Update and add props.\n for (const prop in rule.style) {\n const nextValue = rule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions)\n }\n }\n\n // Remove props.\n for (const prop in style) {\n const nextValue = rule.style[prop]\n const prevValue = style[prop]\n // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n if (nextValue == null && nextValue !== prevValue) {\n rule.prop(prop, null, forceUpdateOptions)\n }\n }\n }\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options) {\n let str = ''\n const {sheet} = this.options\n const link = sheet ? sheet.options.link : false\n const {linebreak} = getWhitespaceSymbols(options)\n\n for (let index = 0; index < this.index.length; index++) {\n const rule = this.index[index]\n const css = rule.toString(options)\n\n // No need to render an empty rule.\n if (!css && !link) continue\n\n if (str) str += linebreak\n str += css\n }\n\n return str\n }\n}\n","import RuleList from './RuleList'\n\nexport default class StyleSheet {\n constructor(styles, options) {\n this.attached = false\n this.deployed = false\n this.classes = {}\n this.keyframes = {}\n this.options = {\n ...options,\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n }\n if (options.Renderer) {\n this.renderer = new options.Renderer(this)\n }\n this.rules = new RuleList(this.options)\n\n for (const name in styles) {\n this.rules.add(name, styles[name])\n }\n\n this.rules.process()\n }\n\n /**\n * Attach renderable to the render tree.\n */\n attach() {\n if (this.attached) return this\n if (this.renderer) this.renderer.attach()\n this.attached = true\n // Order is important, because we can't use insertRule API if style element is not attached.\n if (!this.deployed) this.deploy()\n return this\n }\n\n /**\n * Remove renderable from render tree.\n */\n detach() {\n if (!this.attached) return this\n if (this.renderer) this.renderer.detach()\n this.attached = false\n return this\n }\n\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n addRule(name, decl, options) {\n const {queue} = this\n\n // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n if (this.attached && !queue) this.queue = []\n\n const rule = this.rules.add(name, decl, options)\n\n if (!rule) return null\n\n this.options.jss.plugins.onProcessRule(rule)\n\n if (this.attached) {\n if (!this.deployed) return rule\n // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (queue) queue.push(rule)\n else {\n this.insertRule(rule)\n if (this.queue) {\n this.queue.forEach(this.insertRule, this)\n this.queue = undefined\n }\n }\n return rule\n }\n\n // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false\n\n return rule\n }\n\n /**\n * Replace a rule in the current stylesheet.\n */\n replaceRule(nameOrSelector, decl, options) {\n const oldRule = this.rules.get(nameOrSelector)\n if (!oldRule) return this.addRule(nameOrSelector, decl, options)\n\n const newRule = this.rules.replace(nameOrSelector, decl, options)\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule)\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule\n // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule)\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule)\n }\n }\n return newRule\n }\n\n // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false\n\n return newRule\n }\n\n /**\n * Insert rule into the StyleSheet\n */\n insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule)\n }\n }\n\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n addRules(styles, options) {\n const added = []\n for (const name in styles) {\n const rule = this.addRule(name, styles[name], options)\n if (rule) added.push(rule)\n }\n return added\n }\n\n /**\n * Get a rule by name or selector.\n */\n getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector)\n }\n\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n deleteRule(name) {\n const rule = typeof name === 'object' ? name : this.rules.get(name)\n\n if (\n !rule ||\n // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n (this.attached && !rule.renderable)\n ) {\n return false\n }\n\n this.rules.remove(rule)\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable)\n }\n\n return true\n }\n\n /**\n * Get index of a rule.\n */\n indexOf(rule) {\n return this.rules.indexOf(rule)\n }\n\n /**\n * Deploy pure CSS string to a renderable.\n */\n deploy() {\n if (this.renderer) this.renderer.deploy()\n this.deployed = true\n return this\n }\n\n /**\n * Update the function values with a new data.\n */\n update(...args) {\n this.rules.update(...args)\n return this\n }\n\n /**\n * Updates a single rule.\n */\n updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options)\n return this\n }\n\n /**\n * Convert rules to a CSS string.\n */\n toString(options) {\n return this.rules.toString(options)\n }\n}\n","import warning from 'tiny-warning'\n\nexport default class PluginsRegistry {\n plugins = {\n internal: [],\n external: []\n }\n\n registry = {}\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n onCreateRule(name, decl, options) {\n for (let i = 0; i < this.registry.onCreateRule.length; i++) {\n const rule = this.registry.onCreateRule[i](name, decl, options)\n if (rule) return rule\n }\n\n return null\n }\n\n /**\n * Call `onProcessRule` hooks.\n */\n onProcessRule(rule) {\n if (rule.isProcessed) return\n const {sheet} = rule.options\n for (let i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet)\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet)\n\n rule.isProcessed = true\n }\n\n /**\n * Call `onProcessStyle` hooks.\n */\n onProcessStyle(style, rule, sheet) {\n for (let i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet)\n }\n }\n\n /**\n * Call `onProcessSheet` hooks.\n */\n onProcessSheet(sheet) {\n for (let i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet)\n }\n }\n\n /**\n * Call `onUpdate` hooks.\n */\n onUpdate(data, rule, sheet, options) {\n for (let i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options)\n }\n }\n\n /**\n * Call `onChangeValue` hooks.\n */\n onChangeValue(value, prop, rule) {\n let processedValue = value\n for (let i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule)\n }\n return processedValue\n }\n\n /**\n * Register a plugin.\n */\n use(newPlugin, options = {queue: 'external'}) {\n const plugins = this.plugins[options.queue]\n\n // Avoids applying same plugin twice, at least based on ref.\n if (plugins.indexOf(newPlugin) !== -1) {\n return\n }\n\n plugins.push(newPlugin)\n\n this.registry = [...this.plugins.external, ...this.plugins.internal].reduce(\n (registry, plugin) => {\n for (const name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name])\n } else {\n warning(false, `[JSS] Unknown hook \"${name}\".`)\n }\n }\n return registry\n },\n {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n }\n )\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import getWhitespaceSymbols from './utils/getWhitespaceSymbols'\n/**\n * Sheets registry to access all instances in one place.\n */\nexport default class SheetsRegistry {\n registry = []\n\n /**\n * Current highest index number.\n */\n get index() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index\n }\n\n /**\n * Register a Style Sheet.\n */\n add(sheet) {\n const {registry} = this\n const {index} = sheet.options\n\n if (registry.indexOf(sheet) !== -1) return\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet)\n return\n }\n\n // Find a position.\n for (let i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet)\n return\n }\n }\n }\n\n /**\n * Reset the registry.\n */\n reset() {\n this.registry = []\n }\n\n /**\n * Remove a Style Sheet.\n */\n remove(sheet) {\n const index = this.registry.indexOf(sheet)\n this.registry.splice(index, 1)\n }\n\n /**\n * Convert all attached sheets to a CSS string.\n */\n toString({attached, ...options} = {}) {\n const {linebreak} = getWhitespaceSymbols(options)\n let css = ''\n for (let i = 0; i < this.registry.length; i++) {\n const sheet = this.registry[i]\n if (attached != null && sheet.attached !== attached) {\n continue\n }\n if (css) css += linebreak\n css += sheet.toString(options)\n }\n return css\n }\n}\n","import SheetsRegistry from './SheetsRegistry'\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\nexport default new SheetsRegistry()\n","/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nexport default typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined' && window.Math === Math\n ? window\n : typeof self !== 'undefined' && self.Math === Math\n ? self\n : Function('return this')()\n","import globalThis from './globalThis'\n\nconst ns = '2f1acc6c3a606b082e5eef5e54414ffb'\nif (globalThis[ns] == null) globalThis[ns] = 0\n\n// Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\nexport default globalThis[ns]++\n","import warning from 'tiny-warning'\nimport moduleId from './moduleId'\n\nconst maxRules = 1e10\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nconst createGenerateId = (options = {}) => {\n let ruleCounter = 0\n\n const generateId = (rule, sheet) => {\n ruleCounter += 1\n\n if (ruleCounter > maxRules) {\n warning(false, `[JSS] You might have a memory leak. Rule counter is at ${ruleCounter}.`)\n }\n\n let jssId = ''\n let prefix = ''\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix\n }\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id)\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return `${prefix || 'c'}${moduleId}${jssId}${ruleCounter}`\n }\n\n return `${prefix + rule.key}-${moduleId}${jssId ? `-${jssId}` : ''}-${ruleCounter}`\n }\n\n return generateId\n}\n\nexport default createGenerateId\n","import warning from 'tiny-warning'\nimport StyleSheet from './StyleSheet'\nimport sheets from './sheets'\nimport toCssValue from './utils/toCssValue'\n\n/**\n * Cache the value from the first time a function is called.\n */\nconst memoize = (fn) => {\n let value\n return () => {\n if (!value) value = fn()\n return value\n }\n}\n\n/**\n * Get a style property value.\n */\nconst getPropertyValue = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop)\n }\n return cssRule.style.getPropertyValue(prop)\n } catch (err) {\n // IE may throw if property is unknown.\n return ''\n }\n}\n\n/**\n * Set a style property.\n */\nconst setProperty = (cssRule, prop, value) => {\n try {\n let cssValue = value\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value)\n }\n\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue)\n } else {\n const indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1\n\n const cssValueWithoutImportantFlag =\n indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue\n\n cssRule.style.setProperty(\n prop,\n cssValueWithoutImportantFlag,\n indexOfImportantFlag > -1 ? 'important' : ''\n )\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false\n }\n return true\n}\n\n/**\n * Remove a style property.\n */\nconst removeProperty = (cssRule, prop) => {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop)\n } else {\n cssRule.style.removeProperty(prop)\n }\n } catch (err) {\n warning(\n false,\n `[JSS] DOMException \"${err.message}\" was thrown. Tried to remove property \"${prop}\".`\n )\n }\n}\n\n/**\n * Set the selector.\n */\nconst setSelector = (cssRule, selectorText) => {\n cssRule.selectorText = selectorText\n\n // Return false if setter was not successful.\n // Currently works in chrome only.\n return cssRule.selectorText === selectorText\n}\n\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\nconst getHead = memoize(() => document.querySelector('head'))\n\n/**\n * Find attached sheet with an index higher than the passed one.\n */\nfunction findHigherSheet(registry, options) {\n for (let i = 0; i < registry.length; i++) {\n const sheet = registry[i]\n if (\n sheet.attached &&\n sheet.options.index > options.index &&\n sheet.options.insertionPoint === options.insertionPoint\n ) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find attached sheet with the highest index.\n */\nfunction findHighestSheet(registry, options) {\n for (let i = registry.length - 1; i >= 0; i--) {\n const sheet = registry[i]\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet\n }\n }\n return null\n}\n\n/**\n * Find a comment with \"jss\" inside.\n */\nfunction findCommentNode(text) {\n const head = getHead()\n for (let i = 0; i < head.childNodes.length; i++) {\n const node = head.childNodes[i]\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node\n }\n }\n return null\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n const {registry} = sheets\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n let sheet = findHigherSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n }\n }\n\n // Otherwise insert after the last attached.\n sheet = findHighestSheet(registry, options)\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n }\n }\n }\n\n // Try to find a comment placeholder if registry is empty.\n const {insertionPoint} = options\n if (insertionPoint && typeof insertionPoint === 'string') {\n const comment = findCommentNode(insertionPoint)\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n }\n }\n\n // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n warning(false, `[JSS] Insertion point \"${insertionPoint}\" not found.`)\n }\n\n return false\n}\n\n/**\n * Insert style element into the DOM.\n */\nfunction insertStyle(style, options) {\n const {insertionPoint} = options\n const nextNode = findPrevNode(options)\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node)\n\n return\n }\n\n // Works with iframes and any node types.\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n const insertionPointElement = insertionPoint\n const {parentNode} = insertionPointElement\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling)\n else warning(false, '[JSS] Insertion point is not in the DOM.')\n return\n }\n\n getHead().appendChild(style)\n}\n\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\nconst getNonce = memoize(() => {\n const node = document.querySelector('meta[property=\"csp-nonce\"]')\n return node ? node.getAttribute('content') : null\n})\n\nconst insertRule = (container, rule, index) => {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index)\n }\n // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule)\n }\n } catch (err) {\n warning(false, `[JSS] ${err.message}`)\n return false\n }\n return container.cssRules[index]\n}\n\nconst getValidRuleInsertionIndex = (container, index) => {\n const maxIndex = container.cssRules.length\n // In case previous insertion fails, passed index might be wrong\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex\n }\n return index\n}\n\nconst createStyle = () => {\n const el = document.createElement('style')\n // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n el.textContent = '\\n'\n return el\n}\n\nexport default class DomRenderer {\n getPropertyValue = getPropertyValue\n\n setProperty = setProperty\n\n removeProperty = removeProperty\n\n setSelector = setSelector\n\n hasInsertedRules = false\n\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n cssRules = []\n\n constructor(sheet) {\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet)\n\n this.sheet = sheet\n const {media, meta, element} = this.sheet ? this.sheet.options : {}\n this.element = element || createStyle()\n this.element.setAttribute('data-jss', '')\n if (media) this.element.setAttribute('media', media)\n if (meta) this.element.setAttribute('data-meta', meta)\n const nonce = getNonce()\n if (nonce) this.element.setAttribute('nonce', nonce)\n }\n\n /**\n * Insert style element into render tree.\n */\n attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return\n\n insertStyle(this.element, this.sheet.options)\n\n // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n const deployed = Boolean(this.sheet && this.sheet.deployed)\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false\n this.deploy()\n }\n }\n\n /**\n * Remove style element from render tree.\n */\n detach() {\n if (!this.sheet) return\n const {parentNode} = this.element\n if (parentNode) parentNode.removeChild(this.element)\n // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n if (this.sheet.options.link) {\n this.cssRules = []\n this.element.textContent = '\\n'\n }\n }\n\n /**\n * Inject CSS string into element.\n */\n deploy() {\n const {sheet} = this\n if (!sheet) return\n if (sheet.options.link) {\n this.insertRules(sheet.rules)\n return\n }\n this.element.textContent = `\\n${sheet.toString()}\\n`\n }\n\n /**\n * Insert RuleList into an element.\n */\n\n insertRules(rules, nativeParent) {\n for (let i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent)\n }\n }\n\n /**\n * Insert a rule into element.\n */\n insertRule(rule, index, nativeParent = this.element.sheet) {\n if (rule.rules) {\n const parent = rule\n let latestNativeParent = nativeParent\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n // We need to render the container without children first.\n latestNativeParent = insertRule(\n nativeParent,\n parent.toString({children: false}),\n insertionIndex\n )\n if (latestNativeParent === false) {\n return false\n }\n this.refCssRule(rule, insertionIndex, latestNativeParent)\n }\n this.insertRules(parent.rules, latestNativeParent)\n return latestNativeParent\n }\n\n const ruleStr = rule.toString()\n\n if (!ruleStr) return false\n\n const insertionIndex = getValidRuleInsertionIndex(nativeParent, index)\n const nativeRule = insertRule(nativeParent, ruleStr, insertionIndex)\n if (nativeRule === false) {\n return false\n }\n\n this.hasInsertedRules = true\n this.refCssRule(rule, insertionIndex, nativeRule)\n\n return nativeRule\n }\n\n refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule\n // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule)\n }\n }\n\n /**\n * Delete a rule.\n */\n deleteRule(cssRule) {\n const {sheet} = this.element\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return true\n }\n\n /**\n * Get index of a CSS Rule.\n */\n indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule)\n }\n\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n replaceRule(cssRule, rule) {\n const index = this.indexOf(cssRule)\n if (index === -1) return false\n this.element.sheet.deleteRule(index)\n this.cssRules.splice(index, 1)\n return this.insertRule(rule, index)\n }\n\n /**\n * Get all rules elements.\n */\n getRules() {\n return this.element.sheet.cssRules\n }\n}\n","import isInBrowser from 'is-in-browser'\nimport StyleSheet from './StyleSheet'\nimport PluginsRegistry from './PluginsRegistry'\nimport sheets from './sheets'\nimport {plugins as internalPlugins} from './plugins/index'\nimport createGenerateIdDefault from './utils/createGenerateId'\nimport createRule from './utils/createRule'\nimport DomRenderer from './DomRenderer'\n\nlet instanceCounter = 0\n\nexport default class Jss {\n id = instanceCounter++\n\n version = process.env.VERSION\n\n plugins = new PluginsRegistry()\n\n options = {\n id: {minify: false},\n createGenerateId: createGenerateIdDefault,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n }\n\n generateId = createGenerateIdDefault({minify: false})\n\n constructor(options) {\n for (let i = 0; i < internalPlugins.length; i++) {\n this.plugins.use(internalPlugins[i], {queue: 'internal'})\n }\n this.setup(options)\n }\n\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n setup(options = {}) {\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId\n }\n\n if (options.id) {\n this.options.id = {\n ...this.options.id,\n ...options.id\n }\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id)\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer\n }\n\n // eslint-disable-next-line prefer-spread\n if (options.plugins) this.use.apply(this, options.plugins)\n\n return this\n }\n\n /**\n * Create a Style Sheet.\n */\n createStyleSheet(styles, options = {}) {\n let {index} = options\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1\n }\n const sheet = new StyleSheet(styles, {\n ...options,\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index\n })\n this.plugins.onProcessSheet(sheet)\n\n return sheet\n }\n\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n removeStyleSheet(sheet) {\n sheet.detach()\n sheets.remove(sheet)\n return this\n }\n\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n createRule(name, style = {}, options = {}) {\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style)\n }\n\n const ruleOptions = {...options, name, jss: this, Renderer: this.options.Renderer}\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId\n if (!ruleOptions.classes) ruleOptions.classes = {}\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {}\n\n const rule = createRule(name, style, ruleOptions)\n\n if (rule) this.plugins.onProcessRule(rule)\n\n return rule\n }\n\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n use(...plugins) {\n plugins.forEach((plugin) => {\n this.plugins.use(plugin)\n })\n\n return this\n }\n}\n","import Jss from '../Jss'\n\nconst createJss = (options) => new Jss(options)\n\n/**\n * Creates a new instance of Jss.\n */\nexport default createJss\n","import warn from 'tiny-warning'\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\nexport default class SheetsManager {\n length = 0\n\n sheets = new WeakMap()\n\n get size() {\n return this.length\n }\n\n get(key) {\n const entry = this.sheets.get(key)\n return entry && entry.sheet\n }\n\n add(key, sheet) {\n if (this.sheets.has(key)) return\n\n this.length++\n\n this.sheets.set(key, {\n sheet,\n refs: 0\n })\n }\n\n manage(key) {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach()\n }\n\n entry.refs++\n\n return entry.sheet\n }\n\n warn(false, \"[JSS] SheetsManager: can't find sheet to manage\")\n\n return undefined\n }\n\n unmanage(key) {\n const entry = this.sheets.get(key)\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--\n\n if (entry.refs === 0) entry.sheet.detach()\n }\n } else {\n warn(false, \"SheetsManager: can't find sheet to unmanage\")\n }\n }\n}\n","/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nconst hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS\nexport default hasCSSTOMSupport\n","/**\n * Extracts a styles object with only props that contain function values.\n */\nexport default function getDynamicStyles(styles) {\n let to = null\n\n for (const key in styles) {\n const value = styles[key]\n const type = typeof value\n\n if (type === 'function') {\n if (!to) to = {}\n to[key] = value\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n const extracted = getDynamicStyles(value)\n if (extracted) {\n if (!to) to = {}\n to[key] = extracted\n }\n }\n }\n\n return to\n}\n","/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\nimport create from './utils/createJss'\n\nexport {default as SheetsRegistry} from './SheetsRegistry'\nexport {default as SheetsManager} from './SheetsManager'\nexport {default as RuleList} from './RuleList'\nexport {default as sheets} from './sheets'\nexport {default as hasCSSTOMSupport} from './utils/hasCSSTOMSupport'\nexport {default as getDynamicStyles} from './utils/getDynamicStyles'\nexport {default as toCssValue} from './utils/toCssValue'\nexport {default as createRule} from './utils/createRule'\nexport {default as createGenerateId} from './utils/createGenerateId'\nexport {create}\nexport default create()\n"],"names":["plainObjectConstrurctor","constructor","cloneStyle","style","Array","isArray","map","newStyle","name","createRule","decl","options","jss","declCopy","rule","plugins","onCreateRule","warning","join","value","by","result","i","length","toCssValue","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","str","indent","index","toCss","selector","fallbacks","Infinity","fallback","prop","allowEmpty","escapeRegex","nativeEscape","CSS","escape","replace","BaseStyleRule","key","type","isProcessed","sheet","Renderer","renderer","undefined","force","newValue","process","onChangeValue","isEmpty","isDefined","remove","renderable","removeProperty","setProperty","attached","StyleRule","scoped","generateId","selectorText","id","applyTo","json","toJSON","toString","link","opts","hasChanged","setSelector","replaceRule","parent","defaultToStringOptions","children","atRegExp","ConditionalRule","styles","atMatch","match","at","query","rules","RuleList","add","getRule","get","indexOf","addRule","onProcessRule","newRule","keyRegExp","test","nameRegExp","KeyframesRule","frames","nameMatch","refRegExp","findReferencedKeyframe","val","keyframes","replaceRef","refKeyframe","onProcessStyle","KeyframeRule","FontFaceRule","ViewportRule","SimpleRule","keysMap","pluginStyleRule","pluginConditionalRule","pluginKeyframesRule","pluginKeyframeRule","pluginFontFaceRule","pluginViewportRule","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","register","splice","oldRule","oldIndex","nameOrSelector","unregister","slice","forEach","update","data","updateOne","onUpdate","nextValue","prevValue","css","StyleSheet","deployed","attach","deploy","detach","queue","push","insertRule","deleteRule","addRules","added","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","reduce","plugin","SheetsRegistry","reset","globalThis","window","Math","self","Function","ns","maxRules","createGenerateId","ruleCounter","jssId","prefix","classNamePrefix","String","minify","moduleId","memoize","fn","getPropertyValue","cssRule","attributeStyleMap","err","set","indexOfImportantFlag","cssValueWithoutImportantFlag","substr","delete","message","getHead","document","querySelector","findHigherSheet","insertionPoint","findHighestSheet","findCommentNode","text","head","childNodes","node","nodeType","nodeValue","trim","findPrevNode","sheets","element","parentNode","nextSibling","comment","insertStyle","nextNode","insertBefore","insertionPointElement","appendChild","getNonce","getAttribute","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","createStyle","el","createElement","textContent","DomRenderer","hasInsertedRules","media","meta","setAttribute","nonce","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","insertionIndex","refCssRule","ruleStr","nativeRule","getRules","instanceCounter","Jss","version","createGenerateIdDefault","isInBrowser","internalPlugins","setup","apply","createStyleSheet","removeStyleSheet","createJss","SheetsManager","WeakMap","entry","has","refs","manage","warn","unmanage","hasCSSTOMSupport","getDynamicStyles","to","extracted","create"],"mappings":";;;;;;EAAe,SAAS,QAAQ,GAAG;EACnC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;EAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAChC;EACA,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;EAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EACpC,SAAS;EACT,OAAO;EACP,KAAK;AACL;EACA,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG,CAAC;AACJ;EACA,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EACzC;;EChBA,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;AAC7Q;EACO,IAAI,SAAS,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;;ECDlN,SAAS,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;EACrC,EAAqB;EACrB,IAAI,IAAI,SAAS,EAAE;EACnB,MAAM,OAAO;EACb,KAAK;AACL;EACA,IAAI,IAAI,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC;AACrC;EACA,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;EACxC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACzB,KAAK;AACL;EACA,IAAI,IAAI;EACR,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;EACxB,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;EAClB,GAAG;EACH;;ECjBA,IAAMA,uBAAuB,GAAG,GAAGC,WAAnC;EAEe,SAASC,UAAT,CAAoBC,KAApB,EAA2B;EACxC,MAAIA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,KAAiB,QAAtC,EAAgD,OAAOA,KAAP;EAChD,MAAIC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B,OAAOA,KAAK,CAACG,GAAN,CAAUJ,UAAV,CAAP;EAC1B,MAAIC,KAAK,CAACF,WAAN,KAAsBD,uBAA1B,EAAmD,OAAOG,KAAP;EAEnD,MAAMI,QAAQ,GAAG,EAAjB;;EACA,OAAK,IAAMC,IAAX,IAAmBL,KAAnB,EAA0B;EACxBI,IAAAA,QAAQ,CAACC,IAAD,CAAR,GAAiBN,UAAU,CAACC,KAAK,CAACK,IAAD,CAAN,CAA3B;EACD;;EACD,SAAOD,QAAP;EACD;;ECTD;;;;EAGe,SAASE,UAAT,CAAoBD,IAApB,EAAsCE,IAAtC,EAA4CC,OAA5C,EAAqD;EAAA,MAAjCH,IAAiC;EAAjCA,IAAAA,IAAiC,GAA1B,SAA0B;EAAA;;EAAA,MAC3DI,GAD2D,GACpDD,OADoD,CAC3DC,GAD2D;EAElE,MAAMC,QAAQ,GAAGX,UAAU,CAACQ,IAAD,CAA3B;EAEA,MAAMI,IAAI,GAAGF,GAAG,CAACG,OAAJ,CAAYC,YAAZ,CAAyBR,IAAzB,EAA+BK,QAA/B,EAAyCF,OAAzC,CAAb;EACA,MAAIG,IAAJ,EAAU,OAAOA,IAAP,CALwD;;EAQlE,MAAIN,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;EACnB,KAAAS,OAAO,CAAC,KAAD,0BAA8BT,IAA9B,CAAP;EACD;;EAED,SAAO,IAAP;EACD;;ECnBD,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;EAC1C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;EAC9B,IAAI,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;EAC3D,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;EACnC,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;EAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;EAC9D,GAAG;EACH,CAAC;AACD;EACe,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;EAC3E,EAAE,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EACvE,EAAE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EAC/D,EAAE,OAAO,WAAW,CAAC;EACrB;;ECde,SAAS,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC7D,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC5C,EAAE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;EAClC;;ECJe,SAAS,sBAAsB,CAAC,IAAI,EAAE;EACrD,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;EACvB,IAAI,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC;EAC1F,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;ECNA,IAAMU,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAQC,EAAR,EAAe;EAC1B,MAAIC,MAAM,GAAG,EAAb;;EACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,KAAK,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;EACrC;EACA,QAAIH,KAAK,CAACG,CAAD,CAAL,KAAa,YAAjB,EAA+B;EAC/B,QAAID,MAAJ,EAAYA,MAAM,IAAID,EAAV;EACZC,IAAAA,MAAM,IAAIF,KAAK,CAACG,CAAD,CAAf;EACD;;EACD,SAAOD,MAAP;EACD,CATD;EAWA;;;;;;;;;;MAQMG,UAAU,GAAG,SAAbA,UAAa,CAACL,KAAD,EAAW;EAC5B,MAAI,CAACf,KAAK,CAACC,OAAN,CAAcc,KAAd,CAAL,EAA2B,OAAOA,KAAP;EAE3B,MAAIM,QAAQ,GAAG,EAAf,CAH4B;;EAM5B,MAAIrB,KAAK,CAACC,OAAN,CAAcc,KAAK,CAAC,CAAD,CAAnB,CAAJ,EAA6B;EAC3B,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,KAAK,CAACI,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;EACrC,UAAIH,KAAK,CAACG,CAAD,CAAL,KAAa,YAAjB,EAA+B;EAC/B,UAAIG,QAAJ,EAAcA,QAAQ,IAAI,IAAZ;EACdA,MAAAA,QAAQ,IAAIP,IAAI,CAACC,KAAK,CAACG,CAAD,CAAN,EAAW,GAAX,CAAhB;EACD;EACF,GAND,MAMOG,QAAQ,GAAGP,IAAI,CAACC,KAAD,EAAQ,IAAR,CAAf,CAZqB;;;EAe5B,MAAIA,KAAK,CAACA,KAAK,CAACI,MAAN,GAAe,CAAhB,CAAL,KAA4B,YAAhC,EAA8C;EAC5CE,IAAAA,QAAQ,IAAI,aAAZ;EACD;;EAED,SAAOA,QAAP;EACD;;ECvCc,SAASC,oBAAT,CAA8Bf,OAA9B,EAAuC;EACpD,MAAIA,OAAO,IAAIA,OAAO,CAACgB,MAAR,KAAmB,KAAlC,EAAyC;EACvC,WAAO;EACLC,MAAAA,SAAS,EAAE,EADN;EAELC,MAAAA,KAAK,EAAE;EAFF,KAAP;EAID;;EAED,SAAO;EACLD,IAAAA,SAAS,EAAE,IADN;EAELC,IAAAA,KAAK,EAAE;EAFF,GAAP;EAID;;ECTD;;;;;EAIA,SAASC,SAAT,CAAmBC,GAAnB,EAAwBC,MAAxB,EAAgC;EAC9B,MAAIX,MAAM,GAAG,EAAb;;EACA,OAAK,IAAIY,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGD,MAA5B,EAAoCC,KAAK,EAAzC;EAA6CZ,IAAAA,MAAM,IAAI,IAAV;EAA7C;;EACA,SAAOA,MAAM,GAAGU,GAAhB;EACD;EAED;;;;;EAGe,SAASG,KAAT,CAAeC,QAAf,EAAyBhC,KAAzB,EAAgCQ,OAAhC,EAA8C;EAAA,MAAdA,OAAc;EAAdA,IAAAA,OAAc,GAAJ,EAAI;EAAA;;EAC3D,MAAIU,MAAM,GAAG,EAAb;EAEA,MAAI,CAAClB,KAAL,EAAY,OAAOkB,MAAP;EAH+C,iBAKxCV,OALwC;EAAA,iCAKtDqB,MALsD;EAAA,MAKtDA,MALsD,gCAK7C,CAL6C;EAAA,MAMpDI,SANoD,GAMvCjC,KANuC,CAMpDiC,SANoD;;EAQ3D,MAAIzB,OAAO,CAACgB,MAAR,KAAmB,KAAvB,EAA8B;EAC5BK,IAAAA,MAAM,GAAG,CAACK,QAAV;EACD;;EAV0D,8BAWhCX,oBAAoB,CAACf,OAAD,CAXY;EAAA,MAWpDiB,SAXoD,yBAWpDA,SAXoD;EAAA,MAWzCC,KAXyC,yBAWzCA,KAXyC;;EAa3D,MAAIM,QAAJ,EAAcH,MAAM,GAbuC;;EAgB3D,MAAII,SAAJ,EAAe;EACb;EACA,QAAIhC,KAAK,CAACC,OAAN,CAAc+B,SAAd,CAAJ,EAA8B;EAC5B,WAAK,IAAIH,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGG,SAAS,CAACb,MAAtC,EAA8CU,KAAK,EAAnD,EAAuD;EACrD,YAAMK,QAAQ,GAAGF,SAAS,CAACH,KAAD,CAA1B;;EACA,aAAK,IAAMM,IAAX,IAAmBD,QAAnB,EAA6B;EAC3B,cAAMnB,KAAK,GAAGmB,QAAQ,CAACC,IAAD,CAAtB;;EACA,cAAIpB,KAAK,IAAI,IAAb,EAAmB;EACjB,gBAAIE,MAAJ,EAAYA,MAAM,IAAIO,SAAV;EACZP,YAAAA,MAAM,IAAIS,SAAS,CAAIS,IAAJ,SAAYV,KAAZ,GAAoBL,UAAU,CAACL,KAAD,CAA9B,QAA0Ca,MAA1C,CAAnB;EACD;EACF;EACF;EACF,KAXD,MAWO;EACL;EACA,WAAK,IAAMO,KAAX,IAAmBH,SAAnB,EAA8B;EAC5B,YAAMjB,MAAK,GAAGiB,SAAS,CAACG,KAAD,CAAvB;;EACA,YAAIpB,MAAK,IAAI,IAAb,EAAmB;EACjB,cAAIE,MAAJ,EAAYA,MAAM,IAAIO,SAAV;EACZP,UAAAA,MAAM,IAAIS,SAAS,CAAIS,KAAJ,SAAYV,KAAZ,GAAoBL,UAAU,CAACL,MAAD,CAA9B,QAA0Ca,MAA1C,CAAnB;EACD;EACF;EACF;EACF;;EAED,OAAK,IAAMO,MAAX,IAAmBpC,KAAnB,EAA0B;EACxB,QAAMgB,OAAK,GAAGhB,KAAK,CAACoC,MAAD,CAAnB;;EACA,QAAIpB,OAAK,IAAI,IAAT,IAAiBoB,MAAI,KAAK,WAA9B,EAA2C;EACzC,UAAIlB,MAAJ,EAAYA,MAAM,IAAIO,SAAV;EACZP,MAAAA,MAAM,IAAIS,SAAS,CAAIS,MAAJ,SAAYV,KAAZ,GAAoBL,UAAU,CAACL,OAAD,CAA9B,QAA0Ca,MAA1C,CAAnB;EACD;EACF,GA/C0D;;;EAkD3D,MAAI,CAACX,MAAD,IAAW,CAACV,OAAO,CAAC6B,UAAxB,EAAoC,OAAOnB,MAAP,CAlDuB;;EAqD3D,MAAI,CAACc,QAAL,EAAe,OAAOd,MAAP;EAEfW,EAAAA,MAAM;EAEN,MAAIX,MAAJ,EAAYA,MAAM,QAAMO,SAAN,GAAkBP,MAAlB,GAA2BO,SAAjC;EAEZ,SAAOE,SAAS,MAAIK,QAAJ,GAAeN,KAAf,SAAwBR,MAAxB,EAAkCW,MAAlC,CAAT,GAAqDF,SAAS,CAAC,GAAD,EAAME,MAAN,CAArE;EACD;;EC5ED,IAAMS,WAAW,GAAG,8BAApB;EACA,IAAMC,YAAY,GAAG,OAAOC,GAAP,KAAe,WAAf,IAA8BA,GAAG,CAACC,MAAvD;AAEA,gBAAe,UAACb,GAAD;EAAA,SAAUW,YAAY,GAAGA,YAAY,CAACX,GAAD,CAAf,GAAuBA,GAAG,CAACc,OAAJ,CAAYJ,WAAZ,EAAyB,MAAzB,CAA7C;EAAA,CAAf;;MCEaK,aAAb;EAAA;EAAA;EAKE,yBAAYC,GAAZ,EAAiB5C,KAAjB,EAAwBQ,OAAxB,EAAiC;EAAA,SAJjCqC,IAIiC,GAJ1B,OAI0B;EAAA,SAFjCC,WAEiC,GAFnB,KAEmB;EAAA,QACxBC,KADwB,GACLvC,OADK,CACxBuC,KADwB;EAAA,QACjBC,QADiB,GACLxC,OADK,CACjBwC,QADiB;EAE/B,SAAKJ,GAAL,GAAWA,GAAX;EACA,SAAKpC,OAAL,GAAeA,OAAf;EACA,SAAKR,KAAL,GAAaA,KAAb;EACA,QAAI+C,KAAJ,EAAW,KAAKE,QAAL,GAAgBF,KAAK,CAACE,QAAtB,CAAX,KACK,IAAID,QAAJ,EAAc,KAAKC,QAAL,GAAgB,IAAID,QAAJ,EAAhB;EACpB;EAED;;;;;EAdF;;EAAA,SAiBEZ,IAjBF,GAiBE,cAAK/B,IAAL,EAAWW,KAAX,EAAkBR,OAAlB,EAA2B;EACzB;EACA,QAAIQ,KAAK,KAAKkC,SAAd,EAAyB,OAAO,KAAKlD,KAAL,CAAWK,IAAX,CAAP,CAFA;;EAKzB,QAAM8C,KAAK,GAAG3C,OAAO,GAAGA,OAAO,CAAC2C,KAAX,GAAmB,KAAxC;EACA,QAAI,CAACA,KAAD,IAAU,KAAKnD,KAAL,CAAWK,IAAX,MAAqBW,KAAnC,EAA0C,OAAO,IAAP;EAE1C,QAAIoC,QAAQ,GAAGpC,KAAf;;EACA,QAAI,CAACR,OAAD,IAAYA,OAAO,CAAC6C,OAAR,KAAoB,KAApC,EAA2C;EACzCD,MAAAA,QAAQ,GAAG,KAAK5C,OAAL,CAAaC,GAAb,CAAiBG,OAAjB,CAAyB0C,aAAzB,CAAuCtC,KAAvC,EAA8CX,IAA9C,EAAoD,IAApD,CAAX;EACD;;EAED,QAAMkD,OAAO,GAAGH,QAAQ,IAAI,IAAZ,IAAoBA,QAAQ,KAAK,KAAjD;EACA,QAAMI,SAAS,GAAGnD,IAAI,IAAI,KAAKL,KAA/B,CAdyB;;EAiBzB,QAAIuD,OAAO,IAAI,CAACC,SAAZ,IAAyB,CAACL,KAA9B,EAAqC,OAAO,IAAP,CAjBZ;;EAoBzB,QAAMM,MAAM,GAAGF,OAAO,IAAIC,SAA1B;EAEA,QAAIC,MAAJ,EAAY,OAAO,KAAKzD,KAAL,CAAWK,IAAX,CAAP,CAAZ,KACK,KAAKL,KAAL,CAAWK,IAAX,IAAmB+C,QAAnB,CAvBoB;;EA0BzB,QAAI,KAAKM,UAAL,IAAmB,KAAKT,QAA5B,EAAsC;EACpC,UAAIQ,MAAJ,EAAY,KAAKR,QAAL,CAAcU,cAAd,CAA6B,KAAKD,UAAlC,EAA8CrD,IAA9C,EAAZ,KACK,KAAK4C,QAAL,CAAcW,WAAd,CAA0B,KAAKF,UAA/B,EAA2CrD,IAA3C,EAAiD+C,QAAjD;EACL,aAAO,IAAP;EACD;;EA9BwB,QAgClBL,KAhCkB,GAgCT,KAAKvC,OAhCI,CAgClBuC,KAhCkB;;EAiCzB,QAAIA,KAAK,IAAIA,KAAK,CAACc,QAAnB,EAA6B;EAC3B,OAAA/C,OAAO,CAAC,KAAD,EAAQ,8DAAR,CAAP;EACD;;EACD,WAAO,IAAP;EACD,GAtDH;;EAAA;EAAA;MAyDagD,SAAb;EAAA;EAAA;EAAA;;EACE,qBAAYlB,GAAZ,EAAiB5C,KAAjB,EAAwBQ,OAAxB,EAAiC;EAAA;;EAC/B,sCAAMoC,GAAN,EAAW5C,KAAX,EAAkBQ,OAAlB;EAD+B,QAExBwB,QAFwB,GAEexB,OAFf,CAExBwB,QAFwB;EAAA,QAEd+B,MAFc,GAEevD,OAFf,CAEduD,MAFc;EAAA,QAENhB,KAFM,GAEevC,OAFf,CAENuC,KAFM;EAAA,QAECiB,UAFD,GAEexD,OAFf,CAECwD,UAFD;;EAG/B,QAAIhC,QAAJ,EAAc;EACZ,YAAKiC,YAAL,GAAoBjC,QAApB;EACD,KAFD,MAEO,IAAI+B,MAAM,KAAK,KAAf,EAAsB;EAC3B,YAAKG,EAAL,GAAUF,UAAU,wDAAOjB,KAAP,CAApB;EACA,YAAKkB,YAAL,SAAwBxB,MAAM,CAAC,MAAKyB,EAAN,CAA9B;EACD;;EAR8B;EAShC;EAED;;;;;;;EAZF;;EAyCE;;;EAzCF,UA4CEC,OA5CF,GA4CE,iBAAQT,UAAR,EAAoB;EAAA,QACXT,QADW,GACC,IADD,CACXA,QADW;;EAElB,QAAIA,QAAJ,EAAc;EACZ,UAAMmB,IAAI,GAAG,KAAKC,MAAL,EAAb;;EACA,WAAK,IAAMjC,IAAX,IAAmBgC,IAAnB,EAAyB;EACvBnB,QAAAA,QAAQ,CAACW,WAAT,CAAqBF,UAArB,EAAiCtB,IAAjC,EAAuCgC,IAAI,CAAChC,IAAD,CAA3C;EACD;EACF;;EACD,WAAO,IAAP;EACD;EAED;;;;;EAvDF;;EAAA,UA4DEiC,MA5DF,GA4DE,kBAAS;EACP,QAAMD,IAAI,GAAG,EAAb;;EACA,SAAK,IAAMhC,IAAX,IAAmB,KAAKpC,KAAxB,EAA+B;EAC7B,UAAMgB,KAAK,GAAG,KAAKhB,KAAL,CAAWoC,IAAX,CAAd;EACA,UAAI,OAAOpB,KAAP,KAAiB,QAArB,EAA+BoD,IAAI,CAAChC,IAAD,CAAJ,GAAapB,KAAb,CAA/B,KACK,IAAIf,KAAK,CAACC,OAAN,CAAcc,KAAd,CAAJ,EAA0BoD,IAAI,CAAChC,IAAD,CAAJ,GAAaf,UAAU,CAACL,KAAD,CAAvB;EAChC;;EACD,WAAOoD,IAAP;EACD;EAED;;;EAtEF;;EAAA,UAyEEE,QAzEF,GAyEE,kBAAS9D,OAAT,EAAkB;EAAA,QACTuC,KADS,GACA,KAAKvC,OADL,CACTuC,KADS;EAEhB,QAAMwB,IAAI,GAAGxB,KAAK,GAAGA,KAAK,CAACvC,OAAN,CAAc+D,IAAjB,GAAwB,KAA1C;EACA,QAAMC,IAAI,GAAGD,IAAI,gBAAO/D,OAAP;EAAgB6B,MAAAA,UAAU,EAAE;EAA5B,SAAoC7B,OAArD;EACA,WAAOuB,KAAK,CAAC,KAAKkC,YAAN,EAAoB,KAAKjE,KAAzB,EAAgCwE,IAAhC,CAAZ;EACD,GA9EH;;EAAA;EAAA;EAAA,sBAiBexC,QAjBf,EAiByB;EACrB,UAAIA,QAAQ,KAAK,KAAKiC,YAAtB,EAAoC;EAEpC,WAAKA,YAAL,GAAoBjC,QAApB;EAHqB,UAKdiB,QALc,GAKU,IALV,CAKdA,QALc;EAAA,UAKJS,UALI,GAKU,IALV,CAKJA,UALI;EAOrB,UAAI,CAACA,UAAD,IAAe,CAACT,QAApB,EAA8B;EAE9B,UAAMwB,UAAU,GAAGxB,QAAQ,CAACyB,WAAT,CAAqBhB,UAArB,EAAiC1B,QAAjC,CAAnB,CATqB;;EAYrB,UAAI,CAACyC,UAAL,EAAiB;EACfxB,QAAAA,QAAQ,CAAC0B,WAAT,CAAqBjB,UAArB,EAAiC,IAAjC;EACD;EACF;EAED;;;EAlCF;EAAA,wBAqCiB;EACb,aAAO,KAAKO,YAAZ;EACD;EAvCH;;EAAA;EAAA,EAA+BtB,aAA/B;AAiFA,wBAAe;EACb9B,EAAAA,YADa,wBACA+B,GADA,EACK5C,KADL,EACYQ,OADZ,EACqB;EAChC,QAAIoC,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAmBpC,OAAO,CAACoE,MAAR,IAAkBpE,OAAO,CAACoE,MAAR,CAAe/B,IAAf,KAAwB,WAAjE,EAA+E;EAC7E,aAAO,IAAP;EACD;;EACD,WAAO,IAAIiB,SAAJ,CAAclB,GAAd,EAAmB5C,KAAnB,EAA0BQ,OAA1B,CAAP;EACD;EANY,CAAf;;EC5IA,IAAMqE,sBAAsB,GAAG;EAC7BhD,EAAAA,MAAM,EAAE,CADqB;EAE7BiD,EAAAA,QAAQ,EAAE;EAFmB,CAA/B;EAKA,IAAMC,QAAQ,GAAG,WAAjB;EAEA;;;;MAGaC,eAAb;EAAA;EAAA;EAKE,2BAAYpC,GAAZ,EAAiBqC,MAAjB,EAAyBzE,OAAzB,EAAkC;EAAA,SAJlCqC,IAIkC,GAJ3B,aAI2B;EAAA,SAFlCC,WAEkC,GAFpB,KAEoB;EAChC,SAAKF,GAAL,GAAWA,GAAX;EACA,QAAMsC,OAAO,GAAGtC,GAAG,CAACuC,KAAJ,CAAUJ,QAAV,CAAhB;EACA,SAAKK,EAAL,GAAUF,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAV,GAAgB,SAAjC,CAHgC;;EAKhC,SAAKG,KAAL,GAAa7E,OAAO,CAACH,IAAR,UAAoB,KAAK+E,EAAtC;EACA,SAAK5E,OAAL,GAAeA,OAAf;EACA,SAAK8E,KAAL,GAAa,IAAIC,QAAJ,cAAiB/E,OAAjB;EAA0BoE,MAAAA,MAAM,EAAE;EAAlC,OAAb;;EAEA,SAAK,IAAMvE,IAAX,IAAmB4E,MAAnB,EAA2B;EACzB,WAAKK,KAAL,CAAWE,GAAX,CAAenF,IAAf,EAAqB4E,MAAM,CAAC5E,IAAD,CAA3B;EACD;;EAED,SAAKiF,KAAL,CAAWjC,OAAX;EACD;EAED;;;;;EArBF;;EAAA,SAwBEoC,OAxBF,GAwBE,iBAAQpF,IAAR,EAAc;EACZ,WAAO,KAAKiF,KAAL,CAAWI,GAAX,CAAerF,IAAf,CAAP;EACD;EAED;;;EA5BF;;EAAA,SA+BEsF,OA/BF,GA+BE,iBAAQhF,IAAR,EAAc;EACZ,WAAO,KAAK2E,KAAL,CAAWK,OAAX,CAAmBhF,IAAnB,CAAP;EACD;EAED;;;EAnCF;;EAAA,SAsCEiF,OAtCF,GAsCE,iBAAQvF,IAAR,EAAcL,KAAd,EAAqBQ,OAArB,EAA8B;EAC5B,QAAMG,IAAI,GAAG,KAAK2E,KAAL,CAAWE,GAAX,CAAenF,IAAf,EAAqBL,KAArB,EAA4BQ,OAA5B,CAAb;EACA,QAAI,CAACG,IAAL,EAAW,OAAO,IAAP;EACX,SAAKH,OAAL,CAAaC,GAAb,CAAiBG,OAAjB,CAAyBiF,aAAzB,CAAuClF,IAAvC;EACA,WAAOA,IAAP;EACD;EAED;;;EA7CF;;EAAA,SAgDEgE,WAhDF,GAgDE,qBAAYtE,IAAZ,EAAkBL,KAAlB,EAAyBQ,OAAzB,EAAkC;EAChC,QAAMsF,OAAO,GAAG,KAAKR,KAAL,CAAW5C,OAAX,CAAmBrC,IAAnB,EAAyBL,KAAzB,EAAgCQ,OAAhC,CAAhB;EACA,QAAIsF,OAAJ,EAAa,KAAKtF,OAAL,CAAaC,GAAb,CAAiBG,OAAjB,CAAyBiF,aAAzB,CAAuCC,OAAvC;EACb,WAAOA,OAAP;EACD;EAED;;;EAtDF;;EAAA,SAyDExB,QAzDF,GAyDE,kBAAS9D,OAAT,EAA2C;EAAA,QAAlCA,OAAkC;EAAlCA,MAAAA,OAAkC,GAAxBqE,sBAAwB;EAAA;;EAAA,gCACrBtD,oBAAoB,CAACf,OAAD,CADC;EAAA,QAClCiB,SADkC,yBAClCA,SADkC;;EAEzC,QAAIjB,OAAO,CAACqB,MAAR,IAAkB,IAAtB,EAA4BrB,OAAO,CAACqB,MAAR,GAAiBgD,sBAAsB,CAAChD,MAAxC;EAC5B,QAAIrB,OAAO,CAACsE,QAAR,IAAoB,IAAxB,EAA8BtE,OAAO,CAACsE,QAAR,GAAmBD,sBAAsB,CAACC,QAA1C;;EAC9B,QAAItE,OAAO,CAACsE,QAAR,KAAqB,KAAzB,EAAgC;EAC9B,aAAU,KAAKO,KAAf;EACD;;EACD,QAAMP,QAAQ,GAAG,KAAKQ,KAAL,CAAWhB,QAAX,CAAoB9D,OAApB,CAAjB;EACA,WAAOsE,QAAQ,GAAM,KAAKO,KAAX,UAAqB5D,SAArB,GAAiCqD,QAAjC,GAA4CrD,SAA5C,SAA2D,EAA1E;EACD,GAlEH;;EAAA;EAAA;EAqEA,IAAMsE,SAAS,GAAG,qBAAlB;AAEA,8BAAe;EACblF,EAAAA,YADa,wBACA+B,GADA,EACKqC,MADL,EACazE,OADb,EACsB;EACjC,WAAOuF,SAAS,CAACC,IAAV,CAAepD,GAAf,IAAsB,IAAIoC,eAAJ,CAAoBpC,GAApB,EAAyBqC,MAAzB,EAAiCzE,OAAjC,CAAtB,GAAkE,IAAzE;EACD;EAHY,CAAf;;EC/EA,IAAMqE,wBAAsB,GAAG;EAC7BhD,EAAAA,MAAM,EAAE,CADqB;EAE7BiD,EAAAA,QAAQ,EAAE;EAFmB,CAA/B;EAKA,IAAMmB,UAAU,GAAG,uBAAnB;EAEA;;;;MAGaC,aAAb;EAAA;EAAA;EAOE,yBAAYtD,GAAZ,EAAiBuD,MAAjB,EAAyB3F,OAAzB,EAAkC;EAAA,SANlCqC,IAMkC,GAN3B,WAM2B;EAAA,SAJlCuC,EAIkC,GAJ7B,YAI6B;EAAA,SAFlCtC,WAEkC,GAFpB,KAEoB;EAChC,QAAMsD,SAAS,GAAGxD,GAAG,CAACuC,KAAJ,CAAUc,UAAV,CAAlB;;EACA,QAAIG,SAAS,IAAIA,SAAS,CAAC,CAAD,CAA1B,EAA+B;EAC7B,WAAK/F,IAAL,GAAY+F,SAAS,CAAC,CAAD,CAArB;EACD,KAFD,MAEO;EACL,WAAK/F,IAAL,GAAY,QAAZ;EACA,OAAAS,OAAO,CAAC,KAAD,gCAAoC8B,GAApC,CAAP;EACD;;EACD,SAAKA,GAAL,GAAc,KAAKC,IAAnB,SAA2B,KAAKxC,IAAhC;EACA,SAAKG,OAAL,GAAeA,OAAf;EATgC,QAUzBuD,MAVyB,GAUIvD,OAVJ,CAUzBuD,MAVyB;EAAA,QAUjBhB,KAViB,GAUIvC,OAVJ,CAUjBuC,KAViB;EAAA,QAUViB,UAVU,GAUIxD,OAVJ,CAUVwD,UAVU;EAWhC,SAAKE,EAAL,GAAUH,MAAM,KAAK,KAAX,GAAmB,KAAK1D,IAAxB,GAA+BoC,MAAM,CAACuB,UAAU,CAAC,IAAD,EAAOjB,KAAP,CAAX,CAA/C;EACA,SAAKuC,KAAL,GAAa,IAAIC,QAAJ,cAAiB/E,OAAjB;EAA0BoE,MAAAA,MAAM,EAAE;EAAlC,OAAb;;EAEA,SAAK,IAAMvE,IAAX,IAAmB8F,MAAnB,EAA2B;EACzB,WAAKb,KAAL,CAAWE,GAAX,CAAenF,IAAf,EAAqB8F,MAAM,CAAC9F,IAAD,CAA3B,eACKG,OADL;EAEEoE,QAAAA,MAAM,EAAE;EAFV;EAID;;EAED,SAAKU,KAAL,CAAWjC,OAAX;EACD;EAED;;;;;EA/BF;;EAAA,SAkCEiB,QAlCF,GAkCE,kBAAS9D,OAAT,EAA2C;EAAA,QAAlCA,OAAkC;EAAlCA,MAAAA,OAAkC,GAAxBqE,wBAAwB;EAAA;;EAAA,gCACrBtD,oBAAoB,CAACf,OAAD,CADC;EAAA,QAClCiB,SADkC,yBAClCA,SADkC;;EAEzC,QAAIjB,OAAO,CAACqB,MAAR,IAAkB,IAAtB,EAA4BrB,OAAO,CAACqB,MAAR,GAAiBgD,wBAAsB,CAAChD,MAAxC;EAC5B,QAAIrB,OAAO,CAACsE,QAAR,IAAoB,IAAxB,EAA8BtE,OAAO,CAACsE,QAAR,GAAmBD,wBAAsB,CAACC,QAA1C;;EAC9B,QAAItE,OAAO,CAACsE,QAAR,KAAqB,KAAzB,EAAgC;EAC9B,aAAU,KAAKM,EAAf,SAAqB,KAAKlB,EAA1B;EACD;;EACD,QAAIY,QAAQ,GAAG,KAAKQ,KAAL,CAAWhB,QAAX,CAAoB9D,OAApB,CAAf;EACA,QAAIsE,QAAJ,EAAcA,QAAQ,QAAMrD,SAAN,GAAkBqD,QAAlB,GAA6BrD,SAArC;EACd,WAAU,KAAK2D,EAAf,SAAqB,KAAKlB,EAA1B,UAAiCY,QAAjC;EACD,GA5CH;;EAAA;EAAA;EA+CA,IAAMiB,WAAS,GAAG,eAAlB;EAEA,IAAMM,SAAS,GAAG,aAAlB;;EAEA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,GAAD,EAAMC,SAAN,EAAoB;EACjD,MAAI,OAAOD,GAAP,KAAe,QAAnB,EAA6B;EAC3B,WAAOA,GAAG,CAAC7D,OAAJ,CAAY2D,SAAZ,EAAuB,UAAClB,KAAD,EAAQ9E,IAAR,EAAiB;EAC7C,UAAIA,IAAI,IAAImG,SAAZ,EAAuB;EACrB,eAAOA,SAAS,CAACnG,IAAD,CAAhB;EACD;;EAED,OAAAS,OAAO,CAAC,KAAD,yCAA4CT,IAA5C,wBAAP;EAEA,aAAO8E,KAAP;EACD,KARM,CAAP;EASD;;EAED,SAAOoB,GAAP;EACD,CAdD;EAgBA;;;;;EAGA,IAAME,UAAU,GAAG,SAAbA,UAAa,CAACzG,KAAD,EAAQoC,IAAR,EAAcoE,SAAd,EAA4B;EAC7C,MAAMxF,KAAK,GAAGhB,KAAK,CAACoC,IAAD,CAAnB;EACA,MAAMsE,WAAW,GAAGJ,sBAAsB,CAACtF,KAAD,EAAQwF,SAAR,CAA1C;;EAEA,MAAIE,WAAW,KAAK1F,KAApB,EAA2B;EACzBhB,IAAAA,KAAK,CAACoC,IAAD,CAAL,GAAcsE,WAAd;EACD;EACF,CAPD;;AASA,4BAAe;EACb7F,EAAAA,YADa,wBACA+B,GADA,EACKuD,MADL,EACa3F,OADb,EACsB;EACjC,WAAO,OAAOoC,GAAP,KAAe,QAAf,IAA2BmD,WAAS,CAACC,IAAV,CAAepD,GAAf,CAA3B,GACH,IAAIsD,aAAJ,CAAkBtD,GAAlB,EAAuBuD,MAAvB,EAA+B3F,OAA/B,CADG,GAEH,IAFJ;EAGD,GALY;EAOb;EACAmG,EAAAA,cAAc,EAAE,wBAAC3G,KAAD,EAAQW,IAAR,EAAcoC,KAAd,EAAwB;EACtC,QAAIpC,IAAI,CAACkC,IAAL,KAAc,OAAd,IAAyB,CAACE,KAA9B,EAAqC,OAAO/C,KAAP;EAErC,QAAI,oBAAoBA,KAAxB,EAA+ByG,UAAU,CAACzG,KAAD,EAAQ,gBAAR,EAA0B+C,KAAK,CAACyD,SAAhC,CAAV;EAC/B,QAAI,eAAexG,KAAnB,EAA0ByG,UAAU,CAACzG,KAAD,EAAQ,WAAR,EAAqB+C,KAAK,CAACyD,SAA3B,CAAV;EAC1B,WAAOxG,KAAP;EACD,GAdY;EAgBbsD,EAAAA,aAhBa,yBAgBCiD,GAhBD,EAgBMnE,IAhBN,EAgBYzB,IAhBZ,EAgBkB;EAAA,QACtBoC,KADsB,GACbpC,IAAI,CAACH,OADQ,CACtBuC,KADsB;;EAG7B,QAAI,CAACA,KAAL,EAAY;EACV,aAAOwD,GAAP;EACD;;EAED,YAAQnE,IAAR;EACE,WAAK,WAAL;EACE,eAAOkE,sBAAsB,CAACC,GAAD,EAAMxD,KAAK,CAACyD,SAAZ,CAA7B;;EACF,WAAK,gBAAL;EACE,eAAOF,sBAAsB,CAACC,GAAD,EAAMxD,KAAK,CAACyD,SAAZ,CAA7B;;EACF;EACE,eAAOD,GAAP;EANJ;EAQD;EA/BY,CAAf;;MC3FaK,YAAb;EAAA;EAAA;EAAA;;EAAA;EAAA;EAAA;;EAAA;;EACE;;;EADF,SAIEtC,QAJF,GAIE,kBAAS9D,OAAT,EAAkB;EAAA,QACTuC,KADS,GACA,KAAKvC,OADL,CACTuC,KADS;EAEhB,QAAMwB,IAAI,GAAGxB,KAAK,GAAGA,KAAK,CAACvC,OAAN,CAAc+D,IAAjB,GAAwB,KAA1C;EACA,QAAMC,IAAI,GAAGD,IAAI,gBAAO/D,OAAP;EAAgB6B,MAAAA,UAAU,EAAE;EAA5B,SAAoC7B,OAArD;EACA,WAAOuB,KAAK,CAAC,KAAKa,GAAN,EAAW,KAAK5C,KAAhB,EAAuBwE,IAAvB,CAAZ;EACD,GATH;;EAAA;EAAA,EAAkC7B,aAAlC;AAYA,2BAAe;EACb9B,EAAAA,YADa,wBACA+B,GADA,EACK5C,KADL,EACYQ,OADZ,EACqB;EAChC,QAAIA,OAAO,CAACoE,MAAR,IAAkBpE,OAAO,CAACoE,MAAR,CAAe/B,IAAf,KAAwB,WAA9C,EAA2D;EACzD,aAAO,IAAI+D,YAAJ,CAAiBhE,GAAjB,EAAsB5C,KAAtB,EAA6BQ,OAA7B,CAAP;EACD;;EACD,WAAO,IAAP;EACD;EANY,CAAf;;MCZaqG,YAAb;EAAA;EAAA;EAOE,wBAAYjE,GAAZ,EAAiB5C,KAAjB,EAAwBQ,OAAxB,EAAiC;EAAA,SANjCqC,IAMiC,GAN1B,WAM0B;EAAA,SAJjCuC,EAIiC,GAJ5B,YAI4B;EAAA,SAFjCtC,WAEiC,GAFnB,KAEmB;EAC/B,SAAKF,GAAL,GAAWA,GAAX;EACA,SAAK5C,KAAL,GAAaA,KAAb;EACA,SAAKQ,OAAL,GAAeA,OAAf;EACD;EAED;;;;;EAbF;;EAAA,SAgBE8D,QAhBF,GAgBE,kBAAS9D,OAAT,EAAkB;EAAA,gCACIe,oBAAoB,CAACf,OAAD,CADxB;EAAA,QACTiB,SADS,yBACTA,SADS;;EAEhB,QAAIxB,KAAK,CAACC,OAAN,CAAc,KAAKF,KAAnB,CAAJ,EAA+B;EAC7B,UAAI4B,GAAG,GAAG,EAAV;;EACA,WAAK,IAAIE,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG,KAAK9B,KAAL,CAAWoB,MAAvC,EAA+CU,KAAK,EAApD,EAAwD;EACtDF,QAAAA,GAAG,IAAIG,KAAK,CAAC,KAAKqD,EAAN,EAAU,KAAKpF,KAAL,CAAW8B,KAAX,CAAV,CAAZ;EACA,YAAI,KAAK9B,KAAL,CAAW8B,KAAK,GAAG,CAAnB,CAAJ,EAA2BF,GAAG,IAAIH,SAAP;EAC5B;;EACD,aAAOG,GAAP;EACD;;EAED,WAAOG,KAAK,CAAC,KAAKqD,EAAN,EAAU,KAAKpF,KAAf,EAAsBQ,OAAtB,CAAZ;EACD,GA5BH;;EAAA;EAAA;EA+BA,IAAMuF,WAAS,GAAG,YAAlB;AAEA,2BAAe;EACblF,EAAAA,YADa,wBACA+B,GADA,EACK5C,KADL,EACYQ,OADZ,EACqB;EAChC,WAAOuF,WAAS,CAACC,IAAV,CAAepD,GAAf,IAAsB,IAAIiE,YAAJ,CAAiBjE,GAAjB,EAAsB5C,KAAtB,EAA6BQ,OAA7B,CAAtB,GAA8D,IAArE;EACD;EAHY,CAAf;;MClCasG,YAAb;EAAA;EAAA;EAOE,wBAAYlE,GAAZ,EAAiB5C,KAAjB,EAAwBQ,OAAxB,EAAiC;EAAA,SANjCqC,IAMiC,GAN1B,UAM0B;EAAA,SAJjCuC,EAIiC,GAJ5B,WAI4B;EAAA,SAFjCtC,WAEiC,GAFnB,KAEmB;EAC/B,SAAKF,GAAL,GAAWA,GAAX;EACA,SAAK5C,KAAL,GAAaA,KAAb;EACA,SAAKQ,OAAL,GAAeA,OAAf;EACD;EAED;;;;;EAbF;;EAAA,SAgBE8D,QAhBF,GAgBE,kBAAS9D,OAAT,EAAkB;EAChB,WAAOuB,KAAK,CAAC,KAAKa,GAAN,EAAW,KAAK5C,KAAhB,EAAuBQ,OAAvB,CAAZ;EACD,GAlBH;;EAAA;EAAA;AAqBA,2BAAe;EACbK,EAAAA,YADa,wBACA+B,GADA,EACK5C,KADL,EACYQ,OADZ,EACqB;EAChC,WAAOoC,GAAG,KAAK,WAAR,IAAuBA,GAAG,KAAK,eAA/B,GACH,IAAIkE,YAAJ,CAAiBlE,GAAjB,EAAsB5C,KAAtB,EAA6BQ,OAA7B,CADG,GAEH,IAFJ;EAGD;EALY,CAAf;;MCvBauG,UAAb;EAAA;EAAA;EAKE,sBAAYnE,GAAZ,EAAiB5B,KAAjB,EAAwBR,OAAxB,EAAiC;EAAA,SAJjCqC,IAIiC,GAJ1B,QAI0B;EAAA,SAFjCC,WAEiC,GAFnB,KAEmB;EAC/B,SAAKF,GAAL,GAAWA,GAAX;EACA,SAAK5B,KAAL,GAAaA,KAAb;EACA,SAAKR,OAAL,GAAeA,OAAf;EACD;EAED;;;EAGA;;;EAdF;;EAAA,SAeE8D,QAfF,GAeE,kBAAS9D,OAAT,EAAkB;EAChB,QAAIP,KAAK,CAACC,OAAN,CAAc,KAAKc,KAAnB,CAAJ,EAA+B;EAC7B,UAAIY,GAAG,GAAG,EAAV;;EACA,WAAK,IAAIE,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG,KAAKd,KAAL,CAAWI,MAAvC,EAA+CU,KAAK,EAApD,EAAwD;EACtDF,QAAAA,GAAG,IAAO,KAAKgB,GAAZ,SAAmB,KAAK5B,KAAL,CAAWc,KAAX,CAAnB,MAAH;EACA,YAAI,KAAKd,KAAL,CAAWc,KAAK,GAAG,CAAnB,CAAJ,EAA2BF,GAAG,IAAI,IAAP;EAC5B;;EACD,aAAOA,GAAP;EACD;;EAED,WAAU,KAAKgB,GAAf,SAAsB,KAAK5B,KAA3B;EACD,GA1BH;;EAAA;EAAA;EA6BA,IAAMgG,OAAO,GAAG;EACd,cAAY,IADE;EAEd,aAAW,IAFG;EAGd,gBAAc;EAHA,CAAhB;AAMA,yBAAe;EACbnG,EAAAA,YADa,wBACA+B,GADA,EACK5B,KADL,EACYR,OADZ,EACqB;EAChC,WAAOoC,GAAG,IAAIoE,OAAP,GAAiB,IAAID,UAAJ,CAAenE,GAAf,EAAoB5B,KAApB,EAA2BR,OAA3B,CAAjB,GAAuD,IAA9D;EACD;EAHY,CAAf;;EC3BO,IAAMI,OAAO,GAAG,CACrBqG,eADqB,EAErBC,qBAFqB,EAGrBC,mBAHqB,EAIrBC,kBAJqB,EAKrBC,kBALqB,EAMrBC,kBANqB,EAOrBC,gBAPqB,CAAhB;;ECHP,IAAMC,oBAAoB,GAAG;EAC3BnE,EAAAA,OAAO,EAAE;EADkB,CAA7B;EAIA,IAAMoE,kBAAkB,GAAG;EACzBtE,EAAAA,KAAK,EAAE,IADkB;EAEzBE,EAAAA,OAAO,EAAE;EAGX;;;;;EAL2B,CAA3B;;MASqBkC;;;EACnB;EACA;EAGA;EAGA;EAKA,oBAAY/E,OAAZ,EAAqB;EAAA,SAVrBL,GAUqB,GAVf,EAUe;EAAA,SAPrBuH,GAOqB,GAPf,EAOe;EAAA,SAJrB5F,KAIqB,GAJb,EAIa;EAAA,SAFrB6F,OAEqB,GAFX,CAEW;EACnB,SAAKnH,OAAL,GAAeA,OAAf;EACA,SAAKoH,OAAL,GAAepH,OAAO,CAACoH,OAAvB;EACA,SAAKpB,SAAL,GAAiBhG,OAAO,CAACgG,SAAzB;EACD;EAED;;;;;;;;;WAKAhB,MAAA,aAAInF,IAAJ,EAAUE,IAAV,EAAgBsH,WAAhB,EAA6B;EAAA,wBACgC,KAAKrH,OADrC;EAAA,QACpBoE,MADoB,iBACpBA,MADoB;EAAA,QACZ7B,KADY,iBACZA,KADY;EAAA,QACLtC,GADK,iBACLA,GADK;EAAA,QACAuC,QADA,iBACAA,QADA;EAAA,QACUgB,UADV,iBACUA,UADV;EAAA,QACsBD,MADtB,iBACsBA,MADtB;;EAE3B,QAAMvD,OAAO;EACXoH,MAAAA,OAAO,EAAE,KAAKA,OADH;EAEXhD,MAAAA,MAAM,EAANA,MAFW;EAGX7B,MAAAA,KAAK,EAALA,KAHW;EAIXtC,MAAAA,GAAG,EAAHA,GAJW;EAKXuC,MAAAA,QAAQ,EAARA,QALW;EAMXgB,MAAAA,UAAU,EAAVA,UANW;EAOXD,MAAAA,MAAM,EAANA,MAPW;EAQX1D,MAAAA,IAAI,EAAJA,IARW;EASXmG,MAAAA,SAAS,EAAE,KAAKA,SATL;EAUXxE,MAAAA,QAAQ,EAAEkB;EAVC,OAWR2E,WAXQ,CAAb,CAF2B;EAiB3B;EACA;;;EACA,QAAIjF,GAAG,GAAGvC,IAAV;;EACA,QAAIA,IAAI,IAAI,KAAKqH,GAAjB,EAAsB;EACpB9E,MAAAA,GAAG,GAAMvC,IAAN,UAAe,KAAKsH,OAAL,EAAlB;EACD,KAtB0B;EAyB3B;;;EACA,SAAKD,GAAL,CAAS9E,GAAT,IAAgBrC,IAAhB;;EAEA,QAAIqC,GAAG,IAAI,KAAKgF,OAAhB,EAAyB;EACvB;EACApH,MAAAA,OAAO,CAACwB,QAAR,SAAuBS,MAAM,CAAC,KAAKmF,OAAL,CAAahF,GAAb,CAAD,CAA7B;EACD;;EAED,QAAMjC,IAAI,GAAGL,UAAU,CAACsC,GAAD,EAAMrC,IAAN,EAAYC,OAAZ,CAAvB;EAEA,QAAI,CAACG,IAAL,EAAW,OAAO,IAAP;EAEX,SAAKmH,QAAL,CAAcnH,IAAd;EAEA,QAAMmB,KAAK,GAAGtB,OAAO,CAACsB,KAAR,KAAkBoB,SAAlB,GAA8B,KAAKpB,KAAL,CAAWV,MAAzC,GAAkDZ,OAAO,CAACsB,KAAxE;EACA,SAAKA,KAAL,CAAWiG,MAAX,CAAkBjG,KAAlB,EAAyB,CAAzB,EAA4BnB,IAA5B;EAEA,WAAOA,IAAP;EACD;EAED;;;;;;;WAKA+B,UAAA,iBAAQrC,IAAR,EAAcE,IAAd,EAAoBsH,WAApB,EAAiC;EAC/B,QAAMG,OAAO,GAAG,KAAKtC,GAAL,CAASrF,IAAT,CAAhB;EACA,QAAM4H,QAAQ,GAAG,KAAKnG,KAAL,CAAW6D,OAAX,CAAmBqC,OAAnB,CAAjB;;EACA,QAAIA,OAAJ,EAAa;EACX,WAAKvE,MAAL,CAAYuE,OAAZ;EACD;;EACD,QAAIxH,OAAO,GAAGqH,WAAd;EACA,QAAII,QAAQ,KAAK,CAAC,CAAlB,EAAqBzH,OAAO,gBAAOqH,WAAP;EAAoB/F,MAAAA,KAAK,EAAEmG;EAA3B,MAAP;EACrB,WAAO,KAAKzC,GAAL,CAASnF,IAAT,EAAeE,IAAf,EAAqBC,OAArB,CAAP;EACD;EAED;;;;;WAGAkF,MAAA,aAAIwC,cAAJ,EAAoB;EAClB,WAAO,KAAK/H,GAAL,CAAS+H,cAAT,CAAP;EACD;EAED;;;;;WAGAzE,SAAA,gBAAO9C,IAAP,EAAa;EACX,SAAKwH,UAAL,CAAgBxH,IAAhB;EACA,WAAO,KAAK+G,GAAL,CAAS/G,IAAI,CAACiC,GAAd,CAAP;EACA,SAAKd,KAAL,CAAWiG,MAAX,CAAkB,KAAKjG,KAAL,CAAW6D,OAAX,CAAmBhF,IAAnB,CAAlB,EAA4C,CAA5C;EACD;EAED;;;;;WAGAgF,UAAA,iBAAQhF,IAAR,EAAc;EACZ,WAAO,KAAKmB,KAAL,CAAW6D,OAAX,CAAmBhF,IAAnB,CAAP;EACD;EAED;;;;;WAGA0C,UAAA,mBAAU;EAAA,QACDzC,OADC,GACU,KAAKJ,OAAL,CAAaC,GADvB,CACDG,OADC;EAGR;;EACA,SAAKkB,KAAL,CAAWsG,KAAX,CAAiB,CAAjB,EAAoBC,OAApB,CAA4BzH,OAAO,CAACiF,aAApC,EAAmDjF,OAAnD;EACD;EAED;;;;;WAGAkH,WAAA,kBAASnH,IAAT,EAAe;EACb,SAAKR,GAAL,CAASQ,IAAI,CAACiC,GAAd,IAAqBjC,IAArB;;EACA,QAAIA,IAAI,YAAYmD,SAApB,EAA+B;EAC7B,WAAK3D,GAAL,CAASQ,IAAI,CAACqB,QAAd,IAA0BrB,IAA1B;EACA,UAAIA,IAAI,CAACuD,EAAT,EAAa,KAAK0D,OAAL,CAAajH,IAAI,CAACiC,GAAlB,IAAyBjC,IAAI,CAACuD,EAA9B;EACd,KAHD,MAGO,IAAIvD,IAAI,YAAYuF,aAAhB,IAAiC,KAAKM,SAA1C,EAAqD;EAC1D,WAAKA,SAAL,CAAe7F,IAAI,CAACN,IAApB,IAA4BM,IAAI,CAACuD,EAAjC;EACD;EACF;EAED;;;;;WAGAiE,aAAA,oBAAWxH,IAAX,EAAiB;EACf,WAAO,KAAKR,GAAL,CAASQ,IAAI,CAACiC,GAAd,CAAP;;EACA,QAAIjC,IAAI,YAAYmD,SAApB,EAA+B;EAC7B,aAAO,KAAK3D,GAAL,CAASQ,IAAI,CAACqB,QAAd,CAAP;EACA,aAAO,KAAK4F,OAAL,CAAajH,IAAI,CAACiC,GAAlB,CAAP;EACD,KAHD,MAGO,IAAIjC,IAAI,YAAYuF,aAApB,EAAmC;EACxC,aAAO,KAAKM,SAAL,CAAe7F,IAAI,CAACN,IAApB,CAAP;EACD;EACF;EAED;;;;;WAGAiI,SAAA,kBAAgB;EACd,QAAIjI,IAAJ;EACA,QAAIkI,IAAJ;EACA,QAAI/H,OAAJ;;EAEA,QAAI,8DAAmB,QAAvB,EAAiC;EAC/BH,MAAAA,IAAI,mDAAJ;EACAkI,MAAAA,IAAI,mDAAJ;EACA/H,MAAAA,OAAO,mDAAP;EACD,KAJD,MAIO;EACL+H,MAAAA,IAAI,mDAAJ;EACA/H,MAAAA,OAAO,mDAAP;EACAH,MAAAA,IAAI,GAAG,IAAP;EACD;;EAED,QAAIA,IAAJ,EAAU;EACR,WAAKmI,SAAL,CAAe,KAAK9C,GAAL,CAASrF,IAAT,CAAf,EAA+BkI,IAA/B,EAAqC/H,OAArC;EACD,KAFD,MAEO;EACL,WAAK,IAAIsB,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG,KAAKA,KAAL,CAAWV,MAAvC,EAA+CU,KAAK,EAApD,EAAwD;EACtD,aAAK0G,SAAL,CAAe,KAAK1G,KAAL,CAAWA,KAAX,CAAf,EAAkCyG,IAAlC,EAAwC/H,OAAxC;EACD;EACF;EACF;EAED;;;;;WAGAgI,YAAA,mBAAU7H,IAAV,EAAgB4H,IAAhB,EAAsB/H,OAAtB,EAAsD;EAAA,QAAhCA,OAAgC;EAAhCA,MAAAA,OAAgC,GAAtBgH,oBAAsB;EAAA;;EAAA,yBAIhD,KAAKhH,OAJ2C;EAAA,QAE5CI,OAF4C,kBAElDH,GAFkD,CAE5CG,OAF4C;EAAA,QAGlDmC,KAHkD,kBAGlDA,KAHkD;;EAOpD,QAAIpC,IAAI,CAAC2E,KAAL,YAAsBC,QAA1B,EAAoC;EAClC5E,MAAAA,IAAI,CAAC2E,KAAL,CAAWgD,MAAX,CAAkBC,IAAlB,EAAwB/H,OAAxB;EACA;EACD;;EAVmD,QAY7CR,KAZ6C,GAYpCW,IAZoC,CAY7CX,KAZ6C;EAcpDY,IAAAA,OAAO,CAAC6H,QAAR,CAAiBF,IAAjB,EAAuB5H,IAAvB,EAA6BoC,KAA7B,EAAoCvC,OAApC,EAdoD;;EAiBpD,QAAIA,OAAO,CAAC6C,OAAR,IAAmBrD,KAAnB,IAA4BA,KAAK,KAAKW,IAAI,CAACX,KAA/C,EAAsD;EACpD;EACAY,MAAAA,OAAO,CAAC+F,cAAR,CAAuBhG,IAAI,CAACX,KAA5B,EAAmCW,IAAnC,EAAyCoC,KAAzC,EAFoD;;EAKpD,WAAK,IAAMX,IAAX,IAAmBzB,IAAI,CAACX,KAAxB,EAA+B;EAC7B,YAAM0I,SAAS,GAAG/H,IAAI,CAACX,KAAL,CAAWoC,IAAX,CAAlB;EACA,YAAMuG,SAAS,GAAG3I,KAAK,CAACoC,IAAD,CAAvB,CAF6B;EAI7B;;EACA,YAAIsG,SAAS,KAAKC,SAAlB,EAA6B;EAC3BhI,UAAAA,IAAI,CAACyB,IAAL,CAAUA,IAAV,EAAgBsG,SAAhB,EAA2BjB,kBAA3B;EACD;EACF,OAbmD;;;EAgBpD,WAAK,IAAMrF,KAAX,IAAmBpC,KAAnB,EAA0B;EACxB,YAAM0I,UAAS,GAAG/H,IAAI,CAACX,KAAL,CAAWoC,KAAX,CAAlB;EACA,YAAMuG,UAAS,GAAG3I,KAAK,CAACoC,KAAD,CAAvB,CAFwB;EAIxB;;EACA,YAAIsG,UAAS,IAAI,IAAb,IAAqBA,UAAS,KAAKC,UAAvC,EAAkD;EAChDhI,UAAAA,IAAI,CAACyB,IAAL,CAAUA,KAAV,EAAgB,IAAhB,EAAsBqF,kBAAtB;EACD;EACF;EACF;EACF;EAED;;;;;WAGAnD,WAAA,kBAAS9D,OAAT,EAAkB;EAChB,QAAIoB,GAAG,GAAG,EAAV;EADgB,QAETmB,KAFS,GAEA,KAAKvC,OAFL,CAETuC,KAFS;EAGhB,QAAMwB,IAAI,GAAGxB,KAAK,GAAGA,KAAK,CAACvC,OAAN,CAAc+D,IAAjB,GAAwB,KAA1C;;EAHgB,gCAIIhD,oBAAoB,CAACf,OAAD,CAJxB;EAAA,QAITiB,SAJS,yBAITA,SAJS;;EAMhB,SAAK,IAAIK,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG,KAAKA,KAAL,CAAWV,MAAvC,EAA+CU,KAAK,EAApD,EAAwD;EACtD,UAAMnB,IAAI,GAAG,KAAKmB,KAAL,CAAWA,KAAX,CAAb;EACA,UAAM8G,GAAG,GAAGjI,IAAI,CAAC2D,QAAL,CAAc9D,OAAd,CAAZ,CAFsD;;EAKtD,UAAI,CAACoI,GAAD,IAAQ,CAACrE,IAAb,EAAmB;EAEnB,UAAI3C,GAAJ,EAASA,GAAG,IAAIH,SAAP;EACTG,MAAAA,GAAG,IAAIgH,GAAP;EACD;;EAED,WAAOhH,GAAP;EACD;;;;;MChQkBiH;;;EACnB,sBAAY5D,MAAZ,EAAoBzE,OAApB,EAA6B;EAC3B,SAAKqD,QAAL,GAAgB,KAAhB;EACA,SAAKiF,QAAL,GAAgB,KAAhB;EACA,SAAKlB,OAAL,GAAe,EAAf;EACA,SAAKpB,SAAL,GAAiB,EAAjB;EACA,SAAKhG,OAAL,gBACKA,OADL;EAEEuC,MAAAA,KAAK,EAAE,IAFT;EAGE6B,MAAAA,MAAM,EAAE,IAHV;EAIEgD,MAAAA,OAAO,EAAE,KAAKA,OAJhB;EAKEpB,MAAAA,SAAS,EAAE,KAAKA;EALlB;;EAOA,QAAIhG,OAAO,CAACwC,QAAZ,EAAsB;EACpB,WAAKC,QAAL,GAAgB,IAAIzC,OAAO,CAACwC,QAAZ,CAAqB,IAArB,CAAhB;EACD;;EACD,SAAKsC,KAAL,GAAa,IAAIC,QAAJ,CAAa,KAAK/E,OAAlB,CAAb;;EAEA,SAAK,IAAMH,IAAX,IAAmB4E,MAAnB,EAA2B;EACzB,WAAKK,KAAL,CAAWE,GAAX,CAAenF,IAAf,EAAqB4E,MAAM,CAAC5E,IAAD,CAA3B;EACD;;EAED,SAAKiF,KAAL,CAAWjC,OAAX;EACD;EAED;;;;;;;WAGA0F,SAAA,kBAAS;EACP,QAAI,KAAKlF,QAAT,EAAmB,OAAO,IAAP;EACnB,QAAI,KAAKZ,QAAT,EAAmB,KAAKA,QAAL,CAAc8F,MAAd;EACnB,SAAKlF,QAAL,GAAgB,IAAhB,CAHO;;EAKP,QAAI,CAAC,KAAKiF,QAAV,EAAoB,KAAKE,MAAL;EACpB,WAAO,IAAP;EACD;EAED;;;;;WAGAC,SAAA,kBAAS;EACP,QAAI,CAAC,KAAKpF,QAAV,EAAoB,OAAO,IAAP;EACpB,QAAI,KAAKZ,QAAT,EAAmB,KAAKA,QAAL,CAAcgG,MAAd;EACnB,SAAKpF,QAAL,GAAgB,KAAhB;EACA,WAAO,IAAP;EACD;EAED;;;;;;WAIA+B,UAAA,iBAAQvF,IAAR,EAAcE,IAAd,EAAoBC,OAApB,EAA6B;EAAA,QACpB0I,KADoB,GACX,IADW,CACpBA,KADoB;EAI3B;EACA;;EACA,QAAI,KAAKrF,QAAL,IAAiB,CAACqF,KAAtB,EAA6B,KAAKA,KAAL,GAAa,EAAb;EAE7B,QAAMvI,IAAI,GAAG,KAAK2E,KAAL,CAAWE,GAAX,CAAenF,IAAf,EAAqBE,IAArB,EAA2BC,OAA3B,CAAb;EAEA,QAAI,CAACG,IAAL,EAAW,OAAO,IAAP;EAEX,SAAKH,OAAL,CAAaC,GAAb,CAAiBG,OAAjB,CAAyBiF,aAAzB,CAAuClF,IAAvC;;EAEA,QAAI,KAAKkD,QAAT,EAAmB;EACjB,UAAI,CAAC,KAAKiF,QAAV,EAAoB,OAAOnI,IAAP,CADH;EAGjB;;EACA,UAAIuI,KAAJ,EAAWA,KAAK,CAACC,IAAN,CAAWxI,IAAX,EAAX,KACK;EACH,aAAKyI,UAAL,CAAgBzI,IAAhB;;EACA,YAAI,KAAKuI,KAAT,EAAgB;EACd,eAAKA,KAAL,CAAWb,OAAX,CAAmB,KAAKe,UAAxB,EAAoC,IAApC;EACA,eAAKF,KAAL,GAAahG,SAAb;EACD;EACF;EACD,aAAOvC,IAAP;EACD,KA3B0B;EA8B3B;;;EACA,SAAKmI,QAAL,GAAgB,KAAhB;EAEA,WAAOnI,IAAP;EACD;EAED;;;;;WAGAgE,cAAA,qBAAYuD,cAAZ,EAA4B3H,IAA5B,EAAkCC,OAAlC,EAA2C;EACzC,QAAMwH,OAAO,GAAG,KAAK1C,KAAL,CAAWI,GAAX,CAAewC,cAAf,CAAhB;EACA,QAAI,CAACF,OAAL,EAAc,OAAO,KAAKpC,OAAL,CAAasC,cAAb,EAA6B3H,IAA7B,EAAmCC,OAAnC,CAAP;EAEd,QAAMsF,OAAO,GAAG,KAAKR,KAAL,CAAW5C,OAAX,CAAmBwF,cAAnB,EAAmC3H,IAAnC,EAAyCC,OAAzC,CAAhB;;EAEA,QAAIsF,OAAJ,EAAa;EACX,WAAKtF,OAAL,CAAaC,GAAb,CAAiBG,OAAjB,CAAyBiF,aAAzB,CAAuCC,OAAvC;EACD;;EAED,QAAI,KAAKjC,QAAT,EAAmB;EACjB,UAAI,CAAC,KAAKiF,QAAV,EAAoB,OAAOhD,OAAP,CADH;EAGjB;;EACA,UAAI,KAAK7C,QAAT,EAAmB;EACjB,YAAI,CAAC6C,OAAL,EAAc;EACZ,eAAK7C,QAAL,CAAcoG,UAAd,CAAyBrB,OAAzB;EACD,SAFD,MAEO,IAAIA,OAAO,CAACtE,UAAZ,EAAwB;EAC7B,eAAKT,QAAL,CAAc0B,WAAd,CAA0BqD,OAAO,CAACtE,UAAlC,EAA8CoC,OAA9C;EACD;EACF;;EACD,aAAOA,OAAP;EACD,KAtBwC;EAyBzC;;;EACA,SAAKgD,QAAL,GAAgB,KAAhB;EAEA,WAAOhD,OAAP;EACD;EAED;;;;;WAGAsD,aAAA,oBAAWzI,IAAX,EAAiB;EACf,QAAI,KAAKsC,QAAT,EAAmB;EACjB,WAAKA,QAAL,CAAcmG,UAAd,CAAyBzI,IAAzB;EACD;EACF;EAED;;;;;;WAIA2I,WAAA,kBAASrE,MAAT,EAAiBzE,OAAjB,EAA0B;EACxB,QAAM+I,KAAK,GAAG,EAAd;;EACA,SAAK,IAAMlJ,IAAX,IAAmB4E,MAAnB,EAA2B;EACzB,UAAMtE,IAAI,GAAG,KAAKiF,OAAL,CAAavF,IAAb,EAAmB4E,MAAM,CAAC5E,IAAD,CAAzB,EAAiCG,OAAjC,CAAb;EACA,UAAIG,IAAJ,EAAU4I,KAAK,CAACJ,IAAN,CAAWxI,IAAX;EACX;;EACD,WAAO4I,KAAP;EACD;EAED;;;;;WAGA9D,UAAA,iBAAQyC,cAAR,EAAwB;EACtB,WAAO,KAAK5C,KAAL,CAAWI,GAAX,CAAewC,cAAf,CAAP;EACD;EAED;;;;;;WAIAmB,aAAA,oBAAWhJ,IAAX,EAAiB;EACf,QAAMM,IAAI,GAAG,OAAON,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkC,KAAKiF,KAAL,CAAWI,GAAX,CAAerF,IAAf,CAA/C;;EAEA,QACE,CAACM,IAAD;EAEA;EACC,SAAKkD,QAAL,IAAiB,CAAClD,IAAI,CAAC+C,UAJ1B,EAKE;EACA,aAAO,KAAP;EACD;;EAED,SAAK4B,KAAL,CAAW7B,MAAX,CAAkB9C,IAAlB;;EAEA,QAAI,KAAKkD,QAAL,IAAiBlD,IAAI,CAAC+C,UAAtB,IAAoC,KAAKT,QAA7C,EAAuD;EACrD,aAAO,KAAKA,QAAL,CAAcoG,UAAd,CAAyB1I,IAAI,CAAC+C,UAA9B,CAAP;EACD;;EAED,WAAO,IAAP;EACD;EAED;;;;;WAGAiC,UAAA,iBAAQhF,IAAR,EAAc;EACZ,WAAO,KAAK2E,KAAL,CAAWK,OAAX,CAAmBhF,IAAnB,CAAP;EACD;EAED;;;;;WAGAqI,SAAA,kBAAS;EACP,QAAI,KAAK/F,QAAT,EAAmB,KAAKA,QAAL,CAAc+F,MAAd;EACnB,SAAKF,QAAL,GAAgB,IAAhB;EACA,WAAO,IAAP;EACD;EAED;;;;;WAGAR,SAAA,kBAAgB;EAAA;;EACd,wBAAKhD,KAAL,EAAWgD,MAAX;;EACA,WAAO,IAAP;EACD;EAED;;;;;WAGAE,YAAA,mBAAU7H,IAAV,EAAgB4H,IAAhB,EAAsB/H,OAAtB,EAA+B;EAC7B,SAAK8E,KAAL,CAAWkD,SAAX,CAAqB7H,IAArB,EAA2B4H,IAA3B,EAAiC/H,OAAjC;EACA,WAAO,IAAP;EACD;EAED;;;;;WAGA8D,WAAA,kBAAS9D,OAAT,EAAkB;EAChB,WAAO,KAAK8E,KAAL,CAAWhB,QAAX,CAAoB9D,OAApB,CAAP;EACD;;;;;MCpNkBgJ;;;;WACnB5I,UAAU;EACR6I,MAAAA,QAAQ,EAAE,EADF;EAERC,MAAAA,QAAQ,EAAE;EAFF;WAKVC,WAAW;;;;;EAEX;;;WAGA9I,eAAA,sBAAaR,IAAb,EAAmBE,IAAnB,EAAyBC,OAAzB,EAAkC;EAChC,SAAK,IAAIW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAc9I,YAAd,CAA2BO,MAA/C,EAAuDD,CAAC,EAAxD,EAA4D;EAC1D,UAAMR,IAAI,GAAG,KAAKgJ,QAAL,CAAc9I,YAAd,CAA2BM,CAA3B,EAA8Bd,IAA9B,EAAoCE,IAApC,EAA0CC,OAA1C,CAAb;EACA,UAAIG,IAAJ,EAAU,OAAOA,IAAP;EACX;;EAED,WAAO,IAAP;EACD;EAED;;;;;WAGAkF,gBAAA,uBAAclF,IAAd,EAAoB;EAClB,QAAIA,IAAI,CAACmC,WAAT,EAAsB;EADJ,QAEXC,KAFW,GAEFpC,IAAI,CAACH,OAFH,CAEXuC,KAFW;;EAGlB,SAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAc9D,aAAd,CAA4BzE,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;EAC3D,WAAKwI,QAAL,CAAc9D,aAAd,CAA4B1E,CAA5B,EAA+BR,IAA/B,EAAqCoC,KAArC;EACD;;EAED,QAAIpC,IAAI,CAACX,KAAT,EAAgB,KAAK2G,cAAL,CAAoBhG,IAAI,CAACX,KAAzB,EAAgCW,IAAhC,EAAsCoC,KAAtC;EAEhBpC,IAAAA,IAAI,CAACmC,WAAL,GAAmB,IAAnB;EACD;EAED;;;;;WAGA6D,iBAAA,wBAAe3G,KAAf,EAAsBW,IAAtB,EAA4BoC,KAA5B,EAAmC;EACjC,SAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAchD,cAAd,CAA6BvF,MAAjD,EAAyDD,CAAC,EAA1D,EAA8D;EAC5DR,MAAAA,IAAI,CAACX,KAAL,GAAa,KAAK2J,QAAL,CAAchD,cAAd,CAA6BxF,CAA7B,EAAgCR,IAAI,CAACX,KAArC,EAA4CW,IAA5C,EAAkDoC,KAAlD,CAAb;EACD;EACF;EAED;;;;;WAGA6G,iBAAA,wBAAe7G,KAAf,EAAsB;EACpB,SAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAcC,cAAd,CAA6BxI,MAAjD,EAAyDD,CAAC,EAA1D,EAA8D;EAC5D,WAAKwI,QAAL,CAAcC,cAAd,CAA6BzI,CAA7B,EAAgC4B,KAAhC;EACD;EACF;EAED;;;;;WAGA0F,WAAA,kBAASF,IAAT,EAAe5H,IAAf,EAAqBoC,KAArB,EAA4BvC,OAA5B,EAAqC;EACnC,SAAK,IAAIW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAclB,QAAd,CAAuBrH,MAA3C,EAAmDD,CAAC,EAApD,EAAwD;EACtD,WAAKwI,QAAL,CAAclB,QAAd,CAAuBtH,CAAvB,EAA0BoH,IAA1B,EAAgC5H,IAAhC,EAAsCoC,KAAtC,EAA6CvC,OAA7C;EACD;EACF;EAED;;;;;WAGA8C,gBAAA,uBAActC,KAAd,EAAqBoB,IAArB,EAA2BzB,IAA3B,EAAiC;EAC/B,QAAIkJ,cAAc,GAAG7I,KAArB;;EACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAcrG,aAAd,CAA4BlC,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;EAC3D0I,MAAAA,cAAc,GAAG,KAAKF,QAAL,CAAcrG,aAAd,CAA4BnC,CAA5B,EAA+B0I,cAA/B,EAA+CzH,IAA/C,EAAqDzB,IAArD,CAAjB;EACD;;EACD,WAAOkJ,cAAP;EACD;EAED;;;;;WAGAC,MAAA,aAAIC,SAAJ,EAAevJ,OAAf,EAA8C;EAAA,QAA/BA,OAA+B;EAA/BA,MAAAA,OAA+B,GAArB;EAAC0I,QAAAA,KAAK,EAAE;EAAR,OAAqB;EAAA;;EAC5C,QAAMtI,OAAO,GAAG,KAAKA,OAAL,CAAaJ,OAAO,CAAC0I,KAArB,CAAhB,CAD4C;;EAI5C,QAAItI,OAAO,CAAC+E,OAAR,CAAgBoE,SAAhB,MAA+B,CAAC,CAApC,EAAuC;EACrC;EACD;;EAEDnJ,IAAAA,OAAO,CAACuI,IAAR,CAAaY,SAAb;EAEA,SAAKJ,QAAL,GAAgB,UAAI,KAAK/I,OAAL,CAAa8I,QAAjB,EAA8B,KAAK9I,OAAL,CAAa6I,QAA3C,EAAqDO,MAArD,CACd,UAACL,QAAD,EAAWM,MAAX,EAAsB;EACpB,WAAK,IAAM5J,IAAX,IAAmB4J,MAAnB,EAA2B;EACzB,YAAI5J,IAAI,IAAIsJ,QAAZ,EAAsB;EACpBA,UAAAA,QAAQ,CAACtJ,IAAD,CAAR,CAAe8I,IAAf,CAAoBc,MAAM,CAAC5J,IAAD,CAA1B;EACD,SAFD,MAEO;EACL,WAAAS,OAAO,CAAC,KAAD,4BAA+BT,IAA/B,SAAP;EACD;EACF;;EACD,aAAOsJ,QAAP;EACD,KAVa,EAWd;EACE9I,MAAAA,YAAY,EAAE,EADhB;EAEEgF,MAAAA,aAAa,EAAE,EAFjB;EAGEc,MAAAA,cAAc,EAAE,EAHlB;EAIEiD,MAAAA,cAAc,EAAE,EAJlB;EAKEtG,MAAAA,aAAa,EAAE,EALjB;EAMEmF,MAAAA,QAAQ,EAAE;EANZ,KAXc,CAAhB;EAoBD;;;;;EC5GY,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;EACxE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;EAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb;EACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;EACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;EAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC9B,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;ECZA;;;;MAGqByB;;;;WACnBP,WAAW;;;;;EASX;;;WAGAnE,MAAA,aAAIzC,KAAJ,EAAW;EAAA,QACF4G,QADE,GACU,IADV,CACFA,QADE;EAAA,QAEF7H,KAFE,GAEOiB,KAAK,CAACvC,OAFb,CAEFsB,KAFE;EAIT,QAAI6H,QAAQ,CAAChE,OAAT,CAAiB5C,KAAjB,MAA4B,CAAC,CAAjC,EAAoC;;EAEpC,QAAI4G,QAAQ,CAACvI,MAAT,KAAoB,CAApB,IAAyBU,KAAK,IAAI,KAAKA,KAA3C,EAAkD;EAChD6H,MAAAA,QAAQ,CAACR,IAAT,CAAcpG,KAAd;EACA;EACD,KATQ;;;EAYT,SAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwI,QAAQ,CAACvI,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;EACxC,UAAIwI,QAAQ,CAACxI,CAAD,CAAR,CAAYX,OAAZ,CAAoBsB,KAApB,GAA4BA,KAAhC,EAAuC;EACrC6H,QAAAA,QAAQ,CAAC5B,MAAT,CAAgB5G,CAAhB,EAAmB,CAAnB,EAAsB4B,KAAtB;EACA;EACD;EACF;EACF;EAED;;;;;WAGAoH,QAAA,iBAAQ;EACN,SAAKR,QAAL,GAAgB,EAAhB;EACD;EAED;;;;;WAGAlG,SAAA,gBAAOV,KAAP,EAAc;EACZ,QAAMjB,KAAK,GAAG,KAAK6H,QAAL,CAAchE,OAAd,CAAsB5C,KAAtB,CAAd;EACA,SAAK4G,QAAL,CAAc5B,MAAd,CAAqBjG,KAArB,EAA4B,CAA5B;EACD;EAED;;;;;WAGAwC,WAAA,yBAAsC;EAAA,kCAAJ,EAAI;EAAA,QAA5BT,QAA4B,QAA5BA,QAA4B;EAAA,QAAfrD,OAAe;;EAAA,gCAChBe,oBAAoB,CAACf,OAAD,CADJ;EAAA,QAC7BiB,SAD6B,yBAC7BA,SAD6B;;EAEpC,QAAImH,GAAG,GAAG,EAAV;;EACA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwI,QAAL,CAAcvI,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;EAC7C,UAAM4B,KAAK,GAAG,KAAK4G,QAAL,CAAcxI,CAAd,CAAd;;EACA,UAAI0C,QAAQ,IAAI,IAAZ,IAAoBd,KAAK,CAACc,QAAN,KAAmBA,QAA3C,EAAqD;EACnD;EACD;;EACD,UAAI+E,GAAJ,EAASA,GAAG,IAAInH,SAAP;EACTmH,MAAAA,GAAG,IAAI7F,KAAK,CAACuB,QAAN,CAAe9D,OAAf,CAAP;EACD;;EACD,WAAOoI,GAAP;EACD;;;;;EA5DD;;;0BAGY;EACV,aAAO,KAAKe,QAAL,CAAcvI,MAAd,KAAyB,CAAzB,GAA6B,CAA7B,GAAiC,KAAKuI,QAAL,CAAc,KAAKA,QAAL,CAAcvI,MAAd,GAAuB,CAArC,EAAwCZ,OAAxC,CAAgDsB,KAAxF;EACD;;;;;;ECVH;;;;;;;AAMA,eAAe,IAAIoI,cAAJ,EAAf;;ECRA;;EAEA;;;;;;;;;;AAUA,qBAAe,OAAOE,UAAP,KAAsB,WAAtB,GACXA,UADW,GAEX,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACC,IAAP,KAAgBA,IAAjD,GACAD,MADA,GAEA,OAAOE,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,CAACD,IAAL,KAAcA,IAA7C,GACAC,IADA,GAEAC,QAAQ,CAAC,aAAD,CAAR,EANJ;;ECVA,IAAMC,EAAE,GAAG,kCAAX;EACA,IAAIL,YAAU,CAACK,EAAD,CAAV,IAAkB,IAAtB,EAA4BL,YAAU,CAACK,EAAD,CAAV,GAAiB,CAAjB;EAG5B;EACA;EACA;;AACA,iBAAeL,YAAU,CAACK,EAAD,CAAV,EAAf;;ECNA,IAAMC,QAAQ,GAAG,IAAjB;EAEA;;;;;;MAKMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACnK,OAAD,EAAkB;EAAA,MAAjBA,OAAiB;EAAjBA,IAAAA,OAAiB,GAAP,EAAO;EAAA;;EACzC,MAAIoK,WAAW,GAAG,CAAlB;;EAEA,MAAM5G,UAAU,GAAG,SAAbA,UAAa,CAACrD,IAAD,EAAOoC,KAAP,EAAiB;EAClC6H,IAAAA,WAAW,IAAI,CAAf;;EAEA,QAAIA,WAAW,GAAGF,QAAlB,EAA4B;EAC1B,OAAA5J,OAAO,CAAC,KAAD,8DAAkE8J,WAAlE,OAAP;EACD;;EAED,QAAIC,KAAK,GAAG,EAAZ;EACA,QAAIC,MAAM,GAAG,EAAb;;EAEA,QAAI/H,KAAJ,EAAW;EACT,UAAIA,KAAK,CAACvC,OAAN,CAAcuK,eAAlB,EAAmC;EACjCD,QAAAA,MAAM,GAAG/H,KAAK,CAACvC,OAAN,CAAcuK,eAAvB;EACD;;EACD,UAAIhI,KAAK,CAACvC,OAAN,CAAcC,GAAd,CAAkByD,EAAlB,IAAwB,IAA5B,EAAkC;EAChC2G,QAAAA,KAAK,GAAGG,MAAM,CAACjI,KAAK,CAACvC,OAAN,CAAcC,GAAd,CAAkByD,EAAnB,CAAd;EACD;EACF;;EAED,QAAI1D,OAAO,CAACyK,MAAZ,EAAoB;EAClB;EACA,mBAAUH,MAAM,IAAI,GAApB,IAA0BI,QAA1B,GAAqCL,KAArC,GAA6CD,WAA7C;EACD;;EAED,WAAUE,MAAM,GAAGnK,IAAI,CAACiC,GAAxB,SAA+BsI,QAA/B,IAA0CL,KAAK,SAAOA,KAAP,GAAiB,EAAhE,UAAsED,WAAtE;EACD,GAzBD;;EA2BA,SAAO5G,UAAP;EACD;;ECpCD;;;;EAGA,IAAMmH,OAAO,GAAG,SAAVA,OAAU,CAACC,EAAD,EAAQ;EACtB,MAAIpK,KAAJ;EACA,SAAO,YAAM;EACX,QAAI,CAACA,KAAL,EAAYA,KAAK,GAAGoK,EAAE,EAAV;EACZ,WAAOpK,KAAP;EACD,GAHD;EAID,CAND;EAQA;;;;;EAGA,IAAMqK,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD,EAAUlJ,IAAV,EAAmB;EAC1C,MAAI;EACF;EACA,QAAIkJ,OAAO,CAACC,iBAAZ,EAA+B;EAC7B,aAAOD,OAAO,CAACC,iBAAR,CAA0B7F,GAA1B,CAA8BtD,IAA9B,CAAP;EACD;;EACD,WAAOkJ,OAAO,CAACtL,KAAR,CAAcqL,gBAAd,CAA+BjJ,IAA/B,CAAP;EACD,GAND,CAME,OAAOoJ,GAAP,EAAY;EACZ;EACA,WAAO,EAAP;EACD;EACF,CAXD;EAaA;;;;;EAGA,IAAM5H,WAAW,GAAG,SAAdA,WAAc,CAAC0H,OAAD,EAAUlJ,IAAV,EAAgBpB,KAAhB,EAA0B;EAC5C,MAAI;EACF,QAAIM,QAAQ,GAAGN,KAAf;;EAEA,QAAIf,KAAK,CAACC,OAAN,CAAcc,KAAd,CAAJ,EAA0B;EACxBM,MAAAA,QAAQ,GAAGD,UAAU,CAACL,KAAD,CAArB;EACD,KALC;;;EAQF,QAAIsK,OAAO,CAACC,iBAAZ,EAA+B;EAC7BD,MAAAA,OAAO,CAACC,iBAAR,CAA0BE,GAA1B,CAA8BrJ,IAA9B,EAAoCd,QAApC;EACD,KAFD,MAEO;EACL,UAAMoK,oBAAoB,GAAGpK,QAAQ,GAAGA,QAAQ,CAACqE,OAAT,CAAiB,YAAjB,CAAH,GAAoC,CAAC,CAA1E;EAEA,UAAMgG,4BAA4B,GAChCD,oBAAoB,GAAG,CAAC,CAAxB,GAA4BpK,QAAQ,CAACsK,MAAT,CAAgB,CAAhB,EAAmBF,oBAAoB,GAAG,CAA1C,CAA5B,GAA2EpK,QAD7E;EAGAgK,MAAAA,OAAO,CAACtL,KAAR,CAAc4D,WAAd,CACExB,IADF,EAEEuJ,4BAFF,EAGED,oBAAoB,GAAG,CAAC,CAAxB,GAA4B,WAA5B,GAA0C,EAH5C;EAKD;EACF,GAtBD,CAsBE,OAAOF,GAAP,EAAY;EACZ;EACA,WAAO,KAAP;EACD;;EACD,SAAO,IAAP;EACD,CA5BD;EA8BA;;;;;EAGA,IAAM7H,cAAc,GAAG,SAAjBA,cAAiB,CAAC2H,OAAD,EAAUlJ,IAAV,EAAmB;EACxC,MAAI;EACF;EACA,QAAIkJ,OAAO,CAACC,iBAAZ,EAA+B;EAC7BD,MAAAA,OAAO,CAACC,iBAAR,CAA0BM,MAA1B,CAAiCzJ,IAAjC;EACD,KAFD,MAEO;EACLkJ,MAAAA,OAAO,CAACtL,KAAR,CAAc2D,cAAd,CAA6BvB,IAA7B;EACD;EACF,GAPD,CAOE,OAAOoJ,GAAP,EAAY;EACZ,KAAA1K,OAAO,CACL,KADK,4BAEkB0K,GAAG,CAACM,OAFtB,kDAEwE1J,IAFxE,SAAP;EAID;EACF,CAdD;EAgBA;;;;;EAGA,IAAMsC,WAAW,GAAG,SAAdA,WAAc,CAAC4G,OAAD,EAAUrH,YAAV,EAA2B;EAC7CqH,EAAAA,OAAO,CAACrH,YAAR,GAAuBA,YAAvB,CAD6C;EAI7C;;EACA,SAAOqH,OAAO,CAACrH,YAAR,KAAyBA,YAAhC;EACD,CAND;EAQA;;;;;;EAIA,IAAM8H,OAAO,GAAGZ,OAAO,CAAC;EAAA,SAAMa,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAN;EAAA,CAAD,CAAvB;EAEA;;;;EAGA,SAASC,eAAT,CAAyBvC,QAAzB,EAAmCnJ,OAAnC,EAA4C;EAC1C,OAAK,IAAIW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwI,QAAQ,CAACvI,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;EACxC,QAAM4B,KAAK,GAAG4G,QAAQ,CAACxI,CAAD,CAAtB;;EACA,QACE4B,KAAK,CAACc,QAAN,IACAd,KAAK,CAACvC,OAAN,CAAcsB,KAAd,GAAsBtB,OAAO,CAACsB,KAD9B,IAEAiB,KAAK,CAACvC,OAAN,CAAc2L,cAAd,KAAiC3L,OAAO,CAAC2L,cAH3C,EAIE;EACA,aAAOpJ,KAAP;EACD;EACF;;EACD,SAAO,IAAP;EACD;EAED;;;;;EAGA,SAASqJ,gBAAT,CAA0BzC,QAA1B,EAAoCnJ,OAApC,EAA6C;EAC3C,OAAK,IAAIW,CAAC,GAAGwI,QAAQ,CAACvI,MAAT,GAAkB,CAA/B,EAAkCD,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;EAC7C,QAAM4B,KAAK,GAAG4G,QAAQ,CAACxI,CAAD,CAAtB;;EACA,QAAI4B,KAAK,CAACc,QAAN,IAAkBd,KAAK,CAACvC,OAAN,CAAc2L,cAAd,KAAiC3L,OAAO,CAAC2L,cAA/D,EAA+E;EAC7E,aAAOpJ,KAAP;EACD;EACF;;EACD,SAAO,IAAP;EACD;EAED;;;;;EAGA,SAASsJ,eAAT,CAAyBC,IAAzB,EAA+B;EAC7B,MAAMC,IAAI,GAAGR,OAAO,EAApB;;EACA,OAAK,IAAI5K,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoL,IAAI,CAACC,UAAL,CAAgBpL,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;EAC/C,QAAMsL,IAAI,GAAGF,IAAI,CAACC,UAAL,CAAgBrL,CAAhB,CAAb;;EACA,QAAIsL,IAAI,CAACC,QAAL,KAAkB,CAAlB,IAAuBD,IAAI,CAACE,SAAL,CAAeC,IAAf,OAA0BN,IAArD,EAA2D;EACzD,aAAOG,IAAP;EACD;EACF;;EACD,SAAO,IAAP;EACD;EAED;;;;;EAGA,SAASI,YAAT,CAAsBrM,OAAtB,EAA+B;EAAA,MACtBmJ,QADsB,GACVmD,MADU,CACtBnD,QADsB;;EAG7B,MAAIA,QAAQ,CAACvI,MAAT,GAAkB,CAAtB,EAAyB;EACvB;EACA,QAAI2B,KAAK,GAAGmJ,eAAe,CAACvC,QAAD,EAAWnJ,OAAX,CAA3B;;EACA,QAAIuC,KAAK,IAAIA,KAAK,CAACE,QAAnB,EAA6B;EAC3B,aAAO;EACL2B,QAAAA,MAAM,EAAE7B,KAAK,CAACE,QAAN,CAAe8J,OAAf,CAAuBC,UAD1B;EAELP,QAAAA,IAAI,EAAE1J,KAAK,CAACE,QAAN,CAAe8J;EAFhB,OAAP;EAID,KARsB;;;EAWvBhK,IAAAA,KAAK,GAAGqJ,gBAAgB,CAACzC,QAAD,EAAWnJ,OAAX,CAAxB;;EACA,QAAIuC,KAAK,IAAIA,KAAK,CAACE,QAAnB,EAA6B;EAC3B,aAAO;EACL2B,QAAAA,MAAM,EAAE7B,KAAK,CAACE,QAAN,CAAe8J,OAAf,CAAuBC,UAD1B;EAELP,QAAAA,IAAI,EAAE1J,KAAK,CAACE,QAAN,CAAe8J,OAAf,CAAuBE;EAFxB,OAAP;EAID;EACF,GArB4B;;;EAAA,MAwBtBd,cAxBsB,GAwBJ3L,OAxBI,CAwBtB2L,cAxBsB;;EAyB7B,MAAIA,cAAc,IAAI,OAAOA,cAAP,KAA0B,QAAhD,EAA0D;EACxD,QAAMe,OAAO,GAAGb,eAAe,CAACF,cAAD,CAA/B;;EACA,QAAIe,OAAJ,EAAa;EACX,aAAO;EACLtI,QAAAA,MAAM,EAAEsI,OAAO,CAACF,UADX;EAELP,QAAAA,IAAI,EAAES,OAAO,CAACD;EAFT,OAAP;EAID,KAPuD;EAUxD;;;EACA,KAAAnM,OAAO,CAAC,KAAD,+BAAkCqL,cAAlC,mBAAP;EACD;;EAED,SAAO,KAAP;EACD;EAED;;;;;EAGA,SAASgB,WAAT,CAAqBnN,KAArB,EAA4BQ,OAA5B,EAAqC;EAAA,MAC5B2L,cAD4B,GACV3L,OADU,CAC5B2L,cAD4B;EAEnC,MAAMiB,QAAQ,GAAGP,YAAY,CAACrM,OAAD,CAA7B;;EAEA,MAAI4M,QAAQ,KAAK,KAAb,IAAsBA,QAAQ,CAACxI,MAAnC,EAA2C;EACzCwI,IAAAA,QAAQ,CAACxI,MAAT,CAAgByI,YAAhB,CAA6BrN,KAA7B,EAAoCoN,QAAQ,CAACX,IAA7C;EAEA;EACD,GARkC;;;EAWnC,MAAIN,cAAc,IAAI,OAAOA,cAAc,CAACO,QAAtB,KAAmC,QAAzD,EAAmE;EACjE,QAAMY,qBAAqB,GAAGnB,cAA9B;EADiE,QAE1Da,UAF0D,GAE5CM,qBAF4C,CAE1DN,UAF0D;EAGjE,QAAIA,UAAJ,EAAgBA,UAAU,CAACK,YAAX,CAAwBrN,KAAxB,EAA+BsN,qBAAqB,CAACL,WAArD,EAAhB,MACKnM,OAAO,CAAC,KAAD,EAAQ,0CAAR,CAAP;EACL;EACD;;EAEDiL,EAAAA,OAAO,GAAGwB,WAAV,CAAsBvN,KAAtB;EACD;EAED;;;;;EAGA,IAAMwN,QAAQ,GAAGrC,OAAO,CAAC,YAAM;EAC7B,MAAMsB,IAAI,GAAGT,QAAQ,CAACC,aAAT,CAAuB,4BAAvB,CAAb;EACA,SAAOQ,IAAI,GAAGA,IAAI,CAACgB,YAAL,CAAkB,SAAlB,CAAH,GAAkC,IAA7C;EACD,CAHuB,CAAxB;;EAKA,IAAMrE,WAAU,GAAG,SAAbA,UAAa,CAACsE,SAAD,EAAY/M,IAAZ,EAAkBmB,KAAlB,EAA4B;EAC7C,MAAI;EACF,QAAI,gBAAgB4L,SAApB,EAA+B;EAC7BA,MAAAA,SAAS,CAACtE,UAAV,CAAqBzI,IAArB,EAA2BmB,KAA3B;EACD,KAFD;EAAA,SAIK,IAAI,gBAAgB4L,SAApB,EAA+B;EAClCA,QAAAA,SAAS,CAACC,UAAV,CAAqBhN,IAArB;EACD;EACF,GARD,CAQE,OAAO6K,GAAP,EAAY;EACZ,KAAA1K,OAAO,CAAC,KAAD,aAAiB0K,GAAG,CAACM,OAArB,CAAP;EACA,WAAO,KAAP;EACD;;EACD,SAAO4B,SAAS,CAACE,QAAV,CAAmB9L,KAAnB,CAAP;EACD,CAdD;;EAgBA,IAAM+L,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACH,SAAD,EAAY5L,KAAZ,EAAsB;EACvD,MAAMgM,QAAQ,GAAGJ,SAAS,CAACE,QAAV,CAAmBxM,MAApC,CADuD;;EAGvD,MAAIU,KAAK,KAAKoB,SAAV,IAAuBpB,KAAK,GAAGgM,QAAnC,EAA6C;EAC3C;EACA,WAAOA,QAAP;EACD;;EACD,SAAOhM,KAAP;EACD,CARD;;EAUA,IAAMiM,WAAW,GAAG,SAAdA,WAAc,GAAM;EACxB,MAAMC,EAAE,GAAGhC,QAAQ,CAACiC,aAAT,CAAuB,OAAvB,CAAX,CADwB;EAGxB;EACA;;EACAD,EAAAA,EAAE,CAACE,WAAH,GAAiB,IAAjB;EACA,SAAOF,EAAP;EACD,CAPD;;MASqBG;;;EAWnB;EACA;EAGA,uBAAYpL,KAAZ,EAAmB;EAAA,SAdnBsI,gBAcmB,GAdAA,gBAcA;EAAA,SAZnBzH,WAYmB,GAZLA,WAYK;EAAA,SAVnBD,cAUmB,GAVFA,cAUE;EAAA,SARnBe,WAQmB,GARLA,WAQK;EAAA,SANnB0J,gBAMmB,GANA,KAMA;EAAA,SAFnBR,QAEmB,GAFR,EAEQ;EACjB;EACA,QAAI7K,KAAJ,EAAW+J,MAAM,CAACtH,GAAP,CAAWzC,KAAX;EAEX,SAAKA,KAAL,GAAaA,KAAb;;EAJiB,eAKc,KAAKA,KAAL,GAAa,KAAKA,KAAL,CAAWvC,OAAxB,GAAkC,EALhD;EAAA,QAKV6N,KALU,QAKVA,KALU;EAAA,QAKHC,IALG,QAKHA,IALG;EAAA,QAKGvB,OALH,QAKGA,OALH;;EAMjB,SAAKA,OAAL,GAAeA,OAAO,IAAIgB,WAAW,EAArC;EACA,SAAKhB,OAAL,CAAawB,YAAb,CAA0B,UAA1B,EAAsC,EAAtC;EACA,QAAIF,KAAJ,EAAW,KAAKtB,OAAL,CAAawB,YAAb,CAA0B,OAA1B,EAAmCF,KAAnC;EACX,QAAIC,IAAJ,EAAU,KAAKvB,OAAL,CAAawB,YAAb,CAA0B,WAA1B,EAAuCD,IAAvC;EACV,QAAME,KAAK,GAAGhB,QAAQ,EAAtB;EACA,QAAIgB,KAAJ,EAAW,KAAKzB,OAAL,CAAawB,YAAb,CAA0B,OAA1B,EAAmCC,KAAnC;EACZ;EAED;;;;;;;WAGAzF,SAAA,kBAAS;EACP;EACA,QAAI,KAAKgE,OAAL,CAAaC,UAAb,IAA2B,CAAC,KAAKjK,KAArC,EAA4C;EAE5CoK,IAAAA,WAAW,CAAC,KAAKJ,OAAN,EAAe,KAAKhK,KAAL,CAAWvC,OAA1B,CAAX,CAJO;EAOP;;EACA,QAAMsI,QAAQ,GAAG2F,OAAO,CAAC,KAAK1L,KAAL,IAAc,KAAKA,KAAL,CAAW+F,QAA1B,CAAxB;;EACA,QAAI,KAAKsF,gBAAL,IAAyBtF,QAA7B,EAAuC;EACrC,WAAKsF,gBAAL,GAAwB,KAAxB;EACA,WAAKpF,MAAL;EACD;EACF;EAED;;;;;WAGAC,SAAA,kBAAS;EACP,QAAI,CAAC,KAAKlG,KAAV,EAAiB;EADV,QAEAiK,UAFA,GAEc,KAAKD,OAFnB,CAEAC,UAFA;EAGP,QAAIA,UAAJ,EAAgBA,UAAU,CAAC0B,WAAX,CAAuB,KAAK3B,OAA5B,EAHT;EAKP;;EACA,QAAI,KAAKhK,KAAL,CAAWvC,OAAX,CAAmB+D,IAAvB,EAA6B;EAC3B,WAAKqJ,QAAL,GAAgB,EAAhB;EACA,WAAKb,OAAL,CAAamB,WAAb,GAA2B,IAA3B;EACD;EACF;EAED;;;;;WAGAlF,SAAA,kBAAS;EAAA,QACAjG,KADA,GACS,IADT,CACAA,KADA;EAEP,QAAI,CAACA,KAAL,EAAY;;EACZ,QAAIA,KAAK,CAACvC,OAAN,CAAc+D,IAAlB,EAAwB;EACtB,WAAKoK,WAAL,CAAiB5L,KAAK,CAACuC,KAAvB;EACA;EACD;;EACD,SAAKyH,OAAL,CAAamB,WAAb,UAAgCnL,KAAK,CAACuB,QAAN,EAAhC;EACD;EAED;;;;;WAIAqK,cAAA,qBAAYrJ,KAAZ,EAAmBsJ,YAAnB,EAAiC;EAC/B,SAAK,IAAIzN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmE,KAAK,CAACxD,KAAN,CAAYV,MAAhC,EAAwCD,CAAC,EAAzC,EAA6C;EAC3C,WAAKiI,UAAL,CAAgB9D,KAAK,CAACxD,KAAN,CAAYX,CAAZ,CAAhB,EAAgCA,CAAhC,EAAmCyN,YAAnC;EACD;EACF;EAED;;;;;WAGAxF,aAAA,oBAAWzI,IAAX,EAAiBmB,KAAjB,EAAwB8M,YAAxB,EAA2D;EAAA,QAAnCA,YAAmC;EAAnCA,MAAAA,YAAmC,GAApB,KAAK7B,OAAL,CAAahK,KAAO;EAAA;;EACzD,QAAIpC,IAAI,CAAC2E,KAAT,EAAgB;EACd,UAAMV,MAAM,GAAGjE,IAAf;EACA,UAAIkO,kBAAkB,GAAGD,YAAzB;;EACA,UAAIjO,IAAI,CAACkC,IAAL,KAAc,aAAd,IAA+BlC,IAAI,CAACkC,IAAL,KAAc,WAAjD,EAA8D;EAC5D,YAAMiM,eAAc,GAAGjB,0BAA0B,CAACe,YAAD,EAAe9M,KAAf,CAAjD,CAD4D;;;EAG5D+M,QAAAA,kBAAkB,GAAGzF,WAAU,CAC7BwF,YAD6B,EAE7BhK,MAAM,CAACN,QAAP,CAAgB;EAACQ,UAAAA,QAAQ,EAAE;EAAX,SAAhB,CAF6B,EAG7BgK,eAH6B,CAA/B;;EAKA,YAAID,kBAAkB,KAAK,KAA3B,EAAkC;EAChC,iBAAO,KAAP;EACD;;EACD,aAAKE,UAAL,CAAgBpO,IAAhB,EAAsBmO,eAAtB,EAAsCD,kBAAtC;EACD;;EACD,WAAKF,WAAL,CAAiB/J,MAAM,CAACU,KAAxB,EAA+BuJ,kBAA/B;EACA,aAAOA,kBAAP;EACD;;EAED,QAAMG,OAAO,GAAGrO,IAAI,CAAC2D,QAAL,EAAhB;EAEA,QAAI,CAAC0K,OAAL,EAAc,OAAO,KAAP;EAEd,QAAMF,cAAc,GAAGjB,0BAA0B,CAACe,YAAD,EAAe9M,KAAf,CAAjD;;EACA,QAAMmN,UAAU,GAAG7F,WAAU,CAACwF,YAAD,EAAeI,OAAf,EAAwBF,cAAxB,CAA7B;;EACA,QAAIG,UAAU,KAAK,KAAnB,EAA0B;EACxB,aAAO,KAAP;EACD;;EAED,SAAKb,gBAAL,GAAwB,IAAxB;EACA,SAAKW,UAAL,CAAgBpO,IAAhB,EAAsBmO,cAAtB,EAAsCG,UAAtC;EAEA,WAAOA,UAAP;EACD;;WAEDF,aAAA,oBAAWpO,IAAX,EAAiBmB,KAAjB,EAAwBwJ,OAAxB,EAAiC;EAC/B3K,IAAAA,IAAI,CAAC+C,UAAL,GAAkB4H,OAAlB,CAD+B;EAG/B;;EACA,QAAI3K,IAAI,CAACH,OAAL,CAAaoE,MAAb,YAA+BiE,UAAnC,EAA+C;EAC7C,WAAK+E,QAAL,CAAc7F,MAAd,CAAqBjG,KAArB,EAA4B,CAA5B,EAA+BwJ,OAA/B;EACD;EACF;EAED;;;;;WAGAjC,aAAA,oBAAWiC,OAAX,EAAoB;EAAA,QACXvI,KADW,GACF,KAAKgK,OADH,CACXhK,KADW;EAElB,QAAMjB,KAAK,GAAG,KAAK6D,OAAL,CAAa2F,OAAb,CAAd;EACA,QAAIxJ,KAAK,KAAK,CAAC,CAAf,EAAkB,OAAO,KAAP;EAClBiB,IAAAA,KAAK,CAACsG,UAAN,CAAiBvH,KAAjB;EACA,SAAK8L,QAAL,CAAc7F,MAAd,CAAqBjG,KAArB,EAA4B,CAA5B;EACA,WAAO,IAAP;EACD;EAED;;;;;WAGA6D,UAAA,iBAAQ2F,OAAR,EAAiB;EACf,WAAO,KAAKsC,QAAL,CAAcjI,OAAd,CAAsB2F,OAAtB,CAAP;EACD;EAED;;;;;WAGA3G,cAAA,qBAAY2G,OAAZ,EAAqB3K,IAArB,EAA2B;EACzB,QAAMmB,KAAK,GAAG,KAAK6D,OAAL,CAAa2F,OAAb,CAAd;EACA,QAAIxJ,KAAK,KAAK,CAAC,CAAf,EAAkB,OAAO,KAAP;EAClB,SAAKiL,OAAL,CAAahK,KAAb,CAAmBsG,UAAnB,CAA8BvH,KAA9B;EACA,SAAK8L,QAAL,CAAc7F,MAAd,CAAqBjG,KAArB,EAA4B,CAA5B;EACA,WAAO,KAAKsH,UAAL,CAAgBzI,IAAhB,EAAsBmB,KAAtB,CAAP;EACD;EAED;;;;;WAGAoN,WAAA,oBAAW;EACT,WAAO,KAAKnC,OAAL,CAAahK,KAAb,CAAmB6K,QAA1B;EACD;;;;;EClaH,IAAIuB,eAAe,GAAG,CAAtB;;MAEqBC;;;EAgBnB,eAAY5O,OAAZ,EAAqB;EAAA,SAfrB0D,EAeqB,GAfhBiL,eAAe,EAeC;EAAA,SAbrBE,OAaqB,GAbXhM,QAaW;EAAA,SAXrBzC,OAWqB,GAXX,IAAI4I,eAAJ,EAWW;EAAA,SATrBhJ,OASqB,GATX;EACR0D,MAAAA,EAAE,EAAE;EAAC+G,QAAAA,MAAM,EAAE;EAAT,OADI;EAERN,MAAAA,gBAAgB,EAAE2E,gBAFV;EAGRtM,MAAAA,QAAQ,EAAEuM,SAAW,GAAGpB,WAAH,GAAiB,IAH9B;EAIRvN,MAAAA,OAAO,EAAE;EAJD,KASW;EAAA,SAFrBoD,UAEqB,GAFRsL,gBAAuB,CAAC;EAACrE,MAAAA,MAAM,EAAE;EAAT,KAAD,CAEf;;EACnB,SAAK,IAAI9J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqO,OAAe,CAACpO,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;EAC/C,WAAKP,OAAL,CAAakJ,GAAb,CAAiB0F,OAAe,CAACrO,CAAD,CAAhC,EAAqC;EAAC+H,QAAAA,KAAK,EAAE;EAAR,OAArC;EACD;;EACD,SAAKuG,KAAL,CAAWjP,OAAX;EACD;EAED;;;;;;;;;WAKAiP,QAAA,eAAMjP,OAAN,EAAoB;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAClB,QAAIA,OAAO,CAACmK,gBAAZ,EAA8B;EAC5B,WAAKnK,OAAL,CAAamK,gBAAb,GAAgCnK,OAAO,CAACmK,gBAAxC;EACD;;EAED,QAAInK,OAAO,CAAC0D,EAAZ,EAAgB;EACd,WAAK1D,OAAL,CAAa0D,EAAb,gBACK,KAAK1D,OAAL,CAAa0D,EADlB,EAEK1D,OAAO,CAAC0D,EAFb;EAID;;EAED,QAAI1D,OAAO,CAACmK,gBAAR,IAA4BnK,OAAO,CAAC0D,EAAxC,EAA4C;EAC1C,WAAKF,UAAL,GAAkB,KAAKxD,OAAL,CAAamK,gBAAb,CAA8B,KAAKnK,OAAL,CAAa0D,EAA3C,CAAlB;EACD;;EAED,QAAI1D,OAAO,CAAC2L,cAAR,IAA0B,IAA9B,EAAoC,KAAK3L,OAAL,CAAa2L,cAAb,GAA8B3L,OAAO,CAAC2L,cAAtC;;EACpC,QAAI,cAAc3L,OAAlB,EAA2B;EACzB,WAAKA,OAAL,CAAawC,QAAb,GAAwBxC,OAAO,CAACwC,QAAhC;EACD,KAnBiB;;;EAsBlB,QAAIxC,OAAO,CAACI,OAAZ,EAAqB,KAAKkJ,GAAL,CAAS4F,KAAT,CAAe,IAAf,EAAqBlP,OAAO,CAACI,OAA7B;EAErB,WAAO,IAAP;EACD;EAED;;;;;WAGA+O,mBAAA,0BAAiB1K,MAAjB,EAAyBzE,OAAzB,EAAuC;EAAA,QAAdA,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EAAA,mBACvBA,OADuB;EAAA,QAChCsB,KADgC,YAChCA,KADgC;;EAErC,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;EAC7BA,MAAAA,KAAK,GAAGgL,MAAM,CAAChL,KAAP,KAAiB,CAAjB,GAAqB,CAArB,GAAyBgL,MAAM,CAAChL,KAAP,GAAe,CAAhD;EACD;;EACD,QAAMiB,KAAK,GAAG,IAAI8F,UAAJ,CAAe5D,MAAf,eACTzE,OADS;EAEZC,MAAAA,GAAG,EAAE,IAFO;EAGZuD,MAAAA,UAAU,EAAExD,OAAO,CAACwD,UAAR,IAAsB,KAAKA,UAH3B;EAIZmI,MAAAA,cAAc,EAAE,KAAK3L,OAAL,CAAa2L,cAJjB;EAKZnJ,MAAAA,QAAQ,EAAE,KAAKxC,OAAL,CAAawC,QALX;EAMZlB,MAAAA,KAAK,EAALA;EANY,OAAd;EAQA,SAAKlB,OAAL,CAAagJ,cAAb,CAA4B7G,KAA5B;EAEA,WAAOA,KAAP;EACD;EAED;;;;;WAGA6M,mBAAA,0BAAiB7M,KAAjB,EAAwB;EACtBA,IAAAA,KAAK,CAACkG,MAAN;EACA6D,IAAAA,MAAM,CAACrJ,MAAP,CAAcV,KAAd;EACA,WAAO,IAAP;EACD;EAED;;;;;;WAIAzC,aAAA,sBAAWD,IAAX,EAAiBL,KAAjB,EAA6BQ,OAA7B,EAA2C;EAAA,QAA1BR,KAA0B;EAA1BA,MAAAA,KAA0B,GAAlB,EAAkB;EAAA;;EAAA,QAAdQ,OAAc;EAAdA,MAAAA,OAAc,GAAJ,EAAI;EAAA;;EACzC;EACA,QAAI,OAAOH,IAAP,KAAgB,QAApB,EAA8B;EAC5B,aAAO,KAAKC,UAAL,CAAgB4C,SAAhB,EAA2B7C,IAA3B,EAAiCL,KAAjC,CAAP;EACD;;EAED,QAAM6H,WAAW,gBAAOrH,OAAP;EAAgBH,MAAAA,IAAI,EAAJA,IAAhB;EAAsBI,MAAAA,GAAG,EAAE,IAA3B;EAAiCuC,MAAAA,QAAQ,EAAE,KAAKxC,OAAL,CAAawC;EAAxD,MAAjB;;EAEA,QAAI,CAAC6E,WAAW,CAAC7D,UAAjB,EAA6B6D,WAAW,CAAC7D,UAAZ,GAAyB,KAAKA,UAA9B;EAC7B,QAAI,CAAC6D,WAAW,CAACD,OAAjB,EAA0BC,WAAW,CAACD,OAAZ,GAAsB,EAAtB;EAC1B,QAAI,CAACC,WAAW,CAACrB,SAAjB,EAA4BqB,WAAW,CAACrB,SAAZ,GAAwB,EAAxB;;EAE5B,QAAM7F,IAAI,GAAGL,UAAU,CAACD,IAAD,EAAOL,KAAP,EAAc6H,WAAd,CAAvB;;EAEA,QAAIlH,IAAJ,EAAU,KAAKC,OAAL,CAAaiF,aAAb,CAA2BlF,IAA3B;EAEV,WAAOA,IAAP;EACD;EAED;;;;;WAGAmJ,MAAA,eAAgB;EAAA;;EAAA,sCAATlJ,OAAS;EAATA,MAAAA,OAAS;EAAA;;EACdA,IAAAA,OAAO,CAACyH,OAAR,CAAgB,UAAC4B,MAAD,EAAY;EAC1B,MAAA,KAAI,CAACrJ,OAAL,CAAakJ,GAAb,CAAiBG,MAAjB;EACD,KAFD;EAIA,WAAO,IAAP;EACD;;;;;MC9HG4F,SAAS,GAAG,SAAZA,SAAY,CAACrP,OAAD;EAAA,SAAa,IAAI4O,GAAJ,CAAQ5O,OAAR,CAAb;EAAA;;ECAlB;;;;;;MAKqBsP;;;;WACnB1O,SAAS;WAET0L,SAAS,IAAIiD,OAAJ;;;;;WAMTrK,MAAA,aAAI9C,GAAJ,EAAS;EACP,QAAMoN,KAAK,GAAG,KAAKlD,MAAL,CAAYpH,GAAZ,CAAgB9C,GAAhB,CAAd;EACA,WAAOoN,KAAK,IAAIA,KAAK,CAACjN,KAAtB;EACD;;WAEDyC,MAAA,aAAI5C,GAAJ,EAASG,KAAT,EAAgB;EACd,QAAI,KAAK+J,MAAL,CAAYmD,GAAZ,CAAgBrN,GAAhB,CAAJ,EAA0B;EAE1B,SAAKxB,MAAL;EAEA,SAAK0L,MAAL,CAAYrB,GAAZ,CAAgB7I,GAAhB,EAAqB;EACnBG,MAAAA,KAAK,EAALA,KADmB;EAEnBmN,MAAAA,IAAI,EAAE;EAFa,KAArB;EAID;;WAEDC,SAAA,gBAAOvN,GAAP,EAAY;EACV,QAAMoN,KAAK,GAAG,KAAKlD,MAAL,CAAYpH,GAAZ,CAAgB9C,GAAhB,CAAd;;EAEA,QAAIoN,KAAJ,EAAW;EACT,UAAIA,KAAK,CAACE,IAAN,KAAe,CAAnB,EAAsB;EACpBF,QAAAA,KAAK,CAACjN,KAAN,CAAYgG,MAAZ;EACD;;EAEDiH,MAAAA,KAAK,CAACE,IAAN;EAEA,aAAOF,KAAK,CAACjN,KAAb;EACD;;EAEDqN,IAAAA,OAAI,CAAC,KAAD,EAAQ,iDAAR,CAAJ;EAEA,WAAOlN,SAAP;EACD;;WAEDmN,WAAA,kBAASzN,GAAT,EAAc;EACZ,QAAMoN,KAAK,GAAG,KAAKlD,MAAL,CAAYpH,GAAZ,CAAgB9C,GAAhB,CAAd;;EAEA,QAAIoN,KAAJ,EAAW;EACT,UAAIA,KAAK,CAACE,IAAN,GAAa,CAAjB,EAAoB;EAClBF,QAAAA,KAAK,CAACE,IAAN;EAEA,YAAIF,KAAK,CAACE,IAAN,KAAe,CAAnB,EAAsBF,KAAK,CAACjN,KAAN,CAAYkG,MAAZ;EACvB;EACF,KAND,MAMO;EACLmH,MAAAA,OAAI,CAAC,KAAD,EAAQ,6CAAR,CAAJ;EACD;EACF;;;;0BAlDU;EACT,aAAO,KAAKhP,MAAZ;EACD;;;;;;ECdF;;;;MAIKkP,gBAAgB,GAAG,OAAO9N,GAAP,KAAe,QAAf,IAA2BA,GAAG,IAAI,IAAlC,IAA0C,YAAYA;;ECJ/E;;;EAGe,SAAS+N,gBAAT,CAA0BtL,MAA1B,EAAkC;EAC/C,MAAIuL,EAAE,GAAG,IAAT;;EAEA,OAAK,IAAM5N,GAAX,IAAkBqC,MAAlB,EAA0B;EACxB,QAAMjE,KAAK,GAAGiE,MAAM,CAACrC,GAAD,CAApB;EACA,QAAMC,IAAI,GAAG,OAAO7B,KAApB;;EAEA,QAAI6B,IAAI,KAAK,UAAb,EAAyB;EACvB,UAAI,CAAC2N,EAAL,EAASA,EAAE,GAAG,EAAL;EACTA,MAAAA,EAAE,CAAC5N,GAAD,CAAF,GAAU5B,KAAV;EACD,KAHD,MAGO,IAAI6B,IAAI,KAAK,QAAT,IAAqB7B,KAAK,KAAK,IAA/B,IAAuC,CAACf,KAAK,CAACC,OAAN,CAAcc,KAAd,CAA5C,EAAkE;EACvE,UAAMyP,SAAS,GAAGF,gBAAgB,CAACvP,KAAD,CAAlC;;EACA,UAAIyP,SAAJ,EAAe;EACb,YAAI,CAACD,EAAL,EAASA,EAAE,GAAG,EAAL;EACTA,QAAAA,EAAE,CAAC5N,GAAD,CAAF,GAAU6N,SAAV;EACD;EACF;EACF;;EAED,SAAOD,EAAP;EACD;;ECvBD;;;;;;;AAoBA,cAAeE,SAAM,EAArB;;;;;;;;;;;;;;;;;;;;"}