UNPKG

29.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"bss.js","sources":["lib/pseudos.js","lib/popular.js","lib/utils.js","lib/sheet.js","lib/index.js"],"sourcesContent":["export default [\n ':active',\n ':any',\n ':checked',\n ':default',\n ':disabled',\n ':empty',\n ':enabled',\n ':first',\n ':first-child',\n ':first-of-type',\n ':fullscreen',\n ':focus',\n ':hover',\n ':indeterminate',\n ':in-range',\n ':invalid',\n ':last-child',\n ':last-of-type',\n ':left',\n ':link',\n ':only-child',\n ':only-of-type',\n ':optional',\n ':out-of-range',\n ':read-only',\n ':read-write',\n ':required',\n ':right',\n ':root',\n ':scope',\n ':target',\n ':valid',\n ':visited',\n\n // With value\n ':dir',\n ':lang',\n ':not',\n ':nth-child',\n ':nth-last-child',\n ':nth-last-of-type',\n ':nth-of-type',\n\n // Elements\n '::after',\n '::before',\n '::first-letter',\n '::first-line',\n '::selection',\n '::backdrop',\n '::placeholder',\n '::marker',\n '::spelling-error',\n '::grammar-error'\n]\n","export default {\n ai : 'alignItems',\n b : 'bottom',\n bc : 'backgroundColor',\n br : 'borderRadius',\n bs : 'boxShadow',\n c : 'color',\n d : 'display',\n f : 'float',\n fd : 'flexDirection',\n ff : 'fontFamily',\n fs : 'fontSize',\n h : 'height',\n jc : 'justifyContent',\n l : 'left',\n lh : 'lineHeight',\n ls : 'letterSpacing',\n m : 'margin',\n mb : 'marginBottom',\n ml : 'marginLeft',\n mr : 'marginRight',\n mt : 'marginTop',\n o : 'opacity',\n p : 'padding',\n pb : 'paddingBottom',\n pl : 'paddingLeft',\n pr : 'paddingRight',\n pt : 'paddingTop',\n r : 'right',\n t : 'top',\n ta : 'textAlign',\n td : 'textDecoration',\n tt : 'textTransform',\n w : 'width'\n}\n","export const cssProperties = ['float'].concat(Object.keys(\n findWidth(document.documentElement.style)\n).filter(p => p.indexOf('-') === -1 && p !== 'length'))\n\nfunction findWidth(obj) {\n return obj.hasOwnProperty('width')\n ? obj\n : findWidth(Object.getPrototypeOf(obj))\n}\n\nexport const memoize = (fn, cache = {}) => item =>\n item in cache\n ? cache[item]\n : cache[item] = fn(item)\n\nexport function add(style, prop, value) {\n if (prop in style)\n add(style, '!' + prop, value)\n else\n style[prop] = value\n}\n\nexport const vendorMap = Object.create(null, {})\nexport const vendorValuePrefix = Object.create(null, {})\n\nexport const vendorRegex = /^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/\n\nconst appendPx = memoize(prop => {\n const el = document.createElement('div')\n\n try {\n el.style[prop] = '1px'\n el.style.setProperty(prop, '1px')\n return el.style[prop].slice(-3) === '1px' ? 'px' : ''\n } catch (err) {\n return ''\n }\n}, {\n flex: '',\n boxShadow: 'px',\n border: 'px'\n})\n\nexport function lowercaseFirst(string) {\n return string.charAt(0).toLowerCase() + string.slice(1)\n}\n\nexport function sanitize(styles) {\n return Object.keys(styles).reduce((acc, key) => {\n const value = styles[key]\n\n if (!value && value !== 0 && value !== '')\n return acc\n\n if (key === 'content' && value.charAt(0) !== '\"')\n acc[key] = '\"' + value + '\"'\n else\n acc[key in vendorMap ? vendorMap[key] : key] = formatValue(key, value)\n\n return acc\n }, {})\n}\n\nexport function assign(obj, obj2) {\n for (const key in obj2) {\n if (obj2.hasOwnProperty(key))\n obj[key] = obj2[key]\n }\n}\n\nexport function hyphenToCamelCase(hyphen) {\n return hyphen.slice(hyphen.charAt(0) === '-' ? 1 : 0).replace(/-([a-z])/g, function(match) {\n return match[1].toUpperCase()\n })\n}\n\nexport function camelCaseToHyphen(camelCase) {\n return camelCase.replace(/([A-Z])/g, '-$1').toLowerCase()\n}\n\nexport function initials(camelCase) {\n return camelCase.charAt(0) + (camelCase.match(/([A-Z])/g) || []).join('').toLowerCase()\n}\n\nexport function objectToRules(style, selector, suffix = '', single) {\n const base = {}\n\n let rules = []\n\n Object.keys(style).forEach(prop => {\n if (prop.charAt(0) === '@')\n rules.push(prop + '{' + objectToRules(style[prop], selector, suffix, single) + '}')\n else if (typeof style[prop] === 'object')\n rules = rules.concat(objectToRules(style[prop], selector, suffix + prop, single))\n else\n base[prop] = style[prop]\n })\n\n if (Object.keys(base).length) {\n rules.unshift(\n ((single || (suffix.charAt(0) === ' ') ? '' : '&') + '&' + suffix).replace(/&/g, selector) +\n '{' + stylesToCss(base) + '}'\n )\n }\n\n return rules\n}\n\nexport const selectorSplit = /,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/\n\nexport function stylesToCss(style) {\n return Object.keys(style).reduce((acc, prop) =>\n acc + propToString(prop.replace(/!/g, ''), style[prop])\n , '')\n}\n\nexport function readClasses(sheet) {\n throw new Error('not implemented')\n}\n\nfunction propToString(prop, value) {\n return (vendorRegex.test(prop) ? '-' : '')\n + (prop.charAt(0) === '-' && prop.charAt(1) === '-'\n ? prop\n : camelCaseToHyphen(prop)\n )\n + ':'\n + value\n + ';'\n}\n\nexport function formatValue(key, value) {\n return value in vendorValuePrefix\n ? vendorValuePrefix[value]\n : addPx(key, value)\n}\n\nexport function addPx(key, value) {\n return value + (isNaN(value) ? '' : appendPx(key))\n}\n","import {\n objectToRules\n} from './utils.js'\n\nconst document = window.document\nconst styleSheet = document && document.createElement('style')\nstyleSheet && document.head.appendChild(styleSheet)\nconst sheet = styleSheet && styleSheet.sheet\n\nlet debug = false\nlet classes = Object.create(null, {})\nlet rules = []\nlet count = 0\n\nexport const classPrefix = 'b' + ('000' + ((Math.random() * 46656) | 0).toString(36)).slice(-3) +\n ('000' + ((Math.random() * 46656) | 0).toString(36)).slice(-3)\n\nexport function setDebug(d) {\n debug = d\n}\n\nexport function getSheet() {\n const content = rules.join('')\n rules = []\n classes = Object.create(null, {})\n count = 0\n return content\n}\n\nexport function insert(rule, index) {\n rules.push(rule)\n\n if (debug)\n return styleSheet.textContent = rules.join('\\n')\n\n sheet && sheet.insertRule(rule, arguments.length > 1\n ? index\n : sheet.cssRules.length\n )\n}\n\nexport function createClass(style) {\n const json = JSON.stringify(style)\n\n if (json in classes)\n return classes[json]\n\n const className = classPrefix + (++count)\n , rules = objectToRules(style, '.' + className)\n\n for (let i = 0; i < rules.length; i++)\n insert(rules[i])\n\n classes[json] = className\n\n return className\n}\n","/* eslint no-invalid-this: 0 */\nimport pseudos from './pseudos.js'\nimport popular from './popular.js'\n\nimport {\n classPrefix,\n createClass,\n setDebug,\n getSheet,\n insert\n} from './sheet'\n\nimport {\n hyphenToCamelCase,\n vendorValuePrefix,\n lowercaseFirst,\n objectToRules,\n selectorSplit,\n cssProperties,\n stylesToCss,\n vendorRegex,\n formatValue,\n vendorMap,\n sanitize,\n initials,\n memoize,\n assign,\n addPx,\n add\n} from './utils'\n\nconst shorts = Object.create(null)\n\nfunction bss(input, value) {\n const b = chain(bss)\n assign(b.__style, parse.apply(null, arguments))\n return b\n}\n\nfunction setProp(prop, value) {\n Object.defineProperty(bss, prop, {\n configurable: true,\n value\n })\n}\n\nObject.defineProperties(bss, {\n __style: {\n configurable: true,\n writable: true,\n value: {}\n },\n valueOf: {\n configurable: true,\n writable: true,\n value: function ValueOf() {\n return '.' + this.class\n }\n }\n})\n\nsetProp('setDebug', setDebug)\n\nsetProp('$keyframes', keyframes)\nsetProp('$media', $media)\nsetProp('$import', $import)\nsetProp('$nest', $nest)\nsetProp('getSheet', getSheet)\nsetProp('helper', helper)\nsetProp('css', css)\nsetProp('classPrefix', classPrefix)\n\nfunction chain(instance) {\n const newInstance = Object.create(bss, {\n __style: {\n value: instance.__style\n },\n style: {\n enumerable: true,\n get: function() {\n return Object.keys(this.__style).reduce((acc, key) => {\n if (typeof this.__style[key] === 'number' || typeof this.__style[key] === 'string')\n acc[key.replace(/^!/, '')] = this.__style[key]\n return acc\n }, {})\n }\n }\n })\n\n if (instance === bss)\n bss.__style = {}\n\n return newInstance\n}\n\ncssProperties.forEach(prop => {\n const vendor = prop.match(vendorRegex)\n if (vendor) {\n const unprefixed = lowercaseFirst(prop.replace(vendorRegex, '$2'))\n if (cssProperties.indexOf(unprefixed) === -1) {\n if (unprefixed === 'flexDirection')\n vendorValuePrefix.flex = '-' + vendor[1].toLowerCase() + '-flex'\n\n vendorMap[unprefixed] = prop\n setProp(unprefixed, setter(prop))\n setProp(short(unprefixed), bss[unprefixed])\n return\n }\n }\n\n setProp(prop, setter(prop))\n setProp(short(prop), bss[prop])\n})\n\nsetProp('content', function Content(arg) {\n this.__style.content = '\"' + arg + '\"'\n return chain(this)\n})\n\nObject.defineProperty(bss, 'class', {\n set: function(value) {\n this.__class = value\n },\n get: function() {\n return this.__class || createClass(this.__style)\n }\n})\n\nfunction $media(value, style) {\n if (value)\n add(this.__style, '@media ' + value, parse(style))\n\n return chain(this)\n}\n\nfunction $import(value) {\n if (value)\n insert('@import ' + value + ';', 0)\n\n return chain(this)\n}\n\nfunction $nest(selector, properties) {\n if (arguments.length === 1)\n Object.keys(selector).forEach(x => addNest(this.__style, x, selector[x]))\n else if (selector)\n addNest(this.__style, selector, properties)\n\n return chain(this)\n}\n\nfunction addNest(style, selector, properties) {\n add(\n style,\n selector.split(selectorSplit).map(x => {\n x = x.trim()\n return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x\n }).join(',&'),\n parse(properties)\n )\n}\n\npseudos.forEach(name =>\n setProp('$' + hyphenToCamelCase(name.replace(/:/g, '')), function Pseudo(value, b) {\n if (value || b)\n add(this.__style, name + (b ? '(' + value + ')' : ''), parse(b || value))\n return chain(this)\n })\n)\n\nfunction setter(prop) {\n return function CssProperty(value) {\n if (!value && value !== 0) {\n delete this.__style[prop]\n } else if (arguments.length > 0) {\n add(this.__style, prop, arguments.length === 1\n ? formatValue(prop, value)\n : Array.prototype.slice.call(arguments).map(v => addPx(prop, v)).join(' ')\n )\n }\n\n return chain(this)\n }\n}\n\nfunction css(selector, style) {\n if (arguments.length === 1)\n Object.keys(selector).forEach(key => addCss(key, selector[key]))\n else\n addCss(selector, style)\n\n return chain(this)\n}\n\nfunction addCss(selector, style) {\n objectToRules(parse(style), selector, '', true).forEach(insert)\n}\n\nfunction helper(name, styling) {\n if (arguments.length === 1)\n return Object.keys(name).forEach(key => helper(key, name[key]))\n\n delete bss[name] // Needed to avoid weird get calls in chrome\n\n if (typeof styling === 'function') {\n helper[name] = styling\n Object.defineProperty(bss, name, {\n configurable: true,\n value: function Helper() {\n const result = styling.apply(null, arguments)\n assign(this.__style, result.__style)\n return chain(this)\n }\n })\n } else {\n helper[name] = parse(styling)\n Object.defineProperty(bss, name, {\n configurable: true,\n get: function() {\n assign(this.__style, parse(styling))\n return chain(this)\n }\n })\n }\n}\n\nbss.helper('$animate', (value, props) =>\n bss.animation(bss.$keyframes(props) + ' ' + value)\n)\n\nfunction short(prop) {\n const acronym = initials(prop)\n , short = popular[acronym] && popular[acronym] !== prop ? prop : acronym\n\n shorts[short] = prop\n return short\n}\n\nconst stringToObject = memoize(string => {\n let last = ''\n , prev\n\n return string.trim().split(/;|\\n/).reduce((acc, line) => {\n line = last + line.trim()\n last = line.charAt(line.length - 1) === ',' ? line : ''\n if (last)\n return acc\n\n if (line.charAt(0) === ',') {\n acc[prev] += line\n return acc\n }\n\n const [key, ...tokens] = line.replace(/[ :]+/, ' ').split(' ')\n\n if (!key)\n return acc\n\n const cssVar = key.charAt(0) === '-' && key.charAt(1) === '-'\n , prop = cssVar\n ? key\n : hyphenToCamelCase(key)\n\n prev = shorts[prop] || prop\n\n if (prop in helper) {\n typeof helper[prop] === 'function'\n ? assign(acc, helper[prop](...tokens).__style)\n : assign(acc, helper[prop])\n } else if (tokens.length > 0) {\n add(acc, prev, tokens.map(t => cssVar ? t : addPx(prev, t)).join(' '))\n }\n\n return acc\n }, {})\n})\n\nlet count = 0\nconst keyframeCache = {}\n\nfunction keyframes(props) {\n const content = Object.keys(props).reduce((acc, key) =>\n acc + key + '{' + stylesToCss(parse(props[key])) + '}'\n , '')\n\n if (content in keyframeCache)\n return keyframeCache[content]\n\n const name = classPrefix + count++\n keyframeCache[content] = name\n insert('@keyframes ' + name + '{' + content + '}')\n\n return name\n}\n\nfunction parse(input, value) {\n if (typeof input === 'string') {\n if (typeof value === 'string' || typeof value === 'number')\n return ({ [input] : value })\n\n return stringToObject(input)\n } else if (Array.isArray(input) && typeof input[0] === 'string') {\n let str = ''\n for (let i = 0; i < input.length; i++)\n str += input[i] + (arguments[i + 1] || '')\n return stringToObject(str)\n }\n\n return input.__style || sanitize(input)\n}\n\nexport default bss\n"],"names":["const","let","document","this","count","arguments"],"mappings":";;;;;;AAAA,gBAAe;IACb,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,WAAW;IACX,UAAU;IACV,aAAa;IACb,eAAe;IACf,OAAO;IACP,OAAO;IACP,aAAa;IACb,eAAe;IACf,WAAW;IACX,eAAe;IACf,YAAY;IACZ,aAAa;IACb,WAAW;IACX,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;;;IAGV,MAAM;IACN,OAAO;IACP,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;;;IAGd,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,iBAAiB;GAClB;;ACvDD,gBAAe;IACb,EAAE,GAAG,YAAY;IACjB,CAAC,IAAI,QAAQ;IACb,EAAE,GAAG,iBAAiB;IACtB,EAAE,GAAG,cAAc;IACnB,EAAE,GAAG,WAAW;IAChB,CAAC,IAAI,OAAO;IACZ,CAAC,IAAI,SAAS;IACd,CAAC,IAAI,OAAO;IACZ,EAAE,GAAG,eAAe;IACpB,EAAE,GAAG,YAAY;IACjB,EAAE,GAAG,UAAU;IACf,CAAC,IAAI,QAAQ;IACb,EAAE,GAAG,gBAAgB;IACrB,CAAC,IAAI,MAAM;IACX,EAAE,GAAG,YAAY;IACjB,EAAE,GAAG,eAAe;IACpB,CAAC,IAAI,QAAQ;IACb,EAAE,GAAG,cAAc;IACnB,EAAE,GAAG,YAAY;IACjB,EAAE,GAAG,aAAa;IAClB,EAAE,GAAG,WAAW;IAChB,CAAC,IAAI,SAAS;IACd,CAAC,IAAI,SAAS;IACd,EAAE,GAAG,eAAe;IACpB,EAAE,GAAG,aAAa;IAClB,EAAE,GAAG,cAAc;IACnB,EAAE,GAAG,YAAY;IACjB,CAAC,IAAI,OAAO;IACZ,CAAC,IAAI,KAAK;IACV,EAAE,GAAG,WAAW;IAChB,EAAE,GAAG,gBAAgB;IACrB,EAAE,GAAG,eAAe;IACpB,CAAC,IAAI,OAAO;GACb;;EClCMA,IAAM,aAAa,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;IACvD,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;GAC1C,CAAC,MAAM,WAAC,GAAE,SAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,WAAQ,CAAC,EAAC;;EAEvD,SAAS,SAAS,CAAC,GAAG,EAAE;IACtB,OAAO,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC;QAC9B,GAAG;QACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;GAC1C;;AAED,EAAOA,IAAM,OAAO,aAAI,EAAE,EAAE,KAAU,EAAE;iCAAP,GAAG;;qBAAO,MAAK,SAC9C,IAAI,IAAI,KAAK;QACT,KAAK,CAAC,IAAI,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI;IAAC;;AAE5B,EAAO,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,IAAI,KAAK;QACf,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,IAAC;;QAE7B,KAAK,CAAC,IAAI,CAAC,GAAG,QAAK;GACtB;;AAED,EAAOA,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAC;AAChD,EAAOA,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAC;;AAExD,EAAOA,IAAM,WAAW,GAAG,sDAAqD;;EAEhFA,IAAM,QAAQ,GAAG,OAAO,WAAC,MAAK;IAC5BA,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAC;;IAExC,IAAI;MACF,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAK;MACtB,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAC;MACjC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE;KACtD,CAAC,OAAO,GAAG,EAAE;MACZ,OAAO,EAAE;KACV;GACF,EAAE;IACD,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;GACb,EAAC;;AAEF,EAAO,SAAS,cAAc,CAAC,MAAM,EAAE;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;GACxD;;AAED,EAAO,SAAS,QAAQ,CAAC,MAAM,EAAE;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,WAAE,GAAG,EAAE,GAAG,EAAE;MAC3CA,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAC;;MAEzB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;UACvC,OAAO,KAAG;;MAEZ,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;UAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,MAAG;;UAE5B,GAAG,CAAC,GAAG,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,IAAC;;MAExE,OAAO,GAAG;KACX,EAAE,EAAE,CAAC;GACP;;AAED,EAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAChC,KAAKA,IAAM,GAAG,IAAI,IAAI,EAAE;MACtB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;UAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAC;KACvB;GACF;;AAED,EAAO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,KAAK,EAAE;MACzF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KAC9B,CAAC;GACH;;AAED,EAAO,SAAS,iBAAiB,CAAC,SAAS,EAAE;IAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;GAC1D;;AAED,EAAO,SAAS,QAAQ,CAAC,SAAS,EAAE;IAClC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;GACxF;;AAED,EAAO,SAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAW,EAAE,MAAM,EAAE;mCAAf,GAAG;;IACtDA,IAAM,IAAI,GAAG,GAAE;;IAEfC,IAAI,KAAK,GAAG,GAAE;;IAEd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,WAAC,MAAK;MAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;UACxB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,IAAC;WAChF,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ;UACtC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,IAAC;;UAEjF,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAC;KAC3B,EAAC;;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;MAC5B,KAAK,CAAC,OAAO;QACX,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1F,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG;QAC9B;KACF;;IAED,OAAO,KAAK;GACb;;AAED,EAAOD,IAAM,aAAa,GAAG,gCAA+B;;AAE5D,EAAO,SAAS,WAAW,CAAC,KAAK,EAAE;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,WAAE,GAAG,EAAE,IAAI,EAAE,SAC3C,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAC;MACvD,EAAE,CAAC;GACN;;EAMD,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;IACjC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;SACpC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;UAC/C,IAAI;UACJ,iBAAiB,CAAC,IAAI,CAAC;OAC1B;QACC,GAAG;QACH,KAAK;QACL,GAAG;GACR;;AAED,EAAO,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;IACtC,OAAO,KAAK,IAAI,iBAAiB;QAC7B,iBAAiB,CAAC,KAAK,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;GACtB;;AAED,EAAO,SAAS,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE;IAChC,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;GACnD;;ECvIDA,IAAME,UAAQ,GAAG,MAAM,CAAC,SAAQ;EAChCF,IAAM,UAAU,GAAGE,UAAQ,IAAIA,UAAQ,CAAC,aAAa,CAAC,OAAO,EAAC;EAC9D,UAAU,IAAIA,UAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAC;EACnDF,IAAM,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,MAAK;;EAE5CC,IAAI,KAAK,GAAG,MAAK;EACjBA,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAC;EACrCA,IAAI,KAAK,GAAG,GAAE;EACdA,IAAI,KAAK,GAAG,EAAC;;AAEb,EAAOD,IAAM,WAAW,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;sBAC3E,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC;;AAElF,EAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC1B,KAAK,GAAG,EAAC;GACV;;AAED,EAAO,SAAS,QAAQ,GAAG;IACzBA,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAC;IAC9B,KAAK,GAAG,GAAE;IACV,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAC;IACjC,KAAK,GAAG,EAAC;IACT,OAAO,OAAO;GACf;;AAED,EAAO,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;IAClC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC;;IAEhB,IAAI,KAAK;QACP,OAAO,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAC;;IAElD,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;QAChD,KAAK;QACL,KAAK,CAAC,QAAQ,CAAC,MAAM;MACxB;GACF;;AAED,EAAO,SAAS,WAAW,CAAC,KAAK,EAAE;IACjCA,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAC;;IAElC,IAAI,IAAI,IAAI,OAAO;QACjB,OAAO,OAAO,CAAC,IAAI,GAAC;;IAEtBA,IAAM,SAAS,GAAG,WAAW,IAAI,EAAE,KAAK,CAAC;UACnC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,EAAC;;IAEnD,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAC;;IAElB,OAAO,CAAC,IAAI,CAAC,GAAG,UAAS;;IAEzB,OAAO,SAAS;GACjB;;ECxDD;AACA;EA8BAD,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC;;EAElC,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE;IACzBA,IAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAC;IACpB,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,EAAC;IAC/C,OAAO,CAAC;GACT;;EAED,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;IAC5B,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;MAC/B,YAAY,EAAE,IAAI;aAClB,KAAK;KACN,EAAC;GACH;;EAED,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;IAC3B,OAAO,EAAE;MACP,YAAY,EAAE,IAAI;MAClB,QAAQ,EAAE,IAAI;MACd,KAAK,EAAE,EAAE;KACV;IACD,OAAO,EAAE;MACP,YAAY,EAAE,IAAI;MAClB,QAAQ,EAAE,IAAI;MACd,KAAK,EAAE,SAAS,OAAO,GAAG;QACxB,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK;OACxB;KACF;GACF,EAAC;;EAEF,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAC;;EAE7B,OAAO,CAAC,YAAY,EAAE,SAAS,EAAC;EAChC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAC;EACzB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAC;EAC3B,OAAO,CAAC,OAAO,EAAE,KAAK,EAAC;EACvB,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAC;EAC7B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAC;EACzB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAC;EACnB,OAAO,CAAC,aAAa,EAAE,WAAW,EAAC;;EAEnC,SAAS,KAAK,CAAC,QAAQ,EAAE;IACvBA,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;MACrC,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,CAAC,OAAO;OACxB;MACD,KAAK,EAAE;QACL,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,WAAW;;;UACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,WAAE,GAAG,EAAE,GAAG,EAAE;YACjD,IAAI,OAAOG,MAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAOA,MAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAChF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAGA,MAAI,CAAC,OAAO,CAAC,GAAG,IAAC;YAChD,OAAO,GAAG;WACX,EAAE,EAAE,CAAC;SACP;OACF;KACF,EAAC;;IAEF,IAAI,QAAQ,KAAK,GAAG;QAClB,GAAG,CAAC,OAAO,GAAG,KAAE;;IAElB,OAAO,WAAW;GACnB;;EAED,aAAa,CAAC,OAAO,WAAC,MAAK;IACzBH,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAC;IACtC,IAAI,MAAM,EAAE;MACVA,IAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAC;MAClE,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;QAC5C,IAAI,UAAU,KAAK,eAAe;YAChC,iBAAiB,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAO;;QAElE,SAAS,CAAC,UAAU,CAAC,GAAG,KAAI;QAC5B,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;QACjC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAC;QAC3C,MAAM;OACP;KACF;;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAC;GAChC,EAAC;;EAEF,OAAO,CAAC,SAAS,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE;IACvC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,IAAG;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC;GACnB,EAAC;;EAEF,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;IAClC,GAAG,EAAE,SAAS,KAAK,EAAE;MACnB,IAAI,CAAC,OAAO,GAAG,MAAK;KACrB;IACD,GAAG,EAAE,WAAW;MACd,OAAO,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;KACjD;GACF,EAAC;;EAEF,SAAS,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE;IAC5B,IAAI,KAAK;QACP,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAC;;IAEpD,OAAO,KAAK,CAAC,IAAI,CAAC;GACnB;;EAED,SAAS,OAAO,CAAC,KAAK,EAAE;IACtB,IAAI,KAAK;QACP,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC,IAAC;;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC;GACnB;;EAED,SAAS,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE;;;IACnC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,WAAC,GAAE,SAAG,OAAO,CAACG,MAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAC,IAAC;SACtE,IAAI,QAAQ;QACf,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,IAAC;;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC;GACnB;;EAED,SAAS,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC5C,GAAG;MACD,KAAK;MACL,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,WAAC,GAAE;QAClC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAE;QACZ,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;OACnE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;MACb,KAAK,CAAC,UAAU,CAAC;MAClB;GACF;;EAED,OAAO,CAAC,OAAO,WAAC,MAAK,SACnB,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;MACjF,IAAI,KAAK,IAAI,CAAC;UACZ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAC;MAC3E,OAAO,KAAK,CAAC,IAAI,CAAC;KACnB,IAAC;IACH;;EAED,SAAS,MAAM,CAAC,IAAI,EAAE;IACpB,OAAO,SAAS,WAAW,CAAC,KAAK,EAAE;MACjC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAC;OAC1B,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;YAC1C,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;YACxB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,WAAC,GAAE,SAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;UAC3E;OACF;;MAED,OAAO,KAAK,CAAC,IAAI,CAAC;KACnB;GACF;;EAED,SAAS,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE;IAC5B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,WAAC,KAAI,SAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAC,IAAC;;QAEhE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAC;;IAEzB,OAAO,KAAK,CAAC,IAAI,CAAC;GACnB;;EAED,SAAS,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE;IAC/B,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC;GAChE;;EAED,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;IAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,WAAC,KAAI,SAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAC,GAAC;;IAEjE,OAAO,GAAG,CAAC,IAAI,EAAC;;IAEhB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;MACjC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAO;MACtB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;QAC/B,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE,SAAS,MAAM,GAAG;UACvBH,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC;UAC7C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC;UACpC,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;OACF,EAAC;KACH,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,EAAC;MAC7B,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;QAC/B,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,WAAW;UACd,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC;UACpC,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;OACF,EAAC;KACH;GACF;;EAED,GAAG,CAAC,MAAM,CAAC,UAAU,YAAG,KAAK,EAAE,KAAK,EAAE,SACpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,KAAK,IAAC;IACnD;;EAED,SAAS,KAAK,CAAC,IAAI,EAAE;IACnBA,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;UACxB,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,QAAO;;IAE5E,MAAM,CAAC,KAAK,CAAC,GAAG,KAAI;IACpB,OAAO,KAAK;GACb;;EAEDA,IAAM,cAAc,GAAG,OAAO,WAAC,QAAO;IACpCC,IAAI,IAAI,GAAG,EAAE;QACT,KAAI;;IAER,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,WAAE,GAAG,EAAE,IAAI,EAAE;MACpD,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAE;MACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,GAAE;MACvD,IAAI,IAAI;UACN,OAAO,KAAG;;MAEZ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,KAAI;QACjB,OAAO,GAAG;OACX;;MAED,OAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG;MAAtD;MAAQ,0BAA+C;;MAE9D,IAAI,CAAC,GAAG;UACN,OAAO,KAAG;;MAEZD,IAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;YACvD,IAAI,GAAG,MAAM;cACX,GAAG;cACH,iBAAiB,CAAC,GAAG,EAAC;;MAE9B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAI;;MAE3B,IAAI,IAAI,IAAI,MAAM,EAAE;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU;YAC9B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAC,CAAC,QAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;OAC9B,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,WAAC,GAAE,SAAG,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;OACvE;;MAED,OAAO,GAAG;KACX,EAAE,EAAE,CAAC;GACP,EAAC;;EAEFC,IAAIG,OAAK,GAAG,EAAC;EACbJ,IAAM,aAAa,GAAG,GAAE;;EAExB,SAAS,SAAS,CAAC,KAAK,EAAE;IACxBA,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,WAAE,GAAG,EAAE,GAAG,EAAE,SACnD,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAG;MACtD,EAAE,EAAC;;IAEL,IAAI,OAAO,IAAI,aAAa;QAC1B,OAAO,aAAa,CAAC,OAAO,GAAC;;IAE/BA,IAAM,IAAI,GAAG,WAAW,GAAGI,OAAK,GAAE;IAClC,aAAa,CAAC,OAAO,CAAC,GAAG,KAAI;IAC7B,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,EAAC;;IAElD,OAAO,IAAI;GACZ;;EAED,SAAS,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE;;;;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;UACxD,gBAAQ,EAAC,KAAC,CAAC,KAAK,CAAC,GAAG,KAAK,UAAG;;MAE9B,OAAO,cAAc,CAAC,KAAK,CAAC;KAC7B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC/DH,IAAI,GAAG,GAAG,GAAE;MACZ,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;UACnC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAII,WAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAC;MAC5C,OAAO,cAAc,CAAC,GAAG,CAAC;KAC3B;;IAED,OAAO,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC;GACxC;;;;;;;;"}
\No newline at end of file