{ "version": 3, "sources": ["../../dagre-d3-es/src/dagre-js/util.js", "../../dagre-d3-es/src/dagre-js/label/add-html-label.js", "../../mermaid/dist/styles-483fbfea.js"], "sourcesContent": ["import * as _ from 'lodash-es';\n\n// Public utility functions\nexport { isSubgraph, edgeToId, applyStyle, applyClass, applyTransition };\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + ':' + escapeId(e.w) + ':' + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, '\\\\:') : '';\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom.attr('class', classFn).attr('class', otherClasses + ' ' + dom.attr('class'));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n", "import * as util from '../util.js';\n\nexport { addHtmlLabel };\n\nfunction addHtmlLabel(root, node) {\n var fo = root.append('foreignObject').attr('width', '100000');\n\n var div = fo.append('xhtml:div');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n var label = node.label;\n switch (typeof label) {\n case 'function':\n div.insert(label);\n break;\n case 'object':\n // Currently we assume this is a DOM object.\n div.insert(function () {\n return label;\n });\n break;\n default:\n div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n\n var client = div.node().getBoundingClientRect();\n fo.attr('width', client.width).attr('height', client.height);\n\n return fo;\n}\n", "import * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { curveLinear, select, selectAll } from \"d3\";\nimport { k as getStylesFromArray, l as log, m as evaluate, c as getConfig, e as common, r as renderKatex, n as interpolateToCurve, u as utils, o as setupGraphViewbox } from \"./mermaid-6dc72991.js\";\nimport { r as render } from \"./index-01f381cb.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport * as khroma from \"khroma\";\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = async function(vert, g, svgId, root, doc, diagObj) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(vert);\n for (const id of keys) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n log.info(\"vertex\", vertex, vertex.labelType);\n if (vertex.labelType === \"markdown\") {\n log.info(\"vertex\", vertex, vertex.labelType);\n } else {\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n }\n let radius = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const labelText = await renderKatex(vertexText, getConfig());\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText,\n labelType: vertex.labelType,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n log.info(\"setNode\", {\n labelStyle: styles.labelStyle,\n labelType: vertex.labelType,\n shape: _shape,\n labelText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n domId: diagObj.db.lookUpDomId(vertex.id),\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n dir: vertex.dir,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n });\n }\n};\nconst addEdges = async function(edges, g, diagObj) {\n log.info(\"abc78 edges = \", edges);\n let cnt = 0;\n let linkIdCnt = {};\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n for (const edge of edges) {\n cnt++;\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n case \"invisible\":\n edgeData.thickness = \"invisible\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 0;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = await renderKatex(edge.text.replace(common.lineBreakRegex, \"\\n\"), getConfig());\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n g.setEdge(edge.start, edge.end, edgeData, cnt);\n }\n};\nconst getClasses = function(text, diagObj) {\n return diagObj.db.getClasses();\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 0,\n marginy: 0\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n log.info(\"Subgraph - \", subG);\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const vert = diagObj.db.getVertices();\n const edges = diagObj.db.getEdges();\n log.info(\"Edges\", edges);\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.info(\"Setting up subgraphs\", subG.nodes[j], subG.id);\n g.setParent(subG.nodes[j], subG.id);\n }\n }\n await addVertices(vert, g, id, root, doc, diagObj);\n await addEdges(edges, g);\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"point\", \"circle\", \"cross\"], \"flowchart\", id);\n utils.insertTitle(svg, \"flowchartTitleText\", conf2.titleTopMargin, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n diagObj.db.indexNodes(\"subGraph\" + i);\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = select(\"#\" + id + ' [id=\"' + key + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRendererV2 = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst fade = (color, opacity) => {\n const channel = khroma.channel;\n const r = channel(color, \"r\");\n const g = channel(color, \"g\");\n const b = channel(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .katex path {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n`;\nconst flowStyles = getStyles;\nexport {\n flowStyles as a,\n flowRendererV2 as f\n};\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,SAAS,WAAW,GAAG,GAAG;AACxB,SAAO,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;AACzB;AAEA,SAAS,SAAS,GAAG;AACnB,SAAO,SAAS,EAAE,CAAC,IAAI,MAAM,SAAS,EAAE,CAAC,IAAI,MAAM,SAAS,EAAE,IAAI;AACpE;AAEA,IAAI,WAAW;AACf,SAAS,SAAS,KAAK;AACrB,SAAO,MAAM,OAAO,GAAG,EAAE,QAAQ,UAAU,KAAK,IAAI;AACtD;AAEA,SAAS,WAAW,KAAK,SAAS;AAChC,MAAI,SAAS;AACX,QAAI,KAAK,SAAS,OAAO;AAAA,EAC3B;AACF;AAEA,SAAS,WAAW,KAAK,SAAS,cAAc;AAC9C,MAAI,SAAS;AACX,QAAI,KAAK,SAAS,OAAO,EAAE,KAAK,SAAS,eAAe,MAAM,IAAI,KAAK,OAAO,CAAC;AAAA,EACjF;AACF;AAEA,SAAS,gBAAgB,WAAW,GAAG;AACrC,MAAI,QAAQ,EAAE,MAAM;AAEpB,MAAM,sBAAc,KAAK,GAAG;AAC1B,QAAI,aAAa,MAAM;AACvB,QAAM,mBAAW,UAAU,GAAG;AAC5B,aAAO,WAAW,SAAS;AAAA,IAC7B;AAAA,EACF;AAEA,SAAO;AACT;;;ACzCA,SAAS,aAAa,MAAM,MAAM;AAChC,MAAI,KAAK,KAAK,OAAO,eAAe,EAAE,KAAK,SAAS,QAAQ;AAE5D,MAAI,MAAM,GAAG,OAAO,WAAW;AAC/B,MAAI,KAAK,SAAS,8BAA8B;AAEhD,MAAI,QAAQ,KAAK;AACjB,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AACH,UAAI,OAAO,KAAK;AAChB;AAAA,IACF,KAAK;AAEH,UAAI,OAAO,WAAY;AACrB,eAAO;AAAA,MACT,CAAC;AACD;AAAA,IACF;AACE,UAAI,KAAK,KAAK;AAAA,EAClB;AAEA,EAAK,WAAW,KAAK,KAAK,UAAU;AACpC,MAAI,MAAM,WAAW,cAAc;AAEnC,MAAI,MAAM,eAAe,QAAQ;AAEjC,MAAI,SAAS,IAAI,KAAK,EAAE,sBAAsB;AAC9C,KAAG,KAAK,SAAS,OAAO,KAAK,EAAE,KAAK,UAAU,OAAO,MAAM;AAE3D,SAAO;AACT;;;AC5BA,IAAM,OAAO,CAAC;AACd,IAAM,UAAU,SAAS,KAAK;AAC5B,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,aAAW,OAAO,MAAM;AACtB,SAAK,GAAG,IAAI,IAAI,GAAG;AAAA,EACrB;AACF;AACA,IAAM,cAAc,eAAe,MAAM,GAAG,OAAO,MAAM,KAAK,SAAS;AACrE,QAAM,MAAM,KAAK,OAAO,QAAQ,KAAK,IAAI;AACzC,QAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,aAAW,MAAM,MAAM;AACrB,UAAM,SAAS,KAAK,EAAE;AACtB,QAAI,WAAW;AACf,QAAI,OAAO,QAAQ,SAAS,GAAG;AAC7B,iBAAW,OAAO,QAAQ,KAAK,GAAG;AAAA,IACpC;AACA,eAAW,WAAW;AACtB,UAAM,SAAS,mBAAmB,OAAO,MAAM;AAC/C,QAAI,aAAa,OAAO,SAAS,SAAS,OAAO,OAAO,OAAO;AAC/D,QAAI;AACJ,UAAI,KAAK,UAAU,QAAQ,OAAO,SAAS;AAC3C,QAAI,OAAO,cAAc,YAAY;AACnC,YAAI,KAAK,UAAU,QAAQ,OAAO,SAAS;AAAA,IAC7C,OAAO;AACL,UAAI,SAAS,UAAU,EAAE,UAAU,UAAU,GAAG;AAC9C,cAAM,OAAO;AAAA,UACX,OAAO;AAAA,QACT;AACA,qBAAa,aAAa,KAAK,IAAI,EAAE,KAAK;AAC1C,mBAAW,WAAW,YAAY,UAAU;AAAA,MAC9C,OAAO;AACL,cAAM,WAAW,IAAI,gBAAgB,8BAA8B,MAAM;AACzE,iBAAS,aAAa,SAAS,OAAO,WAAW,QAAQ,UAAU,OAAO,CAAC;AAC3E,cAAM,OAAO,WAAW,MAAM,SAAO,cAAc;AACnD,mBAAW,OAAO,MAAM;AACtB,gBAAM,QAAQ,IAAI,gBAAgB,8BAA8B,OAAO;AACvE,gBAAM,eAAe,wCAAwC,aAAa,UAAU;AACpF,gBAAM,aAAa,MAAM,KAAK;AAC9B,gBAAM,aAAa,KAAK,GAAG;AAC3B,gBAAM,cAAc;AACpB,mBAAS,YAAY,KAAK;AAAA,QAC5B;AACA,qBAAa;AAAA,MACf;AAAA,IACF;AACA,QAAI,SAAS;AACb,QAAI,SAAS;AACb,YAAQ,OAAO,MAAM;AAAA,MACnB,KAAK;AACH,iBAAS;AACT,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF,KAAK;AACH,iBAAS;AACT;AAAA,MACF;AACE,iBAAS;AAAA,IACb;AACA,UAAM,YAAY,MAAM,YAAY,YAAY,UAAU,CAAC;AAC3D,MAAE,QAAQ,OAAO,IAAI;AAAA,MACnB,YAAY,OAAO;AAAA,MACnB,OAAO;AAAA,MACP;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,MACd,IAAI,OAAO;AAAA,MACX,MAAM,OAAO;AAAA,MACb,YAAY,OAAO;AAAA,MACnB,SAAS,QAAQ,GAAG,WAAW,OAAO,EAAE,KAAK;AAAA,MAC7C,OAAO,QAAQ,GAAG,YAAY,OAAO,EAAE;AAAA,MACvC,cAAc,OAAO;AAAA,MACrB,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MACvC,KAAK,OAAO;AAAA,MACZ,MAAM,OAAO;AAAA,MACb,OAAO,OAAO;AAAA,MACd,SAAS,UAAU,EAAE,UAAU;AAAA,IACjC,CAAC;AACD,UAAI,KAAK,WAAW;AAAA,MAClB,YAAY,OAAO;AAAA,MACnB,WAAW,OAAO;AAAA,MAClB,OAAO;AAAA,MACP;AAAA,MACA,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,MACd,IAAI,OAAO;AAAA,MACX,OAAO,QAAQ,GAAG,YAAY,OAAO,EAAE;AAAA,MACvC,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MACvC,MAAM,OAAO;AAAA,MACb,KAAK,OAAO;AAAA,MACZ,OAAO,OAAO;AAAA,MACd,SAAS,UAAU,EAAE,UAAU;AAAA,IACjC,CAAC;AAAA,EACH;AACF;AACA,IAAM,WAAW,eAAe,OAAO,GAAG,SAAS;AACjD,QAAI,KAAK,kBAAkB,KAAK;AAChC,MAAI,MAAM;AACV,MAAI,YAAY,CAAC;AACjB,MAAI;AACJ,MAAI;AACJ,MAAI,MAAM,iBAAiB,QAAQ;AACjC,UAAM,gBAAgB,mBAAmB,MAAM,YAAY;AAC3D,mBAAe,cAAc;AAC7B,wBAAoB,cAAc;AAAA,EACpC;AACA,aAAW,QAAQ,OAAO;AACxB;AACA,UAAM,aAAa,OAAO,KAAK,QAAQ,MAAM,KAAK;AAClD,QAAI,UAAU,UAAU,MAAM,QAAQ;AACpC,gBAAU,UAAU,IAAI;AACxB,YAAI,KAAK,mBAAmB,YAAY,UAAU,UAAU,CAAC;AAAA,IAC/D,OAAO;AACL,gBAAU,UAAU;AACpB,YAAI,KAAK,mBAAmB,YAAY,UAAU,UAAU,CAAC;AAAA,IAC/D;AACA,QAAI,SAAS,aAAa,MAAM,UAAU,UAAU;AACpD,UAAI,KAAK,mCAAmC,YAAY,QAAQ,UAAU,UAAU,CAAC;AACrF,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,cAAc,QAAQ,KAAK;AACjC,UAAM,WAAW,EAAE,OAAO,IAAI,YAAY,GAAG;AAC7C,aAAS,SAAS,KAAK,UAAU;AACjC,QAAI,KAAK,SAAS,cAAc;AAC9B,eAAS,YAAY;AAAA,IACvB,OAAO;AACL,eAAS,YAAY;AAAA,IACvB;AACA,aAAS,iBAAiB;AAC1B,aAAS,eAAe;AACxB,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,MACF,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,MACF,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,IACJ;AACA,QAAI,QAAQ;AACZ,QAAI,aAAa;AACjB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AACH,gBAAQ;AACR,YAAI,iBAAiB,QAAQ;AAC3B,kBAAQ;AAAA,QACV;AACA,YAAI,sBAAsB,QAAQ;AAChC,uBAAa;AAAA,QACf;AACA,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB;AAAA,MACF,KAAK;AACH,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB,iBAAS,QAAQ;AACjB;AAAA,MACF,KAAK;AACH,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB,iBAAS,QAAQ;AACjB;AAAA,MACF,KAAK;AACH,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB,iBAAS,QAAQ;AACjB;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,QAAQ;AACzB,YAAM,SAAS,mBAAmB,KAAK,KAAK;AAC5C,cAAQ,OAAO;AACf,mBAAa,OAAO;AAAA,IACtB;AACA,aAAS,QAAQ,SAAS,SAAS;AACnC,aAAS,aAAa,SAAS,cAAc;AAC7C,QAAI,KAAK,gBAAgB,QAAQ;AAC/B,eAAS,QAAQ,mBAAmB,KAAK,aAAa,cAAW;AAAA,IACnE,WAAW,MAAM,uBAAuB,QAAQ;AAC9C,eAAS,QAAQ,mBAAmB,MAAM,oBAAoB,cAAW;AAAA,IAC3E,OAAO;AACL,eAAS,QAAQ,mBAAmB,KAAK,OAAO,cAAW;AAAA,IAC7D;AACA,QAAI,KAAK,SAAS,QAAQ;AACxB,UAAI,KAAK,UAAU,QAAQ;AACzB,iBAAS,iBAAiB;AAAA,MAC5B;AAAA,IACF,OAAO;AACL,eAAS,iBAAiB;AAC1B,eAAS,WAAW;AAAA,IACtB;AACA,aAAS,YAAY,KAAK;AAC1B,aAAS,QAAQ,MAAM,YAAY,KAAK,KAAK,QAAQ,SAAO,gBAAgB,IAAI,GAAG,UAAU,CAAC;AAC9F,QAAI,KAAK,UAAU,QAAQ;AACzB,eAAS,QAAQ,SAAS,SAAS;AAAA,IACrC;AACA,aAAS,aAAa,SAAS,WAAW,QAAQ,UAAU,OAAO;AACnE,aAAS,KAAK;AACd,aAAS,UAAU,oBAAoB,gBAAgB,MAAM;AAC7D,MAAE,QAAQ,KAAK,OAAO,KAAK,KAAK,UAAU,GAAG;AAAA,EAC/C;AACF;AACA,IAAM,aAAa,SAAS,MAAM,SAAS;AACzC,SAAO,QAAQ,GAAG,WAAW;AAC/B;AACA,IAAM,OAAO,eAAe,MAAM,IAAI,UAAU,SAAS;AACvD,QAAI,KAAK,mBAAmB;AAC5B,MAAI,MAAM,QAAQ,GAAG,aAAa;AAClC,MAAI,QAAQ,QAAQ;AAClB,UAAM;AAAA,EACR;AACA,QAAM,EAAE,eAAe,WAAW,MAAM,IAAI,UAAU;AACtD,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,cAAc,MAAM,eAAe;AACzC,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,MAAM,kBAAkB,YAAY,eAAe,MAAM,EAAE,CAAC,EAAE,kBAAkB;AACtF,QAAM,IAAI,IAAa,MAAM;AAAA,IAC3B,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,EAAE,SAAS;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC,EAAE,oBAAoB,WAAW;AAChC,WAAO,CAAC;AAAA,EACV,CAAC;AACD,MAAI;AACJ,QAAM,YAAY,QAAQ,GAAG,aAAa;AAC1C,QAAI,KAAK,gBAAgB,SAAS;AAClC,WAAS,KAAK,UAAU,SAAS,GAAG,MAAM,GAAG,MAAM;AACjD,WAAO,UAAU,EAAE;AACnB,UAAI,KAAK,eAAe,IAAI;AAC5B,YAAQ,GAAG;AAAA,MACT,KAAK;AAAA,MACL,EAAE,MAAM,KAAK,OAAO,MAAM,KAAK,UAAU;AAAA,MACzC;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACA,QAAM,OAAO,QAAQ,GAAG,YAAY;AACpC,QAAM,QAAQ,QAAQ,GAAG,SAAS;AAClC,QAAI,KAAK,SAAS,KAAK;AACvB,MAAI,IAAI;AACR,OAAK,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,WAAO,UAAU,CAAC;AAClB,sBAAU,SAAS,EAAE,OAAO,MAAM;AAClC,aAAS,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;AAC1C,YAAI,KAAK,wBAAwB,KAAK,MAAM,CAAC,GAAG,KAAK,EAAE;AACvD,QAAE,UAAU,KAAK,MAAM,CAAC,GAAG,KAAK,EAAE;AAAA,IACpC;AAAA,EACF;AACA,QAAM,YAAY,MAAM,GAAG,IAAI,MAAM,KAAK,OAAO;AACjD,QAAM,SAAS,OAAO,CAAC;AACvB,QAAM,MAAM,KAAK,OAAO,QAAQ,EAAE,IAAI;AACtC,QAAM,UAAU,KAAK,OAAO,MAAM,KAAK,IAAI;AAC3C,QAAM,OAAO,SAAS,GAAG,CAAC,SAAS,UAAU,OAAO,GAAG,aAAa,EAAE;AACtE,QAAM,YAAY,KAAK,sBAAsB,MAAM,gBAAgB,QAAQ,GAAG,gBAAgB,CAAC;AAC/F,sBAAkB,GAAG,KAAK,MAAM,gBAAgB,MAAM,WAAW;AACjE,UAAQ,GAAG,WAAW,aAAa,CAAC;AACpC,MAAI,CAAC,MAAM,YAAY;AACrB,UAAM,SAAS,IAAI,iBAAiB,UAAU,KAAK,sBAAsB;AACzE,eAAW,SAAS,QAAQ;AAC1B,YAAM,MAAM,MAAM,QAAQ;AAC1B,YAAM,OAAO,IAAI,gBAAgB,8BAA8B,MAAM;AACrE,WAAK,aAAa,MAAM,CAAC;AACzB,WAAK,aAAa,MAAM,CAAC;AACzB,WAAK,aAAa,SAAS,IAAI,KAAK;AACpC,WAAK,aAAa,UAAU,IAAI,MAAM;AACtC,YAAM,aAAa,MAAM,MAAM,UAAU;AAAA,IAC3C;AAAA,EACF;AACA,QAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,OAAK,QAAQ,SAAS,KAAK;AACzB,UAAM,SAAS,KAAK,GAAG;AACvB,QAAI,OAAO,MAAM;AACf,YAAM,OAAO,eAAO,MAAM,KAAK,WAAW,MAAM,IAAI;AACpD,UAAI,MAAM;AACR,cAAM,OAAO,IAAI,gBAAgB,8BAA8B,GAAG;AAClE,aAAK,eAAe,8BAA8B,SAAS,OAAO,QAAQ,KAAK,GAAG,CAAC;AACnF,aAAK,eAAe,8BAA8B,QAAQ,OAAO,IAAI;AACrE,aAAK,eAAe,8BAA8B,OAAO,UAAU;AACnE,YAAI,kBAAkB,WAAW;AAC/B,eAAK,eAAe,8BAA8B,UAAU,MAAM;AAAA,QACpE,WAAW,OAAO,YAAY;AAC5B,eAAK,eAAe,8BAA8B,UAAU,OAAO,UAAU;AAAA,QAC/E;AACA,cAAM,WAAW,KAAK,OAAO,WAAW;AACtC,iBAAO;AAAA,QACT,GAAG,cAAc;AACjB,cAAM,QAAQ,KAAK,OAAO,kBAAkB;AAC5C,YAAI,OAAO;AACT,mBAAS,OAAO,WAAW;AACzB,mBAAO,MAAM,KAAK;AAAA,UACpB,CAAC;AAAA,QACH;AACA,cAAM,QAAQ,KAAK,OAAO,QAAQ;AAClC,YAAI,OAAO;AACT,mBAAS,OAAO,WAAW;AACzB,mBAAO,MAAM,KAAK;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;AACA,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,OAAO,CAAC,OAAO,YAAY;AAC/B,QAAM,UAAiB;AACvB,QAAM,IAAI,QAAQ,OAAO,GAAG;AAC5B,QAAM,IAAI,QAAQ,OAAO,GAAG;AAC5B,QAAM,IAAI,QAAQ,OAAO,GAAG;AAC5B,SAAc,aAAK,GAAG,GAAG,GAAG,OAAO;AACrC;AACA,IAAM,YAAY,CAAC,YAAY;AAAA,mBACZ,QAAQ,UAAU;AAAA,aACxB,QAAQ,iBAAiB,QAAQ,SAAS;AAAA;AAAA;AAAA,YAG3C,QAAQ,UAAU;AAAA;AAAA;AAAA,aAGjB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,YAInB,QAAQ,iBAAiB,QAAQ,SAAS;AAAA,aACzC,QAAQ,iBAAiB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQ3C,QAAQ,OAAO;AAAA,cACb,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YA2BpB,QAAQ,cAAc;AAAA;AAAA;AAAA;AAAA,cAIpB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,cAKjB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKP,QAAQ,mBAAmB;AAAA;AAAA;AAAA,0BAGzB,QAAQ,mBAAmB;AAAA,cACvC,QAAQ,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOjB,KAAK,QAAQ,qBAAqB,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlD,QAAQ,UAAU;AAAA,cAChB,QAAQ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,YAKvB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,aAIjB,QAAQ,UAAU;AAAA;AAAA;AAAA,aAGlB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAQZ,QAAQ,UAAU;AAAA;AAAA,kBAEnB,QAAQ,aAAa;AAAA,wBACf,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAS3B,QAAQ,SAAS;AAAA;AAAA;AAG7B,IAAM,aAAa;", "names": [] }