{"version":3,"names":["LivelyMarkdown","__SystemJSRewritingHack","_export","setters","_reactiveJsx","_attributeStringLiteral","attributeStringLiteral","_children","children","_attributes","attributes","_element","element","_addSourceLocation","addSourceLocation","_srcClientMarkdownJs","Markdown","default","_srcComponentsWidgetsLivelyMorphJs","Morph","_srcClientMorphicComponentLoaderJs","components","_srcExternalMarkdownItJs","MarkdownIt","_srcExternalMarkdownItHashtagJs","MarkdownItHashtag","_srcExternalMarkdownItTasksJs","MarkdownItTasks","_srcExternalMarkdownItAttrsJs","MarkdownItAttrs","_srcExternalMarkdownItSourcemapJs","MarkdownItSourcemap","_srcExternalHighlightJs","_srcClientPersistenceJs","persistence","_srcClientStringsJs","Strings","_srcExternalUpndownJs","Upndown","_srcClientGraphicsJs","pt","_srcClientFileindexJs","FileIndex","execute","_recorder_","_src_components_widgets_lively_markdown_js","Object","defineProperty","get","globalThis","systemActivity","set","thisIsVererySecretVariableName","enumerable","configurable","initialize","evaluated","Promise","resolve","resolveEvaluated","windowTitle","registerButtons","parameters","updateView","then","getAttribute","startPresentation","_attrObserver","MutationObserver","mutations","forEach","mutation","type","attributeChangedCallback","attributeName","oldValue","target","observe","attr","oldVal","newVal","method","toUpperCaseFirst","onContenteditableChanged","value","setAttribute","renderMarkdown","root","content","md","html","xhtmlOut","breaks","langPrefix","linkify","typographer","highlight","str","lang","hljs","getLanguage","configure","tabReplace","__","utils","escapeHtml","use","renderer","rules","hashtag_open","tokens","idx","tagName","match","configPresentation","replace","htmlSource","render","original","args","tmpDiv","document","createElement","file","end","column","line","start","innerHTML","replaceImageTagsWithSpecificTags","dir","getDir","lively","fixLinks","path","followPath","beatifyInplaceHashtagNavigation","childNodes","ea","appendChild","querySelectorAll","disabled","addEventListener","evt","checked","removeAttribute","container","query","hidden","fillTemplateStyles","parseAndReplaceLatex","loadUnresolved","initLivelyObject","allScripts","queryAll","allPromises","map","all","getContent","imgTag","noFileEnding","src","figure","name","update","parentElement","insertBefore","remove","importElement","eaLink","searchContainerAnchor","searchContainer","setPosition","shadow","attachShadow","mode","lastEntered","lastLeft","Date","now","lively4url","roots","concat","preferences","result","searchString","href","current","db","files","each","find","eaRoot","url","startsWith","m","sleep","style","overflow","id","opacity","transition","notify","window","open","setContent","textContent","text","loadFile","setDir","setSrc","htmlAsMarkdownSource","markdownConverter","tabindent","bullet","source","convert","keepHtml","getSrc","onPresentationButton","stopPresentation","comp","openIn","convertSiblings","livelyExample","livelyExample3","livelyExample2"],"sources":["lively-markdown.js"],"sourcesContent":["/*MD # Markdown \n\n[architecture](browse://doc/architecture/markdown.md)\n\nMD*/\n\n\nimport Markdown from \"src/client/markdown.js\"\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport components from \"src/client/morphic/component-loader.js\";\nimport MarkdownIt from \"src/external/markdown-it.js\"\n\nimport MarkdownItHashtag from \"src/external/markdown-it-hashtag.js\"\nimport MarkdownItTasks from \"src/external/markdown-it-tasks.js\"\nimport MarkdownItAttrs from \"src/external/markdown-it-attrs.js\"\nimport MarkdownItSourcemap from \"src/external/markdown-it-sourcemap.js\"\n\n// import MarkdownItContainer from \"src/external/markdown-it-container.js\"\n// see https://www.npmjs.com/package/markdown-it-container\n\nimport 'src/external/highlight.js';\nimport persistence from 'src/client/persistence.js';\nimport Strings from 'src/client/strings.js';\nimport Upndown from 'src/external/upndown.js';\n\nimport {pt} from 'src/client/graphics.js';\n\n\nimport FileIndex from 'src/client/fileindex.js'\n\nexport default class LivelyMarkdown extends Morph {\n  async initialize() {\n    \n    // all scripts are evaluated\n    this.evaluated = new Promise(resolve => {\n      this.resolveEvaluated = resolve\n    })\n    this.windowTitle = \"LivelyMarkdown\";\n    this.registerButtons();\n    this.parameters = {}\n    \n    this.updateView().then(() => {\n      if (this.getAttribute(\"mode\") == \"presentation\") {\n        this.startPresentation()\n      }\n    })\n    this._attrObserver = new MutationObserver((mutations) => {\n    mutations.forEach((mutation) => {  \n        if(mutation.type == \"attributes\") {\n          // console.log(\"observation\", mutation.attributeName,mutation.target.getAttribute(mutation.attributeName));\n          this.attributeChangedCallback(\n            mutation.attributeName,\n            mutation.oldValue,\n            mutation.target.getAttribute(mutation.attributeName))\n        }\n      });\n    });\n    this._attrObserver.observe(this, { attributes: true });      \n  }\n  attributeChangedCallback(attr, oldVal, newVal) {\n    var method = \"on\" + Strings.toUpperCaseFirst(attr) + \"Changed\"\n    if (this[method]) this[method](newVal, oldVal)\n  }\n  \n  onContenteditableChanged(value, oldVal) {\n    this.get(\"#content\").setAttribute(\"contenteditable\", value)\n  }\n  \n  async renderMarkdown(root, content) {\n    var md = new MarkdownIt({\n      html:         true,        // Enable HTML tags in source\n      xhtmlOut:     false,        // Use '/' to close single tags (<br />).\n                                  // This is only for full CommonMark compatibility.\n      breaks:       false,        // Convert '\\n' in paragraphs into <br>\n      langPrefix:   'language-',  // CSS language prefix for fenced blocks. Can be\n                                  // useful for external highlighters.\n      linkify:      false,        // Autoconvert URL-like text to links\n    \n      // Enable some language-neutral replacement + quotes beautification\n      typographer:  false,\n    \n      \n      // Highlighter function. Should return escaped HTML,\n      // or '' if the source string is not changed and should be escaped externaly.\n      // If result starts with <pre... internal wrapper is skipped.\n      highlight:  function (str, lang) {\n        if (lang && hljs.getLanguage(lang)) {\n          try {\n            hljs.configure({tabReplace: '  '})\n            return hljs.highlight(lang, str, true).value\n          } catch (__) {}\n        }\n\n        return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n      }\n    });  \n    md.use(MarkdownItHashtag)\n    md.use(MarkdownItTasks)\n    md.use(MarkdownItAttrs)\n    md.use(MarkdownItSourcemap)\n    \n    // md.use(MarkdownItContainer)\n    \n    md.renderer.rules.hashtag_open  = function(tokens, idx) {\n      var tagName = tokens[idx].content \n      if(tagName.match(/^[A-Za-z][A-Za-z0-9]+/))\n        // return `<a href=\"javascript:lively.openSearchWidget('#${tagName}')\" class=\"tag\">`;\n        return `<a href=\"search://#${tagName}\" class=\"tag\">`;\n      else\n        return `<a href=\"javascript:lively.openIssue('${tagName}')\" class=\"issue\">`;\n\n    }\n    if (!content) return;\n    if (content.match(/markdown-config .*presentation=true/)) {\n      var configPresentation = true \n    }\n    \n    content = content\n      .replace(/<lively-script><script>/g,\"<script>\")\n      .replace(/<\\/script><\\/lively-script>/g,\"</script>\")\n      .replace(/<lively-script>/g,\"<script>\")\n      .replace(/<\\/lively-script>/g,\"</script>\")\n\n    // var enhancedMarkdown = lively.html.enhanceMarkdown(content);\n    // var htmlSource = md.render(enhancedMarkdown);\n    var htmlSource = md.render(content);\n    // replace only scripts, that are actual scripts\n    htmlSource = htmlSource.replace(/<script(.*?)>((:?\\n|.)*?)<\\/script>/gm, (original, args, content) =>          \n          args.match(`type=`) ? original : `<lively-script${args}><script>${content}</script></lively-script>`)\n    \n    var tmpDiv = document.createElement(\"div\")\n    tmpDiv.innerHTML = htmlSource // so we still have some control over it\n    \n    await this.replaceImageTagsWithSpecificTags(tmpDiv)\n    \n    var dir = this.getDir()\n    if (dir) {\n      lively.html.fixLinks([tmpDiv], this.getDir(), path => this.followPath(path));\n    }\n    \n    this.beatifyInplaceHashtagNavigation(tmpDiv)\n    \n    root.innerHTML = \"\";\n    tmpDiv.childNodes.forEach(ea => {\n      root.appendChild(ea)\n    })\n    \n    \n    root.querySelectorAll(\"input[type=checkbox]\").forEach(ea => {\n      ea.disabled = false;\n      ea.addEventListener(\"click\", evt => {\n        if ( ea.checked) {\n          ea.setAttribute(\"checked\", \"true\")\n        } else {\n          ea.removeAttribute(\"checked\")\n        }\n      })\n    })\n    \n    \n    if (configPresentation)\n      this.startPresentation()\n\n    // #TODO: fixme\n    //root.querySelectorAll(\"pre code\").forEach( block => {\n    //  highlight.highlightBlock(block);\n    //});\n    \n    var container = lively.query(this, \"lively-container\")\n    root.hidden = true\n    await lively.fillTemplateStyles(root, \"\", container && container.getDir())\n    root.hidden = false\n    \n    // custom lively modifications... second round of parsing content in the DOM\n    Markdown.parseAndReplaceLatex(root)\n    \n    await components.loadUnresolved(root, true, \"lively-markdown.js\", true);    \n    await persistence.initLivelyObject(root)\n    \n    // for using markdown content as tools\n    var allScripts = lively.queryAll(root, \"lively-script\")\n    var allPromises = allScripts.map(ea => ea.evaluated)\n    await Promise.all(allPromises)\n    // lively.notify(\"[markdown] scripts evaluated: \" + allScripts.length + \"promises: \" + allPromises)\n    this.resolveEvaluated()\n  }\n  \n  async updateView() {\n    return this.renderMarkdown(this.get(\"#content\"), await this.getContent())\n  }\n\n  async replaceImageTagsWithSpecificTags(tmpDiv) {\n    \n    for(let imgTag of tmpDiv.querySelectorAll(\"img\")) {\n      var noFileEnding = !imgTag.src.match(/\\.[A-Za-z0-9]+$/) \n      if (noFileEnding || imgTag.src.match(/\\.drawio$/) ) {\n        // we have to guess or look what img could have been meant\n        // (a) lets see if is a drawio figuure\n        // #TODO check if there is actually an pdf\n        var figure = await (<lively-drawio></lively-drawio>)\n        \n        for(let attr of imgTag.attributes) {\n          if (attr.name == \"src\") {\n            // use attributes to retain RAW data\n            let src = imgTag.getAttribute(\"src\")  + (noFileEnding ? \".drawio\" : \"\")\n            // console.log(\"REPLACE DRAWIO: \" + src)\n            figure.setAttribute(\"src\",  src)\n          } else {\n            figure.setAttribute(attr.name, attr.value)\n          }\n        }\n        figure.update() \n        imgTag.parentElement.insertBefore(figure, imgTag)\n        imgTag.remove()\n      } else if (noFileEnding || imgTag.src.match(/\\.html$/) ) {\n        // console.log(\"[lively-markdown] create lively-import\")\n        var importElement = await (<lively-import></lively-import>)\n        for(let attr of imgTag.attributes) {\n          if (attr.name == \"src\") {\n            let src = imgTag.getAttribute(\"src\")\n            importElement.setAttribute(\"src\",  src)\n          } else {\n            importElement.setAttribute(attr.name, attr.value)\n          }\n        }\n        imgTag.parentElement.insertBefore(importElement, imgTag)\n        imgTag.remove()\n      }\n      \n    }\n  }\n  \n  beatifyInplaceHashtagNavigation(tmpDiv) {\n    /* Beatify Inplace Hashtag Navigation #TODO #Refactor #MoveToBetterPlace */\n    tmpDiv.querySelectorAll(\"a.tag\").forEach(eaLink => {\n      // #Example for absolute CSS positioning #Hack: \n      // (1) the relative \"span\" itself is positioned through the dynamic layout without taking space itself\n      // (2) the absolute \"div\" element than has total freedom to posiiton itself relative to (1)\n      var searchContainerAnchor  = <span style=\"position:relative; width: 0; height: 0\"></span>\n      var searchContainer = <div style=\"width:500px; height:200px; overflow: auto; background-color:lightgray; z-index:1000\"></div>\n      lively.setPosition(searchContainer,pt(0,0)) // make absolute...\n      searchContainerAnchor.appendChild(searchContainer)\n      \n      var shadow = searchContainer.attachShadow({mode: 'open'});     \n      var lastEntered\n      var lastLeft\n      eaLink.addEventListener(\"mouseenter\", async () => {\n        lastEntered = Date.now()\n\n        var root = lively4url\n        var roots = [root].concat(lively.preferences.get(\"ExtraSearchRoots\"))\n        var result = \"\"\n        var searchString = eaLink.href.replace(\"search://\",\"\")\n        await Promise.all([FileIndex.current().db.files.each(file => {\n          if (roots.find(eaRoot => file.url.startsWith(eaRoot)) && file.content) {\n            var m = file.content.match(searchString)\n            if (m) {\n               result += `<li><a href=\"${file.url}#${searchString.replace(/#/g,\"\")}\">${file.url.replace(lively4url,\"\")}</a></li>`\n            }\n          }\n        }), lively.sleep(100)])\n\n        if (lastLeft > lastEntered) return\n\n        // document.body.appendChild(searchContainer)\n        eaLink.appendChild(searchContainerAnchor)        \n        \n        // lively.setClientPosition(searchContainer, lively.getClientPosition(eaLink).addPt(pt(0,15)))\n        \n        // lively.setPosition(searchContainer, pt(0,0), \"relative\")\n        searchContainer.style.overflow = \"visible\"\n        \n        // #Continue here!!! getPosition does not work on non absolute objects...\n        // lively.setPosition(searchContainer, lively.getBounds(eaLink).topLeft().addPt(pt(0,15)))\n        searchContainer.innerHTML = \"search\"\n        // searchContainer.isMetaNode = true\n        searchContainer.id = \"lively-search-container\"\n        shadow.innerHTML = \"\"\n        \n        // ok, lets try some eye candy\n        searchContainer.style.opacity = 0\n        searchContainer.style.transition = \"opacity 0.5s ease-in-out\";\n        searchContainer.style.opacity = 0.8\n        \n        shadow.innerHTML = `<ol style=\"font-size:12pt\">${result}<ol>`\n        lively.html.fixLinks(shadow.childNodes, this.getDir(), path => this.followPath(path))\n      })\n      \n      eaLink.addEventListener(\"mouseleave\", async () => {\n        lastLeft = Date.now()\n        await lively.sleep(500)\n        if (lastEntered > lastLeft) return // we came back\n\n        searchContainer.style.transition = \"opacity 0.5s ease-in-out\";\n        searchContainer.style.opacity = 0\n        \n        await lively.sleep(1000)\n        searchContainerAnchor.remove()\n      })\n    })\n  }\n  \n  followPath(path) {\n    lively.notify(\"follow \" + path)\n    window.open(path)\n  }\n\n  async setContent(content) {\n    this.textContent = content\n    return this.updateView()\n  }\n  \n  async getContent() {\n    var src = this.getAttribute(\"src\")\n    if (src) {\n      var text = await lively.files.loadFile(src)\n      return text\n    }\n    return this.textContent\n  }\n  \n  setDir(dir) {\n    this.setAttribute(\"dir\", dir) \n  }\n  \n  getDir() {\n    return this.getAttribute(\"dir\")\n  }\n  \n  async setSrc(src) {\n    this.setAttribute(\"src\", src);\n    return this.updateView()\n  }\n  \n  async htmlAsMarkdownSource() {\n    var htmlSource = this.get(\"#content\").innerHTML\n    var markdownConverter = new Upndown()\n    markdownConverter.tabindent = \"  \"\n    markdownConverter.bullet = \"- \"\n    \n    var source = await markdownConverter.convert(htmlSource, {\n      keepHtml: true,\n    })\n    return source\n  }\n  \n  getSrc() {\n    return this.getAttribute(\"src\")\n  }\n\n  onPresentationButton() {\n    lively.notify(\"presentation: \" + this.getAttribute(\"mode\"))\n    if (this.getAttribute(\"mode\") == \"presentation\") {\n      this.stopPresentation()      \n    } else {\n      this.startPresentation()\n    }\n    \n  }\n  \n  async startPresentation() {\n    this.setAttribute(\"mode\", \"presentation\")\n    if (this.parentElement && this.parentElement.tagName == \"LIVELY-CONTAINER\") {\n      this.parentElement.setAttribute(\"mode\", \"presentation\")\n    }\n    if (this.get(\"lively-presentation\")) {\n      return this.get(\"lively-presentation\")\n    }\n    \n    var comp = document.createElement(\"lively-presentation\")\n    await lively.components.openIn(this.get(\"#content\"), comp)\n    comp.convertSiblings()\n    comp.start();\n\n    // if (this.get(\"#presentationButton\"))\n    //   this.get(\"#presentationButton\").remove()\n\n    return comp\n  }\n\n  async stopPresentation() {\n    this.setAttribute(\"mode\", \"\")\n    if (this.parentElement.tagName == \"LIVELY-CONTAINER\") {\n      this.parentElement.setAttribute(\"mode\", \"\")\n    }\n    this.updateView()\n    \n  }\n\n  \n  livelyExample() {\n    this.setDir(lively4url + \"/docs/\")\n    return this.setContent(`\n# a script\n\n<script>\nlively.notify(\"scripts still run\")\n</script>\n\n\\`\\`\\`javascript {.foo}\nfunction foo() {\n  var a = \"hello\"\n  return a + a\n}\n\\`\\`\\`\n\n## Foo {.blub style=\"background-color:yellow\"}\n\nThis is a #Hashtag and\n\nIt goes on an on!\n\n![](https://lively-kernel.org/lively4/lively4-jens/demos/sample.drawio)\n\n`)\n  }\n  \n  async livelyExample3() {\n    await this.setSrc(lively4url + \"/README.md\")\n    \n  }\n \n  livelyExample2() {\n    this.setDir(lively4url + \"/docs/\")\n    return this.setContent(`\n# Hello World\n\n- list item 1 [a link](\"markdown.md\")\n- list item 2\n\n\n`)\n  }\n\n \n  \n}"],"mappings":";;;sPA+BqBA,cAAc,EAAAC,uBAAA;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,YAAA;MAAAC,uBAAA,GAAAD,YAAA,CAAAE,sBAAA;MAAAC,SAAA,GAAAH,YAAA,CAAAI,QAAA;MAAAC,WAAA,GAAAL,YAAA,CAAAM,UAAA;MAAAC,QAAA,GAAAP,YAAA,CAAAQ,OAAA;MAAAC,kBAAA,GAAAT,YAAA,CAAAU,iBAAA;IAAA,aAAAC,oBAAA;MAxB5BC,QAAQ,GAAAD,oBAAA,CAAAE,OAAA;IAAA,aAAAC,kCAAA;MAERC,KAAK,GAAAD,kCAAA,CAAAD,OAAA;IAAA,aAAAG,kCAAA;MACLC,UAAU,GAAAD,kCAAA,CAAAH,OAAA;IAAA,aAAAK,wBAAA;MACVC,UAAU,GAAAD,wBAAA,CAAAL,OAAA;IAAA,aAAAO,+BAAA;MAEVC,iBAAiB,GAAAD,+BAAA,CAAAP,OAAA;IAAA,aAAAS,6BAAA;MACjBC,eAAe,GAAAD,6BAAA,CAAAT,OAAA;IAAA,aAAAW,6BAAA;MACfC,eAAe,GAAAD,6BAAA,CAAAX,OAAA;IAAA,aAAAa,iCAAA;MACfC,mBAAmB,GAAAD,iCAAA,CAAAb,OAAA;IAAA,aAAAe,uBAAA,gBAAAC,uBAAA;MAMnBC,WAAW,GAAAD,uBAAA,CAAAhB,OAAA;IAAA,aAAAkB,mBAAA;MACXC,OAAO,GAAAD,mBAAA,CAAAlB,OAAA;IAAA,aAAAoB,qBAAA;MACPC,OAAO,GAAAD,qBAAA,CAAApB,OAAA;IAAA,aAAAsB,oBAAA;MAENC,EAAE,GAAAD,oBAAA,CAAFC,EAAE;IAAA,aAAAC,qBAAA;MAGHC,SAAS,GAAAD,qBAAA,CAAAxB,OAAA;IAAA;IAAA0B,OAAA,WAAAA,CAAA;MAAA1C,uBAAA;MAAA2C,UAAA,CAAAC,0CAAA,GAAAD,UAAA,CAAAC,0CAAA;MA7BhB;AACA;AACA;AACA;AACA;MAJAC,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAlC,QAAA;QAAA;QAAAmC,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAOOlC,QAAA,CAAAA,CAAA,CAAAA,8BAAQ;UAAA;QAAA;QAAAqC,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAA/B,KAAA;QAAA;QAAAgC,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAER/B,KAAA,CAAAA,CAAA,CAAAA,8BAAK;UAAA;QAAA;QAAAkC,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAA7B,UAAA;QAAA;QAAA8B,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACL7B,UAAA,CAAAA,CAAA,CAAAA,8BAAU;UAAA;QAAA;QAAAgC,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAA3B,UAAA;QAAA;QAAA4B,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACV3B,UAAA,CAAAA,CAAA,CAAAA,8BAAU;UAAA;QAAA;QAAA8B,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAzB,iBAAA;QAAA;QAAA0B,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAEVzB,iBAAA,CAAAA,CAAA,CAAAA,8BAAiB;UAAA;QAAA;QAAA4B,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAvB,eAAA;QAAA;QAAAwB,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACjBvB,eAAA,CAAAA,CAAA,CAAAA,8BAAe;UAAA;QAAA;QAAA0B,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAArB,eAAA;QAAA;QAAAsB,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACfrB,eAAA,CAAAA,CAAA,CAAAA,8BAAe;UAAA;QAAA;QAAAwB,UAAA;QAAAC,YAAA;MAAA;MAGtB;MACA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAnB,mBAAA;QAAA;QAAAoB,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAHOnB,mBAAA,CAAAA,CAAA,CAAAA,8BAAmB;UAAA;QAAA;QAAAsB,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAhB,WAAA;QAAA;QAAAiB,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAMnBhB,WAAA,CAAAA,CAAA,CAAAA,8BAAW;UAAA;QAAA;QAAAmB,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAd,OAAA;QAAA;QAAAe,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACXd,OAAA,CAAAA,CAAA,CAAAA,8BAAO;UAAA;QAAA;QAAAiB,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAZ,OAAA;QAAA;QAAAa,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UACPZ,OAAA,CAAAA,CAAA,CAAAA,8BAAO;UAAA;QAAA;QAAAe,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAV,EAAA;QAAA;QAAAW,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAENV,EAAA,CAAAA,CAAA,CAAAA,8BAAE;UAAA;QAAA;QAAAa,UAAA;QAAAC,YAAA;MAAA;MAAAR,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAR,SAAA;QAAA;QAAAS,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAGHR,SAAA,CAAAA,CAAA,CAAAA,8BAAS;UAAA;QAAA;QAAAW,UAAA;QAAAC,YAAA;MAAA;MAAApD,OAAA,YAEKF,cAAc,GAApB,MAAMA,cAAc,SAASmB,KAAK,CAAC;QAChD,MAAMoC,UAAUA,CAAA,EAAG;UAAAN,UAAA,CAAAC,cAAA;UAEjB;UACA,IAAI,CAACM,SAAS,GAAG,IAAIC,OAAO,CAACC,OAAO,IAAI;YAAAT,UAAA,CAAAC,cAAA;YACtC,IAAI,CAACS,gBAAgB,GAAGD,OAAO;UACjC,CAAC,CAAC;UACF,IAAI,CAACE,WAAW,GAAG,gBAAgB;UACnC,IAAI,CAACC,eAAe,CAAC,CAAC;UACtB,IAAI,CAACC,UAAU,GAAG,CAAC,CAAC;UAEpB,IAAI,CAACC,UAAU,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;YAAAf,UAAA,CAAAC,cAAA;YAC3B,IAAI,IAAI,CAACe,YAAY,CAAC,MAAM,CAAC,IAAI,cAAc,EAAE;cAAAhB,UAAA,CAAAC,cAAA;cAC/C,IAAI,CAACgB,iBAAiB,CAAC,CAAC;YAC1B;UACF,CAAC,CAAC;UACF,IAAI,CAACC,aAAa,GAAG,IAAIC,gBAAgB,CAAEC,SAAS,IAAK;YAAApB,UAAA,CAAAC,cAAA;YACzDmB,SAAS,CAACC,OAAO,CAAEC,QAAQ,IAAK;cAAAtB,UAAA,CAAAC,cAAA;cAC5B,IAAGqB,QAAQ,CAACC,IAAI,IAAI,YAAY,EAAE;gBAAAvB,UAAA,CAAAC,cAAA;gBAChC;gBACA,IAAI,CAACuB,wBAAwB,CAC3BF,QAAQ,CAACG,aAAa,EACtBH,QAAQ,CAACI,QAAQ,EACjBJ,QAAQ,CAACK,MAAM,CAACX,YAAY,CAACM,QAAQ,CAACG,aAAa,CAAC,CAAC;cACzD;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;UACF,IAAI,CAACP,aAAa,CAACU,OAAO,CAAC,IAAI,EAAE;YAAEnE,UAAU,EAAE;UAAK,CAAC,CAAC;QACxD;QACA+D,wBAAwBA,CAACK,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAE;UAAA/B,UAAA,CAAAC,cAAA;UAC7C,IAAI+B,MAAM,GAAG,IAAI,GAAG7C,OAAO,CAAC8C,gBAAgB,CAACJ,IAAI,CAAC,GAAG,SAAS;UAC9D,IAAI,IAAI,CAACG,MAAM,CAAC,EAAE,IAAI,CAACA,MAAM,CAAC,CAACD,MAAM,EAAED,MAAM,CAAC;QAChD;QAEAI,wBAAwBA,CAACC,KAAK,EAAEL,MAAM,EAAE;UAAA9B,UAAA,CAAAC,cAAA;UACtC,IAAI,CAACF,GAAG,CAAC,UAAU,CAAC,CAACqC,YAAY,CAAC,iBAAiB,EAAED,KAAK,CAAC;QAC7D;QAEA,MAAME,cAAcA,CAACC,IAAI,EAAEC,OAAO,EAAE;UAAAvC,UAAA,CAAAC,cAAA;UAClC,IAAIuC,EAAE,GAAG,IAAIlE,UAAU,CAAC;YACtBmE,IAAI,EAAU,IAAI;YAAS;YAC3BC,QAAQ,EAAM,KAAK;YAAS;YACA;YAC5BC,MAAM,EAAQ,KAAK;YAAS;YAC5BC,UAAU,EAAI,WAAW;YAAG;YACA;YAC5BC,OAAO,EAAO,KAAK;YAAS;;YAE5B;YACAC,WAAW,EAAG,KAAK;YAGnB;YACA;YACA;YACAC,SAAS,EAAG,SAAAA,CAAUC,GAAG,EAAEC,IAAI,EAAE;cAAAjD,UAAA,CAAAC,cAAA;cAC/B,IAAIgD,IAAI,IAAIC,IAAI,CAACC,WAAW,CAACF,IAAI,CAAC,EAAE;gBAAAjD,UAAA,CAAAC,cAAA;gBAClC,IAAI;kBAAAD,UAAA,CAAAC,cAAA;kBACFiD,IAAI,CAACE,SAAS,CAAC;oBAACC,UAAU,EAAE;kBAAI,CAAC,CAAC;kBAClC,OAAOH,IAAI,CAACH,SAAS,CAACE,IAAI,EAAED,GAAG,EAAE,IAAI,CAAC,CAACb,KAAK;gBAC9C,CAAC,CAAC,OAAOmB,EAAE,EAAE;kBAAAtD,UAAA,CAAAC,cAAA;gBAAC;cAChB;cAEA,OAAO,0BAA0B,GAAGuC,EAAE,CAACe,KAAK,CAACC,UAAU,CAACR,GAAG,CAAC,GAAG,eAAe;YAChF;UACF,CAAC,CAAC;UACFR,EAAE,CAACiB,GAAG,CAACjF,iBAAiB,CAAC;UACzBgE,EAAE,CAACiB,GAAG,CAAC/E,eAAe,CAAC;UACvB8D,EAAE,CAACiB,GAAG,CAAC7E,eAAe,CAAC;UACvB4D,EAAE,CAACiB,GAAG,CAAC3E,mBAAmB,CAAC;;UAE3B;;UAEA0D,EAAE,CAACkB,QAAQ,CAACC,KAAK,CAACC,YAAY,GAAI,UAASC,MAAM,EAAEC,GAAG,EAAE;YAAA9D,UAAA,CAAAC,cAAA;YACtD,IAAI8D,OAAO,GAAGF,MAAM,CAACC,GAAG,CAAC,CAACvB,OAAO;YACjC,IAAGwB,OAAO,CAACC,KAAK,CAAC,uBAAuB,CAAC;cACvC;cACA,OAAQ,sBAAqBD,OAAQ,gBAAe,CAAC,KAErD,OAAQ,yCAAwCA,OAAQ,oBAAmB;UAE/E,CAAC;UACD,IAAI,CAACxB,OAAO,EAAE;UACd,IAAIA,OAAO,CAACyB,KAAK,CAAC,qCAAqC,CAAC,EAAE;YAAAhE,UAAA,CAAAC,cAAA;YACxD,IAAIgE,kBAAkB,GAAG,IAAI;UAC/B;UAEA1B,OAAO,GAAGA,OAAO,CACd2B,OAAO,CAAC,0BAA0B,EAAC,UAAU,CAAC,CAC9CA,OAAO,CAAC,8BAA8B,EAAC,WAAW,CAAC,CACnDA,OAAO,CAAC,kBAAkB,EAAC,UAAU,CAAC,CACtCA,OAAO,CAAC,oBAAoB,EAAC,WAAW,CAAC;;UAE5C;UACA;UACA,IAAIC,UAAU,GAAG3B,EAAE,CAAC4B,MAAM,CAAC7B,OAAO,CAAC;UACnC;UACA4B,UAAU,GAAGA,UAAU,CAACD,OAAO,CAAC,uCAAuC,EAAE,CAACG,QAAQ,EAAEC,IAAI,EAAE/B,OAAO,KAC3F+B,IAAI,CAACN,KAAK,CAAE,OAAM,CAAC,GAAGK,QAAQ,GAAI,iBAAgBC,IAAK,YAAW/B,OAAQ,2BAA0B,CAAC;UAE3G,IAAIgC,MAAM,GAAA3G,kBAAA,CAAG4G,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;YAAAC,IAAA;YAAAC,GAAA;cAAAC,MAAA;cAAAC,IAAA;YAAA;YAAAC,KAAA;cAAAF,MAAA;cAAAC,IAAA;YAAA;UAAA;UAC1CN,MAAM,CAACQ,SAAS,GAAGZ,UAAU,EAAC;;UAE9B,MAAM,IAAI,CAACa,gCAAgC,CAACT,MAAM,CAAC;UAEnD,IAAIU,GAAG,GAAG,IAAI,CAACC,MAAM,CAAC,CAAC;UACvB,IAAID,GAAG,EAAE;YAAAjF,UAAA,CAAAC,cAAA;YACPkF,MAAM,CAAC1C,IAAI,CAAC2C,QAAQ,CAAC,CAACb,MAAM,CAAC,EAAE,IAAI,CAACW,MAAM,CAAC,CAAC,EAAEG,IAAI,IAAI,IAAI,CAACC,UAAU,CAACD,IAAI,CAAC,CAAC;UAC9E;UAEA,IAAI,CAACE,+BAA+B,CAAChB,MAAM,CAAC;UAE5CjC,IAAI,CAACyC,SAAS,GAAG,EAAE;UACnBR,MAAM,CAACiB,UAAU,CAACnE,OAAO,CAACoE,EAAE,IAAI;YAAAzF,UAAA,CAAAC,cAAA;YAC9BqC,IAAI,CAACoD,WAAW,CAACD,EAAE,CAAC;UACtB,CAAC,CAAC;UAGFnD,IAAI,CAACqD,gBAAgB,CAAC,sBAAsB,CAAC,CAACtE,OAAO,CAACoE,EAAE,IAAI;YAAAzF,UAAA,CAAAC,cAAA;YAC1DwF,EAAE,CAACG,QAAQ,GAAG,KAAK;YACnBH,EAAE,CAACI,gBAAgB,CAAC,OAAO,EAAEC,GAAG,IAAI;cAAA9F,UAAA,CAAAC,cAAA;cAClC,IAAKwF,EAAE,CAACM,OAAO,EAAE;gBAAA/F,UAAA,CAAAC,cAAA;gBACfwF,EAAE,CAACrD,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;cACpC,CAAC,MAAM;gBAAApC,UAAA,CAAAC,cAAA;gBACLwF,EAAE,CAACO,eAAe,CAAC,SAAS,CAAC;cAC/B;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;UAGF,IAAI/B,kBAAkB,EACpB,IAAI,CAAChD,iBAAiB,CAAC,CAAC;;UAE1B;UACA;UACA;UACA;;UAEA,IAAIgF,SAAS,GAAGd,MAAM,CAACe,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC;UACtD5D,IAAI,CAAC6D,MAAM,GAAG,IAAI;UAClB,MAAMhB,MAAM,CAACiB,kBAAkB,CAAC9D,IAAI,EAAE,EAAE,EAAE2D,SAAS,IAAIA,SAAS,CAACf,MAAM,CAAC,CAAC,CAAC;UAC1E5C,IAAI,CAAC6D,MAAM,GAAG,KAAK;;UAEnB;UACApI,QAAQ,CAACsI,oBAAoB,CAAC/D,IAAI,CAAC;UAEnC,MAAMlE,UAAU,CAACkI,cAAc,CAAChE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC;UACvE,MAAMrD,WAAW,CAACsH,gBAAgB,CAACjE,IAAI,CAAC;;UAExC;UACA,IAAIkE,UAAU,GAAGrB,MAAM,CAACsB,QAAQ,CAACnE,IAAI,EAAE,eAAe,CAAC;UACvD,IAAIoE,WAAW,GAAGF,UAAU,CAACG,GAAG,CAAClB,EAAE,IAAIA,EAAE,CAAClF,SAAS,CAAC;UACpD,MAAMC,OAAO,CAACoG,GAAG,CAACF,WAAW,CAAC;UAC9B;UACA,IAAI,CAAChG,gBAAgB,CAAC,CAAC;QACzB;QAEA,MAAMI,UAAUA,CAAA,EAAG;UAAAd,UAAA,CAAAC,cAAA;UACjB,OAAO,IAAI,CAACoC,cAAc,CAAC,IAAI,CAACtC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC8G,UAAU,CAAC,CAAC,CAAC;QAC3E;QAEA,MAAM7B,gCAAgCA,CAACT,MAAM,EAAE;UAAAvE,UAAA,CAAAC,cAAA;UAE7C,KAAI,IAAI6G,MAAM,IAAIvC,MAAM,CAACoB,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAAA3F,UAAA,CAAAC,cAAA;YAChD,IAAI8G,YAAY,GAAG,CAACD,MAAM,CAACE,GAAG,CAAChD,KAAK,CAAC,iBAAiB,CAAC;YACvD,IAAI+C,YAAY,IAAID,MAAM,CAACE,GAAG,CAAChD,KAAK,CAAC,WAAW,CAAC,EAAG;cAAAhE,UAAA,CAAAC,cAAA;cAClD;cACA;cACA;cACA,IAAIgH,MAAM,GAAG,MAAAvJ,QAAA,kBAAAF,WAAA,IAAAF,SAAA;gBAAAoH,IAAA;gBAAAC,GAAA;kBAAAC,MAAA;kBAAAC,IAAA;gBAAA;gBAAAC,KAAA;kBAAAF,MAAA;kBAAAC,IAAA;gBAAA;cAAA,EAAuC;cAEpD,KAAI,IAAIhD,IAAI,IAAIiF,MAAM,CAACrJ,UAAU,EAAE;gBAAAuC,UAAA,CAAAC,cAAA;gBACjC,IAAI4B,IAAI,CAACqF,IAAI,IAAI,KAAK,EAAE;kBAAAlH,UAAA,CAAAC,cAAA;kBACtB;kBACA,IAAI+G,GAAG,GAAGF,MAAM,CAAC9F,YAAY,CAAC,KAAK,CAAC,IAAK+F,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;kBACvE;kBACAE,MAAM,CAAC7E,YAAY,CAAC,KAAK,EAAG4E,GAAG,CAAC;gBAClC,CAAC,MAAM;kBAAAhH,UAAA,CAAAC,cAAA;kBACLgH,MAAM,CAAC7E,YAAY,CAACP,IAAI,CAACqF,IAAI,EAAErF,IAAI,CAACM,KAAK,CAAC;gBAC5C;cACF;cACA8E,MAAM,CAACE,MAAM,CAAC,CAAC;cACfL,MAAM,CAACM,aAAa,CAACC,YAAY,CAACJ,MAAM,EAAEH,MAAM,CAAC;cACjDA,MAAM,CAACQ,MAAM,CAAC,CAAC;YACjB,CAAC,MAAM,IAAIP,YAAY,IAAID,MAAM,CAACE,GAAG,CAAChD,KAAK,CAAC,SAAS,CAAC,EAAG;cAAAhE,UAAA,CAAAC,cAAA;cACvD;cACA,IAAIsH,aAAa,GAAG,MAAA7J,QAAA,kBAAAF,WAAA,IAAAF,SAAA;gBAAAoH,IAAA;gBAAAC,GAAA;kBAAAC,MAAA;kBAAAC,IAAA;gBAAA;gBAAAC,KAAA;kBAAAF,MAAA;kBAAAC,IAAA;gBAAA;cAAA,EAAuC;cAC3D,KAAI,IAAIhD,IAAI,IAAIiF,MAAM,CAACrJ,UAAU,EAAE;gBAAAuC,UAAA,CAAAC,cAAA;gBACjC,IAAI4B,IAAI,CAACqF,IAAI,IAAI,KAAK,EAAE;kBAAAlH,UAAA,CAAAC,cAAA;kBACtB,IAAI+G,GAAG,GAAGF,MAAM,CAAC9F,YAAY,CAAC,KAAK,CAAC;kBACpCuG,aAAa,CAACnF,YAAY,CAAC,KAAK,EAAG4E,GAAG,CAAC;gBACzC,CAAC,MAAM;kBAAAhH,UAAA,CAAAC,cAAA;kBACLsH,aAAa,CAACnF,YAAY,CAACP,IAAI,CAACqF,IAAI,EAAErF,IAAI,CAACM,KAAK,CAAC;gBACnD;cACF;cACA2E,MAAM,CAACM,aAAa,CAACC,YAAY,CAACE,aAAa,EAAET,MAAM,CAAC;cACxDA,MAAM,CAACQ,MAAM,CAAC,CAAC;YACjB;UAEF;QACF;QAEA/B,+BAA+BA,CAAChB,MAAM,EAAE;UAAAvE,UAAA,CAAAC,cAAA;UACtC;UACAsE,MAAM,CAACoB,gBAAgB,CAAC,OAAO,CAAC,CAACtE,OAAO,CAACmG,MAAM,IAAI;YAAAxH,UAAA,CAAAC,cAAA;YACjD;YACA;YACA;YACA,IAAIwH,qBAAqB,GAAA/J,QAAA,SAAAF,WAAA,CAAAJ,uBAAA,UAAgB,wCAAwC,IAAAE,SAAA;cAAAoH,IAAA;cAAAC,GAAA;gBAAAC,MAAA;gBAAAC,IAAA;cAAA;cAAAC,KAAA;gBAAAF,MAAA;gBAAAC,IAAA;cAAA;YAAA,EAAQ;YACzF,IAAI6C,eAAe,GAAAhK,QAAA,QAAAF,WAAA,CAAAJ,uBAAA,UAAc,qFAAqF,IAAAE,SAAA;cAAAoH,IAAA;cAAAC,GAAA;gBAAAC,MAAA;gBAAAC,IAAA;cAAA;cAAAC,KAAA;gBAAAF,MAAA;gBAAAC,IAAA;cAAA;YAAA,EAAO;YAC7HM,MAAM,CAACwC,WAAW,CAACD,eAAe,EAACnI,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC;YAC5CkI,qBAAqB,CAAC/B,WAAW,CAACgC,eAAe,CAAC;YAElD,IAAIE,MAAM,GAAGF,eAAe,CAACG,YAAY,CAAC;cAACC,IAAI,EAAE;YAAM,CAAC,CAAC;YACzD,IAAIC,WAAW;YACf,IAAIC,QAAQ;YACZR,MAAM,CAAC3B,gBAAgB,CAAC,YAAY,EAAE,YAAY;cAAA7F,UAAA,CAAAC,cAAA;cAChD8H,WAAW,GAAGE,IAAI,CAACC,GAAG,CAAC,CAAC;cAExB,IAAI5F,IAAI,GAAG6F,UAAU;cACrB,IAAIC,KAAK,GAAG,CAAC9F,IAAI,CAAC,CAAC+F,MAAM,CAAClD,MAAM,CAACmD,WAAW,CAACvI,GAAG,CAAC,kBAAkB,CAAC,CAAC;cACrE,IAAIwI,MAAM,GAAG,EAAE;cACf,IAAIC,YAAY,GAAGhB,MAAM,CAACiB,IAAI,CAACvE,OAAO,CAAC,WAAW,EAAC,EAAE,CAAC;cACtD,MAAM1D,OAAO,CAACoG,GAAG,CAAC,CAACnH,SAAS,CAACiJ,OAAO,CAAC,CAAC,CAACC,EAAE,CAACC,KAAK,CAACC,IAAI,CAACnE,IAAI,IAAI;gBAAA1E,UAAA,CAAAC,cAAA;gBAC3D,IAAImI,KAAK,CAACU,IAAI,CAACC,MAAM,IAAIrE,IAAI,CAACsE,GAAG,CAACC,UAAU,CAACF,MAAM,CAAC,CAAC,IAAIrE,IAAI,CAACnC,OAAO,EAAE;kBAAAvC,UAAA,CAAAC,cAAA;kBACrE,IAAIiJ,CAAC,GAAGxE,IAAI,CAACnC,OAAO,CAACyB,KAAK,CAACwE,YAAY,CAAC;kBACxC,IAAIU,CAAC,EAAE;oBAAAlJ,UAAA,CAAAC,cAAA;oBACJsI,MAAM,IAAK,gBAAe7D,IAAI,CAACsE,GAAI,IAAGR,YAAY,CAACtE,OAAO,CAAC,IAAI,EAAC,EAAE,CAAE,KAAIQ,IAAI,CAACsE,GAAG,CAAC9E,OAAO,CAACiE,UAAU,EAAC,EAAE,CAAE,WAAU;kBACrH;gBACF;cACF,CAAC,CAAC,EAAEhD,MAAM,CAACgE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;cAEvB,IAAInB,QAAQ,GAAGD,WAAW,EAAE;;cAE5B;cACAP,MAAM,CAAC9B,WAAW,CAAC+B,qBAAqB,CAAC;;cAEzC;;cAEA;cACAC,eAAe,CAAC0B,KAAK,CAACC,QAAQ,GAAG,SAAS;;cAE1C;cACA;cACA3B,eAAe,CAAC3C,SAAS,GAAG,QAAQ;cACpC;cACA2C,eAAe,CAAC4B,EAAE,GAAG,yBAAyB;cAC9C1B,MAAM,CAAC7C,SAAS,GAAG,EAAE;;cAErB;cACA2C,eAAe,CAAC0B,KAAK,CAACG,OAAO,GAAG,CAAC;cACjC7B,eAAe,CAAC0B,KAAK,CAACI,UAAU,GAAG,0BAA0B;cAC7D9B,eAAe,CAAC0B,KAAK,CAACG,OAAO,GAAG,GAAG;cAEnC3B,MAAM,CAAC7C,SAAS,GAAI,8BAA6BwD,MAAO,MAAK;cAC7DpD,MAAM,CAAC1C,IAAI,CAAC2C,QAAQ,CAACwC,MAAM,CAACpC,UAAU,EAAE,IAAI,CAACN,MAAM,CAAC,CAAC,EAAEG,IAAI,IAAI,IAAI,CAACC,UAAU,CAACD,IAAI,CAAC,CAAC;YACvF,CAAC,CAAC;YAEFmC,MAAM,CAAC3B,gBAAgB,CAAC,YAAY,EAAE,YAAY;cAAA7F,UAAA,CAAAC,cAAA;cAChD+H,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;cACrB,MAAM/C,MAAM,CAACgE,KAAK,CAAC,GAAG,CAAC;cACvB,IAAIpB,WAAW,GAAGC,QAAQ,EAAE,OAAM,CAAC;;cAEnCN,eAAe,CAAC0B,KAAK,CAACI,UAAU,GAAG,0BAA0B;cAC7D9B,eAAe,CAAC0B,KAAK,CAACG,OAAO,GAAG,CAAC;cAEjC,MAAMpE,MAAM,CAACgE,KAAK,CAAC,IAAI,CAAC;cACxB1B,qBAAqB,CAACH,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ;QAEAhC,UAAUA,CAACD,IAAI,EAAE;UAAArF,UAAA,CAAAC,cAAA;UACfkF,MAAM,CAACsE,MAAM,CAAC,SAAS,GAAGpE,IAAI,CAAC;UAC/BqE,MAAM,CAACC,IAAI,CAACtE,IAAI,CAAC;QACnB;QAEA,MAAMuE,UAAUA,CAACrH,OAAO,EAAE;UAAAvC,UAAA,CAAAC,cAAA;UACxB,IAAI,CAAC4J,WAAW,GAAGtH,OAAO;UAC1B,OAAO,IAAI,CAACzB,UAAU,CAAC,CAAC;QAC1B;QAEA,MAAM+F,UAAUA,CAAA,EAAG;UAAA7G,UAAA,CAAAC,cAAA;UACjB,IAAI+G,GAAG,GAAG,IAAI,CAAChG,YAAY,CAAC,KAAK,CAAC;UAClC,IAAIgG,GAAG,EAAE;YAAAhH,UAAA,CAAAC,cAAA;YACP,IAAI6J,IAAI,GAAG,MAAM3E,MAAM,CAACyD,KAAK,CAACmB,QAAQ,CAAC/C,GAAG,CAAC;YAC3C,OAAO8C,IAAI;UACb;UACA,OAAO,IAAI,CAACD,WAAW;QACzB;QAEAG,MAAMA,CAAC/E,GAAG,EAAE;UAAAjF,UAAA,CAAAC,cAAA;UACV,IAAI,CAACmC,YAAY,CAAC,KAAK,EAAE6C,GAAG,CAAC;QAC/B;QAEAC,MAAMA,CAAA,EAAG;UAAAlF,UAAA,CAAAC,cAAA;UACP,OAAO,IAAI,CAACe,YAAY,CAAC,KAAK,CAAC;QACjC;QAEA,MAAMiJ,MAAMA,CAACjD,GAAG,EAAE;UAAAhH,UAAA,CAAAC,cAAA;UAChB,IAAI,CAACmC,YAAY,CAAC,KAAK,EAAE4E,GAAG,CAAC;UAC7B,OAAO,IAAI,CAAClG,UAAU,CAAC,CAAC;QAC1B;QAEA,MAAMoJ,oBAAoBA,CAAA,EAAG;UAAAlK,UAAA,CAAAC,cAAA;UAC3B,IAAIkE,UAAU,GAAG,IAAI,CAACpE,GAAG,CAAC,UAAU,CAAC,CAACgF,SAAS;UAC/C,IAAIoF,iBAAiB,GAAG,IAAI9K,OAAO,CAAC,CAAC;UACrC8K,iBAAiB,CAACC,SAAS,GAAG,IAAI;UAClCD,iBAAiB,CAACE,MAAM,GAAG,IAAI;UAE/B,IAAIC,MAAM,GAAG,MAAMH,iBAAiB,CAACI,OAAO,CAACpG,UAAU,EAAE;YACvDqG,QAAQ,EAAE;UACZ,CAAC,CAAC;UACF,OAAOF,MAAM;QACf;QAEAG,MAAMA,CAAA,EAAG;UAAAzK,UAAA,CAAAC,cAAA;UACP,OAAO,IAAI,CAACe,YAAY,CAAC,KAAK,CAAC;QACjC;QAEA0J,oBAAoBA,CAAA,EAAG;UAAA1K,UAAA,CAAAC,cAAA;UACrBkF,MAAM,CAACsE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAACzI,YAAY,CAAC,MAAM,CAAC,CAAC;UAC3D,IAAI,IAAI,CAACA,YAAY,CAAC,MAAM,CAAC,IAAI,cAAc,EAAE;YAAAhB,UAAA,CAAAC,cAAA;YAC/C,IAAI,CAAC0K,gBAAgB,CAAC,CAAC;UACzB,CAAC,MAAM;YAAA3K,UAAA,CAAAC,cAAA;YACL,IAAI,CAACgB,iBAAiB,CAAC,CAAC;UAC1B;QAEF;QAEA,MAAMA,iBAAiBA,CAAA,EAAG;UAAAjB,UAAA,CAAAC,cAAA;UACxB,IAAI,CAACmC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;UACzC,IAAI,IAAI,CAACgF,aAAa,IAAI,IAAI,CAACA,aAAa,CAACrD,OAAO,IAAI,kBAAkB,EAAE;YAAA/D,UAAA,CAAAC,cAAA;YAC1E,IAAI,CAACmH,aAAa,CAAChF,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;UACzD;UACA,IAAI,IAAI,CAACrC,GAAG,CAAC,qBAAqB,CAAC,EAAE;YAAAC,UAAA,CAAAC,cAAA;YACnC,OAAO,IAAI,CAACF,GAAG,CAAC,qBAAqB,CAAC;UACxC;UAEA,IAAI6K,IAAI,GAAAhN,kBAAA,CAAG4G,QAAQ,CAACC,aAAa,CAAC,qBAAqB,CAAC;YAAAC,IAAA;YAAAC,GAAA;cAAAC,MAAA;cAAAC,IAAA;YAAA;YAAAC,KAAA;cAAAF,MAAA;cAAAC,IAAA;YAAA;UAAA;UACxD,MAAMM,MAAM,CAAC/G,UAAU,CAACyM,MAAM,CAAC,IAAI,CAAC9K,GAAG,CAAC,UAAU,CAAC,EAAE6K,IAAI,CAAC;UAC1DA,IAAI,CAACE,eAAe,CAAC,CAAC;UACtBF,IAAI,CAAC9F,KAAK,CAAC,CAAC;;UAEZ;UACA;;UAEA,OAAO8F,IAAI;QACb;QAEA,MAAMD,gBAAgBA,CAAA,EAAG;UAAA3K,UAAA,CAAAC,cAAA;UACvB,IAAI,CAACmC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;UAC7B,IAAI,IAAI,CAACgF,aAAa,CAACrD,OAAO,IAAI,kBAAkB,EAAE;YAAA/D,UAAA,CAAAC,cAAA;YACpD,IAAI,CAACmH,aAAa,CAAChF,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;UAC7C;UACA,IAAI,CAACtB,UAAU,CAAC,CAAC;QAEnB;QAGAiK,aAAaA,CAAA,EAAG;UAAA/K,UAAA,CAAAC,cAAA;UACd,IAAI,CAAC+J,MAAM,CAAC7B,UAAU,GAAG,QAAQ,CAAC;UAClC,OAAO,IAAI,CAACyB,UAAU,CAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;QACA;QAEA,MAAMoB,cAAcA,CAAA,EAAG;UAAAhL,UAAA,CAAAC,cAAA;UACrB,MAAM,IAAI,CAACgK,MAAM,CAAC9B,UAAU,GAAG,YAAY,CAAC;QAE9C;QAEA8C,cAAcA,CAAA,EAAG;UAAAjL,UAAA,CAAAC,cAAA;UACf,IAAI,CAAC+J,MAAM,CAAC7B,UAAU,GAAG,QAAQ,CAAC;UAClC,OAAO,IAAI,CAACyB,UAAU,CAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;QACA;MAIF,CAAC;MAAA/J,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,0CAAA;QAAAG,IAAA;UAAAC,UAAA,CAAAC,cAAA;UAAA,OAAAlD,cAAA;QAAA;QAAAmD,IAAAC,8BAAA;UAAAH,UAAA,CAAAC,cAAA;UAAAhD,OAAA,YAtZoBF,cAAA,CAAAA,CAAA,CAAAA,8BAAc;UAAA;QAAA;QAAAqD,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;AAAA"}