@d3plus/dom 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"d3plus-dom.full.js","sources":["../src/isObject.ts","../src/assign.ts","../src/backgroundColor.ts","../src/attrize.ts","../src/date.ts","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js","../../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js","../../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js","../src/elem.ts","../../../node_modules/.pnpm/@chenglou+pretext@0.0.3/node_modules/@chenglou/pretext/dist/bidi.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.3/node_modules/@chenglou/pretext/dist/analysis.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.3/node_modules/@chenglou/pretext/dist/measurement.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.3/node_modules/@chenglou/pretext/dist/line-break.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.3/node_modules/@chenglou/pretext/dist/layout.js","../src/textWidth.ts","../src/fontExists.ts","../src/getSize.ts","../src/inViewport.ts","../src/parseSides.ts","../src/rtl.ts","../src/stylize.ts"],"sourcesContent":["/**\n Detects if a variable is a javascript Object.\n @param item The value to test.\n*/\nexport default function (item: unknown): boolean {\n return item &&\n typeof item === \"object\" &&\n (typeof window === \"undefined\" ||\n (item !== window &&\n item !== window.document &&\n !(item instanceof Element))) &&\n !Array.isArray(item)\n ? true\n : false;\n}\n","import isObject from \"./isObject.js\";\n\n/**\n Determines if the object passed is the document or window.\n @param obj @private\n*/\nfunction validObject(obj: Record<string, unknown>): boolean {\n if (typeof window === \"undefined\") return true;\n else return (obj as unknown) !== window && (obj as unknown) !== document;\n}\n\n/**\n A deeply recursive version of `Object.assign`.\n\n@example <caption>this</caption>\nassign({id: \"foo\", deep: {group: \"A\"}}, {id: \"bar\", deep: {value: 20}}));\n @example <caption>returns this</caption>\n{id: \"bar\", deep: {group: \"A\", value: 20}}\n @param objects The source objects to merge into the target.\n*/\nfunction assign(...objects: Record<string, unknown>[]): Record<string, unknown> {\n const target = objects[0];\n for (let i = 1; i < objects.length; i++) {\n const source = objects[i];\n if (!isObject(source)) continue;\n\n Object.keys(source).forEach(prop => {\n const value = source[prop];\n\n if (isObject(value) && validObject(value as Record<string, unknown>)) {\n if (\n Object.prototype.hasOwnProperty.call(target, prop) &&\n isObject(target[prop])\n )\n target[prop] = assign({}, target[prop] as Record<string, unknown>, value as Record<string, unknown>);\n else target[prop] = assign({}, value as Record<string, unknown>);\n } else if (Array.isArray(value)) target[prop] = value.slice();\n else target[prop] = value;\n });\n }\n\n return target;\n}\n\nexport default assign;\n","/**\n Given a DOM element, returns its background color by walking up the\n ancestor chain until a non-transparent background is found. Falls back\n to \"rgb(255, 255, 255)\" (white) if every ancestor is transparent.\n @param elem The DOM element to check.\n*/\nexport default function (elem: Element): string {\n let node: Element | null = elem;\n while (node) {\n const bg = getComputedStyle(node).backgroundColor;\n if (bg && bg !== \"transparent\" && bg !== \"rgba(0, 0, 0, 0)\") return bg;\n node = node.parentElement;\n }\n return \"rgb(255, 255, 255)\";\n}\n","import type {Attrable} from \"./D3Selection.js\";\n\n/**\n Applies each key/value in an object as an attr.\n @param e The d3 selection to apply attributes to.\n @param a An object of key/value attr pairs.\n*/\nexport default function (\n e: Attrable,\n a: Record<string, string | number | boolean | null> = {},\n): void {\n for (const k in a) if ({}.hasOwnProperty.call(a, k)) e.attr(k, a[k]);\n}\n","/**\n Parses numbers and strings into valid JavaScript Date objects, supporting years, quarters, months, and ISO 8601 formats.\n @param d The date value to parse (number, string, or Date).\n*/\nexport default function (\n d: number | string | false | undefined,\n): Date | false | undefined {\n // returns if falsey or already Date object\n if (\n [false, undefined, NaN].includes(d as never) ||\n (d as unknown as {constructor: unknown}).constructor === Date\n )\n return d as Date | false | undefined;\n // detects if milliseconds\n else if (\n (d as unknown as {constructor: unknown}).constructor === Number &&\n `${d}`.length > 5 &&\n (d as number) % 1 === 0\n )\n return new Date(d as number);\n\n let s = `${d}`;\n\n // tests for MM/DD/YYYY and MM-DD-YYYY format\n const dayFormat = new RegExp(/^\\d{1,2}[./-]\\d{1,2}[./-](-*\\d{1,4})$/g).exec(\n s,\n );\n if (dayFormat) {\n const year = dayFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year as unknown as number);\n return date;\n }\n\n // tests for full Date object string format\n const strFormat = new RegExp(\n /^[A-z]{1,3} [A-z]{1,3} \\d{1,2} (-*\\d{1,4}) \\d{1,2}:\\d{1,2}:\\d{1,2} [A-z]{1,3}-*\\d{1,4} \\([A-z]{1,3}\\)/g,\n ).exec(s);\n if (strFormat) {\n const year = strFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year as unknown as number);\n return date;\n }\n\n // tests for quarterly formats (ie. \"QX YYYY\" and \"YYYY QX\")\n const quarterPrefix = new RegExp(\n /^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\\s|-]{0,1}(-*\\d{1,4})$/g,\n ).exec(s);\n const quarterSuffix = new RegExp(\n /^(-*\\d{1,4})[\\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g,\n ).exec(s);\n if (quarterPrefix || quarterSuffix) {\n const quarter = +(quarterPrefix ? quarterPrefix[1] : quarterSuffix![2])\n .toLowerCase()\n .replace(\"q\", \"\");\n const year = +(quarterPrefix ? quarterPrefix[2] : quarterSuffix![1]);\n const date = new Date(year, quarter * 3 - 3, 1);\n date.setFullYear(year);\n return date;\n }\n\n // tests for monthly formats (ie. \"MM-YYYY\" and \"YYYY-MM\")\n const monthPrefix = new RegExp(/^([-*\\d]{1,2})-(-*\\d{1,4})$/g).exec(s);\n const monthSuffix = new RegExp(/^(-*\\d{1,4})-([-*\\d]{1,2})$/g).exec(s);\n if (monthPrefix || monthSuffix) {\n const month = +(monthPrefix ? monthPrefix[1] : monthSuffix![2]);\n const year = +(monthPrefix ? monthPrefix[2] : monthSuffix![1]);\n const date = new Date(year, month - 1, 1);\n date.setFullYear(year);\n return date;\n }\n\n // detects if only passing a year value\n if (\n !s.includes(\"/\") &&\n !s.includes(\" \") &&\n (!s.includes(\"-\") || !s.indexOf(\"-\"))\n ) {\n const date = new Date(+s, 0, 1);\n date.setFullYear(d as number);\n return date;\n }\n\n const iso8601 = new RegExp(\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$/g,\n ).exec(s);\n if (iso8601) return new Date(s);\n\n // falls back to Date object, replacing hyphens with slashes\n return new Date(s.replace(/-/g, \"/\"));\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {select} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n\nimport {default as attrize} from \"./attrize.js\";\nimport type {D3Selection} from \"./D3Selection.js\";\n\n \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnySelection = ReturnType<typeof select<any, any>>;\n\ntype AttrMap = Record<string, string | number | boolean | null>;\n\nexport interface ElemParams {\n condition?: boolean;\n enter?: AttrMap;\n exit?: AttrMap;\n duration?: number;\n parent?: D3Selection;\n transition?: D3Selection;\n update?: AttrMap;\n}\n\n/**\n Manages the enter/update/exit pattern for a single DOM element, applying enter, update, and exit attributes with optional transitions.\n @param selector A CSS selector string for the element tag and classes.\n @param p Configuration object with enter, exit, update, and parent options.\n*/\nexport default function (selector: string, p?: ElemParams): D3Selection {\n // overrides default params\n const params = Object.assign(\n {},\n {\n condition: true,\n enter: {},\n exit: {},\n duration: 0,\n parent: select(\"body\") as unknown as D3Selection,\n update: {},\n },\n p,\n );\n\n const className = /\\.([^#]+)/g.exec(selector),\n id = /#([^.]+)/g.exec(selector),\n t = transition().duration(params.duration),\n tag = /^([^.^#]+)/g.exec(selector)![1];\n\n const elem = (params.parent as AnySelection)\n .selectAll(selector.includes(\":\") ? selector.split(\":\")[1] : selector)\n .data(params.condition ? [null] : []);\n\n const enter = elem.enter().append(tag).call(attrize, params.enter);\n\n if (id) enter.attr(\"id\", id[1]);\n if (className) enter.attr(\"class\", className[1]);\n\n if (params.duration)\n elem\n .exit()\n .transition(t)\n .call(attrize as never, params.exit)\n .remove();\n else elem.exit().call(attrize, params.exit).remove();\n\n const update = enter.merge(elem);\n if (params.duration)\n update.transition(t).call(attrize as never, params.update);\n else update.call(attrize, params.update);\n\n return update as unknown as D3Selection;\n}\n","// Simplified bidi metadata helper for the rich prepareWithSegments() path,\n// forked from pdf.js via Sebastian's text-layout. It classifies characters\n// into bidi types, computes embedding levels, and maps them onto prepared\n// segments for custom rendering. The line-breaking engine does not consume\n// these levels.\nconst baseTypes = [\n 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS',\n 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON',\n 'ON', 'ON', 'ON', 'ON', 'ON', 'CS', 'ON', 'CS', 'ON', 'EN', 'EN', 'EN',\n 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'ON', 'ON', 'ON', 'ON', 'ON',\n 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON',\n 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN',\n 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',\n 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON',\n 'ON', 'ON', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON',\n 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',\n 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'\n];\nconst arabicTypes = [\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',\n 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN',\n 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',\n 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'ON', 'NSM',\n 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',\n 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'\n];\nfunction classifyChar(charCode) {\n if (charCode <= 0x00ff)\n return baseTypes[charCode];\n if (0x0590 <= charCode && charCode <= 0x05f4)\n return 'R';\n if (0x0600 <= charCode && charCode <= 0x06ff)\n return arabicTypes[charCode & 0xff];\n if (0x0700 <= charCode && charCode <= 0x08AC)\n return 'AL';\n return 'L';\n}\nfunction computeBidiLevels(str) {\n const len = str.length;\n if (len === 0)\n return null;\n // eslint-disable-next-line unicorn/no-new-array\n const types = new Array(len);\n let numBidi = 0;\n for (let i = 0; i < len; i++) {\n const t = classifyChar(str.charCodeAt(i));\n if (t === 'R' || t === 'AL' || t === 'AN')\n numBidi++;\n types[i] = t;\n }\n if (numBidi === 0)\n return null;\n const startLevel = (len / numBidi) < 0.3 ? 0 : 1;\n const levels = new Int8Array(len);\n for (let i = 0; i < len; i++)\n levels[i] = startLevel;\n const e = (startLevel & 1) ? 'R' : 'L';\n const sor = e;\n // W1-W7\n let lastType = sor;\n for (let i = 0; i < len; i++) {\n if (types[i] === 'NSM')\n types[i] = lastType;\n else\n lastType = types[i];\n }\n lastType = sor;\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'EN')\n types[i] = lastType === 'AL' ? 'AN' : 'EN';\n else if (t === 'R' || t === 'L' || t === 'AL')\n lastType = t;\n }\n for (let i = 0; i < len; i++) {\n if (types[i] === 'AL')\n types[i] = 'R';\n }\n for (let i = 1; i < len - 1; i++) {\n if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n types[i] = 'EN';\n }\n if (types[i] === 'CS' &&\n (types[i - 1] === 'EN' || types[i - 1] === 'AN') &&\n types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n for (let i = 0; i < len; i++) {\n if (types[i] !== 'EN')\n continue;\n let j;\n for (j = i - 1; j >= 0 && types[j] === 'ET'; j--)\n types[j] = 'EN';\n for (j = i + 1; j < len && types[j] === 'ET'; j++)\n types[j] = 'EN';\n }\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS')\n types[i] = 'ON';\n }\n lastType = sor;\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'EN')\n types[i] = lastType === 'L' ? 'L' : 'EN';\n else if (t === 'R' || t === 'L')\n lastType = t;\n }\n // N1-N2\n for (let i = 0; i < len; i++) {\n if (types[i] !== 'ON')\n continue;\n let end = i + 1;\n while (end < len && types[end] === 'ON')\n end++;\n const before = i > 0 ? types[i - 1] : sor;\n const after = end < len ? types[end] : sor;\n const bDir = before !== 'L' ? 'R' : 'L';\n const aDir = after !== 'L' ? 'R' : 'L';\n if (bDir === aDir) {\n for (let j = i; j < end; j++)\n types[j] = bDir;\n }\n i = end - 1;\n }\n for (let i = 0; i < len; i++) {\n if (types[i] === 'ON')\n types[i] = e;\n }\n // I1-I2\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if ((levels[i] & 1) === 0) {\n if (t === 'R')\n levels[i]++;\n else if (t === 'AN' || t === 'EN')\n levels[i] += 2;\n }\n else if (t === 'L' || t === 'AN' || t === 'EN') {\n levels[i]++;\n }\n }\n return levels;\n}\nexport function computeSegmentLevels(normalized, segStarts) {\n const bidiLevels = computeBidiLevels(normalized);\n if (bidiLevels === null)\n return null;\n const segLevels = new Int8Array(segStarts.length);\n for (let i = 0; i < segStarts.length; i++) {\n segLevels[i] = bidiLevels[segStarts[i]];\n }\n return segLevels;\n}\n","const collapsibleWhitespaceRunRe = /[ \\t\\n\\r\\f]+/g;\nconst needsWhitespaceNormalizationRe = /[\\t\\n\\r\\f]| {2,}|^ | $/;\nfunction getWhiteSpaceProfile(whiteSpace) {\n const mode = whiteSpace ?? 'normal';\n return mode === 'pre-wrap'\n ? { mode, preserveOrdinarySpaces: true, preserveHardBreaks: true }\n : { mode, preserveOrdinarySpaces: false, preserveHardBreaks: false };\n}\nexport function normalizeWhitespaceNormal(text) {\n if (!needsWhitespaceNormalizationRe.test(text))\n return text;\n let normalized = text.replace(collapsibleWhitespaceRunRe, ' ');\n if (normalized.charCodeAt(0) === 0x20) {\n normalized = normalized.slice(1);\n }\n if (normalized.length > 0 && normalized.charCodeAt(normalized.length - 1) === 0x20) {\n normalized = normalized.slice(0, -1);\n }\n return normalized;\n}\nfunction normalizeWhitespacePreWrap(text) {\n if (!/[\\r\\f]/.test(text))\n return text.replace(/\\r\\n/g, '\\n');\n return text\n .replace(/\\r\\n/g, '\\n')\n .replace(/[\\r\\f]/g, '\\n');\n}\nlet sharedWordSegmenter = null;\nlet segmenterLocale;\nfunction getSharedWordSegmenter() {\n if (sharedWordSegmenter === null) {\n sharedWordSegmenter = new Intl.Segmenter(segmenterLocale, { granularity: 'word' });\n }\n return sharedWordSegmenter;\n}\nexport function clearAnalysisCaches() {\n sharedWordSegmenter = null;\n}\nexport function setAnalysisLocale(locale) {\n const nextLocale = locale && locale.length > 0 ? locale : undefined;\n if (segmenterLocale === nextLocale)\n return;\n segmenterLocale = nextLocale;\n sharedWordSegmenter = null;\n}\nconst arabicScriptRe = /\\p{Script=Arabic}/u;\nconst combiningMarkRe = /\\p{M}/u;\nconst decimalDigitRe = /\\p{Nd}/u;\nfunction containsArabicScript(text) {\n return arabicScriptRe.test(text);\n}\nexport function isCJK(s) {\n for (const ch of s) {\n const c = ch.codePointAt(0);\n if ((c >= 0x4E00 && c <= 0x9FFF) ||\n (c >= 0x3400 && c <= 0x4DBF) ||\n (c >= 0x20000 && c <= 0x2A6DF) ||\n (c >= 0x2A700 && c <= 0x2B73F) ||\n (c >= 0x2B740 && c <= 0x2B81F) ||\n (c >= 0x2B820 && c <= 0x2CEAF) ||\n (c >= 0x2CEB0 && c <= 0x2EBEF) ||\n (c >= 0x30000 && c <= 0x3134F) ||\n (c >= 0xF900 && c <= 0xFAFF) ||\n (c >= 0x2F800 && c <= 0x2FA1F) ||\n (c >= 0x3000 && c <= 0x303F) ||\n (c >= 0x3040 && c <= 0x309F) ||\n (c >= 0x30A0 && c <= 0x30FF) ||\n (c >= 0xAC00 && c <= 0xD7AF) ||\n (c >= 0xFF00 && c <= 0xFFEF)) {\n return true;\n }\n }\n return false;\n}\nexport const kinsokuStart = new Set([\n '\\uFF0C',\n '\\uFF0E',\n '\\uFF01',\n '\\uFF1A',\n '\\uFF1B',\n '\\uFF1F',\n '\\u3001',\n '\\u3002',\n '\\u30FB',\n '\\uFF09',\n '\\u3015',\n '\\u3009',\n '\\u300B',\n '\\u300D',\n '\\u300F',\n '\\u3011',\n '\\u3017',\n '\\u3019',\n '\\u301B',\n '\\u30FC',\n '\\u3005',\n '\\u303B',\n '\\u309D',\n '\\u309E',\n '\\u30FD',\n '\\u30FE',\n]);\nexport const kinsokuEnd = new Set([\n '\"',\n '(', '[', '{',\n '“', '‘', '«', '‹',\n '\\uFF08',\n '\\u3014',\n '\\u3008',\n '\\u300A',\n '\\u300C',\n '\\u300E',\n '\\u3010',\n '\\u3016',\n '\\u3018',\n '\\u301A',\n]);\nconst forwardStickyGlue = new Set([\n \"'\", '’',\n]);\nexport const leftStickyPunctuation = new Set([\n '.', ',', '!', '?', ':', ';',\n '\\u060C',\n '\\u061B',\n '\\u061F',\n '\\u0964',\n '\\u0965',\n '\\u104A',\n '\\u104B',\n '\\u104C',\n '\\u104D',\n '\\u104F',\n ')', ']', '}',\n '%',\n '\"',\n '”', '’', '»', '›',\n '…',\n]);\nconst arabicNoSpaceTrailingPunctuation = new Set([\n ':',\n '.',\n '\\u060C',\n '\\u061B',\n]);\nconst myanmarMedialGlue = new Set([\n '\\u104F',\n]);\nconst closingQuoteChars = new Set([\n '”', '’', '»', '›',\n '\\u300D',\n '\\u300F',\n '\\u3011',\n '\\u300B',\n '\\u3009',\n '\\u3015',\n '\\uFF09',\n]);\nfunction isLeftStickyPunctuationSegment(segment) {\n if (isEscapedQuoteClusterSegment(segment))\n return true;\n let sawPunctuation = false;\n for (const ch of segment) {\n if (leftStickyPunctuation.has(ch)) {\n sawPunctuation = true;\n continue;\n }\n if (sawPunctuation && combiningMarkRe.test(ch))\n continue;\n return false;\n }\n return sawPunctuation;\n}\nfunction isCJKLineStartProhibitedSegment(segment) {\n for (const ch of segment) {\n if (!kinsokuStart.has(ch) && !leftStickyPunctuation.has(ch))\n return false;\n }\n return segment.length > 0;\n}\nfunction isForwardStickyClusterSegment(segment) {\n if (isEscapedQuoteClusterSegment(segment))\n return true;\n for (const ch of segment) {\n if (!kinsokuEnd.has(ch) && !forwardStickyGlue.has(ch) && !combiningMarkRe.test(ch))\n return false;\n }\n return segment.length > 0;\n}\nfunction isEscapedQuoteClusterSegment(segment) {\n let sawQuote = false;\n for (const ch of segment) {\n if (ch === '\\\\' || combiningMarkRe.test(ch))\n continue;\n if (kinsokuEnd.has(ch) || leftStickyPunctuation.has(ch) || forwardStickyGlue.has(ch)) {\n sawQuote = true;\n continue;\n }\n return false;\n }\n return sawQuote;\n}\nfunction splitTrailingForwardStickyCluster(text) {\n const chars = Array.from(text);\n let splitIndex = chars.length;\n while (splitIndex > 0) {\n const ch = chars[splitIndex - 1];\n if (combiningMarkRe.test(ch)) {\n splitIndex--;\n continue;\n }\n if (kinsokuEnd.has(ch) || forwardStickyGlue.has(ch)) {\n splitIndex--;\n continue;\n }\n break;\n }\n if (splitIndex <= 0 || splitIndex === chars.length)\n return null;\n return {\n head: chars.slice(0, splitIndex).join(''),\n tail: chars.slice(splitIndex).join(''),\n };\n}\nfunction isRepeatedSingleCharRun(segment, ch) {\n if (segment.length === 0)\n return false;\n for (const part of segment) {\n if (part !== ch)\n return false;\n }\n return true;\n}\nfunction endsWithArabicNoSpacePunctuation(segment) {\n if (!containsArabicScript(segment) || segment.length === 0)\n return false;\n return arabicNoSpaceTrailingPunctuation.has(segment[segment.length - 1]);\n}\nfunction endsWithMyanmarMedialGlue(segment) {\n if (segment.length === 0)\n return false;\n return myanmarMedialGlue.has(segment[segment.length - 1]);\n}\nfunction splitLeadingSpaceAndMarks(segment) {\n if (segment.length < 2 || segment[0] !== ' ')\n return null;\n const marks = segment.slice(1);\n if (/^\\p{M}+$/u.test(marks)) {\n return { space: ' ', marks };\n }\n return null;\n}\nexport function endsWithClosingQuote(text) {\n for (let i = text.length - 1; i >= 0; i--) {\n const ch = text[i];\n if (closingQuoteChars.has(ch))\n return true;\n if (!leftStickyPunctuation.has(ch))\n return false;\n }\n return false;\n}\nfunction classifySegmentBreakChar(ch, whiteSpaceProfile) {\n if (whiteSpaceProfile.preserveOrdinarySpaces || whiteSpaceProfile.preserveHardBreaks) {\n if (ch === ' ')\n return 'preserved-space';\n if (ch === '\\t')\n return 'tab';\n if (whiteSpaceProfile.preserveHardBreaks && ch === '\\n')\n return 'hard-break';\n }\n if (ch === ' ')\n return 'space';\n if (ch === '\\u00A0' || ch === '\\u202F' || ch === '\\u2060' || ch === '\\uFEFF') {\n return 'glue';\n }\n if (ch === '\\u200B')\n return 'zero-width-break';\n if (ch === '\\u00AD')\n return 'soft-hyphen';\n return 'text';\n}\nfunction splitSegmentByBreakKind(segment, isWordLike, start, whiteSpaceProfile) {\n const pieces = [];\n let currentKind = null;\n let currentText = '';\n let currentStart = start;\n let currentWordLike = false;\n let offset = 0;\n for (const ch of segment) {\n const kind = classifySegmentBreakChar(ch, whiteSpaceProfile);\n const wordLike = kind === 'text' && isWordLike;\n if (currentKind !== null && kind === currentKind && wordLike === currentWordLike) {\n currentText += ch;\n offset += ch.length;\n continue;\n }\n if (currentKind !== null) {\n pieces.push({\n text: currentText,\n isWordLike: currentWordLike,\n kind: currentKind,\n start: currentStart,\n });\n }\n currentKind = kind;\n currentText = ch;\n currentStart = start + offset;\n currentWordLike = wordLike;\n offset += ch.length;\n }\n if (currentKind !== null) {\n pieces.push({\n text: currentText,\n isWordLike: currentWordLike,\n kind: currentKind,\n start: currentStart,\n });\n }\n return pieces;\n}\nfunction isTextRunBoundary(kind) {\n return (kind === 'space' ||\n kind === 'preserved-space' ||\n kind === 'zero-width-break' ||\n kind === 'hard-break');\n}\nconst urlSchemeSegmentRe = /^[A-Za-z][A-Za-z0-9+.-]*:$/;\nfunction isUrlLikeRunStart(segmentation, index) {\n const text = segmentation.texts[index];\n if (text.startsWith('www.'))\n return true;\n return (urlSchemeSegmentRe.test(text) &&\n index + 1 < segmentation.len &&\n segmentation.kinds[index + 1] === 'text' &&\n segmentation.texts[index + 1] === '//');\n}\nfunction isUrlQueryBoundarySegment(text) {\n return text.includes('?') && (text.includes('://') || text.startsWith('www.'));\n}\nfunction mergeUrlLikeRuns(segmentation) {\n const texts = segmentation.texts.slice();\n const isWordLike = segmentation.isWordLike.slice();\n const kinds = segmentation.kinds.slice();\n const starts = segmentation.starts.slice();\n for (let i = 0; i < segmentation.len; i++) {\n if (kinds[i] !== 'text' || !isUrlLikeRunStart(segmentation, i))\n continue;\n let j = i + 1;\n while (j < segmentation.len && !isTextRunBoundary(kinds[j])) {\n texts[i] += texts[j];\n isWordLike[i] = true;\n const endsQueryPrefix = texts[j].includes('?');\n kinds[j] = 'text';\n texts[j] = '';\n j++;\n if (endsQueryPrefix)\n break;\n }\n }\n let compactLen = 0;\n for (let read = 0; read < texts.length; read++) {\n const text = texts[read];\n if (text.length === 0)\n continue;\n if (compactLen !== read) {\n texts[compactLen] = text;\n isWordLike[compactLen] = isWordLike[read];\n kinds[compactLen] = kinds[read];\n starts[compactLen] = starts[read];\n }\n compactLen++;\n }\n texts.length = compactLen;\n isWordLike.length = compactLen;\n kinds.length = compactLen;\n starts.length = compactLen;\n return {\n len: compactLen,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeUrlQueryRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(segmentation.kinds[i]);\n starts.push(segmentation.starts[i]);\n if (!isUrlQueryBoundarySegment(text))\n continue;\n const nextIndex = i + 1;\n if (nextIndex >= segmentation.len ||\n isTextRunBoundary(segmentation.kinds[nextIndex])) {\n continue;\n }\n let queryText = '';\n const queryStart = segmentation.starts[nextIndex];\n let j = nextIndex;\n while (j < segmentation.len && !isTextRunBoundary(segmentation.kinds[j])) {\n queryText += segmentation.texts[j];\n j++;\n }\n if (queryText.length > 0) {\n texts.push(queryText);\n isWordLike.push(true);\n kinds.push('text');\n starts.push(queryStart);\n i = j - 1;\n }\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nconst numericJoinerChars = new Set([\n ':', '-', '/', '×', ',', '.', '+',\n '\\u2013',\n '\\u2014',\n]);\nconst asciiPunctuationChainSegmentRe = /^[A-Za-z0-9_]+[,:;]*$/;\nconst asciiPunctuationChainTrailingJoinersRe = /[,:;]+$/;\nfunction segmentContainsDecimalDigit(text) {\n for (const ch of text) {\n if (decimalDigitRe.test(ch))\n return true;\n }\n return false;\n}\nfunction isNumericRunSegment(text) {\n if (text.length === 0)\n return false;\n for (const ch of text) {\n if (decimalDigitRe.test(ch) || numericJoinerChars.has(ch))\n continue;\n return false;\n }\n return true;\n}\nfunction mergeNumericRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n const kind = segmentation.kinds[i];\n if (kind === 'text' && isNumericRunSegment(text) && segmentContainsDecimalDigit(text)) {\n let mergedText = text;\n let j = i + 1;\n while (j < segmentation.len &&\n segmentation.kinds[j] === 'text' &&\n isNumericRunSegment(segmentation.texts[j])) {\n mergedText += segmentation.texts[j];\n j++;\n }\n texts.push(mergedText);\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i]);\n i = j - 1;\n continue;\n }\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(kind);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeAsciiPunctuationChains(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n const kind = segmentation.kinds[i];\n const wordLike = segmentation.isWordLike[i];\n if (kind === 'text' && wordLike && asciiPunctuationChainSegmentRe.test(text)) {\n let mergedText = text;\n let j = i + 1;\n while (asciiPunctuationChainTrailingJoinersRe.test(mergedText) &&\n j < segmentation.len &&\n segmentation.kinds[j] === 'text' &&\n segmentation.isWordLike[j] &&\n asciiPunctuationChainSegmentRe.test(segmentation.texts[j])) {\n mergedText += segmentation.texts[j];\n j++;\n }\n texts.push(mergedText);\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i]);\n i = j - 1;\n continue;\n }\n texts.push(text);\n isWordLike.push(wordLike);\n kinds.push(kind);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction splitHyphenatedNumericRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n if (segmentation.kinds[i] === 'text' && text.includes('-')) {\n const parts = text.split('-');\n let shouldSplit = parts.length > 1;\n for (let j = 0; j < parts.length; j++) {\n const part = parts[j];\n if (!shouldSplit)\n break;\n if (part.length === 0 ||\n !segmentContainsDecimalDigit(part) ||\n !isNumericRunSegment(part)) {\n shouldSplit = false;\n }\n }\n if (shouldSplit) {\n let offset = 0;\n for (let j = 0; j < parts.length; j++) {\n const part = parts[j];\n const splitText = j < parts.length - 1 ? `${part}-` : part;\n texts.push(splitText);\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i] + offset);\n offset += splitText.length;\n }\n continue;\n }\n }\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(segmentation.kinds[i]);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeGlueConnectedTextRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n let read = 0;\n while (read < segmentation.len) {\n let text = segmentation.texts[read];\n let wordLike = segmentation.isWordLike[read];\n let kind = segmentation.kinds[read];\n let start = segmentation.starts[read];\n if (kind === 'glue') {\n let glueText = text;\n const glueStart = start;\n read++;\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n glueText += segmentation.texts[read];\n read++;\n }\n if (read < segmentation.len && segmentation.kinds[read] === 'text') {\n text = glueText + segmentation.texts[read];\n wordLike = segmentation.isWordLike[read];\n kind = 'text';\n start = glueStart;\n read++;\n }\n else {\n texts.push(glueText);\n isWordLike.push(false);\n kinds.push('glue');\n starts.push(glueStart);\n continue;\n }\n }\n else {\n read++;\n }\n if (kind === 'text') {\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n let glueText = '';\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n glueText += segmentation.texts[read];\n read++;\n }\n if (read < segmentation.len && segmentation.kinds[read] === 'text') {\n text += glueText + segmentation.texts[read];\n wordLike = wordLike || segmentation.isWordLike[read];\n read++;\n continue;\n }\n text += glueText;\n }\n }\n texts.push(text);\n isWordLike.push(wordLike);\n kinds.push(kind);\n starts.push(start);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction carryTrailingForwardStickyAcrossCJKBoundary(segmentation) {\n const texts = segmentation.texts.slice();\n const isWordLike = segmentation.isWordLike.slice();\n const kinds = segmentation.kinds.slice();\n const starts = segmentation.starts.slice();\n for (let i = 0; i < texts.length - 1; i++) {\n if (kinds[i] !== 'text' || kinds[i + 1] !== 'text')\n continue;\n if (!isCJK(texts[i]) || !isCJK(texts[i + 1]))\n continue;\n const split = splitTrailingForwardStickyCluster(texts[i]);\n if (split === null)\n continue;\n texts[i] = split.head;\n texts[i + 1] = split.tail + texts[i + 1];\n starts[i + 1] = starts[i] + split.head.length;\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction buildMergedSegmentation(normalized, profile, whiteSpaceProfile) {\n const wordSegmenter = getSharedWordSegmenter();\n let mergedLen = 0;\n const mergedTexts = [];\n const mergedWordLike = [];\n const mergedKinds = [];\n const mergedStarts = [];\n for (const s of wordSegmenter.segment(normalized)) {\n for (const piece of splitSegmentByBreakKind(s.segment, s.isWordLike ?? false, s.index, whiteSpaceProfile)) {\n const isText = piece.kind === 'text';\n if (profile.carryCJKAfterClosingQuote &&\n isText &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n isCJK(piece.text) &&\n isCJK(mergedTexts[mergedLen - 1]) &&\n endsWithClosingQuote(mergedTexts[mergedLen - 1])) {\n mergedTexts[mergedLen - 1] += piece.text;\n mergedWordLike[mergedLen - 1] = mergedWordLike[mergedLen - 1] || piece.isWordLike;\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n isCJKLineStartProhibitedSegment(piece.text) &&\n isCJK(mergedTexts[mergedLen - 1])) {\n mergedTexts[mergedLen - 1] += piece.text;\n mergedWordLike[mergedLen - 1] = mergedWordLike[mergedLen - 1] || piece.isWordLike;\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n endsWithMyanmarMedialGlue(mergedTexts[mergedLen - 1])) {\n mergedTexts[mergedLen - 1] += piece.text;\n mergedWordLike[mergedLen - 1] = mergedWordLike[mergedLen - 1] || piece.isWordLike;\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n piece.isWordLike &&\n containsArabicScript(piece.text) &&\n endsWithArabicNoSpacePunctuation(mergedTexts[mergedLen - 1])) {\n mergedTexts[mergedLen - 1] += piece.text;\n mergedWordLike[mergedLen - 1] = true;\n }\n else if (isText &&\n !piece.isWordLike &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n piece.text.length === 1 &&\n piece.text !== '-' &&\n piece.text !== '—' &&\n isRepeatedSingleCharRun(mergedTexts[mergedLen - 1], piece.text)) {\n mergedTexts[mergedLen - 1] += piece.text;\n }\n else if (isText &&\n !piece.isWordLike &&\n mergedLen > 0 &&\n mergedKinds[mergedLen - 1] === 'text' &&\n (isLeftStickyPunctuationSegment(piece.text) ||\n (piece.text === '-' && mergedWordLike[mergedLen - 1]))) {\n mergedTexts[mergedLen - 1] += piece.text;\n }\n else {\n mergedTexts[mergedLen] = piece.text;\n mergedWordLike[mergedLen] = piece.isWordLike;\n mergedKinds[mergedLen] = piece.kind;\n mergedStarts[mergedLen] = piece.start;\n mergedLen++;\n }\n }\n }\n for (let i = 1; i < mergedLen; i++) {\n if (mergedKinds[i] === 'text' &&\n !mergedWordLike[i] &&\n isEscapedQuoteClusterSegment(mergedTexts[i]) &&\n mergedKinds[i - 1] === 'text') {\n mergedTexts[i - 1] += mergedTexts[i];\n mergedWordLike[i - 1] = mergedWordLike[i - 1] || mergedWordLike[i];\n mergedTexts[i] = '';\n }\n }\n for (let i = mergedLen - 2; i >= 0; i--) {\n if (mergedKinds[i] === 'text' && !mergedWordLike[i] && isForwardStickyClusterSegment(mergedTexts[i])) {\n let j = i + 1;\n while (j < mergedLen && mergedTexts[j] === '')\n j++;\n if (j < mergedLen && mergedKinds[j] === 'text') {\n mergedTexts[j] = mergedTexts[i] + mergedTexts[j];\n mergedStarts[j] = mergedStarts[i];\n mergedTexts[i] = '';\n }\n }\n }\n let compactLen = 0;\n for (let read = 0; read < mergedLen; read++) {\n const text = mergedTexts[read];\n if (text.length === 0)\n continue;\n if (compactLen !== read) {\n mergedTexts[compactLen] = text;\n mergedWordLike[compactLen] = mergedWordLike[read];\n mergedKinds[compactLen] = mergedKinds[read];\n mergedStarts[compactLen] = mergedStarts[read];\n }\n compactLen++;\n }\n mergedTexts.length = compactLen;\n mergedWordLike.length = compactLen;\n mergedKinds.length = compactLen;\n mergedStarts.length = compactLen;\n const compacted = mergeGlueConnectedTextRuns({\n len: compactLen,\n texts: mergedTexts,\n isWordLike: mergedWordLike,\n kinds: mergedKinds,\n starts: mergedStarts,\n });\n const withMergedUrls = carryTrailingForwardStickyAcrossCJKBoundary(mergeAsciiPunctuationChains(splitHyphenatedNumericRuns(mergeNumericRuns(mergeUrlQueryRuns(mergeUrlLikeRuns(compacted))))));\n for (let i = 0; i < withMergedUrls.len - 1; i++) {\n const split = splitLeadingSpaceAndMarks(withMergedUrls.texts[i]);\n if (split === null)\n continue;\n if ((withMergedUrls.kinds[i] !== 'space' && withMergedUrls.kinds[i] !== 'preserved-space') ||\n withMergedUrls.kinds[i + 1] !== 'text' ||\n !containsArabicScript(withMergedUrls.texts[i + 1])) {\n continue;\n }\n withMergedUrls.texts[i] = split.space;\n withMergedUrls.isWordLike[i] = false;\n withMergedUrls.kinds[i] = withMergedUrls.kinds[i] === 'preserved-space' ? 'preserved-space' : 'space';\n withMergedUrls.texts[i + 1] = split.marks + withMergedUrls.texts[i + 1];\n withMergedUrls.starts[i + 1] = withMergedUrls.starts[i] + split.space.length;\n }\n return withMergedUrls;\n}\nfunction compileAnalysisChunks(segmentation, whiteSpaceProfile) {\n if (segmentation.len === 0)\n return [];\n if (!whiteSpaceProfile.preserveHardBreaks) {\n return [{\n startSegmentIndex: 0,\n endSegmentIndex: segmentation.len,\n consumedEndSegmentIndex: segmentation.len,\n }];\n }\n const chunks = [];\n let startSegmentIndex = 0;\n for (let i = 0; i < segmentation.len; i++) {\n if (segmentation.kinds[i] !== 'hard-break')\n continue;\n chunks.push({\n startSegmentIndex,\n endSegmentIndex: i,\n consumedEndSegmentIndex: i + 1,\n });\n startSegmentIndex = i + 1;\n }\n if (startSegmentIndex < segmentation.len) {\n chunks.push({\n startSegmentIndex,\n endSegmentIndex: segmentation.len,\n consumedEndSegmentIndex: segmentation.len,\n });\n }\n return chunks;\n}\nexport function analyzeText(text, profile, whiteSpace = 'normal') {\n const whiteSpaceProfile = getWhiteSpaceProfile(whiteSpace);\n const normalized = whiteSpaceProfile.mode === 'pre-wrap'\n ? normalizeWhitespacePreWrap(text)\n : normalizeWhitespaceNormal(text);\n if (normalized.length === 0) {\n return {\n normalized,\n chunks: [],\n len: 0,\n texts: [],\n isWordLike: [],\n kinds: [],\n starts: [],\n };\n }\n const segmentation = buildMergedSegmentation(normalized, profile, whiteSpaceProfile);\n return {\n normalized,\n chunks: compileAnalysisChunks(segmentation, whiteSpaceProfile),\n ...segmentation,\n };\n}\n","import { isCJK } from './analysis.js';\nlet measureContext = null;\nconst segmentMetricCaches = new Map();\nlet cachedEngineProfile = null;\nconst emojiPresentationRe = /\\p{Emoji_Presentation}/u;\nconst maybeEmojiRe = /[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u;\nlet sharedGraphemeSegmenter = null;\nconst emojiCorrectionCache = new Map();\nexport function getMeasureContext() {\n if (measureContext !== null)\n return measureContext;\n if (typeof OffscreenCanvas !== 'undefined') {\n measureContext = new OffscreenCanvas(1, 1).getContext('2d');\n return measureContext;\n }\n if (typeof document !== 'undefined') {\n measureContext = document.createElement('canvas').getContext('2d');\n return measureContext;\n }\n throw new Error('Text measurement requires OffscreenCanvas or a DOM canvas context.');\n}\nexport function getSegmentMetricCache(font) {\n let cache = segmentMetricCaches.get(font);\n if (!cache) {\n cache = new Map();\n segmentMetricCaches.set(font, cache);\n }\n return cache;\n}\nexport function getSegmentMetrics(seg, cache) {\n let metrics = cache.get(seg);\n if (metrics === undefined) {\n const ctx = getMeasureContext();\n metrics = {\n width: ctx.measureText(seg).width,\n containsCJK: isCJK(seg),\n };\n cache.set(seg, metrics);\n }\n return metrics;\n}\nexport function getEngineProfile() {\n if (cachedEngineProfile !== null)\n return cachedEngineProfile;\n if (typeof navigator === 'undefined') {\n cachedEngineProfile = {\n lineFitEpsilon: 0.005,\n carryCJKAfterClosingQuote: false,\n preferPrefixWidthsForBreakableRuns: false,\n preferEarlySoftHyphenBreak: false,\n };\n return cachedEngineProfile;\n }\n const ua = navigator.userAgent;\n const vendor = navigator.vendor;\n const isSafari = vendor === 'Apple Computer, Inc.' &&\n ua.includes('Safari/') &&\n !ua.includes('Chrome/') &&\n !ua.includes('Chromium/') &&\n !ua.includes('CriOS/') &&\n !ua.includes('FxiOS/') &&\n !ua.includes('EdgiOS/');\n const isChromium = ua.includes('Chrome/') ||\n ua.includes('Chromium/') ||\n ua.includes('CriOS/') ||\n ua.includes('Edg/');\n cachedEngineProfile = {\n lineFitEpsilon: isSafari ? 1 / 64 : 0.005,\n carryCJKAfterClosingQuote: isChromium,\n preferPrefixWidthsForBreakableRuns: isSafari,\n preferEarlySoftHyphenBreak: isSafari,\n };\n return cachedEngineProfile;\n}\nexport function parseFontSize(font) {\n const m = font.match(/(\\d+(?:\\.\\d+)?)\\s*px/);\n return m ? parseFloat(m[1]) : 16;\n}\nfunction getSharedGraphemeSegmenter() {\n if (sharedGraphemeSegmenter === null) {\n sharedGraphemeSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n }\n return sharedGraphemeSegmenter;\n}\nfunction isEmojiGrapheme(g) {\n return emojiPresentationRe.test(g) || g.includes('\\uFE0F');\n}\nexport function textMayContainEmoji(text) {\n return maybeEmojiRe.test(text);\n}\nfunction getEmojiCorrection(font, fontSize) {\n let correction = emojiCorrectionCache.get(font);\n if (correction !== undefined)\n return correction;\n const ctx = getMeasureContext();\n ctx.font = font;\n const canvasW = ctx.measureText('\\u{1F600}').width;\n correction = 0;\n if (canvasW > fontSize + 0.5 &&\n typeof document !== 'undefined' &&\n document.body !== null) {\n const span = document.createElement('span');\n span.style.font = font;\n span.style.display = 'inline-block';\n span.style.visibility = 'hidden';\n span.style.position = 'absolute';\n span.textContent = '\\u{1F600}';\n document.body.appendChild(span);\n const domW = span.getBoundingClientRect().width;\n document.body.removeChild(span);\n if (canvasW - domW > 0.5) {\n correction = canvasW - domW;\n }\n }\n emojiCorrectionCache.set(font, correction);\n return correction;\n}\nfunction countEmojiGraphemes(text) {\n let count = 0;\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const g of graphemeSegmenter.segment(text)) {\n if (isEmojiGrapheme(g.segment))\n count++;\n }\n return count;\n}\nfunction getEmojiCount(seg, metrics) {\n if (metrics.emojiCount === undefined) {\n metrics.emojiCount = countEmojiGraphemes(seg);\n }\n return metrics.emojiCount;\n}\nexport function getCorrectedSegmentWidth(seg, metrics, emojiCorrection) {\n if (emojiCorrection === 0)\n return metrics.width;\n return metrics.width - getEmojiCount(seg, metrics) * emojiCorrection;\n}\nexport function getSegmentGraphemeWidths(seg, metrics, cache, emojiCorrection) {\n if (metrics.graphemeWidths !== undefined)\n return metrics.graphemeWidths;\n const widths = [];\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const gs of graphemeSegmenter.segment(seg)) {\n const graphemeMetrics = getSegmentMetrics(gs.segment, cache);\n widths.push(getCorrectedSegmentWidth(gs.segment, graphemeMetrics, emojiCorrection));\n }\n metrics.graphemeWidths = widths.length > 1 ? widths : null;\n return metrics.graphemeWidths;\n}\nexport function getSegmentGraphemePrefixWidths(seg, metrics, cache, emojiCorrection) {\n if (metrics.graphemePrefixWidths !== undefined)\n return metrics.graphemePrefixWidths;\n const prefixWidths = [];\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n let prefix = '';\n for (const gs of graphemeSegmenter.segment(seg)) {\n prefix += gs.segment;\n const prefixMetrics = getSegmentMetrics(prefix, cache);\n prefixWidths.push(getCorrectedSegmentWidth(prefix, prefixMetrics, emojiCorrection));\n }\n metrics.graphemePrefixWidths = prefixWidths.length > 1 ? prefixWidths : null;\n return metrics.graphemePrefixWidths;\n}\nexport function getFontMeasurementState(font, needsEmojiCorrection) {\n const ctx = getMeasureContext();\n ctx.font = font;\n const cache = getSegmentMetricCache(font);\n const fontSize = parseFontSize(font);\n const emojiCorrection = needsEmojiCorrection ? getEmojiCorrection(font, fontSize) : 0;\n return { cache, fontSize, emojiCorrection };\n}\nexport function clearMeasurementCaches() {\n segmentMetricCaches.clear();\n emojiCorrectionCache.clear();\n sharedGraphemeSegmenter = null;\n}\n","import { getEngineProfile } from './measurement.js';\nfunction canBreakAfter(kind) {\n return (kind === 'space' ||\n kind === 'preserved-space' ||\n kind === 'tab' ||\n kind === 'zero-width-break' ||\n kind === 'soft-hyphen');\n}\nfunction isSimpleCollapsibleSpace(kind) {\n return kind === 'space';\n}\nfunction getTabAdvance(lineWidth, tabStopAdvance) {\n if (tabStopAdvance <= 0)\n return 0;\n const remainder = lineWidth % tabStopAdvance;\n if (Math.abs(remainder) <= 1e-6)\n return tabStopAdvance;\n return tabStopAdvance - remainder;\n}\nfunction getBreakableAdvance(graphemeWidths, graphemePrefixWidths, graphemeIndex, preferPrefixWidths) {\n if (!preferPrefixWidths || graphemePrefixWidths === null) {\n return graphemeWidths[graphemeIndex];\n }\n return graphemePrefixWidths[graphemeIndex] - (graphemeIndex > 0 ? graphemePrefixWidths[graphemeIndex - 1] : 0);\n}\nfunction fitSoftHyphenBreak(graphemeWidths, initialWidth, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, cumulativeWidths) {\n let fitCount = 0;\n let fittedWidth = initialWidth;\n while (fitCount < graphemeWidths.length) {\n const nextWidth = cumulativeWidths\n ? initialWidth + graphemeWidths[fitCount]\n : fittedWidth + graphemeWidths[fitCount];\n const nextLineWidth = fitCount + 1 < graphemeWidths.length\n ? nextWidth + discretionaryHyphenWidth\n : nextWidth;\n if (nextLineWidth > maxWidth + lineFitEpsilon)\n break;\n fittedWidth = nextWidth;\n fitCount++;\n }\n return { fitCount, fittedWidth };\n}\nfunction findChunkIndexForStart(prepared, segmentIndex) {\n for (let i = 0; i < prepared.chunks.length; i++) {\n const chunk = prepared.chunks[i];\n if (segmentIndex < chunk.consumedEndSegmentIndex)\n return i;\n }\n return -1;\n}\nexport function normalizeLineStart(prepared, start) {\n let segmentIndex = start.segmentIndex;\n const graphemeIndex = start.graphemeIndex;\n if (segmentIndex >= prepared.widths.length)\n return null;\n if (graphemeIndex > 0)\n return start;\n const chunkIndex = findChunkIndexForStart(prepared, segmentIndex);\n if (chunkIndex < 0)\n return null;\n const chunk = prepared.chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex && segmentIndex === chunk.startSegmentIndex) {\n return { segmentIndex, graphemeIndex: 0 };\n }\n if (segmentIndex < chunk.startSegmentIndex)\n segmentIndex = chunk.startSegmentIndex;\n while (segmentIndex < chunk.endSegmentIndex) {\n const kind = prepared.kinds[segmentIndex];\n if (kind !== 'space' && kind !== 'zero-width-break' && kind !== 'soft-hyphen') {\n return { segmentIndex, graphemeIndex: 0 };\n }\n segmentIndex++;\n }\n if (chunk.consumedEndSegmentIndex >= prepared.widths.length)\n return null;\n return { segmentIndex: chunk.consumedEndSegmentIndex, graphemeIndex: 0 };\n}\nexport function countPreparedLines(prepared, maxWidth) {\n if (prepared.simpleLineWalkFastPath) {\n return countPreparedLinesSimple(prepared, maxWidth);\n }\n return walkPreparedLines(prepared, maxWidth);\n}\nfunction countPreparedLinesSimple(prepared, maxWidth) {\n const { widths, kinds, breakableWidths, breakablePrefixWidths } = prepared;\n if (widths.length === 0)\n return 0;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n let lineCount = 0;\n let lineW = 0;\n let hasContent = false;\n function placeOnFreshLine(segmentIndex) {\n const w = widths[segmentIndex];\n if (w > maxWidth && breakableWidths[segmentIndex] !== null) {\n const gWidths = breakableWidths[segmentIndex];\n const gPrefixWidths = breakablePrefixWidths[segmentIndex] ?? null;\n lineW = 0;\n for (let g = 0; g < gWidths.length; g++) {\n const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);\n if (lineW > 0 && lineW + gw > maxWidth + lineFitEpsilon) {\n lineCount++;\n lineW = gw;\n }\n else {\n if (lineW === 0)\n lineCount++;\n lineW += gw;\n }\n }\n }\n else {\n lineW = w;\n lineCount++;\n }\n hasContent = true;\n }\n for (let i = 0; i < widths.length; i++) {\n const w = widths[i];\n const kind = kinds[i];\n if (!hasContent) {\n placeOnFreshLine(i);\n continue;\n }\n const newW = lineW + w;\n if (newW > maxWidth + lineFitEpsilon) {\n if (isSimpleCollapsibleSpace(kind))\n continue;\n lineW = 0;\n hasContent = false;\n placeOnFreshLine(i);\n continue;\n }\n lineW = newW;\n }\n if (!hasContent)\n return lineCount + 1;\n return lineCount;\n}\nfunction walkPreparedLinesSimple(prepared, maxWidth, onLine) {\n const { widths, kinds, breakableWidths, breakablePrefixWidths } = prepared;\n if (widths.length === 0)\n return 0;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n let lineCount = 0;\n let lineW = 0;\n let hasContent = false;\n let lineStartSegmentIndex = 0;\n let lineStartGraphemeIndex = 0;\n let lineEndSegmentIndex = 0;\n let lineEndGraphemeIndex = 0;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakPaintWidth = 0;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakPaintWidth = 0;\n }\n function emitCurrentLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n lineCount++;\n onLine?.({\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n });\n lineW = 0;\n hasContent = false;\n clearPendingBreak();\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = graphemeIndex;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreak(segmentIndex, segmentWidth) {\n if (!canBreakAfter(kinds[segmentIndex]))\n return;\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakPaintWidth = lineW - segmentWidth;\n }\n function appendBreakableSegment(segmentIndex) {\n appendBreakableSegmentFrom(segmentIndex, 0);\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const gWidths = breakableWidths[segmentIndex];\n const gPrefixWidths = breakablePrefixWidths[segmentIndex] ?? null;\n for (let g = startGraphemeIndex; g < gWidths.length; g++) {\n const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n continue;\n }\n if (lineW + gw > maxWidth + lineFitEpsilon) {\n emitCurrentLine();\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else {\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === gWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n }\n let i = 0;\n while (i < widths.length) {\n const w = widths[i];\n const kind = kinds[i];\n if (!hasContent) {\n if (w > maxWidth && breakableWidths[i] !== null) {\n appendBreakableSegment(i);\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreak(i, w);\n i++;\n continue;\n }\n const newW = lineW + w;\n if (newW > maxWidth + lineFitEpsilon) {\n if (canBreakAfter(kind)) {\n appendWholeSegment(i, w);\n emitCurrentLine(i + 1, 0, lineW - w);\n i++;\n continue;\n }\n if (pendingBreakSegmentIndex >= 0) {\n emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n continue;\n }\n if (w > maxWidth && breakableWidths[i] !== null) {\n emitCurrentLine();\n appendBreakableSegment(i);\n i++;\n continue;\n }\n emitCurrentLine();\n continue;\n }\n appendWholeSegment(i, w);\n updatePendingBreak(i, w);\n i++;\n }\n if (hasContent)\n emitCurrentLine();\n return lineCount;\n}\nexport function walkPreparedLines(prepared, maxWidth, onLine) {\n if (prepared.simpleLineWalkFastPath) {\n return walkPreparedLinesSimple(prepared, maxWidth, onLine);\n }\n const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds, breakableWidths, breakablePrefixWidths, discretionaryHyphenWidth, tabStopAdvance, chunks, } = prepared;\n if (widths.length === 0 || chunks.length === 0)\n return 0;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n let lineCount = 0;\n let lineW = 0;\n let hasContent = false;\n let lineStartSegmentIndex = 0;\n let lineStartGraphemeIndex = 0;\n let lineEndSegmentIndex = 0;\n let lineEndGraphemeIndex = 0;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakFitWidth = 0;\n let pendingBreakPaintWidth = 0;\n let pendingBreakKind = null;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakFitWidth = 0;\n pendingBreakPaintWidth = 0;\n pendingBreakKind = null;\n }\n function emitCurrentLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n lineCount++;\n onLine?.({\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n });\n lineW = 0;\n hasContent = false;\n clearPendingBreak();\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = graphemeIndex;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreakForWholeSegment(segmentIndex, segmentWidth) {\n if (!canBreakAfter(kinds[segmentIndex]))\n return;\n const fitAdvance = kinds[segmentIndex] === 'tab' ? 0 : lineEndFitAdvances[segmentIndex];\n const paintAdvance = kinds[segmentIndex] === 'tab' ? segmentWidth : lineEndPaintAdvances[segmentIndex];\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakFitWidth = lineW - segmentWidth + fitAdvance;\n pendingBreakPaintWidth = lineW - segmentWidth + paintAdvance;\n pendingBreakKind = kinds[segmentIndex];\n }\n function appendBreakableSegment(segmentIndex) {\n appendBreakableSegmentFrom(segmentIndex, 0);\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const gWidths = breakableWidths[segmentIndex];\n const gPrefixWidths = breakablePrefixWidths[segmentIndex] ?? null;\n for (let g = startGraphemeIndex; g < gWidths.length; g++) {\n const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n continue;\n }\n if (lineW + gw > maxWidth + lineFitEpsilon) {\n emitCurrentLine();\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else {\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === gWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n }\n function continueSoftHyphenBreakableSegment(segmentIndex) {\n if (pendingBreakKind !== 'soft-hyphen')\n return false;\n const gWidths = breakableWidths[segmentIndex];\n if (gWidths === null)\n return false;\n const fitWidths = engineProfile.preferPrefixWidthsForBreakableRuns\n ? breakablePrefixWidths[segmentIndex] ?? gWidths\n : gWidths;\n const usesPrefixWidths = fitWidths !== gWidths;\n const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, usesPrefixWidths);\n if (fitCount === 0)\n return false;\n lineW = fittedWidth;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = fitCount;\n clearPendingBreak();\n if (fitCount === gWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n return true;\n }\n emitCurrentLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);\n appendBreakableSegmentFrom(segmentIndex, fitCount);\n return true;\n }\n function emitEmptyChunk(chunk) {\n lineCount++;\n onLine?.({\n startSegmentIndex: chunk.startSegmentIndex,\n startGraphemeIndex: 0,\n endSegmentIndex: chunk.consumedEndSegmentIndex,\n endGraphemeIndex: 0,\n width: 0,\n });\n clearPendingBreak();\n }\n for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {\n const chunk = chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex) {\n emitEmptyChunk(chunk);\n continue;\n }\n hasContent = false;\n lineW = 0;\n lineStartSegmentIndex = chunk.startSegmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = chunk.startSegmentIndex;\n lineEndGraphemeIndex = 0;\n clearPendingBreak();\n let i = chunk.startSegmentIndex;\n while (i < chunk.endSegmentIndex) {\n const kind = kinds[i];\n const w = kind === 'tab' ? getTabAdvance(lineW, tabStopAdvance) : widths[i];\n if (kind === 'soft-hyphen') {\n if (hasContent) {\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n pendingBreakSegmentIndex = i + 1;\n pendingBreakFitWidth = lineW + discretionaryHyphenWidth;\n pendingBreakPaintWidth = lineW + discretionaryHyphenWidth;\n pendingBreakKind = kind;\n }\n i++;\n continue;\n }\n if (!hasContent) {\n if (w > maxWidth && breakableWidths[i] !== null) {\n appendBreakableSegment(i);\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreakForWholeSegment(i, w);\n i++;\n continue;\n }\n const newW = lineW + w;\n if (newW > maxWidth + lineFitEpsilon) {\n const currentBreakFitWidth = lineW + (kind === 'tab' ? 0 : lineEndFitAdvances[i]);\n const currentBreakPaintWidth = lineW + (kind === 'tab' ? w : lineEndPaintAdvances[i]);\n if (pendingBreakKind === 'soft-hyphen' &&\n engineProfile.preferEarlySoftHyphenBreak &&\n pendingBreakFitWidth <= maxWidth + lineFitEpsilon) {\n emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n continue;\n }\n if (pendingBreakKind === 'soft-hyphen' && continueSoftHyphenBreakableSegment(i)) {\n i++;\n continue;\n }\n if (canBreakAfter(kind) && currentBreakFitWidth <= maxWidth + lineFitEpsilon) {\n appendWholeSegment(i, w);\n emitCurrentLine(i + 1, 0, currentBreakPaintWidth);\n i++;\n continue;\n }\n if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <= maxWidth + lineFitEpsilon) {\n emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n continue;\n }\n if (w > maxWidth && breakableWidths[i] !== null) {\n emitCurrentLine();\n appendBreakableSegment(i);\n i++;\n continue;\n }\n emitCurrentLine();\n continue;\n }\n appendWholeSegment(i, w);\n updatePendingBreakForWholeSegment(i, w);\n i++;\n }\n if (hasContent) {\n const finalPaintWidth = pendingBreakSegmentIndex === chunk.consumedEndSegmentIndex\n ? pendingBreakPaintWidth\n : lineW;\n emitCurrentLine(chunk.consumedEndSegmentIndex, 0, finalPaintWidth);\n }\n }\n return lineCount;\n}\nexport function layoutNextLineRange(prepared, start, maxWidth) {\n const normalizedStart = normalizeLineStart(prepared, start);\n if (normalizedStart === null)\n return null;\n if (prepared.simpleLineWalkFastPath) {\n return layoutNextLineRangeSimple(prepared, normalizedStart, maxWidth);\n }\n const chunkIndex = findChunkIndexForStart(prepared, normalizedStart.segmentIndex);\n if (chunkIndex < 0)\n return null;\n const chunk = prepared.chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex) {\n return {\n startSegmentIndex: chunk.startSegmentIndex,\n startGraphemeIndex: 0,\n endSegmentIndex: chunk.consumedEndSegmentIndex,\n endGraphemeIndex: 0,\n width: 0,\n };\n }\n const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds, breakableWidths, breakablePrefixWidths, discretionaryHyphenWidth, tabStopAdvance, } = prepared;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n let lineW = 0;\n let hasContent = false;\n const lineStartSegmentIndex = normalizedStart.segmentIndex;\n const lineStartGraphemeIndex = normalizedStart.graphemeIndex;\n let lineEndSegmentIndex = lineStartSegmentIndex;\n let lineEndGraphemeIndex = lineStartGraphemeIndex;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakFitWidth = 0;\n let pendingBreakPaintWidth = 0;\n let pendingBreakKind = null;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakFitWidth = 0;\n pendingBreakPaintWidth = 0;\n pendingBreakKind = null;\n }\n function finishLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n if (!hasContent)\n return null;\n return {\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n };\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreakForWholeSegment(segmentIndex, segmentWidth) {\n if (!canBreakAfter(kinds[segmentIndex]))\n return;\n const fitAdvance = kinds[segmentIndex] === 'tab' ? 0 : lineEndFitAdvances[segmentIndex];\n const paintAdvance = kinds[segmentIndex] === 'tab' ? segmentWidth : lineEndPaintAdvances[segmentIndex];\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakFitWidth = lineW - segmentWidth + fitAdvance;\n pendingBreakPaintWidth = lineW - segmentWidth + paintAdvance;\n pendingBreakKind = kinds[segmentIndex];\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const gWidths = breakableWidths[segmentIndex];\n const gPrefixWidths = breakablePrefixWidths[segmentIndex] ?? null;\n for (let g = startGraphemeIndex; g < gWidths.length; g++) {\n const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n continue;\n }\n if (lineW + gw > maxWidth + lineFitEpsilon) {\n return finishLine();\n }\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === gWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n return null;\n }\n function maybeFinishAtSoftHyphen(segmentIndex) {\n if (pendingBreakKind !== 'soft-hyphen' || pendingBreakSegmentIndex < 0)\n return null;\n const gWidths = breakableWidths[segmentIndex] ?? null;\n if (gWidths !== null) {\n const fitWidths = engineProfile.preferPrefixWidthsForBreakableRuns\n ? breakablePrefixWidths[segmentIndex] ?? gWidths\n : gWidths;\n const usesPrefixWidths = fitWidths !== gWidths;\n const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, usesPrefixWidths);\n if (fitCount === gWidths.length) {\n lineW = fittedWidth;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n clearPendingBreak();\n return null;\n }\n if (fitCount > 0) {\n return finishLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);\n }\n }\n if (pendingBreakFitWidth <= maxWidth + lineFitEpsilon) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n return null;\n }\n for (let i = normalizedStart.segmentIndex; i < chunk.endSegmentIndex; i++) {\n const kind = kinds[i];\n const startGraphemeIndex = i === normalizedStart.segmentIndex ? normalizedStart.graphemeIndex : 0;\n const w = kind === 'tab' ? getTabAdvance(lineW, tabStopAdvance) : widths[i];\n if (kind === 'soft-hyphen' && startGraphemeIndex === 0) {\n if (hasContent) {\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n pendingBreakSegmentIndex = i + 1;\n pendingBreakFitWidth = lineW + discretionaryHyphenWidth;\n pendingBreakPaintWidth = lineW + discretionaryHyphenWidth;\n pendingBreakKind = kind;\n }\n continue;\n }\n if (!hasContent) {\n if (startGraphemeIndex > 0) {\n const line = appendBreakableSegmentFrom(i, startGraphemeIndex);\n if (line !== null)\n return line;\n }\n else if (w > maxWidth && breakableWidths[i] !== null) {\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreakForWholeSegment(i, w);\n continue;\n }\n const newW = lineW + w;\n if (newW > maxWidth + lineFitEpsilon) {\n const currentBreakFitWidth = lineW + (kind === 'tab' ? 0 : lineEndFitAdvances[i]);\n const currentBreakPaintWidth = lineW + (kind === 'tab' ? w : lineEndPaintAdvances[i]);\n if (pendingBreakKind === 'soft-hyphen' &&\n engineProfile.preferEarlySoftHyphenBreak &&\n pendingBreakFitWidth <= maxWidth + lineFitEpsilon) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n const softBreakLine = maybeFinishAtSoftHyphen(i);\n if (softBreakLine !== null)\n return softBreakLine;\n if (canBreakAfter(kind) && currentBreakFitWidth <= maxWidth + lineFitEpsilon) {\n appendWholeSegment(i, w);\n return finishLine(i + 1, 0, currentBreakPaintWidth);\n }\n if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <= maxWidth + lineFitEpsilon) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n if (w > maxWidth && breakableWidths[i] !== null) {\n const currentLine = finishLine();\n if (currentLine !== null)\n return currentLine;\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n return finishLine();\n }\n appendWholeSegment(i, w);\n updatePendingBreakForWholeSegment(i, w);\n }\n if (pendingBreakSegmentIndex === chunk.consumedEndSegmentIndex && lineEndGraphemeIndex === 0) {\n return finishLine(chunk.consumedEndSegmentIndex, 0, pendingBreakPaintWidth);\n }\n return finishLine(chunk.consumedEndSegmentIndex, 0, lineW);\n}\nfunction layoutNextLineRangeSimple(prepared, normalizedStart, maxWidth) {\n const { widths, kinds, breakableWidths, breakablePrefixWidths } = prepared;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n let lineW = 0;\n let hasContent = false;\n const lineStartSegmentIndex = normalizedStart.segmentIndex;\n const lineStartGraphemeIndex = normalizedStart.graphemeIndex;\n let lineEndSegmentIndex = lineStartSegmentIndex;\n let lineEndGraphemeIndex = lineStartGraphemeIndex;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakPaintWidth = 0;\n function finishLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n if (!hasContent)\n return null;\n return {\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n };\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreak(segmentIndex, segmentWidth) {\n if (!canBreakAfter(kinds[segmentIndex]))\n return;\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakPaintWidth = lineW - segmentWidth;\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const gWidths = breakableWidths[segmentIndex];\n const gPrefixWidths = breakablePrefixWidths[segmentIndex] ?? null;\n for (let g = startGraphemeIndex; g < gWidths.length; g++) {\n const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n continue;\n }\n if (lineW + gw > maxWidth + lineFitEpsilon) {\n return finishLine();\n }\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === gWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n return null;\n }\n for (let i = normalizedStart.segmentIndex; i < widths.length; i++) {\n const w = widths[i];\n const kind = kinds[i];\n const startGraphemeIndex = i === normalizedStart.segmentIndex ? normalizedStart.graphemeIndex : 0;\n if (!hasContent) {\n if (startGraphemeIndex > 0) {\n const line = appendBreakableSegmentFrom(i, startGraphemeIndex);\n if (line !== null)\n return line;\n }\n else if (w > maxWidth && breakableWidths[i] !== null) {\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreak(i, w);\n continue;\n }\n const newW = lineW + w;\n if (newW > maxWidth + lineFitEpsilon) {\n if (canBreakAfter(kind)) {\n appendWholeSegment(i, w);\n return finishLine(i + 1, 0, lineW - w);\n }\n if (pendingBreakSegmentIndex >= 0) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n if (w > maxWidth && breakableWidths[i] !== null) {\n const currentLine = finishLine();\n if (currentLine !== null)\n return currentLine;\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n return finishLine();\n }\n appendWholeSegment(i, w);\n updatePendingBreak(i, w);\n }\n return finishLine();\n}\n","// Text measurement for browser environments using canvas measureText.\n//\n// Problem: DOM-based text measurement (getBoundingClientRect, offsetHeight)\n// forces synchronous layout reflow. When components independently measure text,\n// each measurement triggers a reflow of the entire document. This creates\n// read/write interleaving that can cost 30ms+ per frame for 500 text blocks.\n//\n// Solution: two-phase measurement centered around canvas measureText.\n// prepare(text, font) — segments text via Intl.Segmenter, measures each word\n// via canvas, caches widths, and does one cached DOM calibration read per\n// font when emoji correction is needed. Call once when text first appears.\n// layout(prepared, maxWidth, lineHeight) — walks cached word widths with pure\n// arithmetic to count lines and compute height. Call on every resize.\n// ~0.0002ms per text.\n//\n// i18n: Intl.Segmenter handles CJK (per-character breaking), Thai, Arabic, etc.\n// Bidi: simplified rich-path metadata for mixed LTR/RTL custom rendering.\n// Punctuation merging: \"better.\" measured as one unit (matches CSS behavior).\n// Trailing whitespace: hangs past line edge without triggering breaks (CSS behavior).\n// overflow-wrap: pre-measured grapheme widths enable character-level word breaking.\n//\n// Emoji correction: Chrome/Firefox canvas measures emoji wider than DOM at font\n// sizes <24px on macOS (Apple Color Emoji). The inflation is constant per emoji\n// grapheme at a given size, font-independent. Auto-detected by comparing canvas\n// vs actual DOM emoji width (one cached DOM read per font). Safari canvas and\n// DOM agree (both wider than fontSize), so correction = 0 there.\n//\n// Limitations:\n// - system-ui font: canvas resolves to different optical variants than DOM on macOS.\n// Use named fonts (Helvetica, Inter, etc.) for guaranteed accuracy.\n// See RESEARCH.md \"Discovery: system-ui font resolution mismatch\".\n//\n// Based on Sebastian Markbage's text-layout research (github.com/chenglou/text-layout).\nimport { computeSegmentLevels } from './bidi.js';\nimport { analyzeText, clearAnalysisCaches, endsWithClosingQuote, isCJK, kinsokuEnd, kinsokuStart, leftStickyPunctuation, setAnalysisLocale, } from './analysis.js';\nimport { clearMeasurementCaches, getCorrectedSegmentWidth, getEngineProfile, getFontMeasurementState, getSegmentGraphemePrefixWidths, getSegmentGraphemeWidths, getSegmentMetrics, textMayContainEmoji, } from './measurement.js';\nimport { countPreparedLines, layoutNextLineRange as stepPreparedLineRange, walkPreparedLines, } from './line-break.js';\nlet sharedGraphemeSegmenter = null;\n// Rich-path only. Reuses grapheme splits while materializing multiple lines\n// from the same prepared handle, without pushing that cache into the API.\nlet sharedLineTextCaches = new WeakMap();\nfunction getSharedGraphemeSegmenter() {\n if (sharedGraphemeSegmenter === null) {\n sharedGraphemeSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n }\n return sharedGraphemeSegmenter;\n}\n// --- Public API ---\nfunction createEmptyPrepared(includeSegments) {\n if (includeSegments) {\n return {\n widths: [],\n lineEndFitAdvances: [],\n lineEndPaintAdvances: [],\n kinds: [],\n simpleLineWalkFastPath: true,\n segLevels: null,\n breakableWidths: [],\n breakablePrefixWidths: [],\n discretionaryHyphenWidth: 0,\n tabStopAdvance: 0,\n chunks: [],\n segments: [],\n };\n }\n return {\n widths: [],\n lineEndFitAdvances: [],\n lineEndPaintAdvances: [],\n kinds: [],\n simpleLineWalkFastPath: true,\n segLevels: null,\n breakableWidths: [],\n breakablePrefixWidths: [],\n discretionaryHyphenWidth: 0,\n tabStopAdvance: 0,\n chunks: [],\n };\n}\nfunction measureAnalysis(analysis, font, includeSegments) {\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n const engineProfile = getEngineProfile();\n const { cache, emojiCorrection } = getFontMeasurementState(font, textMayContainEmoji(analysis.normalized));\n const discretionaryHyphenWidth = getCorrectedSegmentWidth('-', getSegmentMetrics('-', cache), emojiCorrection);\n const spaceWidth = getCorrectedSegmentWidth(' ', getSegmentMetrics(' ', cache), emojiCorrection);\n const tabStopAdvance = spaceWidth * 8;\n if (analysis.len === 0)\n return createEmptyPrepared(includeSegments);\n const widths = [];\n const lineEndFitAdvances = [];\n const lineEndPaintAdvances = [];\n const kinds = [];\n let simpleLineWalkFastPath = analysis.chunks.length <= 1;\n const segStarts = includeSegments ? [] : null;\n const breakableWidths = [];\n const breakablePrefixWidths = [];\n const segments = includeSegments ? [] : null;\n const preparedStartByAnalysisIndex = Array.from({ length: analysis.len });\n const preparedEndByAnalysisIndex = Array.from({ length: analysis.len });\n function pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, breakable, breakablePrefix) {\n if (kind !== 'text' && kind !== 'space' && kind !== 'zero-width-break') {\n simpleLineWalkFastPath = false;\n }\n widths.push(width);\n lineEndFitAdvances.push(lineEndFitAdvance);\n lineEndPaintAdvances.push(lineEndPaintAdvance);\n kinds.push(kind);\n segStarts?.push(start);\n breakableWidths.push(breakable);\n breakablePrefixWidths.push(breakablePrefix);\n if (segments !== null)\n segments.push(text);\n }\n for (let mi = 0; mi < analysis.len; mi++) {\n preparedStartByAnalysisIndex[mi] = widths.length;\n const segText = analysis.texts[mi];\n const segWordLike = analysis.isWordLike[mi];\n const segKind = analysis.kinds[mi];\n const segStart = analysis.starts[mi];\n if (segKind === 'soft-hyphen') {\n pushMeasuredSegment(segText, 0, discretionaryHyphenWidth, discretionaryHyphenWidth, segKind, segStart, null, null);\n preparedEndByAnalysisIndex[mi] = widths.length;\n continue;\n }\n if (segKind === 'hard-break') {\n pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null, null);\n preparedEndByAnalysisIndex[mi] = widths.length;\n continue;\n }\n if (segKind === 'tab') {\n pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null, null);\n preparedEndByAnalysisIndex[mi] = widths.length;\n continue;\n }\n const segMetrics = getSegmentMetrics(segText, cache);\n if (segKind === 'text' && segMetrics.containsCJK) {\n let unitText = '';\n let unitStart = 0;\n for (const gs of graphemeSegmenter.segment(segText)) {\n const grapheme = gs.segment;\n if (unitText.length === 0) {\n unitText = grapheme;\n unitStart = gs.index;\n continue;\n }\n if (kinsokuEnd.has(unitText) ||\n kinsokuStart.has(grapheme) ||\n leftStickyPunctuation.has(grapheme) ||\n (engineProfile.carryCJKAfterClosingQuote &&\n isCJK(grapheme) &&\n endsWithClosingQuote(unitText))) {\n unitText += grapheme;\n continue;\n }\n const unitMetrics = getSegmentMetrics(unitText, cache);\n const w = getCorrectedSegmentWidth(unitText, unitMetrics, emojiCorrection);\n pushMeasuredSegment(unitText, w, w, w, 'text', segStart + unitStart, null, null);\n unitText = grapheme;\n unitStart = gs.index;\n }\n if (unitText.length > 0) {\n const unitMetrics = getSegmentMetrics(unitText, cache);\n const w = getCorrectedSegmentWidth(unitText, unitMetrics, emojiCorrection);\n pushMeasuredSegment(unitText, w, w, w, 'text', segStart + unitStart, null, null);\n }\n preparedEndByAnalysisIndex[mi] = widths.length;\n continue;\n }\n const w = getCorrectedSegmentWidth(segText, segMetrics, emojiCorrection);\n const lineEndFitAdvance = segKind === 'space' || segKind === 'preserved-space' || segKind === 'zero-width-break'\n ? 0\n : w;\n const lineEndPaintAdvance = segKind === 'space' || segKind === 'zero-width-break'\n ? 0\n : w;\n if (segWordLike && segText.length > 1) {\n const graphemeWidths = getSegmentGraphemeWidths(segText, segMetrics, cache, emojiCorrection);\n const graphemePrefixWidths = engineProfile.preferPrefixWidthsForBreakableRuns\n ? getSegmentGraphemePrefixWidths(segText, segMetrics, cache, emojiCorrection)\n : null;\n pushMeasuredSegment(segText, w, lineEndFitAdvance, lineEndPaintAdvance, segKind, segStart, graphemeWidths, graphemePrefixWidths);\n }\n else {\n pushMeasuredSegment(segText, w, lineEndFitAdvance, lineEndPaintAdvance, segKind, segStart, null, null);\n }\n preparedEndByAnalysisIndex[mi] = widths.length;\n }\n const chunks = mapAnalysisChunksToPreparedChunks(analysis.chunks, preparedStartByAnalysisIndex, preparedEndByAnalysisIndex);\n const segLevels = segStarts === null ? null : computeSegmentLevels(analysis.normalized, segStarts);\n if (segments !== null) {\n return {\n widths,\n lineEndFitAdvances,\n lineEndPaintAdvances,\n kinds,\n simpleLineWalkFastPath,\n segLevels,\n breakableWidths,\n breakablePrefixWidths,\n discretionaryHyphenWidth,\n tabStopAdvance,\n chunks,\n segments,\n };\n }\n return {\n widths,\n lineEndFitAdvances,\n lineEndPaintAdvances,\n kinds,\n simpleLineWalkFastPath,\n segLevels,\n breakableWidths,\n breakablePrefixWidths,\n discretionaryHyphenWidth,\n tabStopAdvance,\n chunks,\n };\n}\nfunction mapAnalysisChunksToPreparedChunks(chunks, preparedStartByAnalysisIndex, preparedEndByAnalysisIndex) {\n const preparedChunks = [];\n for (let i = 0; i < chunks.length; i++) {\n const chunk = chunks[i];\n const startSegmentIndex = chunk.startSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.startSegmentIndex]\n : preparedEndByAnalysisIndex[preparedEndByAnalysisIndex.length - 1] ?? 0;\n const endSegmentIndex = chunk.endSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.endSegmentIndex]\n : preparedEndByAnalysisIndex[preparedEndByAnalysisIndex.length - 1] ?? 0;\n const consumedEndSegmentIndex = chunk.consumedEndSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.consumedEndSegmentIndex]\n : preparedEndByAnalysisIndex[preparedEndByAnalysisIndex.length - 1] ?? 0;\n preparedChunks.push({\n startSegmentIndex,\n endSegmentIndex,\n consumedEndSegmentIndex,\n });\n }\n return preparedChunks;\n}\nfunction prepareInternal(text, font, includeSegments, options) {\n const analysis = analyzeText(text, getEngineProfile(), options?.whiteSpace);\n return measureAnalysis(analysis, font, includeSegments);\n}\n// Diagnostic-only helper used by the browser benchmark harness to separate the\n// text-analysis and measurement phases without duplicating the prepare logic.\nexport function profilePrepare(text, font, options) {\n const t0 = performance.now();\n const analysis = analyzeText(text, getEngineProfile(), options?.whiteSpace);\n const t1 = performance.now();\n const prepared = measureAnalysis(analysis, font, false);\n const t2 = performance.now();\n let breakableSegments = 0;\n for (const widths of prepared.breakableWidths) {\n if (widths !== null)\n breakableSegments++;\n }\n return {\n analysisMs: t1 - t0,\n measureMs: t2 - t1,\n totalMs: t2 - t0,\n analysisSegments: analysis.len,\n preparedSegments: prepared.widths.length,\n breakableSegments,\n };\n}\n// Prepare text for layout. Segments the text, measures each segment via canvas,\n// and stores the widths for fast relayout at any width. Call once per text block\n// (e.g. when a comment first appears). The result is width-independent — the\n// same PreparedText can be laid out at any maxWidth and lineHeight via layout().\n//\n// Steps:\n// 1. Normalize collapsible whitespace (CSS white-space: normal behavior)\n// 2. Segment via Intl.Segmenter (handles CJK, Thai, etc.)\n// 3. Merge punctuation into preceding word (\"better.\" as one unit)\n// 4. Split CJK words into individual graphemes (per-character line breaks)\n// 5. Measure each segment via canvas measureText, cache by (segment, font)\n// 6. Pre-measure graphemes of long words (for overflow-wrap: break-word)\n// 7. Correct emoji canvas inflation (auto-detected per font size)\n// 8. Optionally compute rich-path bidi metadata for custom renderers\nexport function prepare(text, font, options) {\n return prepareInternal(text, font, false, options);\n}\n// Rich variant used by callers that need enough information to render the\n// laid-out lines themselves.\nexport function prepareWithSegments(text, font, options) {\n return prepareInternal(text, font, true, options);\n}\nfunction getInternalPrepared(prepared) {\n return prepared;\n}\n// Layout prepared text at a given max width and caller-provided lineHeight.\n// Pure arithmetic on cached widths — no canvas calls, no DOM reads, no string\n// operations, no allocations.\n// ~0.0002ms per text block. Call on every resize.\n//\n// Line breaking rules (matching CSS white-space: normal + overflow-wrap: break-word):\n// - Break before any non-space segment that would overflow the line\n// - Trailing whitespace hangs past the line edge (doesn't trigger breaks)\n// - Segments wider than maxWidth are broken at grapheme boundaries\nexport function layout(prepared, maxWidth, lineHeight) {\n // Keep the resize hot path specialized. `layoutWithLines()` shares the same\n // break semantics but also tracks line ranges; the extra bookkeeping is too\n // expensive to pay on every hot-path `layout()` call.\n const lineCount = countPreparedLines(getInternalPrepared(prepared), maxWidth);\n return { lineCount, height: lineCount * lineHeight };\n}\nfunction getSegmentGraphemes(segmentIndex, segments, cache) {\n let graphemes = cache.get(segmentIndex);\n if (graphemes !== undefined)\n return graphemes;\n graphemes = [];\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const gs of graphemeSegmenter.segment(segments[segmentIndex])) {\n graphemes.push(gs.segment);\n }\n cache.set(segmentIndex, graphemes);\n return graphemes;\n}\nfunction getLineTextCache(prepared) {\n let cache = sharedLineTextCaches.get(prepared);\n if (cache !== undefined)\n return cache;\n cache = new Map();\n sharedLineTextCaches.set(prepared, cache);\n return cache;\n}\nfunction lineHasDiscretionaryHyphen(kinds, startSegmentIndex, startGraphemeIndex, endSegmentIndex) {\n return (endSegmentIndex > 0 &&\n kinds[endSegmentIndex - 1] === 'soft-hyphen' &&\n !(startSegmentIndex === endSegmentIndex && startGraphemeIndex > 0));\n}\nfunction buildLineTextFromRange(segments, kinds, cache, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {\n let text = '';\n const endsWithDiscretionaryHyphen = lineHasDiscretionaryHyphen(kinds, startSegmentIndex, startGraphemeIndex, endSegmentIndex);\n for (let i = startSegmentIndex; i < endSegmentIndex; i++) {\n if (kinds[i] === 'soft-hyphen' || kinds[i] === 'hard-break')\n continue;\n if (i === startSegmentIndex && startGraphemeIndex > 0) {\n text += getSegmentGraphemes(i, segments, cache).slice(startGraphemeIndex).join('');\n }\n else {\n text += segments[i];\n }\n }\n if (endGraphemeIndex > 0) {\n if (endsWithDiscretionaryHyphen)\n text += '-';\n text += getSegmentGraphemes(endSegmentIndex, segments, cache).slice(startSegmentIndex === endSegmentIndex ? startGraphemeIndex : 0, endGraphemeIndex).join('');\n }\n else if (endsWithDiscretionaryHyphen) {\n text += '-';\n }\n return text;\n}\nfunction createLayoutLine(prepared, cache, width, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {\n return {\n text: buildLineTextFromRange(prepared.segments, prepared.kinds, cache, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex),\n width,\n start: {\n segmentIndex: startSegmentIndex,\n graphemeIndex: startGraphemeIndex,\n },\n end: {\n segmentIndex: endSegmentIndex,\n graphemeIndex: endGraphemeIndex,\n },\n };\n}\nfunction materializeLayoutLine(prepared, cache, line) {\n return createLayoutLine(prepared, cache, line.width, line.startSegmentIndex, line.startGraphemeIndex, line.endSegmentIndex, line.endGraphemeIndex);\n}\nfunction toLayoutLineRange(line) {\n return {\n width: line.width,\n start: {\n segmentIndex: line.startSegmentIndex,\n graphemeIndex: line.startGraphemeIndex,\n },\n end: {\n segmentIndex: line.endSegmentIndex,\n graphemeIndex: line.endGraphemeIndex,\n },\n };\n}\nfunction stepLineRange(prepared, start, maxWidth) {\n const line = stepPreparedLineRange(prepared, start, maxWidth);\n if (line === null)\n return null;\n return toLayoutLineRange(line);\n}\nfunction materializeLine(prepared, line) {\n return createLayoutLine(prepared, getLineTextCache(prepared), line.width, line.start.segmentIndex, line.start.graphemeIndex, line.end.segmentIndex, line.end.graphemeIndex);\n}\n// Batch low-level line geometry pass. This is the non-materializing counterpart\n// to layoutWithLines(), useful for shrinkwrap and other aggregate geometry work.\nexport function walkLineRanges(prepared, maxWidth, onLine) {\n if (prepared.widths.length === 0)\n return 0;\n return walkPreparedLines(getInternalPrepared(prepared), maxWidth, line => {\n onLine(toLayoutLineRange(line));\n });\n}\nexport function layoutNextLine(prepared, start, maxWidth) {\n const line = stepLineRange(prepared, start, maxWidth);\n if (line === null)\n return null;\n return materializeLine(prepared, line);\n}\n// Rich layout API for callers that want the actual line contents and widths.\n// Caller still supplies lineHeight at layout time. Mirrors layout()'s break\n// decisions, but keeps extra per-line bookkeeping so it should stay off the\n// resize hot path.\nexport function layoutWithLines(prepared, maxWidth, lineHeight) {\n const lines = [];\n if (prepared.widths.length === 0)\n return { lineCount: 0, height: 0, lines };\n const graphemeCache = getLineTextCache(prepared);\n const lineCount = walkPreparedLines(getInternalPrepared(prepared), maxWidth, line => {\n lines.push(materializeLayoutLine(prepared, graphemeCache, line));\n });\n return { lineCount, height: lineCount * lineHeight, lines };\n}\nexport function clearCache() {\n clearAnalysisCaches();\n sharedGraphemeSegmenter = null;\n sharedLineTextCaches = new WeakMap();\n clearMeasurementCaches();\n}\nexport function setLocale(locale) {\n setAnalysisLocale(locale);\n clearCache();\n}\n","import {prepareWithSegments, layoutWithLines} from \"@chenglou/pretext\";\n\n/**\n * Strips HTML and \"un-escapes\" escape characters.\n * @param {String} input\n */\nfunction htmlDecode(input: string): string {\n if (input.replace(/\\s+/g, \"\") === \"\") return input;\n const doc = new DOMParser().parseFromString(\n input.replace(/<[^>]+>/g, \"\"),\n \"text/html\",\n );\n return doc.documentElement ? doc.documentElement.textContent! : input;\n}\n\n/**\n * Builds a CSS font shorthand string from a style object.\n * @param {Object} styleObj\n */\nfunction buildFont(styleObj: Record<string, string | number>): string {\n const style = styleObj[\"font-style\"] || \"normal\";\n const variant = styleObj[\"font-variant\"] || \"normal\";\n const weight = styleObj[\"font-weight\"] || 400;\n const size =\n typeof styleObj[\"font-size\"] === \"string\"\n ? styleObj[\"font-size\"]\n : `${styleObj[\"font-size\"] || 10}px`;\n const family = styleObj[\"font-family\"] || \"sans-serif\";\n return `${style} ${variant} ${weight} ${size} ${family}`;\n}\n\n/**\n * Measures the width of a single text string using pretext.\n * @param {String} text\n * @param {String} font CSS font shorthand\n */\nfunction measureWidth(text: string, font: string): number {\n if (!text) return 0;\n const prepared = prepareWithSegments(text, font);\n const result = layoutWithLines(prepared, Infinity, 20);\n return result.lines.length ? result.lines[0].width : 0;\n}\n\n/**\n Given a text string, returns the predicted pixel width of the string when placed into DOM.\n @param text The text string to measure.\n @param style CSS style properties to apply when measuring.\n*/\nexport default function (\n text: string,\n style?: Record<string, string | number>,\n): number;\nexport default function (\n text: string[],\n style?: Record<string, string | number>,\n): number[];\nexport default function (\n text: string | string[],\n style: Record<string, string | number> = {},\n): number | number[] {\n const font = buildFont(style);\n\n if (text instanceof Array)\n return text.map(t => measureWidth(htmlDecode(t), font));\n return measureWidth(htmlDecode(text), font);\n}\n","import {default as textWidth} from \"./textWidth.js\";\n\nconst alpha: string = \"abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890\",\n checked: Record<string, boolean> = {},\n height: number = 32;\n\nlet dejavu: number, macos: number, monospace: number, proportional: number;\n\n/**\n Given either a single font-family or a list of fonts, returns the name of the first font that can be rendered, or `false` if none are installed on the user's machine.\n @param font Can be either a valid CSS font-family string (single or comma-separated names) or an Array of string names.\n*/\nconst fontExists = (font: string | string[]): string | false => {\n if (!dejavu) {\n dejavu = textWidth(alpha, {\n \"font-family\": \"DejaVuSans\",\n \"font-size\": height,\n }) as number;\n macos = textWidth(alpha, {\n \"font-family\": \"-apple-system\",\n \"font-size\": height,\n }) as number;\n monospace = textWidth(alpha, {\n \"font-family\": \"monospace\",\n \"font-size\": height,\n }) as number;\n proportional = textWidth(alpha, {\n \"font-family\": \"sans-serif\",\n \"font-size\": height,\n }) as number;\n }\n\n if (!(font instanceof Array)) font = font.split(\",\");\n font = font.map(f => f.trim());\n\n for (let i = 0; i < font.length; i++) {\n const fam = font[i];\n if (\n checked[fam] ||\n [\"-apple-system\", \"monospace\", \"sans-serif\", \"DejaVuSans\"].includes(fam)\n )\n return fam;\n else if (checked[fam] === false) continue;\n const width = textWidth(alpha, {\n \"font-family\": fam,\n \"font-size\": height,\n }) as number;\n checked[fam] = width !== monospace;\n if (checked[fam]) checked[fam] = width !== proportional;\n if (macos && checked[fam]) checked[fam] = width !== macos;\n if (dejavu && checked[fam]) checked[fam] = width !== dejavu;\n if (checked[fam]) return fam;\n }\n\n return false;\n};\n\nexport default fontExists;\n","import {select} from \"d3-selection\";\n\n/**\n Given an HTMLElement and a \"width\" or \"height\" string, this function returns the current calculated size for the DOM element.\n @private\n*/\nfunction _elementSize(\n element: HTMLElement | null,\n s: \"width\" | \"height\",\n): number | undefined {\n if (!element) return undefined;\n\n if (\n (element as HTMLElement).tagName === undefined ||\n [\"BODY\", \"HTML\"].indexOf((element as HTMLElement).tagName) >= 0\n ) {\n let val = (window as any)[\n `inner${s.charAt(0).toUpperCase() + s.slice(1)}`\n ] as number;\n const elem = select(element);\n\n if (s === \"width\") {\n val -= parseFloat(elem.style(\"margin-left\"));\n val -= parseFloat(elem.style(\"margin-right\"));\n val -= parseFloat(elem.style(\"padding-left\"));\n val -= parseFloat(elem.style(\"padding-right\"));\n } else {\n val -= parseFloat(elem.style(\"margin-top\"));\n val -= parseFloat(elem.style(\"margin-bottom\"));\n val -= parseFloat(elem.style(\"padding-top\"));\n val -= parseFloat(elem.style(\"padding-bottom\"));\n }\n\n return val;\n } else {\n let val: number = element.getBoundingClientRect()[s];\n if (typeof val === \"number\" && val > 0) {\n if (s === \"height\") {\n val -= parseFloat(select(element).style(\"padding-top\"));\n val -= parseFloat(select(element).style(\"padding-bottom\"));\n val -= parseFloat(select(element).style(\"border-top\"));\n val -= parseFloat(select(element).style(\"border-bottom\"));\n } else {\n val -= parseFloat(select(element).style(\"padding-left\"));\n val -= parseFloat(select(element).style(\"padding-right\"));\n val -= parseFloat(select(element).style(\"border-left\"));\n val -= parseFloat(select(element).style(\"border-right\"));\n }\n return val;\n } else return _elementSize(element.parentNode as HTMLElement | null, s);\n }\n}\n\n/**\n Finds the available width and height for a specified HTMLElement, traversing it's parents until it finds something with constrained dimensions. Falls back to the inner dimensions of the browser window if none is found.\n @private\n*/\nexport default function (\n elem: HTMLElement,\n): [number | undefined, number | undefined] {\n return [_elementSize(elem, \"width\"), _elementSize(elem, \"height\")];\n}\n","/**\n Determines whether a given DOM element is visible within the current viewport, with an optional pixel buffer.\n @param elem The DOM element to check.\n @param buffer Extra pixel margin around the viewport boundary.\n*/\nexport default function (elem: Element, buffer: number = 0): boolean {\n const pageX = window.scrollX;\n const pageY = window.scrollY;\n\n const bounds = elem.getBoundingClientRect();\n const height = bounds.height,\n left = bounds.left + pageX,\n top = bounds.top + pageY,\n width = bounds.width;\n\n return (\n pageY + window.innerHeight > top + buffer &&\n pageY + buffer < top + height &&\n pageX + window.innerWidth > left + buffer &&\n pageX + buffer < left + width\n );\n}\n","export interface ParsedSides {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\n/**\n Converts a string of directional CSS shorthand values into an object with the values expanded.\n @param sides The CSS shorthand string to expand.\n */\nexport default function (sides: string | number): ParsedSides {\n let values: string[];\n if (typeof sides === \"number\") values = [`${sides}`];\n else values = sides.split(/\\s+/);\n\n if (values.length === 1)\n values = [values[0], values[0], values[0], values[0]];\n else if (values.length === 2) values = values.concat(values);\n else if (values.length === 3) values.push(values[1]);\n\n return [\"top\", \"right\", \"bottom\", \"left\"].reduce((acc, direction, i) => {\n const value = parseFloat(values[i]);\n acc[direction as keyof ParsedSides] = value || 0;\n return acc;\n }, {} as ParsedSides);\n}\n","/**\n Returns `true` if the HTML or body element has either the \"dir\" HTML attribute or the \"direction\" CSS property set to \"rtl\".\n*/\nexport default function (): boolean {\n return (\n document.documentElement.dir === \"rtl\" ||\n document.body.dir === \"rtl\" ||\n getComputedStyle(document.documentElement).direction === \"rtl\" ||\n getComputedStyle(document.body).direction === \"rtl\"\n );\n}\n","import type {Stylable} from \"./D3Selection.js\";\n\n/**\n Applies each key/value in an object as a style.\n @param e The d3 selection to apply styles to.\n @param s An object of key/value style pairs.\n*/\nexport default function (\n e: Stylable,\n s: Record<string, string | number | boolean | null> = {},\n): void {\n for (const k in s) if ({}.hasOwnProperty.call(s, k)) e.style(k, s[k]);\n}\n"],"names":["item","window","document","Element","Array","isArray","validObject","obj","assign","objects","target","i","length","source","isObject","Object","keys","forEach","prop","value","prototype","hasOwnProperty","call","slice","elem","node","bg","getComputedStyle","backgroundColor","parentElement","e","a","k","attr","d","undefined","NaN","includes","Date","Number","s","dayFormat","RegExp","exec","year","indexOf","replace","substring","date","setFullYear","strFormat","quarterPrefix","quarterSuffix","quarter","toLowerCase","monthPrefix","monthSuffix","month","iso8601","xhtml","svg","xlink","xml","xmlns","name","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","select","groups","_groups","m","subgroups","j","group","n","subgroup","subnode","__data__","Selection","_parents","array","x","from","empty","querySelectorAll","arrayAll","apply","arguments","selectorAll","parents","push","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","map","sparse","EnterNode","parent","datum","_next","_parent","appendChild","child","insertBefore","next","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","nodeByKeyValue","Map","keyValues","keyValue","has","set","get","delete","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","_exit","onenter","onupdate","onexit","selection","append","remove","merge","order","context","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","parentNode","compare","ascending","compareNode","b","sortgroups","sortgroup","sort","callback","size","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","getAttributeNS","getAttribute","each","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","add","join","splice","contains","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","parseTypenames","typenames","t","type","onRemove","typename","on","__on","o","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","selection_style","selection_property","classed","selection_classed","text","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","insert","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","dispatch","selection_dispatch","Symbol","iterator","selection_iterator","noop","_","test","Error","Dispatch","types","T","copy","that","args","c","concat","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","restart","delay","time","TypeError","sleep","stop","Infinity","timerFlush","wake","nap","poke","t0","t1","t2","clearTimeout","clearInterval","setInterval","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","id","index","timing","schedules","__transition","tween","duration","ease","state","init","schedule","self","start","tick","active","interrupt","constructor","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","define","color","channels","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","toString","hslConvert","format","l","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","pow","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","isNaN","max","round","h","Hsl","hsl","m2","hsl2rgb","clamph","clampt","linear","exponential","y","gamma","nogamma","rgbGamma","end","colorRgb","reA","reB","zero","one","bi","lastIndex","am","bm","bs","q","number","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","transform","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","string1","interpolate0","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","cubicInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","p","condition","className","tag","attrize","baseTypes","arabicTypes","classifyChar","charCode","computeBidiLevels","str","len","numBidi","charCodeAt","startLevel","levels","Int8Array","sor","lastType","after","bDir","aDir","computeSegmentLevels","normalized","segStarts","bidiLevels","segLevels","collapsibleWhitespaceRunRe","needsWhitespaceNormalizationRe","getWhiteSpaceProfile","whiteSpace","mode","preserveOrdinarySpaces","preserveHardBreaks","normalizeWhitespaceNormal","normalizeWhitespacePreWrap","sharedWordSegmenter","segmenterLocale","getSharedWordSegmenter","Intl","Segmenter","granularity","arabicScriptRe","combiningMarkRe","decimalDigitRe","containsArabicScript","isCJK","ch","codePointAt","kinsokuStart","Set","kinsokuEnd","forwardStickyGlue","leftStickyPunctuation","arabicNoSpaceTrailingPunctuation","myanmarMedialGlue","closingQuoteChars","isLeftStickyPunctuationSegment","segment","isEscapedQuoteClusterSegment","sawPunctuation","isCJKLineStartProhibitedSegment","isForwardStickyClusterSegment","sawQuote","splitTrailingForwardStickyCluster","chars","splitIndex","head","tail","isRepeatedSingleCharRun","part","endsWithArabicNoSpacePunctuation","endsWithMyanmarMedialGlue","splitLeadingSpaceAndMarks","marks","endsWithClosingQuote","classifySegmentBreakChar","whiteSpaceProfile","splitSegmentByBreakKind","isWordLike","pieces","currentKind","currentText","currentStart","currentWordLike","offset","kind","wordLike","isTextRunBoundary","urlSchemeSegmentRe","isUrlLikeRunStart","segmentation","texts","startsWith","kinds","isUrlQueryBoundarySegment","mergeUrlLikeRuns","starts","endsQueryPrefix","compactLen","read","mergeUrlQueryRuns","nextIndex","queryText","queryStart","numericJoinerChars","asciiPunctuationChainSegmentRe","asciiPunctuationChainTrailingJoinersRe","segmentContainsDecimalDigit","isNumericRunSegment","mergeNumericRuns","mergedText","mergeAsciiPunctuationChains","splitHyphenatedNumericRuns","parts","shouldSplit","splitText","mergeGlueConnectedTextRuns","glueText","glueStart","carryTrailingForwardStickyAcrossCJKBoundary","buildMergedSegmentation","profile","wordSegmenter","mergedLen","mergedTexts","mergedWordLike","mergedKinds","mergedStarts","piece","isText","carryCJKAfterClosingQuote","compacted","withMergedUrls","compileAnalysisChunks","startSegmentIndex","endSegmentIndex","consumedEndSegmentIndex","chunks","analyzeText","measureContext","segmentMetricCaches","cachedEngineProfile","emojiPresentationRe","maybeEmojiRe","sharedGraphemeSegmenter","emojiCorrectionCache","getMeasureContext","OffscreenCanvas","getContext","getSegmentMetricCache","font","cache","getSegmentMetrics","seg","metrics","ctx","width","measureText","containsCJK","getEngineProfile","navigator","lineFitEpsilon","preferPrefixWidthsForBreakableRuns","preferEarlySoftHyphenBreak","ua","userAgent","vendor","isSafari","isChromium","parseFontSize","parseFloat","getSharedGraphemeSegmenter","isEmojiGrapheme","textMayContainEmoji","getEmojiCorrection","fontSize","correction","canvasW","body","span","display","visibility","position","domW","getBoundingClientRect","countEmojiGraphemes","count","graphemeSegmenter","getEmojiCount","emojiCount","getCorrectedSegmentWidth","emojiCorrection","getSegmentGraphemeWidths","graphemeWidths","widths","gs","graphemeMetrics","getSegmentGraphemePrefixWidths","graphemePrefixWidths","prefixWidths","prefixMetrics","getFontMeasurementState","needsEmojiCorrection","canBreakAfter","getTabAdvance","lineWidth","tabStopAdvance","remainder","abs","getBreakableAdvance","graphemeIndex","preferPrefixWidths","fitSoftHyphenBreak","initialWidth","maxWidth","discretionaryHyphenWidth","cumulativeWidths","fitCount","fittedWidth","nextWidth","nextLineWidth","walkPreparedLinesSimple","prepared","onLine","breakableWidths","breakablePrefixWidths","engineProfile","lineCount","lineW","hasContent","lineStartSegmentIndex","lineStartGraphemeIndex","lineEndSegmentIndex","lineEndGraphemeIndex","pendingBreakSegmentIndex","pendingBreakPaintWidth","clearPendingBreak","emitCurrentLine","endGraphemeIndex","startGraphemeIndex","startLineAtSegment","segmentIndex","startLineAtGrapheme","appendWholeSegment","updatePendingBreak","segmentWidth","appendBreakableSegment","appendBreakableSegmentFrom","gWidths","gPrefixWidths","gw","w","newW","walkPreparedLines","simpleLineWalkFastPath","lineEndFitAdvances","lineEndPaintAdvances","pendingBreakFitWidth","pendingBreakKind","updatePendingBreakForWholeSegment","fitAdvance","paintAdvance","continueSoftHyphenBreakableSegment","fitWidths","usesPrefixWidths","emitEmptyChunk","chunk","chunkIndex","currentBreakFitWidth","currentBreakPaintWidth","finalPaintWidth","sharedLineTextCaches","WeakMap","createEmptyPrepared","includeSegments","segments","measureAnalysis","analysis","spaceWidth","preparedStartByAnalysisIndex","preparedEndByAnalysisIndex","pushMeasuredSegment","lineEndFitAdvance","lineEndPaintAdvance","breakable","breakablePrefix","mi","segText","segWordLike","segKind","segStart","segMetrics","unitText","unitStart","grapheme","unitMetrics","mapAnalysisChunksToPreparedChunks","preparedChunks","prepareInternal","prepareWithSegments","getInternalPrepared","getSegmentGraphemes","graphemes","getLineTextCache","lineHasDiscretionaryHyphen","buildLineTextFromRange","endsWithDiscretionaryHyphen","createLayoutLine","materializeLayoutLine","line","layoutWithLines","lineHeight","lines","height","graphemeCache","htmlDecode","input","doc","DOMParser","parseFromString","buildFont","styleObj","variant","weight","family","measureWidth","result","alpha","checked","dejavu","macos","monospace","proportional","fontExists","textWidth","fam","_elementSize","element","tagName","val","charAt","toUpperCase","buffer","pageX","scrollX","pageY","scrollY","bounds","left","top","innerHeight","innerWidth","sides","values","reduce","acc","direction","dir"],"mappings":"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AA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACxE,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,IAAA;EACvE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACrE,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACtE,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,IAAA;EACtE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,IAAA;EACvE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EACvE,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACvE,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACtE,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACvE,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACtE,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,IAAA;EAAM,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA;EAC3D,CAAA;EACD,MAAMC,WAAAA,GAAc;EAChB,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAClE,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,KAAA;EAAO,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EACnE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,KAAA;EAAO,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EACnE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAClE,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAAA,IAAA;EAAM,IAA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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97]}
1
+ {"version":3,"file":"d3plus-dom.full.js","sources":["../src/isObject.ts","../src/assign.ts","../src/backgroundColor.ts","../src/attrize.ts","../src/date.ts","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js","../../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js","../../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js","../src/elem.ts","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/generated/bidi-data.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/bidi.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/analysis.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/measurement.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/line-break.js","../../../node_modules/.pnpm/@chenglou+pretext@0.0.5/node_modules/@chenglou/pretext/dist/layout.js","../src/textWidth.ts","../src/fontExists.ts","../src/getSize.ts","../src/inViewport.ts","../src/parseSides.ts","../src/rtl.ts","../src/stylize.ts"],"sourcesContent":["/**\n Detects if a variable is a javascript Object.\n @param item The value to test.\n*/\nexport default function (item: unknown): boolean {\n return item &&\n typeof item === \"object\" &&\n (typeof window === \"undefined\" ||\n (item !== window &&\n item !== window.document &&\n !(item instanceof Element))) &&\n !Array.isArray(item)\n ? true\n : false;\n}\n","import isObject from \"./isObject.js\";\n\n/**\n Determines if the object passed is the document or window.\n @param obj @private\n*/\nfunction validObject(obj: Record<string, unknown>): boolean {\n if (typeof window === \"undefined\") return true;\n else return (obj as unknown) !== window && (obj as unknown) !== document;\n}\n\n/**\n A deeply recursive version of `Object.assign`.\n\n@example <caption>this</caption>\nassign({id: \"foo\", deep: {group: \"A\"}}, {id: \"bar\", deep: {value: 20}}));\n @example <caption>returns this</caption>\n{id: \"bar\", deep: {group: \"A\", value: 20}}\n @param objects The source objects to merge into the target.\n*/\nfunction assign(...objects: Record<string, unknown>[]): Record<string, unknown> {\n const target = objects[0];\n for (let i = 1; i < objects.length; i++) {\n const source = objects[i];\n if (!isObject(source)) continue;\n\n Object.keys(source).forEach(prop => {\n const value = source[prop];\n\n if (isObject(value) && validObject(value as Record<string, unknown>)) {\n if (\n Object.prototype.hasOwnProperty.call(target, prop) &&\n isObject(target[prop])\n )\n target[prop] = assign({}, target[prop] as Record<string, unknown>, value as Record<string, unknown>);\n else target[prop] = assign({}, value as Record<string, unknown>);\n } else if (Array.isArray(value)) target[prop] = value.slice();\n else target[prop] = value;\n });\n }\n\n return target;\n}\n\nexport default assign;\n","/**\n Given a DOM element, returns its background color by walking up the\n ancestor chain until a non-transparent background is found. Falls back\n to \"rgb(255, 255, 255)\" (white) if every ancestor is transparent.\n @param elem The DOM element to check.\n*/\nexport default function (elem: Element): string {\n let node: Element | null = elem;\n while (node) {\n const bg = getComputedStyle(node).backgroundColor;\n if (bg && bg !== \"transparent\" && bg !== \"rgba(0, 0, 0, 0)\") return bg;\n node = node.parentElement;\n }\n return \"rgb(255, 255, 255)\";\n}\n","import type {Attrable} from \"./D3Selection.js\";\n\n/**\n Applies each key/value in an object as an attr.\n @param e The d3 selection to apply attributes to.\n @param a An object of key/value attr pairs.\n*/\nexport default function (\n e: Attrable,\n a: Record<string, string | number | boolean | null> = {},\n): void {\n for (const k in a) if ({}.hasOwnProperty.call(a, k)) e.attr(k, a[k]);\n}\n","/**\n Parses numbers and strings into valid JavaScript Date objects, supporting years, quarters, months, and ISO 8601 formats.\n @param d The date value to parse (number, string, or Date).\n*/\nexport default function (\n d: number | string | false | undefined,\n): Date | false | undefined {\n // returns if falsey or already Date object\n if (\n [false, undefined, NaN].includes(d as never) ||\n (d as unknown as {constructor: unknown}).constructor === Date\n )\n return d as Date | false | undefined;\n // detects if milliseconds\n else if (\n (d as unknown as {constructor: unknown}).constructor === Number &&\n `${d}`.length > 5 &&\n (d as number) % 1 === 0\n )\n return new Date(d as number);\n\n let s = `${d}`;\n\n // tests for MM/DD/YYYY and MM-DD-YYYY format\n const dayFormat = new RegExp(/^\\d{1,2}[./-]\\d{1,2}[./-](-*\\d{1,4})$/g).exec(\n s,\n );\n if (dayFormat) {\n const year = dayFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year as unknown as number);\n return date;\n }\n\n // tests for full Date object string format\n const strFormat = new RegExp(\n /^[A-z]{1,3} [A-z]{1,3} \\d{1,2} (-*\\d{1,4}) \\d{1,2}:\\d{1,2}:\\d{1,2} [A-z]{1,3}-*\\d{1,4} \\([A-z]{1,3}\\)/g,\n ).exec(s);\n if (strFormat) {\n const year = strFormat[1];\n if (year.indexOf(\"-\") === 0) s = s.replace(year, year.substring(1));\n const date = new Date(s);\n date.setFullYear(year as unknown as number);\n return date;\n }\n\n // tests for quarterly formats (ie. \"QX YYYY\" and \"YYYY QX\")\n const quarterPrefix = new RegExp(\n /^([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})[\\s|-]{0,1}(-*\\d{1,4})$/g,\n ).exec(s);\n const quarterSuffix = new RegExp(\n /^(-*\\d{1,4})[\\s|-]{0,1}([qQ]{1}[1-4]{1}|[1-4]{1}[qQ]{1})$/g,\n ).exec(s);\n if (quarterPrefix || quarterSuffix) {\n const quarter = +(quarterPrefix ? quarterPrefix[1] : quarterSuffix![2])\n .toLowerCase()\n .replace(\"q\", \"\");\n const year = +(quarterPrefix ? quarterPrefix[2] : quarterSuffix![1]);\n const date = new Date(year, quarter * 3 - 3, 1);\n date.setFullYear(year);\n return date;\n }\n\n // tests for monthly formats (ie. \"MM-YYYY\" and \"YYYY-MM\")\n const monthPrefix = new RegExp(/^([-*\\d]{1,2})-(-*\\d{1,4})$/g).exec(s);\n const monthSuffix = new RegExp(/^(-*\\d{1,4})-([-*\\d]{1,2})$/g).exec(s);\n if (monthPrefix || monthSuffix) {\n const month = +(monthPrefix ? monthPrefix[1] : monthSuffix![2]);\n const year = +(monthPrefix ? monthPrefix[2] : monthSuffix![1]);\n const date = new Date(year, month - 1, 1);\n date.setFullYear(year);\n return date;\n }\n\n // detects if only passing a year value\n if (\n !s.includes(\"/\") &&\n !s.includes(\" \") &&\n (!s.includes(\"-\") || !s.indexOf(\"-\"))\n ) {\n const date = new Date(+s, 0, 1);\n date.setFullYear(d as number);\n return date;\n }\n\n const iso8601 = new RegExp(\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$/g,\n ).exec(s);\n if (iso8601) return new Date(s);\n\n // falls back to Date object, replacing hyphens with slashes\n return new Date(s.replace(/-/g, \"/\"));\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {select} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n\nimport {default as attrize} from \"./attrize.js\";\nimport type {D3Selection} from \"./D3Selection.js\";\n\n \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnySelection = ReturnType<typeof select<any, any>>;\n\ntype AttrMap = Record<string, string | number | boolean | null>;\n\nexport interface ElemParams {\n condition?: boolean;\n enter?: AttrMap;\n exit?: AttrMap;\n duration?: number;\n parent?: D3Selection;\n transition?: D3Selection;\n update?: AttrMap;\n}\n\n/**\n Manages the enter/update/exit pattern for a single DOM element, applying enter, update, and exit attributes with optional transitions.\n @param selector A CSS selector string for the element tag and classes.\n @param p Configuration object with enter, exit, update, and parent options.\n*/\nexport default function (selector: string, p?: ElemParams): D3Selection {\n // overrides default params\n const params = Object.assign(\n {},\n {\n condition: true,\n enter: {},\n exit: {},\n duration: 0,\n parent: select(\"body\") as unknown as D3Selection,\n update: {},\n },\n p,\n );\n\n const className = /\\.([^#]+)/g.exec(selector),\n id = /#([^.]+)/g.exec(selector),\n t = transition().duration(params.duration),\n tag = /^([^.^#]+)/g.exec(selector)![1];\n\n const elem = (params.parent as AnySelection)\n .selectAll(selector.includes(\":\") ? selector.split(\":\")[1] : selector)\n .data(params.condition ? [null] : []);\n\n const enter = elem.enter().append(tag).call(attrize, params.enter);\n\n if (id) enter.attr(\"id\", id[1]);\n if (className) enter.attr(\"class\", className[1]);\n\n if (params.duration)\n elem\n .exit()\n .transition(t)\n .call(attrize as never, params.exit)\n .remove();\n else elem.exit().call(attrize, params.exit).remove();\n\n const update = enter.merge(elem);\n if (params.duration)\n update.transition(t).call(attrize as never, params.update);\n else update.call(attrize, params.update);\n\n return update as unknown as D3Selection;\n}\n","// Generated by scripts/generate-bidi-data.ts from scripts/unicode/DerivedBidiClass-17.0.0.txt.\n// Do not edit by hand. Regenerate with `bun run generate:bidi-data`.\n// Formatting and isolate controls are projected onto `BN` because the rich\n// bidi helper consumes a simplified class set and does not model UBA isolates.\nexport const unicodeBidiDataVersion = '17.0.0';\nexport const latin1BidiTypes = [\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'S',\n 'B',\n 'S',\n 'WS',\n 'B',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'B',\n 'B',\n 'B',\n 'S',\n 'WS',\n 'ON',\n 'ON',\n 'ET',\n 'ET',\n 'ET',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ES',\n 'CS',\n 'ES',\n 'CS',\n 'CS',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'EN',\n 'CS',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'B',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'BN',\n 'CS',\n 'ON',\n 'ET',\n 'ET',\n 'ET',\n 'ET',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'L',\n 'ON',\n 'ON',\n 'BN',\n 'ON',\n 'ON',\n 'ET',\n 'ET',\n 'EN',\n 'EN',\n 'ON',\n 'L',\n 'ON',\n 'ON',\n 'ON',\n 'EN',\n 'L',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'ON',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'ON',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'ON',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n 'L',\n];\nexport const nonLatin1BidiRanges = [\n [0x2B9, 0x2BA, 'ON'],\n [0x2C2, 0x2CF, 'ON'],\n [0x2D2, 0x2DF, 'ON'],\n [0x2E5, 0x2ED, 'ON'],\n [0x2EF, 0x2FF, 'ON'],\n [0x300, 0x36F, 'NSM'],\n [0x374, 0x375, 'ON'],\n [0x37E, 0x37E, 'ON'],\n [0x384, 0x385, 'ON'],\n [0x387, 0x387, 'ON'],\n [0x3F6, 0x3F6, 'ON'],\n [0x483, 0x489, 'NSM'],\n [0x58A, 0x58A, 'ON'],\n [0x58D, 0x58E, 'ON'],\n [0x58F, 0x58F, 'ET'],\n [0x590, 0x590, 'R'],\n [0x591, 0x5BD, 'NSM'],\n [0x5BE, 0x5BE, 'R'],\n [0x5BF, 0x5BF, 'NSM'],\n [0x5C0, 0x5C0, 'R'],\n [0x5C1, 0x5C2, 'NSM'],\n [0x5C3, 0x5C3, 'R'],\n [0x5C4, 0x5C5, 'NSM'],\n [0x5C6, 0x5C6, 'R'],\n [0x5C7, 0x5C7, 'NSM'],\n [0x5C8, 0x5FF, 'R'],\n [0x600, 0x605, 'AN'],\n [0x606, 0x607, 'ON'],\n [0x608, 0x608, 'AL'],\n [0x609, 0x60A, 'ET'],\n [0x60B, 0x60B, 'AL'],\n [0x60C, 0x60C, 'CS'],\n [0x60D, 0x60D, 'AL'],\n [0x60E, 0x60F, 'ON'],\n [0x610, 0x61A, 'NSM'],\n [0x61B, 0x64A, 'AL'],\n [0x64B, 0x65F, 'NSM'],\n [0x660, 0x669, 'AN'],\n [0x66A, 0x66A, 'ET'],\n [0x66B, 0x66C, 'AN'],\n [0x66D, 0x66F, 'AL'],\n [0x670, 0x670, 'NSM'],\n [0x671, 0x6D5, 'AL'],\n [0x6D6, 0x6DC, 'NSM'],\n [0x6DD, 0x6DD, 'AN'],\n [0x6DE, 0x6DE, 'ON'],\n [0x6DF, 0x6E4, 'NSM'],\n [0x6E5, 0x6E6, 'AL'],\n [0x6E7, 0x6E8, 'NSM'],\n [0x6E9, 0x6E9, 'ON'],\n [0x6EA, 0x6ED, 'NSM'],\n [0x6EE, 0x6EF, 'AL'],\n [0x6F0, 0x6F9, 'EN'],\n [0x6FA, 0x710, 'AL'],\n [0x711, 0x711, 'NSM'],\n [0x712, 0x72F, 'AL'],\n [0x730, 0x74A, 'NSM'],\n [0x74B, 0x7A5, 'AL'],\n [0x7A6, 0x7B0, 'NSM'],\n [0x7B1, 0x7BF, 'AL'],\n [0x7C0, 0x7EA, 'R'],\n [0x7EB, 0x7F3, 'NSM'],\n [0x7F4, 0x7F5, 'R'],\n [0x7F6, 0x7F9, 'ON'],\n [0x7FA, 0x7FC, 'R'],\n [0x7FD, 0x7FD, 'NSM'],\n [0x7FE, 0x815, 'R'],\n [0x816, 0x819, 'NSM'],\n [0x81A, 0x81A, 'R'],\n [0x81B, 0x823, 'NSM'],\n [0x824, 0x824, 'R'],\n [0x825, 0x827, 'NSM'],\n [0x828, 0x828, 'R'],\n [0x829, 0x82D, 'NSM'],\n [0x82E, 0x858, 'R'],\n [0x859, 0x85B, 'NSM'],\n [0x85C, 0x85F, 'R'],\n [0x860, 0x88F, 'AL'],\n [0x890, 0x891, 'AN'],\n [0x892, 0x896, 'AL'],\n [0x897, 0x89F, 'NSM'],\n [0x8A0, 0x8C9, 'AL'],\n [0x8CA, 0x8E1, 'NSM'],\n [0x8E2, 0x8E2, 'AN'],\n [0x8E3, 0x902, 'NSM'],\n [0x93A, 0x93A, 'NSM'],\n [0x93C, 0x93C, 'NSM'],\n [0x941, 0x948, 'NSM'],\n [0x94D, 0x94D, 'NSM'],\n [0x951, 0x957, 'NSM'],\n [0x962, 0x963, 'NSM'],\n [0x981, 0x981, 'NSM'],\n [0x9BC, 0x9BC, 'NSM'],\n [0x9C1, 0x9C4, 'NSM'],\n [0x9CD, 0x9CD, 'NSM'],\n [0x9E2, 0x9E3, 'NSM'],\n [0x9F2, 0x9F3, 'ET'],\n [0x9FB, 0x9FB, 'ET'],\n [0x9FE, 0x9FE, 'NSM'],\n [0xA01, 0xA02, 'NSM'],\n [0xA3C, 0xA3C, 'NSM'],\n [0xA41, 0xA42, 'NSM'],\n [0xA47, 0xA48, 'NSM'],\n [0xA4B, 0xA4D, 'NSM'],\n [0xA51, 0xA51, 'NSM'],\n [0xA70, 0xA71, 'NSM'],\n [0xA75, 0xA75, 'NSM'],\n [0xA81, 0xA82, 'NSM'],\n [0xABC, 0xABC, 'NSM'],\n [0xAC1, 0xAC5, 'NSM'],\n [0xAC7, 0xAC8, 'NSM'],\n [0xACD, 0xACD, 'NSM'],\n [0xAE2, 0xAE3, 'NSM'],\n [0xAF1, 0xAF1, 'ET'],\n [0xAFA, 0xAFF, 'NSM'],\n [0xB01, 0xB01, 'NSM'],\n [0xB3C, 0xB3C, 'NSM'],\n [0xB3F, 0xB3F, 'NSM'],\n [0xB41, 0xB44, 'NSM'],\n [0xB4D, 0xB4D, 'NSM'],\n [0xB55, 0xB56, 'NSM'],\n [0xB62, 0xB63, 'NSM'],\n [0xB82, 0xB82, 'NSM'],\n [0xBC0, 0xBC0, 'NSM'],\n [0xBCD, 0xBCD, 'NSM'],\n [0xBF3, 0xBF8, 'ON'],\n [0xBF9, 0xBF9, 'ET'],\n [0xBFA, 0xBFA, 'ON'],\n [0xC00, 0xC00, 'NSM'],\n [0xC04, 0xC04, 'NSM'],\n [0xC3C, 0xC3C, 'NSM'],\n [0xC3E, 0xC40, 'NSM'],\n [0xC46, 0xC48, 'NSM'],\n [0xC4A, 0xC4D, 'NSM'],\n [0xC55, 0xC56, 'NSM'],\n [0xC62, 0xC63, 'NSM'],\n [0xC78, 0xC7E, 'ON'],\n [0xC81, 0xC81, 'NSM'],\n [0xCBC, 0xCBC, 'NSM'],\n [0xCCC, 0xCCD, 'NSM'],\n [0xCE2, 0xCE3, 'NSM'],\n [0xD00, 0xD01, 'NSM'],\n [0xD3B, 0xD3C, 'NSM'],\n [0xD41, 0xD44, 'NSM'],\n [0xD4D, 0xD4D, 'NSM'],\n [0xD62, 0xD63, 'NSM'],\n [0xD81, 0xD81, 'NSM'],\n [0xDCA, 0xDCA, 'NSM'],\n [0xDD2, 0xDD4, 'NSM'],\n [0xDD6, 0xDD6, 'NSM'],\n [0xE31, 0xE31, 'NSM'],\n [0xE34, 0xE3A, 'NSM'],\n [0xE3F, 0xE3F, 'ET'],\n [0xE47, 0xE4E, 'NSM'],\n [0xEB1, 0xEB1, 'NSM'],\n [0xEB4, 0xEBC, 'NSM'],\n [0xEC8, 0xECE, 'NSM'],\n [0xF18, 0xF19, 'NSM'],\n [0xF35, 0xF35, 'NSM'],\n [0xF37, 0xF37, 'NSM'],\n [0xF39, 0xF39, 'NSM'],\n [0xF3A, 0xF3D, 'ON'],\n [0xF71, 0xF7E, 'NSM'],\n [0xF80, 0xF84, 'NSM'],\n [0xF86, 0xF87, 'NSM'],\n [0xF8D, 0xF97, 'NSM'],\n [0xF99, 0xFBC, 'NSM'],\n [0xFC6, 0xFC6, 'NSM'],\n [0x102D, 0x1030, 'NSM'],\n [0x1032, 0x1037, 'NSM'],\n [0x1039, 0x103A, 'NSM'],\n [0x103D, 0x103E, 'NSM'],\n [0x1058, 0x1059, 'NSM'],\n [0x105E, 0x1060, 'NSM'],\n [0x1071, 0x1074, 'NSM'],\n [0x1082, 0x1082, 'NSM'],\n [0x1085, 0x1086, 'NSM'],\n [0x108D, 0x108D, 'NSM'],\n [0x109D, 0x109D, 'NSM'],\n [0x135D, 0x135F, 'NSM'],\n [0x1390, 0x1399, 'ON'],\n [0x1400, 0x1400, 'ON'],\n [0x1680, 0x1680, 'WS'],\n [0x169B, 0x169C, 'ON'],\n [0x1712, 0x1714, 'NSM'],\n [0x1732, 0x1733, 'NSM'],\n [0x1752, 0x1753, 'NSM'],\n [0x1772, 0x1773, 'NSM'],\n [0x17B4, 0x17B5, 'NSM'],\n [0x17B7, 0x17BD, 'NSM'],\n [0x17C6, 0x17C6, 'NSM'],\n [0x17C9, 0x17D3, 'NSM'],\n [0x17DB, 0x17DB, 'ET'],\n [0x17DD, 0x17DD, 'NSM'],\n [0x17F0, 0x17F9, 'ON'],\n [0x1800, 0x180A, 'ON'],\n [0x180B, 0x180D, 'NSM'],\n [0x180E, 0x180E, 'BN'],\n [0x180F, 0x180F, 'NSM'],\n [0x1885, 0x1886, 'NSM'],\n [0x18A9, 0x18A9, 'NSM'],\n [0x1920, 0x1922, 'NSM'],\n [0x1927, 0x1928, 'NSM'],\n [0x1932, 0x1932, 'NSM'],\n [0x1939, 0x193B, 'NSM'],\n [0x1940, 0x1940, 'ON'],\n [0x1944, 0x1945, 'ON'],\n [0x19DE, 0x19FF, 'ON'],\n [0x1A17, 0x1A18, 'NSM'],\n [0x1A1B, 0x1A1B, 'NSM'],\n [0x1A56, 0x1A56, 'NSM'],\n [0x1A58, 0x1A5E, 'NSM'],\n [0x1A60, 0x1A60, 'NSM'],\n [0x1A62, 0x1A62, 'NSM'],\n [0x1A65, 0x1A6C, 'NSM'],\n [0x1A73, 0x1A7C, 'NSM'],\n [0x1A7F, 0x1A7F, 'NSM'],\n [0x1AB0, 0x1ADD, 'NSM'],\n [0x1AE0, 0x1AEB, 'NSM'],\n [0x1B00, 0x1B03, 'NSM'],\n [0x1B34, 0x1B34, 'NSM'],\n [0x1B36, 0x1B3A, 'NSM'],\n [0x1B3C, 0x1B3C, 'NSM'],\n [0x1B42, 0x1B42, 'NSM'],\n [0x1B6B, 0x1B73, 'NSM'],\n [0x1B80, 0x1B81, 'NSM'],\n [0x1BA2, 0x1BA5, 'NSM'],\n [0x1BA8, 0x1BA9, 'NSM'],\n [0x1BAB, 0x1BAD, 'NSM'],\n [0x1BE6, 0x1BE6, 'NSM'],\n [0x1BE8, 0x1BE9, 'NSM'],\n [0x1BED, 0x1BED, 'NSM'],\n [0x1BEF, 0x1BF1, 'NSM'],\n [0x1C2C, 0x1C33, 'NSM'],\n [0x1C36, 0x1C37, 'NSM'],\n [0x1CD0, 0x1CD2, 'NSM'],\n [0x1CD4, 0x1CE0, 'NSM'],\n [0x1CE2, 0x1CE8, 'NSM'],\n [0x1CED, 0x1CED, 'NSM'],\n [0x1CF4, 0x1CF4, 'NSM'],\n [0x1CF8, 0x1CF9, 'NSM'],\n [0x1DC0, 0x1DFF, 'NSM'],\n [0x1FBD, 0x1FBD, 'ON'],\n [0x1FBF, 0x1FC1, 'ON'],\n [0x1FCD, 0x1FCF, 'ON'],\n [0x1FDD, 0x1FDF, 'ON'],\n [0x1FED, 0x1FEF, 'ON'],\n [0x1FFD, 0x1FFE, 'ON'],\n [0x2000, 0x200A, 'WS'],\n [0x200B, 0x200D, 'BN'],\n [0x200F, 0x200F, 'R'],\n [0x2010, 0x2027, 'ON'],\n [0x2028, 0x2028, 'WS'],\n [0x2029, 0x2029, 'B'],\n [0x202A, 0x202E, 'BN'],\n [0x202F, 0x202F, 'CS'],\n [0x2030, 0x2034, 'ET'],\n [0x2035, 0x2043, 'ON'],\n [0x2044, 0x2044, 'CS'],\n [0x2045, 0x205E, 'ON'],\n [0x205F, 0x205F, 'WS'],\n [0x2060, 0x206F, 'BN'],\n [0x2070, 0x2070, 'EN'],\n [0x2074, 0x2079, 'EN'],\n [0x207A, 0x207B, 'ES'],\n [0x207C, 0x207E, 'ON'],\n [0x2080, 0x2089, 'EN'],\n [0x208A, 0x208B, 'ES'],\n [0x208C, 0x208E, 'ON'],\n [0x20A0, 0x20CF, 'ET'],\n [0x20D0, 0x20F0, 'NSM'],\n [0x2100, 0x2101, 'ON'],\n [0x2103, 0x2106, 'ON'],\n [0x2108, 0x2109, 'ON'],\n [0x2114, 0x2114, 'ON'],\n [0x2116, 0x2118, 'ON'],\n [0x211E, 0x2123, 'ON'],\n [0x2125, 0x2125, 'ON'],\n [0x2127, 0x2127, 'ON'],\n [0x2129, 0x2129, 'ON'],\n [0x212E, 0x212E, 'ET'],\n [0x213A, 0x213B, 'ON'],\n [0x2140, 0x2144, 'ON'],\n [0x214A, 0x214D, 'ON'],\n [0x2150, 0x215F, 'ON'],\n [0x2189, 0x218B, 'ON'],\n [0x2190, 0x2211, 'ON'],\n [0x2212, 0x2212, 'ES'],\n [0x2213, 0x2213, 'ET'],\n [0x2214, 0x2335, 'ON'],\n [0x237B, 0x2394, 'ON'],\n [0x2396, 0x2429, 'ON'],\n [0x2440, 0x244A, 'ON'],\n [0x2460, 0x2487, 'ON'],\n [0x2488, 0x249B, 'EN'],\n [0x24EA, 0x26AB, 'ON'],\n [0x26AD, 0x27FF, 'ON'],\n [0x2900, 0x2B73, 'ON'],\n [0x2B76, 0x2BFF, 'ON'],\n [0x2CE5, 0x2CEA, 'ON'],\n [0x2CEF, 0x2CF1, 'NSM'],\n [0x2CF9, 0x2CFF, 'ON'],\n [0x2D7F, 0x2D7F, 'NSM'],\n [0x2DE0, 0x2DFF, 'NSM'],\n [0x2E00, 0x2E5D, 'ON'],\n [0x2E80, 0x2E99, 'ON'],\n [0x2E9B, 0x2EF3, 'ON'],\n [0x2F00, 0x2FD5, 'ON'],\n [0x2FF0, 0x2FFF, 'ON'],\n [0x3000, 0x3000, 'WS'],\n [0x3001, 0x3004, 'ON'],\n [0x3008, 0x3020, 'ON'],\n [0x302A, 0x302D, 'NSM'],\n [0x3030, 0x3030, 'ON'],\n [0x3036, 0x3037, 'ON'],\n [0x303D, 0x303F, 'ON'],\n [0x3099, 0x309A, 'NSM'],\n [0x309B, 0x309C, 'ON'],\n [0x30A0, 0x30A0, 'ON'],\n [0x30FB, 0x30FB, 'ON'],\n [0x31C0, 0x31E5, 'ON'],\n [0x31EF, 0x31EF, 'ON'],\n [0x321D, 0x321E, 'ON'],\n [0x3250, 0x325F, 'ON'],\n [0x327C, 0x327E, 'ON'],\n [0x32B1, 0x32BF, 'ON'],\n [0x32CC, 0x32CF, 'ON'],\n [0x3377, 0x337A, 'ON'],\n [0x33DE, 0x33DF, 'ON'],\n [0x33FF, 0x33FF, 'ON'],\n [0x4DC0, 0x4DFF, 'ON'],\n [0xA490, 0xA4C6, 'ON'],\n [0xA60D, 0xA60F, 'ON'],\n [0xA66F, 0xA672, 'NSM'],\n [0xA673, 0xA673, 'ON'],\n [0xA674, 0xA67D, 'NSM'],\n [0xA67E, 0xA67F, 'ON'],\n [0xA69E, 0xA69F, 'NSM'],\n [0xA6F0, 0xA6F1, 'NSM'],\n [0xA700, 0xA721, 'ON'],\n [0xA788, 0xA788, 'ON'],\n [0xA802, 0xA802, 'NSM'],\n [0xA806, 0xA806, 'NSM'],\n [0xA80B, 0xA80B, 'NSM'],\n [0xA825, 0xA826, 'NSM'],\n [0xA828, 0xA82B, 'ON'],\n [0xA82C, 0xA82C, 'NSM'],\n [0xA838, 0xA839, 'ET'],\n [0xA874, 0xA877, 'ON'],\n [0xA8C4, 0xA8C5, 'NSM'],\n [0xA8E0, 0xA8F1, 'NSM'],\n [0xA8FF, 0xA8FF, 'NSM'],\n [0xA926, 0xA92D, 'NSM'],\n [0xA947, 0xA951, 'NSM'],\n [0xA980, 0xA982, 'NSM'],\n [0xA9B3, 0xA9B3, 'NSM'],\n [0xA9B6, 0xA9B9, 'NSM'],\n [0xA9BC, 0xA9BD, 'NSM'],\n [0xA9E5, 0xA9E5, 'NSM'],\n [0xAA29, 0xAA2E, 'NSM'],\n [0xAA31, 0xAA32, 'NSM'],\n [0xAA35, 0xAA36, 'NSM'],\n [0xAA43, 0xAA43, 'NSM'],\n [0xAA4C, 0xAA4C, 'NSM'],\n [0xAA7C, 0xAA7C, 'NSM'],\n [0xAAB0, 0xAAB0, 'NSM'],\n [0xAAB2, 0xAAB4, 'NSM'],\n [0xAAB7, 0xAAB8, 'NSM'],\n [0xAABE, 0xAABF, 'NSM'],\n [0xAAC1, 0xAAC1, 'NSM'],\n [0xAAEC, 0xAAED, 'NSM'],\n [0xAAF6, 0xAAF6, 'NSM'],\n [0xAB6A, 0xAB6B, 'ON'],\n [0xABE5, 0xABE5, 'NSM'],\n [0xABE8, 0xABE8, 'NSM'],\n [0xABED, 0xABED, 'NSM'],\n [0xFB1D, 0xFB1D, 'R'],\n [0xFB1E, 0xFB1E, 'NSM'],\n [0xFB1F, 0xFB28, 'R'],\n [0xFB29, 0xFB29, 'ES'],\n [0xFB2A, 0xFB4F, 'R'],\n [0xFB50, 0xFBC2, 'AL'],\n [0xFBC3, 0xFBD2, 'ON'],\n [0xFBD3, 0xFD3D, 'AL'],\n [0xFD3E, 0xFD4F, 'ON'],\n [0xFD50, 0xFD8F, 'AL'],\n [0xFD90, 0xFD91, 'ON'],\n [0xFD92, 0xFDC7, 'AL'],\n [0xFDC8, 0xFDCF, 'ON'],\n [0xFDD0, 0xFDEF, 'BN'],\n [0xFDF0, 0xFDFC, 'AL'],\n [0xFDFD, 0xFDFF, 'ON'],\n [0xFE00, 0xFE0F, 'NSM'],\n [0xFE10, 0xFE19, 'ON'],\n [0xFE20, 0xFE2F, 'NSM'],\n [0xFE30, 0xFE4F, 'ON'],\n [0xFE50, 0xFE50, 'CS'],\n [0xFE51, 0xFE51, 'ON'],\n [0xFE52, 0xFE52, 'CS'],\n [0xFE54, 0xFE54, 'ON'],\n [0xFE55, 0xFE55, 'CS'],\n [0xFE56, 0xFE5E, 'ON'],\n [0xFE5F, 0xFE5F, 'ET'],\n [0xFE60, 0xFE61, 'ON'],\n [0xFE62, 0xFE63, 'ES'],\n [0xFE64, 0xFE66, 'ON'],\n [0xFE68, 0xFE68, 'ON'],\n [0xFE69, 0xFE6A, 'ET'],\n [0xFE6B, 0xFE6B, 'ON'],\n [0xFE70, 0xFEFE, 'AL'],\n [0xFEFF, 0xFEFF, 'BN'],\n [0xFF01, 0xFF02, 'ON'],\n [0xFF03, 0xFF05, 'ET'],\n [0xFF06, 0xFF0A, 'ON'],\n [0xFF0B, 0xFF0B, 'ES'],\n [0xFF0C, 0xFF0C, 'CS'],\n [0xFF0D, 0xFF0D, 'ES'],\n [0xFF0E, 0xFF0F, 'CS'],\n [0xFF10, 0xFF19, 'EN'],\n [0xFF1A, 0xFF1A, 'CS'],\n [0xFF1B, 0xFF20, 'ON'],\n [0xFF3B, 0xFF40, 'ON'],\n [0xFF5B, 0xFF65, 'ON'],\n [0xFFE0, 0xFFE1, 'ET'],\n [0xFFE2, 0xFFE4, 'ON'],\n [0xFFE5, 0xFFE6, 'ET'],\n [0xFFE8, 0xFFEE, 'ON'],\n [0xFFF0, 0xFFF8, 'BN'],\n [0xFFF9, 0xFFFD, 'ON'],\n [0xFFFE, 0xFFFF, 'BN'],\n [0x10101, 0x10101, 'ON'],\n [0x10140, 0x1018C, 'ON'],\n [0x10190, 0x1019C, 'ON'],\n [0x101A0, 0x101A0, 'ON'],\n [0x101FD, 0x101FD, 'NSM'],\n [0x102E0, 0x102E0, 'NSM'],\n [0x102E1, 0x102FB, 'EN'],\n [0x10376, 0x1037A, 'NSM'],\n [0x10800, 0x1091E, 'R'],\n [0x1091F, 0x1091F, 'ON'],\n [0x10920, 0x10A00, 'R'],\n [0x10A01, 0x10A03, 'NSM'],\n [0x10A04, 0x10A04, 'R'],\n [0x10A05, 0x10A06, 'NSM'],\n [0x10A07, 0x10A0B, 'R'],\n [0x10A0C, 0x10A0F, 'NSM'],\n [0x10A10, 0x10A37, 'R'],\n [0x10A38, 0x10A3A, 'NSM'],\n [0x10A3B, 0x10A3E, 'R'],\n [0x10A3F, 0x10A3F, 'NSM'],\n [0x10A40, 0x10AE4, 'R'],\n [0x10AE5, 0x10AE6, 'NSM'],\n [0x10AE7, 0x10B38, 'R'],\n [0x10B39, 0x10B3F, 'ON'],\n [0x10B40, 0x10CFF, 'R'],\n [0x10D00, 0x10D23, 'AL'],\n [0x10D24, 0x10D27, 'NSM'],\n [0x10D28, 0x10D2F, 'AL'],\n [0x10D30, 0x10D39, 'AN'],\n [0x10D3A, 0x10D3F, 'AL'],\n [0x10D40, 0x10D49, 'AN'],\n [0x10D4A, 0x10D68, 'R'],\n [0x10D69, 0x10D6D, 'NSM'],\n [0x10D6E, 0x10D6E, 'ON'],\n [0x10D6F, 0x10E5F, 'R'],\n [0x10E60, 0x10E7E, 'AN'],\n [0x10E7F, 0x10EAA, 'R'],\n [0x10EAB, 0x10EAC, 'NSM'],\n [0x10EAD, 0x10EBF, 'R'],\n [0x10EC0, 0x10ECF, 'AL'],\n [0x10ED0, 0x10ED8, 'ON'],\n [0x10ED9, 0x10EF9, 'AL'],\n [0x10EFA, 0x10EFF, 'NSM'],\n [0x10F00, 0x10F2F, 'R'],\n [0x10F30, 0x10F45, 'AL'],\n [0x10F46, 0x10F50, 'NSM'],\n [0x10F51, 0x10F6F, 'AL'],\n [0x10F70, 0x10F81, 'R'],\n [0x10F82, 0x10F85, 'NSM'],\n [0x10F86, 0x10FFF, 'R'],\n [0x11001, 0x11001, 'NSM'],\n [0x11038, 0x11046, 'NSM'],\n [0x11052, 0x11065, 'ON'],\n [0x11070, 0x11070, 'NSM'],\n [0x11073, 0x11074, 'NSM'],\n [0x1107F, 0x11081, 'NSM'],\n [0x110B3, 0x110B6, 'NSM'],\n [0x110B9, 0x110BA, 'NSM'],\n [0x110C2, 0x110C2, 'NSM'],\n [0x11100, 0x11102, 'NSM'],\n [0x11127, 0x1112B, 'NSM'],\n [0x1112D, 0x11134, 'NSM'],\n [0x11173, 0x11173, 'NSM'],\n [0x11180, 0x11181, 'NSM'],\n [0x111B6, 0x111BE, 'NSM'],\n [0x111C9, 0x111CC, 'NSM'],\n [0x111CF, 0x111CF, 'NSM'],\n [0x1122F, 0x11231, 'NSM'],\n [0x11234, 0x11234, 'NSM'],\n [0x11236, 0x11237, 'NSM'],\n [0x1123E, 0x1123E, 'NSM'],\n [0x11241, 0x11241, 'NSM'],\n [0x112DF, 0x112DF, 'NSM'],\n [0x112E3, 0x112EA, 'NSM'],\n [0x11300, 0x11301, 'NSM'],\n [0x1133B, 0x1133C, 'NSM'],\n [0x11340, 0x11340, 'NSM'],\n [0x11366, 0x1136C, 'NSM'],\n [0x11370, 0x11374, 'NSM'],\n [0x113BB, 0x113C0, 'NSM'],\n [0x113CE, 0x113CE, 'NSM'],\n [0x113D0, 0x113D0, 'NSM'],\n [0x113D2, 0x113D2, 'NSM'],\n [0x113E1, 0x113E2, 'NSM'],\n [0x11438, 0x1143F, 'NSM'],\n [0x11442, 0x11444, 'NSM'],\n [0x11446, 0x11446, 'NSM'],\n [0x1145E, 0x1145E, 'NSM'],\n [0x114B3, 0x114B8, 'NSM'],\n [0x114BA, 0x114BA, 'NSM'],\n [0x114BF, 0x114C0, 'NSM'],\n [0x114C2, 0x114C3, 'NSM'],\n [0x115B2, 0x115B5, 'NSM'],\n [0x115BC, 0x115BD, 'NSM'],\n [0x115BF, 0x115C0, 'NSM'],\n [0x115DC, 0x115DD, 'NSM'],\n [0x11633, 0x1163A, 'NSM'],\n [0x1163D, 0x1163D, 'NSM'],\n [0x1163F, 0x11640, 'NSM'],\n [0x11660, 0x1166C, 'ON'],\n [0x116AB, 0x116AB, 'NSM'],\n [0x116AD, 0x116AD, 'NSM'],\n [0x116B0, 0x116B5, 'NSM'],\n [0x116B7, 0x116B7, 'NSM'],\n [0x1171D, 0x1171D, 'NSM'],\n [0x1171F, 0x1171F, 'NSM'],\n [0x11722, 0x11725, 'NSM'],\n [0x11727, 0x1172B, 'NSM'],\n [0x1182F, 0x11837, 'NSM'],\n [0x11839, 0x1183A, 'NSM'],\n [0x1193B, 0x1193C, 'NSM'],\n [0x1193E, 0x1193E, 'NSM'],\n [0x11943, 0x11943, 'NSM'],\n [0x119D4, 0x119D7, 'NSM'],\n [0x119DA, 0x119DB, 'NSM'],\n [0x119E0, 0x119E0, 'NSM'],\n [0x11A01, 0x11A06, 'NSM'],\n [0x11A09, 0x11A0A, 'NSM'],\n [0x11A33, 0x11A38, 'NSM'],\n [0x11A3B, 0x11A3E, 'NSM'],\n [0x11A47, 0x11A47, 'NSM'],\n [0x11A51, 0x11A56, 'NSM'],\n [0x11A59, 0x11A5B, 'NSM'],\n [0x11A8A, 0x11A96, 'NSM'],\n [0x11A98, 0x11A99, 'NSM'],\n [0x11B60, 0x11B60, 'NSM'],\n [0x11B62, 0x11B64, 'NSM'],\n [0x11B66, 0x11B66, 'NSM'],\n [0x11C30, 0x11C36, 'NSM'],\n [0x11C38, 0x11C3D, 'NSM'],\n [0x11C92, 0x11CA7, 'NSM'],\n [0x11CAA, 0x11CB0, 'NSM'],\n [0x11CB2, 0x11CB3, 'NSM'],\n [0x11CB5, 0x11CB6, 'NSM'],\n [0x11D31, 0x11D36, 'NSM'],\n [0x11D3A, 0x11D3A, 'NSM'],\n [0x11D3C, 0x11D3D, 'NSM'],\n [0x11D3F, 0x11D45, 'NSM'],\n [0x11D47, 0x11D47, 'NSM'],\n [0x11D90, 0x11D91, 'NSM'],\n [0x11D95, 0x11D95, 'NSM'],\n [0x11D97, 0x11D97, 'NSM'],\n [0x11EF3, 0x11EF4, 'NSM'],\n [0x11F00, 0x11F01, 'NSM'],\n [0x11F36, 0x11F3A, 'NSM'],\n [0x11F40, 0x11F40, 'NSM'],\n [0x11F42, 0x11F42, 'NSM'],\n [0x11F5A, 0x11F5A, 'NSM'],\n [0x11FD5, 0x11FDC, 'ON'],\n [0x11FDD, 0x11FE0, 'ET'],\n [0x11FE1, 0x11FF1, 'ON'],\n [0x13440, 0x13440, 'NSM'],\n [0x13447, 0x13455, 'NSM'],\n [0x1611E, 0x16129, 'NSM'],\n [0x1612D, 0x1612F, 'NSM'],\n [0x16AF0, 0x16AF4, 'NSM'],\n [0x16B30, 0x16B36, 'NSM'],\n [0x16F4F, 0x16F4F, 'NSM'],\n [0x16F8F, 0x16F92, 'NSM'],\n [0x16FE2, 0x16FE2, 'ON'],\n [0x16FE4, 0x16FE4, 'NSM'],\n [0x1BC9D, 0x1BC9E, 'NSM'],\n [0x1BCA0, 0x1BCA3, 'BN'],\n [0x1CC00, 0x1CCD5, 'ON'],\n [0x1CCF0, 0x1CCF9, 'EN'],\n [0x1CCFA, 0x1CCFC, 'ON'],\n [0x1CD00, 0x1CEB3, 'ON'],\n [0x1CEBA, 0x1CED0, 'ON'],\n [0x1CEE0, 0x1CEF0, 'ON'],\n [0x1CF00, 0x1CF2D, 'NSM'],\n [0x1CF30, 0x1CF46, 'NSM'],\n [0x1D167, 0x1D169, 'NSM'],\n [0x1D173, 0x1D17A, 'BN'],\n [0x1D17B, 0x1D182, 'NSM'],\n [0x1D185, 0x1D18B, 'NSM'],\n [0x1D1AA, 0x1D1AD, 'NSM'],\n [0x1D1E9, 0x1D1EA, 'ON'],\n [0x1D200, 0x1D241, 'ON'],\n [0x1D242, 0x1D244, 'NSM'],\n [0x1D245, 0x1D245, 'ON'],\n [0x1D300, 0x1D356, 'ON'],\n [0x1D6C1, 0x1D6C1, 'ON'],\n [0x1D6DB, 0x1D6DB, 'ON'],\n [0x1D6FB, 0x1D6FB, 'ON'],\n [0x1D715, 0x1D715, 'ON'],\n [0x1D735, 0x1D735, 'ON'],\n [0x1D74F, 0x1D74F, 'ON'],\n [0x1D76F, 0x1D76F, 'ON'],\n [0x1D789, 0x1D789, 'ON'],\n [0x1D7A9, 0x1D7A9, 'ON'],\n [0x1D7C3, 0x1D7C3, 'ON'],\n [0x1D7CE, 0x1D7FF, 'EN'],\n [0x1DA00, 0x1DA36, 'NSM'],\n [0x1DA3B, 0x1DA6C, 'NSM'],\n [0x1DA75, 0x1DA75, 'NSM'],\n [0x1DA84, 0x1DA84, 'NSM'],\n [0x1DA9B, 0x1DA9F, 'NSM'],\n [0x1DAA1, 0x1DAAF, 'NSM'],\n [0x1E000, 0x1E006, 'NSM'],\n [0x1E008, 0x1E018, 'NSM'],\n [0x1E01B, 0x1E021, 'NSM'],\n [0x1E023, 0x1E024, 'NSM'],\n [0x1E026, 0x1E02A, 'NSM'],\n [0x1E08F, 0x1E08F, 'NSM'],\n [0x1E130, 0x1E136, 'NSM'],\n [0x1E2AE, 0x1E2AE, 'NSM'],\n [0x1E2EC, 0x1E2EF, 'NSM'],\n [0x1E2FF, 0x1E2FF, 'ET'],\n [0x1E4EC, 0x1E4EF, 'NSM'],\n [0x1E5EE, 0x1E5EF, 'NSM'],\n [0x1E6E3, 0x1E6E3, 'NSM'],\n [0x1E6E6, 0x1E6E6, 'NSM'],\n [0x1E6EE, 0x1E6EF, 'NSM'],\n [0x1E6F5, 0x1E6F5, 'NSM'],\n [0x1E800, 0x1E8CF, 'R'],\n [0x1E8D0, 0x1E8D6, 'NSM'],\n [0x1E8D7, 0x1E943, 'R'],\n [0x1E944, 0x1E94A, 'NSM'],\n [0x1E94B, 0x1EC6F, 'R'],\n [0x1EC70, 0x1ECBF, 'AL'],\n [0x1ECC0, 0x1ECFF, 'R'],\n [0x1ED00, 0x1ED4F, 'AL'],\n [0x1ED50, 0x1EDFF, 'R'],\n [0x1EE00, 0x1EEEF, 'AL'],\n [0x1EEF0, 0x1EEF1, 'ON'],\n [0x1EEF2, 0x1EEFF, 'AL'],\n [0x1EF00, 0x1EFFF, 'R'],\n [0x1F000, 0x1F02B, 'ON'],\n [0x1F030, 0x1F093, 'ON'],\n [0x1F0A0, 0x1F0AE, 'ON'],\n [0x1F0B1, 0x1F0BF, 'ON'],\n [0x1F0C1, 0x1F0CF, 'ON'],\n [0x1F0D1, 0x1F0F5, 'ON'],\n [0x1F100, 0x1F10A, 'EN'],\n [0x1F10B, 0x1F10F, 'ON'],\n [0x1F12F, 0x1F12F, 'ON'],\n [0x1F16A, 0x1F16F, 'ON'],\n [0x1F1AD, 0x1F1AD, 'ON'],\n [0x1F260, 0x1F265, 'ON'],\n [0x1F300, 0x1F6D8, 'ON'],\n [0x1F6DC, 0x1F6EC, 'ON'],\n [0x1F6F0, 0x1F6FC, 'ON'],\n [0x1F700, 0x1F7D9, 'ON'],\n [0x1F7E0, 0x1F7EB, 'ON'],\n [0x1F7F0, 0x1F7F0, 'ON'],\n [0x1F800, 0x1F80B, 'ON'],\n [0x1F810, 0x1F847, 'ON'],\n [0x1F850, 0x1F859, 'ON'],\n [0x1F860, 0x1F887, 'ON'],\n [0x1F890, 0x1F8AD, 'ON'],\n [0x1F8B0, 0x1F8BB, 'ON'],\n [0x1F8C0, 0x1F8C1, 'ON'],\n [0x1F8D0, 0x1F8D8, 'ON'],\n [0x1F900, 0x1FA57, 'ON'],\n [0x1FA60, 0x1FA6D, 'ON'],\n [0x1FA70, 0x1FA7C, 'ON'],\n [0x1FA80, 0x1FA8A, 'ON'],\n [0x1FA8E, 0x1FAC6, 'ON'],\n [0x1FAC8, 0x1FAC8, 'ON'],\n [0x1FACD, 0x1FADC, 'ON'],\n [0x1FADF, 0x1FAEA, 'ON'],\n [0x1FAEF, 0x1FAF8, 'ON'],\n [0x1FB00, 0x1FB92, 'ON'],\n [0x1FB94, 0x1FBEF, 'ON'],\n [0x1FBF0, 0x1FBF9, 'EN'],\n [0x1FBFA, 0x1FBFA, 'ON'],\n [0x1FFFE, 0x1FFFF, 'BN'],\n [0x2FFFE, 0x2FFFF, 'BN'],\n [0x3FFFE, 0x3FFFF, 'BN'],\n [0x4FFFE, 0x4FFFF, 'BN'],\n [0x5FFFE, 0x5FFFF, 'BN'],\n [0x6FFFE, 0x6FFFF, 'BN'],\n [0x7FFFE, 0x7FFFF, 'BN'],\n [0x8FFFE, 0x8FFFF, 'BN'],\n [0x9FFFE, 0x9FFFF, 'BN'],\n [0xAFFFE, 0xAFFFF, 'BN'],\n [0xBFFFE, 0xBFFFF, 'BN'],\n [0xCFFFE, 0xCFFFF, 'BN'],\n [0xDFFFE, 0xE00FF, 'BN'],\n [0xE0100, 0xE01EF, 'NSM'],\n [0xE01F0, 0xE0FFF, 'BN'],\n [0xEFFFE, 0xEFFFF, 'BN'],\n [0xFFFFE, 0xFFFFF, 'BN'],\n [0x10FFFE, 0x10FFFF, 'BN'],\n];\n","// Simplified bidi metadata helper for the rich prepareWithSegments() path,\n// forked from pdf.js via Sebastian's text-layout. It classifies characters\n// into bidi types, computes embedding levels, and maps them onto prepared\n// segments for custom rendering. The line-breaking engine does not consume\n// these levels.\nimport { latin1BidiTypes, nonLatin1BidiRanges, } from './generated/bidi-data.js';\nfunction classifyCodePoint(codePoint) {\n if (codePoint <= 0x00FF)\n return latin1BidiTypes[codePoint];\n let lo = 0;\n let hi = nonLatin1BidiRanges.length - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >> 1;\n const range = nonLatin1BidiRanges[mid];\n if (codePoint < range[0]) {\n hi = mid - 1;\n continue;\n }\n if (codePoint > range[1]) {\n lo = mid + 1;\n continue;\n }\n return range[2];\n }\n return 'L';\n}\nfunction computeBidiLevels(str) {\n const len = str.length;\n if (len === 0)\n return null;\n // eslint-disable-next-line unicorn/no-new-array\n const types = new Array(len);\n let sawBidi = false;\n // Keep the resolved bidi classes aligned to UTF-16 code-unit offsets,\n // because the rich prepared segments index back into the normalized string\n // with JavaScript string offsets.\n for (let i = 0; i < len;) {\n const first = str.charCodeAt(i);\n let codePoint = first;\n let codeUnitLength = 1;\n if (first >= 0xD800 && first <= 0xDBFF && i + 1 < len) {\n const second = str.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = ((first - 0xD800) << 10) + (second - 0xDC00) + 0x10000;\n codeUnitLength = 2;\n }\n }\n const t = classifyCodePoint(codePoint);\n if (t === 'R' || t === 'AL' || t === 'AN')\n sawBidi = true;\n for (let j = 0; j < codeUnitLength; j++) {\n types[i + j] = t;\n }\n i += codeUnitLength;\n }\n if (!sawBidi)\n return null;\n // Use the first strong character to pick the paragraph base direction.\n // Rich-path bidi metadata is only an approximation, but this keeps mixed\n // LTR/RTL text aligned with the common UBA paragraph rule.\n let startLevel = 0;\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'L') {\n startLevel = 0;\n break;\n }\n if (t === 'R' || t === 'AL') {\n startLevel = 1;\n break;\n }\n }\n const levels = new Int8Array(len);\n for (let i = 0; i < len; i++)\n levels[i] = startLevel;\n const e = (startLevel & 1) ? 'R' : 'L';\n const sor = e;\n // W1-W7\n let lastType = sor;\n for (let i = 0; i < len; i++) {\n if (types[i] === 'NSM')\n types[i] = lastType;\n else\n lastType = types[i];\n }\n lastType = sor;\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'EN')\n types[i] = lastType === 'AL' ? 'AN' : 'EN';\n else if (t === 'R' || t === 'L' || t === 'AL')\n lastType = t;\n }\n for (let i = 0; i < len; i++) {\n if (types[i] === 'AL')\n types[i] = 'R';\n }\n for (let i = 1; i < len - 1; i++) {\n if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n types[i] = 'EN';\n }\n if (types[i] === 'CS' &&\n (types[i - 1] === 'EN' || types[i - 1] === 'AN') &&\n types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n for (let i = 0; i < len; i++) {\n if (types[i] !== 'EN')\n continue;\n let j;\n for (j = i - 1; j >= 0 && types[j] === 'ET'; j--)\n types[j] = 'EN';\n for (j = i + 1; j < len && types[j] === 'ET'; j++)\n types[j] = 'EN';\n }\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS')\n types[i] = 'ON';\n }\n lastType = sor;\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if (t === 'EN')\n types[i] = lastType === 'L' ? 'L' : 'EN';\n else if (t === 'R' || t === 'L')\n lastType = t;\n }\n // N1-N2\n for (let i = 0; i < len; i++) {\n if (types[i] !== 'ON')\n continue;\n let end = i + 1;\n while (end < len && types[end] === 'ON')\n end++;\n const before = i > 0 ? types[i - 1] : sor;\n const after = end < len ? types[end] : sor;\n const bDir = before !== 'L' ? 'R' : 'L';\n const aDir = after !== 'L' ? 'R' : 'L';\n if (bDir === aDir) {\n for (let j = i; j < end; j++)\n types[j] = bDir;\n }\n i = end - 1;\n }\n for (let i = 0; i < len; i++) {\n if (types[i] === 'ON')\n types[i] = e;\n }\n // I1-I2\n for (let i = 0; i < len; i++) {\n const t = types[i];\n if ((levels[i] & 1) === 0) {\n if (t === 'R')\n levels[i]++;\n else if (t === 'AN' || t === 'EN')\n levels[i] += 2;\n }\n else if (t === 'L' || t === 'AN' || t === 'EN') {\n levels[i]++;\n }\n }\n return levels;\n}\nexport function computeSegmentLevels(normalized, segStarts) {\n const bidiLevels = computeBidiLevels(normalized);\n if (bidiLevels === null)\n return null;\n const segLevels = new Int8Array(segStarts.length);\n for (let i = 0; i < segStarts.length; i++) {\n segLevels[i] = bidiLevels[segStarts[i]];\n }\n return segLevels;\n}\n","const collapsibleWhitespaceRunRe = /[ \\t\\n\\r\\f]+/g;\nconst needsWhitespaceNormalizationRe = /[\\t\\n\\r\\f]| {2,}|^ | $/;\nfunction getWhiteSpaceProfile(whiteSpace) {\n const mode = whiteSpace ?? 'normal';\n return mode === 'pre-wrap'\n ? { mode, preserveOrdinarySpaces: true, preserveHardBreaks: true }\n : { mode, preserveOrdinarySpaces: false, preserveHardBreaks: false };\n}\nexport function normalizeWhitespaceNormal(text) {\n if (!needsWhitespaceNormalizationRe.test(text))\n return text;\n let normalized = text.replace(collapsibleWhitespaceRunRe, ' ');\n if (normalized.charCodeAt(0) === 0x20) {\n normalized = normalized.slice(1);\n }\n if (normalized.length > 0 && normalized.charCodeAt(normalized.length - 1) === 0x20) {\n normalized = normalized.slice(0, -1);\n }\n return normalized;\n}\nfunction normalizeWhitespacePreWrap(text) {\n if (!/[\\r\\f]/.test(text))\n return text.replace(/\\r\\n/g, '\\n');\n return text\n .replace(/\\r\\n/g, '\\n')\n .replace(/[\\r\\f]/g, '\\n');\n}\nlet sharedWordSegmenter = null;\nlet segmenterLocale;\nfunction getSharedWordSegmenter() {\n if (sharedWordSegmenter === null) {\n sharedWordSegmenter = new Intl.Segmenter(segmenterLocale, { granularity: 'word' });\n }\n return sharedWordSegmenter;\n}\nexport function clearAnalysisCaches() {\n sharedWordSegmenter = null;\n}\nexport function setAnalysisLocale(locale) {\n const nextLocale = locale && locale.length > 0 ? locale : undefined;\n if (segmenterLocale === nextLocale)\n return;\n segmenterLocale = nextLocale;\n sharedWordSegmenter = null;\n}\nconst arabicScriptRe = /\\p{Script=Arabic}/u;\nconst combiningMarkRe = /\\p{M}/u;\nconst decimalDigitRe = /\\p{Nd}/u;\nfunction containsArabicScript(text) {\n return arabicScriptRe.test(text);\n}\nfunction isCJKCodePoint(codePoint) {\n return ((codePoint >= 0x4E00 && codePoint <= 0x9FFF) ||\n (codePoint >= 0x3400 && codePoint <= 0x4DBF) ||\n (codePoint >= 0x20000 && codePoint <= 0x2A6DF) ||\n (codePoint >= 0x2A700 && codePoint <= 0x2B73F) ||\n (codePoint >= 0x2B740 && codePoint <= 0x2B81F) ||\n (codePoint >= 0x2B820 && codePoint <= 0x2CEAF) ||\n (codePoint >= 0x2CEB0 && codePoint <= 0x2EBEF) ||\n (codePoint >= 0x2EBF0 && codePoint <= 0x2EE5D) ||\n (codePoint >= 0x2F800 && codePoint <= 0x2FA1F) ||\n (codePoint >= 0x30000 && codePoint <= 0x3134F) ||\n (codePoint >= 0x31350 && codePoint <= 0x323AF) ||\n (codePoint >= 0x323B0 && codePoint <= 0x33479) ||\n (codePoint >= 0xF900 && codePoint <= 0xFAFF) ||\n (codePoint >= 0x3000 && codePoint <= 0x303F) ||\n (codePoint >= 0x3040 && codePoint <= 0x309F) ||\n (codePoint >= 0x30A0 && codePoint <= 0x30FF) ||\n (codePoint >= 0xAC00 && codePoint <= 0xD7AF) ||\n (codePoint >= 0xFF00 && codePoint <= 0xFFEF));\n}\nexport function isCJK(s) {\n for (let i = 0; i < s.length; i++) {\n const first = s.charCodeAt(i);\n if (first < 0x3000)\n continue;\n if (first >= 0xD800 && first <= 0xDBFF && i + 1 < s.length) {\n const second = s.charCodeAt(i + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n const codePoint = ((first - 0xD800) << 10) + (second - 0xDC00) + 0x10000;\n if (isCJKCodePoint(codePoint))\n return true;\n i++;\n continue;\n }\n }\n if (isCJKCodePoint(first))\n return true;\n }\n return false;\n}\nfunction endsWithLineStartProhibitedText(text) {\n const last = getLastCodePoint(text);\n return last !== null && (kinsokuStart.has(last) || leftStickyPunctuation.has(last));\n}\nconst keepAllGlueChars = new Set([\n '\\u00A0',\n '\\u202F',\n '\\u2060',\n '\\uFEFF',\n]);\nfunction containsCJKText(text) {\n return isCJK(text);\n}\nfunction endsWithKeepAllGlueText(text) {\n const last = getLastCodePoint(text);\n return last !== null && keepAllGlueChars.has(last);\n}\nexport function canContinueKeepAllTextRun(previousText) {\n return (!endsWithLineStartProhibitedText(previousText) &&\n !endsWithKeepAllGlueText(previousText));\n}\nexport const kinsokuStart = new Set([\n '\\uFF0C',\n '\\uFF0E',\n '\\uFF01',\n '\\uFF1A',\n '\\uFF1B',\n '\\uFF1F',\n '\\u3001',\n '\\u3002',\n '\\u30FB',\n '\\uFF09',\n '\\u3015',\n '\\u3009',\n '\\u300B',\n '\\u300D',\n '\\u300F',\n '\\u3011',\n '\\u3017',\n '\\u3019',\n '\\u301B',\n '\\u30FC',\n '\\u3005',\n '\\u303B',\n '\\u309D',\n '\\u309E',\n '\\u30FD',\n '\\u30FE',\n]);\nexport const kinsokuEnd = new Set([\n '\"',\n '(', '[', '{',\n '“', '‘', '«', '‹',\n '\\uFF08',\n '\\u3014',\n '\\u3008',\n '\\u300A',\n '\\u300C',\n '\\u300E',\n '\\u3010',\n '\\u3016',\n '\\u3018',\n '\\u301A',\n]);\nconst forwardStickyGlue = new Set([\n \"'\", '’',\n]);\nexport const leftStickyPunctuation = new Set([\n '.', ',', '!', '?', ':', ';',\n '\\u060C',\n '\\u061B',\n '\\u061F',\n '\\u0964',\n '\\u0965',\n '\\u104A',\n '\\u104B',\n '\\u104C',\n '\\u104D',\n '\\u104F',\n ')', ']', '}',\n '%',\n '\"',\n '”', '’', '»', '›',\n '…',\n]);\nconst arabicNoSpaceTrailingPunctuation = new Set([\n ':',\n '.',\n '\\u060C',\n '\\u061B',\n]);\nconst myanmarMedialGlue = new Set([\n '\\u104F',\n]);\nconst closingQuoteChars = new Set([\n '”', '’', '»', '›',\n '\\u300D',\n '\\u300F',\n '\\u3011',\n '\\u300B',\n '\\u3009',\n '\\u3015',\n '\\uFF09',\n]);\nfunction isLeftStickyPunctuationSegment(segment) {\n if (isEscapedQuoteClusterSegment(segment))\n return true;\n let sawPunctuation = false;\n for (const ch of segment) {\n if (leftStickyPunctuation.has(ch)) {\n sawPunctuation = true;\n continue;\n }\n if (sawPunctuation && combiningMarkRe.test(ch))\n continue;\n return false;\n }\n return sawPunctuation;\n}\nfunction isCJKLineStartProhibitedSegment(segment) {\n for (const ch of segment) {\n if (!kinsokuStart.has(ch) && !leftStickyPunctuation.has(ch))\n return false;\n }\n return segment.length > 0;\n}\nfunction isForwardStickyClusterSegment(segment) {\n if (isEscapedQuoteClusterSegment(segment))\n return true;\n for (const ch of segment) {\n if (!kinsokuEnd.has(ch) && !forwardStickyGlue.has(ch) && !combiningMarkRe.test(ch))\n return false;\n }\n return segment.length > 0;\n}\nfunction isEscapedQuoteClusterSegment(segment) {\n let sawQuote = false;\n for (const ch of segment) {\n if (ch === '\\\\' || combiningMarkRe.test(ch))\n continue;\n if (kinsokuEnd.has(ch) || leftStickyPunctuation.has(ch) || forwardStickyGlue.has(ch)) {\n sawQuote = true;\n continue;\n }\n return false;\n }\n return sawQuote;\n}\nfunction previousCodePointStart(text, end) {\n const last = end - 1;\n if (last <= 0)\n return Math.max(last, 0);\n const lastCodeUnit = text.charCodeAt(last);\n if (lastCodeUnit < 0xDC00 || lastCodeUnit > 0xDFFF)\n return last;\n const maybeHigh = last - 1;\n if (maybeHigh < 0)\n return last;\n const highCodeUnit = text.charCodeAt(maybeHigh);\n return highCodeUnit >= 0xD800 && highCodeUnit <= 0xDBFF ? maybeHigh : last;\n}\nfunction getLastCodePoint(text) {\n if (text.length === 0)\n return null;\n const start = previousCodePointStart(text, text.length);\n return text.slice(start);\n}\nfunction splitTrailingForwardStickyCluster(text) {\n const chars = Array.from(text);\n let splitIndex = chars.length;\n while (splitIndex > 0) {\n const ch = chars[splitIndex - 1];\n if (combiningMarkRe.test(ch)) {\n splitIndex--;\n continue;\n }\n if (kinsokuEnd.has(ch) || forwardStickyGlue.has(ch)) {\n splitIndex--;\n continue;\n }\n break;\n }\n if (splitIndex <= 0 || splitIndex === chars.length)\n return null;\n return {\n head: chars.slice(0, splitIndex).join(''),\n tail: chars.slice(splitIndex).join(''),\n };\n}\nfunction getRepeatableSingleCharRunChar(text, isWordLike, kind) {\n return kind === 'text' && !isWordLike && text.length === 1 && text !== '-' && text !== '—'\n ? text\n : null;\n}\nfunction materializeDeferredSingleCharRun(texts, chars, lengths, index) {\n const ch = chars[index];\n const text = texts[index];\n if (ch == null)\n return text;\n const length = lengths[index];\n if (text.length === length)\n return text;\n const materialized = ch.repeat(length);\n texts[index] = materialized;\n return materialized;\n}\nfunction hasArabicNoSpacePunctuation(containsArabic, lastCodePoint) {\n return containsArabic && lastCodePoint !== null && arabicNoSpaceTrailingPunctuation.has(lastCodePoint);\n}\nfunction endsWithMyanmarMedialGlue(segment) {\n const lastCodePoint = getLastCodePoint(segment);\n return lastCodePoint !== null && myanmarMedialGlue.has(lastCodePoint);\n}\nfunction splitLeadingSpaceAndMarks(segment) {\n if (segment.length < 2 || segment[0] !== ' ')\n return null;\n const marks = segment.slice(1);\n if (/^\\p{M}+$/u.test(marks)) {\n return { space: ' ', marks };\n }\n return null;\n}\nexport function endsWithClosingQuote(text) {\n let end = text.length;\n while (end > 0) {\n const start = previousCodePointStart(text, end);\n const ch = text.slice(start, end);\n if (closingQuoteChars.has(ch))\n return true;\n if (!leftStickyPunctuation.has(ch))\n return false;\n end = start;\n }\n return false;\n}\nfunction classifySegmentBreakChar(ch, whiteSpaceProfile) {\n if (whiteSpaceProfile.preserveOrdinarySpaces || whiteSpaceProfile.preserveHardBreaks) {\n if (ch === ' ')\n return 'preserved-space';\n if (ch === '\\t')\n return 'tab';\n if (whiteSpaceProfile.preserveHardBreaks && ch === '\\n')\n return 'hard-break';\n }\n if (ch === ' ')\n return 'space';\n if (ch === '\\u00A0' || ch === '\\u202F' || ch === '\\u2060' || ch === '\\uFEFF') {\n return 'glue';\n }\n if (ch === '\\u200B')\n return 'zero-width-break';\n if (ch === '\\u00AD')\n return 'soft-hyphen';\n return 'text';\n}\n// All characters that classifySegmentBreakChar maps to a non-'text' kind.\nconst breakCharRe = /[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;\nfunction joinTextParts(parts) {\n return parts.length === 1 ? parts[0] : parts.join('');\n}\nfunction joinReversedPrefixParts(prefixParts, tail) {\n const parts = [];\n for (let i = prefixParts.length - 1; i >= 0; i--) {\n parts.push(prefixParts[i]);\n }\n parts.push(tail);\n return joinTextParts(parts);\n}\nfunction splitSegmentByBreakKind(segment, isWordLike, start, whiteSpaceProfile) {\n if (!breakCharRe.test(segment)) {\n return [{ text: segment, isWordLike, kind: 'text', start }];\n }\n const pieces = [];\n let currentKind = null;\n let currentTextParts = [];\n let currentStart = start;\n let currentWordLike = false;\n let offset = 0;\n for (const ch of segment) {\n const kind = classifySegmentBreakChar(ch, whiteSpaceProfile);\n const wordLike = kind === 'text' && isWordLike;\n if (currentKind !== null && kind === currentKind && wordLike === currentWordLike) {\n currentTextParts.push(ch);\n offset += ch.length;\n continue;\n }\n if (currentKind !== null) {\n pieces.push({\n text: joinTextParts(currentTextParts),\n isWordLike: currentWordLike,\n kind: currentKind,\n start: currentStart,\n });\n }\n currentKind = kind;\n currentTextParts = [ch];\n currentStart = start + offset;\n currentWordLike = wordLike;\n offset += ch.length;\n }\n if (currentKind !== null) {\n pieces.push({\n text: joinTextParts(currentTextParts),\n isWordLike: currentWordLike,\n kind: currentKind,\n start: currentStart,\n });\n }\n return pieces;\n}\nfunction isTextRunBoundary(kind) {\n return (kind === 'space' ||\n kind === 'preserved-space' ||\n kind === 'zero-width-break' ||\n kind === 'hard-break');\n}\nconst urlSchemeSegmentRe = /^[A-Za-z][A-Za-z0-9+.-]*:$/;\nfunction isUrlLikeRunStart(segmentation, index) {\n const text = segmentation.texts[index];\n if (text.startsWith('www.'))\n return true;\n return (urlSchemeSegmentRe.test(text) &&\n index + 1 < segmentation.len &&\n segmentation.kinds[index + 1] === 'text' &&\n segmentation.texts[index + 1] === '//');\n}\nfunction isUrlQueryBoundarySegment(text) {\n return text.includes('?') && (text.includes('://') || text.startsWith('www.'));\n}\nfunction mergeUrlLikeRuns(segmentation) {\n const texts = segmentation.texts.slice();\n const isWordLike = segmentation.isWordLike.slice();\n const kinds = segmentation.kinds.slice();\n const starts = segmentation.starts.slice();\n for (let i = 0; i < segmentation.len; i++) {\n if (kinds[i] !== 'text' || !isUrlLikeRunStart(segmentation, i))\n continue;\n const mergedParts = [texts[i]];\n let j = i + 1;\n while (j < segmentation.len && !isTextRunBoundary(kinds[j])) {\n mergedParts.push(texts[j]);\n isWordLike[i] = true;\n const endsQueryPrefix = texts[j].includes('?');\n kinds[j] = 'text';\n texts[j] = '';\n j++;\n if (endsQueryPrefix)\n break;\n }\n texts[i] = joinTextParts(mergedParts);\n }\n let compactLen = 0;\n for (let read = 0; read < texts.length; read++) {\n const text = texts[read];\n if (text.length === 0)\n continue;\n if (compactLen !== read) {\n texts[compactLen] = text;\n isWordLike[compactLen] = isWordLike[read];\n kinds[compactLen] = kinds[read];\n starts[compactLen] = starts[read];\n }\n compactLen++;\n }\n texts.length = compactLen;\n isWordLike.length = compactLen;\n kinds.length = compactLen;\n starts.length = compactLen;\n return {\n len: compactLen,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeUrlQueryRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(segmentation.kinds[i]);\n starts.push(segmentation.starts[i]);\n if (!isUrlQueryBoundarySegment(text))\n continue;\n const nextIndex = i + 1;\n if (nextIndex >= segmentation.len ||\n isTextRunBoundary(segmentation.kinds[nextIndex])) {\n continue;\n }\n const queryParts = [];\n const queryStart = segmentation.starts[nextIndex];\n let j = nextIndex;\n while (j < segmentation.len && !isTextRunBoundary(segmentation.kinds[j])) {\n queryParts.push(segmentation.texts[j]);\n j++;\n }\n if (queryParts.length > 0) {\n texts.push(joinTextParts(queryParts));\n isWordLike.push(true);\n kinds.push('text');\n starts.push(queryStart);\n i = j - 1;\n }\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nconst numericJoinerChars = new Set([\n ':', '-', '/', '×', ',', '.', '+',\n '\\u2013',\n '\\u2014',\n]);\nconst asciiPunctuationChainSegmentRe = /^[A-Za-z0-9_]+[,:;]*$/;\nconst asciiPunctuationChainTrailingJoinersRe = /[,:;]+$/;\nfunction segmentContainsDecimalDigit(text) {\n for (const ch of text) {\n if (decimalDigitRe.test(ch))\n return true;\n }\n return false;\n}\nexport function isNumericRunSegment(text) {\n if (text.length === 0)\n return false;\n for (const ch of text) {\n if (decimalDigitRe.test(ch) || numericJoinerChars.has(ch))\n continue;\n return false;\n }\n return true;\n}\nfunction mergeNumericRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n const kind = segmentation.kinds[i];\n if (kind === 'text' && isNumericRunSegment(text) && segmentContainsDecimalDigit(text)) {\n const mergedParts = [text];\n let j = i + 1;\n while (j < segmentation.len &&\n segmentation.kinds[j] === 'text' &&\n isNumericRunSegment(segmentation.texts[j])) {\n mergedParts.push(segmentation.texts[j]);\n j++;\n }\n texts.push(joinTextParts(mergedParts));\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i]);\n i = j - 1;\n continue;\n }\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(kind);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeAsciiPunctuationChains(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n const kind = segmentation.kinds[i];\n const wordLike = segmentation.isWordLike[i];\n if (kind === 'text' && wordLike && asciiPunctuationChainSegmentRe.test(text)) {\n const mergedParts = [text];\n let endsWithJoiners = asciiPunctuationChainTrailingJoinersRe.test(text);\n let j = i + 1;\n while (endsWithJoiners &&\n j < segmentation.len &&\n segmentation.kinds[j] === 'text' &&\n segmentation.isWordLike[j] &&\n asciiPunctuationChainSegmentRe.test(segmentation.texts[j])) {\n const nextText = segmentation.texts[j];\n mergedParts.push(nextText);\n endsWithJoiners = asciiPunctuationChainTrailingJoinersRe.test(nextText);\n j++;\n }\n texts.push(joinTextParts(mergedParts));\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i]);\n i = j - 1;\n continue;\n }\n texts.push(text);\n isWordLike.push(wordLike);\n kinds.push(kind);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction splitHyphenatedNumericRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n if (segmentation.kinds[i] === 'text' && text.includes('-')) {\n const parts = text.split('-');\n let shouldSplit = parts.length > 1;\n for (let j = 0; j < parts.length; j++) {\n const part = parts[j];\n if (!shouldSplit)\n break;\n if (part.length === 0 ||\n !segmentContainsDecimalDigit(part) ||\n !isNumericRunSegment(part)) {\n shouldSplit = false;\n }\n }\n if (shouldSplit) {\n let offset = 0;\n for (let j = 0; j < parts.length; j++) {\n const part = parts[j];\n const splitText = j < parts.length - 1 ? `${part}-` : part;\n texts.push(splitText);\n isWordLike.push(true);\n kinds.push('text');\n starts.push(segmentation.starts[i] + offset);\n offset += splitText.length;\n }\n continue;\n }\n }\n texts.push(text);\n isWordLike.push(segmentation.isWordLike[i]);\n kinds.push(segmentation.kinds[i]);\n starts.push(segmentation.starts[i]);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction mergeGlueConnectedTextRuns(segmentation) {\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n let read = 0;\n while (read < segmentation.len) {\n const textParts = [segmentation.texts[read]];\n let wordLike = segmentation.isWordLike[read];\n let kind = segmentation.kinds[read];\n let start = segmentation.starts[read];\n if (kind === 'glue') {\n const glueParts = [textParts[0]];\n const glueStart = start;\n read++;\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n glueParts.push(segmentation.texts[read]);\n read++;\n }\n const glueText = joinTextParts(glueParts);\n if (read < segmentation.len && segmentation.kinds[read] === 'text') {\n textParts[0] = glueText;\n textParts.push(segmentation.texts[read]);\n wordLike = segmentation.isWordLike[read];\n kind = 'text';\n start = glueStart;\n read++;\n }\n else {\n texts.push(glueText);\n isWordLike.push(false);\n kinds.push('glue');\n starts.push(glueStart);\n continue;\n }\n }\n else {\n read++;\n }\n if (kind === 'text') {\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n const glueParts = [];\n while (read < segmentation.len && segmentation.kinds[read] === 'glue') {\n glueParts.push(segmentation.texts[read]);\n read++;\n }\n const glueText = joinTextParts(glueParts);\n if (read < segmentation.len && segmentation.kinds[read] === 'text') {\n textParts.push(glueText, segmentation.texts[read]);\n wordLike = wordLike || segmentation.isWordLike[read];\n read++;\n continue;\n }\n textParts.push(glueText);\n }\n }\n texts.push(joinTextParts(textParts));\n isWordLike.push(wordLike);\n kinds.push(kind);\n starts.push(start);\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction carryTrailingForwardStickyAcrossCJKBoundary(segmentation) {\n const texts = segmentation.texts.slice();\n const isWordLike = segmentation.isWordLike.slice();\n const kinds = segmentation.kinds.slice();\n const starts = segmentation.starts.slice();\n for (let i = 0; i < texts.length - 1; i++) {\n if (kinds[i] !== 'text' || kinds[i + 1] !== 'text')\n continue;\n if (!isCJK(texts[i]) || !isCJK(texts[i + 1]))\n continue;\n const split = splitTrailingForwardStickyCluster(texts[i]);\n if (split === null)\n continue;\n texts[i] = split.head;\n texts[i + 1] = split.tail + texts[i + 1];\n starts[i + 1] = starts[i] + split.head.length;\n }\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nfunction buildMergedSegmentation(normalized, profile, whiteSpaceProfile) {\n const wordSegmenter = getSharedWordSegmenter();\n let mergedLen = 0;\n const mergedTexts = [];\n const mergedTextParts = [];\n const mergedWordLike = [];\n const mergedKinds = [];\n const mergedStarts = [];\n // Track repeatable single-char punctuation runs structurally so identical\n // merges stay O(1) instead of re-scanning the accumulated segment each time.\n const mergedSingleCharRunChars = [];\n const mergedSingleCharRunLengths = [];\n const mergedContainsCJK = [];\n const mergedContainsArabicScript = [];\n const mergedEndsWithClosingQuote = [];\n const mergedEndsWithMyanmarMedialGlue = [];\n const mergedHasArabicNoSpacePunctuation = [];\n for (const s of wordSegmenter.segment(normalized)) {\n for (const piece of splitSegmentByBreakKind(s.segment, s.isWordLike ?? false, s.index, whiteSpaceProfile)) {\n const isText = piece.kind === 'text';\n const repeatableSingleCharRunChar = getRepeatableSingleCharRunChar(piece.text, piece.isWordLike, piece.kind);\n const pieceContainsCJK = isCJK(piece.text);\n const pieceContainsArabicScript = containsArabicScript(piece.text);\n const pieceLastCodePoint = getLastCodePoint(piece.text);\n const pieceEndsWithClosingQuote = endsWithClosingQuote(piece.text);\n const pieceEndsWithMyanmarMedialGlue = endsWithMyanmarMedialGlue(piece.text);\n const prevIndex = mergedLen - 1;\n function appendPieceToPrevious() {\n if (mergedSingleCharRunChars[prevIndex] !== null) {\n mergedTextParts[prevIndex] = [\n materializeDeferredSingleCharRun(mergedTexts, mergedSingleCharRunChars, mergedSingleCharRunLengths, prevIndex),\n ];\n mergedSingleCharRunChars[prevIndex] = null;\n }\n mergedTextParts[prevIndex].push(piece.text);\n mergedWordLike[prevIndex] = mergedWordLike[prevIndex] || piece.isWordLike;\n mergedContainsCJK[prevIndex] = mergedContainsCJK[prevIndex] || pieceContainsCJK;\n mergedContainsArabicScript[prevIndex] =\n mergedContainsArabicScript[prevIndex] || pieceContainsArabicScript;\n mergedEndsWithClosingQuote[prevIndex] = pieceEndsWithClosingQuote;\n mergedEndsWithMyanmarMedialGlue[prevIndex] = pieceEndsWithMyanmarMedialGlue;\n mergedHasArabicNoSpacePunctuation[prevIndex] = hasArabicNoSpacePunctuation(mergedContainsArabicScript[prevIndex], pieceLastCodePoint);\n }\n // First-pass keeps: no-space script-specific joins and punctuation glue\n // that depend on the immediately preceding text run.\n if (profile.carryCJKAfterClosingQuote &&\n isText &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n pieceContainsCJK &&\n mergedContainsCJK[prevIndex] &&\n mergedEndsWithClosingQuote[prevIndex]) {\n appendPieceToPrevious();\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n isCJKLineStartProhibitedSegment(piece.text) &&\n mergedContainsCJK[prevIndex]) {\n appendPieceToPrevious();\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n mergedEndsWithMyanmarMedialGlue[prevIndex]) {\n appendPieceToPrevious();\n }\n else if (isText &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n piece.isWordLike &&\n pieceContainsArabicScript &&\n mergedHasArabicNoSpacePunctuation[prevIndex]) {\n appendPieceToPrevious();\n mergedWordLike[prevIndex] = true;\n }\n else if (repeatableSingleCharRunChar !== null &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n mergedSingleCharRunChars[prevIndex] === repeatableSingleCharRunChar) {\n mergedSingleCharRunLengths[prevIndex] = (mergedSingleCharRunLengths[prevIndex] ?? 1) + 1;\n }\n else if (isText &&\n !piece.isWordLike &&\n mergedLen > 0 &&\n mergedKinds[prevIndex] === 'text' &&\n (isLeftStickyPunctuationSegment(piece.text) ||\n (piece.text === '-' && mergedWordLike[prevIndex]))) {\n appendPieceToPrevious();\n }\n else {\n mergedTexts[mergedLen] = piece.text;\n mergedTextParts[mergedLen] = [piece.text];\n mergedWordLike[mergedLen] = piece.isWordLike;\n mergedKinds[mergedLen] = piece.kind;\n mergedStarts[mergedLen] = piece.start;\n mergedSingleCharRunChars[mergedLen] = repeatableSingleCharRunChar;\n mergedSingleCharRunLengths[mergedLen] = repeatableSingleCharRunChar === null ? 0 : 1;\n mergedContainsCJK[mergedLen] = pieceContainsCJK;\n mergedContainsArabicScript[mergedLen] = pieceContainsArabicScript;\n mergedEndsWithClosingQuote[mergedLen] = pieceEndsWithClosingQuote;\n mergedEndsWithMyanmarMedialGlue[mergedLen] = pieceEndsWithMyanmarMedialGlue;\n mergedHasArabicNoSpacePunctuation[mergedLen] = hasArabicNoSpacePunctuation(pieceContainsArabicScript, pieceLastCodePoint);\n mergedLen++;\n }\n }\n }\n for (let i = 0; i < mergedLen; i++) {\n if (mergedSingleCharRunChars[i] !== null) {\n mergedTexts[i] = materializeDeferredSingleCharRun(mergedTexts, mergedSingleCharRunChars, mergedSingleCharRunLengths, i);\n continue;\n }\n mergedTexts[i] = joinTextParts(mergedTextParts[i]);\n }\n // Later passes operate on the merged text stream itself: contextual escaped\n // quote glue, forward-sticky carry, compaction, then the broader URL/numeric\n // and Arabic-leading-mark fixes.\n for (let i = 1; i < mergedLen; i++) {\n if (mergedKinds[i] === 'text' &&\n !mergedWordLike[i] &&\n isEscapedQuoteClusterSegment(mergedTexts[i]) &&\n mergedKinds[i - 1] === 'text') {\n mergedTexts[i - 1] += mergedTexts[i];\n mergedWordLike[i - 1] = mergedWordLike[i - 1] || mergedWordLike[i];\n mergedTexts[i] = '';\n }\n }\n const forwardStickyPrefixParts = Array.from({ length: mergedLen }, () => null);\n let nextLiveIndex = -1;\n for (let i = mergedLen - 1; i >= 0; i--) {\n const text = mergedTexts[i];\n if (text.length === 0)\n continue;\n if (mergedKinds[i] === 'text' &&\n !mergedWordLike[i] &&\n isForwardStickyClusterSegment(text) &&\n nextLiveIndex >= 0 &&\n mergedKinds[nextLiveIndex] === 'text') {\n const prefixParts = forwardStickyPrefixParts[nextLiveIndex] ?? [];\n prefixParts.push(text);\n forwardStickyPrefixParts[nextLiveIndex] = prefixParts;\n mergedStarts[nextLiveIndex] = mergedStarts[i];\n mergedTexts[i] = '';\n continue;\n }\n nextLiveIndex = i;\n }\n for (let i = 0; i < mergedLen; i++) {\n const prefixParts = forwardStickyPrefixParts[i];\n if (prefixParts == null)\n continue;\n mergedTexts[i] = joinReversedPrefixParts(prefixParts, mergedTexts[i]);\n }\n let compactLen = 0;\n for (let read = 0; read < mergedLen; read++) {\n const text = mergedTexts[read];\n if (text.length === 0)\n continue;\n if (compactLen !== read) {\n mergedTexts[compactLen] = text;\n mergedWordLike[compactLen] = mergedWordLike[read];\n mergedKinds[compactLen] = mergedKinds[read];\n mergedStarts[compactLen] = mergedStarts[read];\n }\n compactLen++;\n }\n mergedTexts.length = compactLen;\n mergedWordLike.length = compactLen;\n mergedKinds.length = compactLen;\n mergedStarts.length = compactLen;\n const compacted = mergeGlueConnectedTextRuns({\n len: compactLen,\n texts: mergedTexts,\n isWordLike: mergedWordLike,\n kinds: mergedKinds,\n starts: mergedStarts,\n });\n const withMergedUrls = carryTrailingForwardStickyAcrossCJKBoundary(mergeAsciiPunctuationChains(splitHyphenatedNumericRuns(mergeNumericRuns(mergeUrlQueryRuns(mergeUrlLikeRuns(compacted))))));\n for (let i = 0; i < withMergedUrls.len - 1; i++) {\n const split = splitLeadingSpaceAndMarks(withMergedUrls.texts[i]);\n if (split === null)\n continue;\n if ((withMergedUrls.kinds[i] !== 'space' && withMergedUrls.kinds[i] !== 'preserved-space') ||\n withMergedUrls.kinds[i + 1] !== 'text' ||\n !containsArabicScript(withMergedUrls.texts[i + 1])) {\n continue;\n }\n withMergedUrls.texts[i] = split.space;\n withMergedUrls.isWordLike[i] = false;\n withMergedUrls.kinds[i] = withMergedUrls.kinds[i] === 'preserved-space' ? 'preserved-space' : 'space';\n withMergedUrls.texts[i + 1] = split.marks + withMergedUrls.texts[i + 1];\n withMergedUrls.starts[i + 1] = withMergedUrls.starts[i] + split.space.length;\n }\n return withMergedUrls;\n}\nfunction compileAnalysisChunks(segmentation, whiteSpaceProfile) {\n if (segmentation.len === 0)\n return [];\n if (!whiteSpaceProfile.preserveHardBreaks) {\n return [{\n startSegmentIndex: 0,\n endSegmentIndex: segmentation.len,\n consumedEndSegmentIndex: segmentation.len,\n }];\n }\n const chunks = [];\n let startSegmentIndex = 0;\n for (let i = 0; i < segmentation.len; i++) {\n if (segmentation.kinds[i] !== 'hard-break')\n continue;\n chunks.push({\n startSegmentIndex,\n endSegmentIndex: i,\n consumedEndSegmentIndex: i + 1,\n });\n startSegmentIndex = i + 1;\n }\n if (startSegmentIndex < segmentation.len) {\n chunks.push({\n startSegmentIndex,\n endSegmentIndex: segmentation.len,\n consumedEndSegmentIndex: segmentation.len,\n });\n }\n return chunks;\n}\nfunction mergeKeepAllTextSegments(segmentation) {\n if (segmentation.len <= 1)\n return segmentation;\n const texts = [];\n const isWordLike = [];\n const kinds = [];\n const starts = [];\n let pendingTextParts = null;\n let pendingWordLike = false;\n let pendingStart = 0;\n let pendingContainsCJK = false;\n let pendingCanContinue = false;\n function flushPendingText() {\n if (pendingTextParts === null)\n return;\n texts.push(joinTextParts(pendingTextParts));\n isWordLike.push(pendingWordLike);\n kinds.push('text');\n starts.push(pendingStart);\n pendingTextParts = null;\n }\n for (let i = 0; i < segmentation.len; i++) {\n const text = segmentation.texts[i];\n const kind = segmentation.kinds[i];\n const wordLike = segmentation.isWordLike[i];\n const start = segmentation.starts[i];\n if (kind === 'text') {\n const textContainsCJK = containsCJKText(text);\n const textCanContinue = canContinueKeepAllTextRun(text);\n if (pendingTextParts !== null && pendingContainsCJK && pendingCanContinue) {\n pendingTextParts.push(text);\n pendingWordLike = pendingWordLike || wordLike;\n pendingContainsCJK = pendingContainsCJK || textContainsCJK;\n pendingCanContinue = textCanContinue;\n continue;\n }\n flushPendingText();\n pendingTextParts = [text];\n pendingWordLike = wordLike;\n pendingStart = start;\n pendingContainsCJK = textContainsCJK;\n pendingCanContinue = textCanContinue;\n continue;\n }\n flushPendingText();\n texts.push(text);\n isWordLike.push(wordLike);\n kinds.push(kind);\n starts.push(start);\n }\n flushPendingText();\n return {\n len: texts.length,\n texts,\n isWordLike,\n kinds,\n starts,\n };\n}\nexport function analyzeText(text, profile, whiteSpace = 'normal', wordBreak = 'normal') {\n const whiteSpaceProfile = getWhiteSpaceProfile(whiteSpace);\n const normalized = whiteSpaceProfile.mode === 'pre-wrap'\n ? normalizeWhitespacePreWrap(text)\n : normalizeWhitespaceNormal(text);\n if (normalized.length === 0) {\n return {\n normalized,\n chunks: [],\n len: 0,\n texts: [],\n isWordLike: [],\n kinds: [],\n starts: [],\n };\n }\n const segmentation = wordBreak === 'keep-all'\n ? mergeKeepAllTextSegments(buildMergedSegmentation(normalized, profile, whiteSpaceProfile))\n : buildMergedSegmentation(normalized, profile, whiteSpaceProfile);\n return {\n normalized,\n chunks: compileAnalysisChunks(segmentation, whiteSpaceProfile),\n ...segmentation,\n };\n}\n","import { isCJK } from './analysis.js';\nlet measureContext = null;\nconst segmentMetricCaches = new Map();\nlet cachedEngineProfile = null;\n// Safari's prefix-fit policy is useful for ordinary word-sized runs, but letting\n// it measure every growing prefix of a giant segment recreates a pathological\n// superlinear prepare-time path. Past this size, switch to the cheaper\n// pair-context model and keep the public behavior linear.\nconst MAX_PREFIX_FIT_GRAPHEMES = 96;\nconst emojiPresentationRe = /\\p{Emoji_Presentation}/u;\nconst maybeEmojiRe = /[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u;\nlet sharedGraphemeSegmenter = null;\nconst emojiCorrectionCache = new Map();\nexport function getMeasureContext() {\n if (measureContext !== null)\n return measureContext;\n if (typeof OffscreenCanvas !== 'undefined') {\n measureContext = new OffscreenCanvas(1, 1).getContext('2d');\n return measureContext;\n }\n if (typeof document !== 'undefined') {\n measureContext = document.createElement('canvas').getContext('2d');\n return measureContext;\n }\n throw new Error('Text measurement requires OffscreenCanvas or a DOM canvas context.');\n}\nexport function getSegmentMetricCache(font) {\n let cache = segmentMetricCaches.get(font);\n if (!cache) {\n cache = new Map();\n segmentMetricCaches.set(font, cache);\n }\n return cache;\n}\nexport function getSegmentMetrics(seg, cache) {\n let metrics = cache.get(seg);\n if (metrics === undefined) {\n const ctx = getMeasureContext();\n metrics = {\n width: ctx.measureText(seg).width,\n containsCJK: isCJK(seg),\n };\n cache.set(seg, metrics);\n }\n return metrics;\n}\nexport function getEngineProfile() {\n if (cachedEngineProfile !== null)\n return cachedEngineProfile;\n if (typeof navigator === 'undefined') {\n cachedEngineProfile = {\n lineFitEpsilon: 0.005,\n carryCJKAfterClosingQuote: false,\n preferPrefixWidthsForBreakableRuns: false,\n preferEarlySoftHyphenBreak: false,\n };\n return cachedEngineProfile;\n }\n const ua = navigator.userAgent;\n const vendor = navigator.vendor;\n const isSafari = vendor === 'Apple Computer, Inc.' &&\n ua.includes('Safari/') &&\n !ua.includes('Chrome/') &&\n !ua.includes('Chromium/') &&\n !ua.includes('CriOS/') &&\n !ua.includes('FxiOS/') &&\n !ua.includes('EdgiOS/');\n const isChromium = ua.includes('Chrome/') ||\n ua.includes('Chromium/') ||\n ua.includes('CriOS/') ||\n ua.includes('Edg/');\n cachedEngineProfile = {\n lineFitEpsilon: isSafari ? 1 / 64 : 0.005,\n carryCJKAfterClosingQuote: isChromium,\n preferPrefixWidthsForBreakableRuns: isSafari,\n preferEarlySoftHyphenBreak: isSafari,\n };\n return cachedEngineProfile;\n}\nexport function parseFontSize(font) {\n const m = font.match(/(\\d+(?:\\.\\d+)?)\\s*px/);\n return m ? parseFloat(m[1]) : 16;\n}\nfunction getSharedGraphemeSegmenter() {\n if (sharedGraphemeSegmenter === null) {\n sharedGraphemeSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n }\n return sharedGraphemeSegmenter;\n}\nfunction isEmojiGrapheme(g) {\n return emojiPresentationRe.test(g) || g.includes('\\uFE0F');\n}\nexport function textMayContainEmoji(text) {\n return maybeEmojiRe.test(text);\n}\nfunction getEmojiCorrection(font, fontSize) {\n let correction = emojiCorrectionCache.get(font);\n if (correction !== undefined)\n return correction;\n const ctx = getMeasureContext();\n ctx.font = font;\n const canvasW = ctx.measureText('\\u{1F600}').width;\n correction = 0;\n if (canvasW > fontSize + 0.5 &&\n typeof document !== 'undefined' &&\n document.body !== null) {\n const span = document.createElement('span');\n span.style.font = font;\n span.style.display = 'inline-block';\n span.style.visibility = 'hidden';\n span.style.position = 'absolute';\n span.textContent = '\\u{1F600}';\n document.body.appendChild(span);\n const domW = span.getBoundingClientRect().width;\n document.body.removeChild(span);\n if (canvasW - domW > 0.5) {\n correction = canvasW - domW;\n }\n }\n emojiCorrectionCache.set(font, correction);\n return correction;\n}\nfunction countEmojiGraphemes(text) {\n let count = 0;\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const g of graphemeSegmenter.segment(text)) {\n if (isEmojiGrapheme(g.segment))\n count++;\n }\n return count;\n}\nfunction getEmojiCount(seg, metrics) {\n if (metrics.emojiCount === undefined) {\n metrics.emojiCount = countEmojiGraphemes(seg);\n }\n return metrics.emojiCount;\n}\nexport function getCorrectedSegmentWidth(seg, metrics, emojiCorrection) {\n if (emojiCorrection === 0)\n return metrics.width;\n return metrics.width - getEmojiCount(seg, metrics) * emojiCorrection;\n}\nexport function getSegmentGraphemeWidths(seg, cache, emojiCorrection) {\n const widths = [];\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const gs of graphemeSegmenter.segment(seg)) {\n const graphemeMetrics = getSegmentMetrics(gs.segment, cache);\n widths.push(getCorrectedSegmentWidth(gs.segment, graphemeMetrics, emojiCorrection));\n }\n return widths.length > 1 ? widths : null;\n}\nexport function getSegmentBreakableFitAdvances(seg, metrics, cache, emojiCorrection, mode) {\n if (metrics.breakableFitAdvances !== undefined)\n return metrics.breakableFitAdvances;\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n const graphemes = [];\n for (const gs of graphemeSegmenter.segment(seg)) {\n graphemes.push(gs.segment);\n }\n if (graphemes.length <= 1) {\n metrics.breakableFitAdvances = null;\n return metrics.breakableFitAdvances;\n }\n if (mode === 'sum-graphemes') {\n const advances = [];\n for (const grapheme of graphemes) {\n const graphemeMetrics = getSegmentMetrics(grapheme, cache);\n advances.push(getCorrectedSegmentWidth(grapheme, graphemeMetrics, emojiCorrection));\n }\n metrics.breakableFitAdvances = advances;\n return metrics.breakableFitAdvances;\n }\n if (mode === 'pair-context' || graphemes.length > MAX_PREFIX_FIT_GRAPHEMES) {\n const advances = [];\n let previousGrapheme = null;\n let previousWidth = 0;\n for (const grapheme of graphemes) {\n const graphemeMetrics = getSegmentMetrics(grapheme, cache);\n const currentWidth = getCorrectedSegmentWidth(grapheme, graphemeMetrics, emojiCorrection);\n if (previousGrapheme === null) {\n advances.push(currentWidth);\n }\n else {\n const pair = previousGrapheme + grapheme;\n const pairMetrics = getSegmentMetrics(pair, cache);\n advances.push(getCorrectedSegmentWidth(pair, pairMetrics, emojiCorrection) - previousWidth);\n }\n previousGrapheme = grapheme;\n previousWidth = currentWidth;\n }\n metrics.breakableFitAdvances = advances;\n return metrics.breakableFitAdvances;\n }\n const advances = [];\n let prefix = '';\n let prefixWidth = 0;\n for (const grapheme of graphemes) {\n prefix += grapheme;\n const prefixMetrics = getSegmentMetrics(prefix, cache);\n const nextPrefixWidth = getCorrectedSegmentWidth(prefix, prefixMetrics, emojiCorrection);\n advances.push(nextPrefixWidth - prefixWidth);\n prefixWidth = nextPrefixWidth;\n }\n metrics.breakableFitAdvances = advances;\n return metrics.breakableFitAdvances;\n}\nexport function getFontMeasurementState(font, needsEmojiCorrection) {\n const ctx = getMeasureContext();\n ctx.font = font;\n const cache = getSegmentMetricCache(font);\n const fontSize = parseFontSize(font);\n const emojiCorrection = needsEmojiCorrection ? getEmojiCorrection(font, fontSize) : 0;\n return { cache, fontSize, emojiCorrection };\n}\nexport function clearMeasurementCaches() {\n segmentMetricCaches.clear();\n emojiCorrectionCache.clear();\n sharedGraphemeSegmenter = null;\n}\n","import { getEngineProfile } from './measurement.js';\nfunction normalizeSimpleLineStartSegmentIndex(prepared, segmentIndex) {\n while (segmentIndex < prepared.widths.length) {\n const kind = prepared.kinds[segmentIndex];\n if (kind !== 'space' && kind !== 'zero-width-break' && kind !== 'soft-hyphen')\n break;\n segmentIndex++;\n }\n return segmentIndex;\n}\nfunction getTabAdvance(lineWidth, tabStopAdvance) {\n if (tabStopAdvance <= 0)\n return 0;\n const remainder = lineWidth % tabStopAdvance;\n if (Math.abs(remainder) <= 1e-6)\n return tabStopAdvance;\n return tabStopAdvance - remainder;\n}\nfunction fitSoftHyphenBreak(graphemeFitAdvances, initialWidth, maxWidth, lineFitEpsilon, discretionaryHyphenWidth) {\n let fitCount = 0;\n let fittedWidth = initialWidth;\n while (fitCount < graphemeFitAdvances.length) {\n const nextWidth = fittedWidth + graphemeFitAdvances[fitCount];\n const nextLineWidth = fitCount + 1 < graphemeFitAdvances.length\n ? nextWidth + discretionaryHyphenWidth\n : nextWidth;\n if (nextLineWidth > maxWidth + lineFitEpsilon)\n break;\n fittedWidth = nextWidth;\n fitCount++;\n }\n return { fitCount, fittedWidth };\n}\nfunction findChunkIndexForStart(prepared, segmentIndex) {\n let lo = 0;\n let hi = prepared.chunks.length;\n while (lo < hi) {\n const mid = Math.floor((lo + hi) / 2);\n if (segmentIndex < prepared.chunks[mid].consumedEndSegmentIndex) {\n hi = mid;\n }\n else {\n lo = mid + 1;\n }\n }\n return lo < prepared.chunks.length ? lo : -1;\n}\nfunction normalizeLineStartInChunk(prepared, chunkIndex, cursor) {\n let segmentIndex = cursor.segmentIndex;\n if (cursor.graphemeIndex > 0)\n return chunkIndex;\n const chunk = prepared.chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex && segmentIndex === chunk.startSegmentIndex) {\n cursor.segmentIndex = segmentIndex;\n cursor.graphemeIndex = 0;\n return chunkIndex;\n }\n if (segmentIndex < chunk.startSegmentIndex)\n segmentIndex = chunk.startSegmentIndex;\n while (segmentIndex < chunk.endSegmentIndex) {\n const kind = prepared.kinds[segmentIndex];\n if (kind !== 'space' && kind !== 'zero-width-break' && kind !== 'soft-hyphen') {\n cursor.segmentIndex = segmentIndex;\n cursor.graphemeIndex = 0;\n return chunkIndex;\n }\n segmentIndex++;\n }\n if (chunk.consumedEndSegmentIndex >= prepared.widths.length)\n return -1;\n cursor.segmentIndex = chunk.consumedEndSegmentIndex;\n cursor.graphemeIndex = 0;\n return chunkIndex + 1;\n}\nfunction normalizeLineStartChunkIndex(prepared, cursor) {\n if (cursor.segmentIndex >= prepared.widths.length)\n return -1;\n const chunkIndex = findChunkIndexForStart(prepared, cursor.segmentIndex);\n if (chunkIndex < 0)\n return -1;\n return normalizeLineStartInChunk(prepared, chunkIndex, cursor);\n}\nfunction normalizeLineStartChunkIndexFromHint(prepared, chunkIndex, cursor) {\n if (cursor.segmentIndex >= prepared.widths.length)\n return -1;\n let nextChunkIndex = chunkIndex;\n while (nextChunkIndex < prepared.chunks.length &&\n cursor.segmentIndex >= prepared.chunks[nextChunkIndex].consumedEndSegmentIndex) {\n nextChunkIndex++;\n }\n if (nextChunkIndex >= prepared.chunks.length)\n return -1;\n return normalizeLineStartInChunk(prepared, nextChunkIndex, cursor);\n}\nexport function normalizeLineStart(prepared, start) {\n const cursor = {\n segmentIndex: start.segmentIndex,\n graphemeIndex: start.graphemeIndex,\n };\n const chunkIndex = normalizeLineStartChunkIndex(prepared, cursor);\n return chunkIndex < 0 ? null : cursor;\n}\nexport function countPreparedLines(prepared, maxWidth) {\n if (prepared.simpleLineWalkFastPath) {\n return walkPreparedLinesSimple(prepared, maxWidth);\n }\n return walkPreparedLines(prepared, maxWidth);\n}\nfunction walkPreparedLinesSimple(prepared, maxWidth, onLine) {\n const { widths, kinds, breakableFitAdvances } = prepared;\n if (widths.length === 0)\n return 0;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n const fitLimit = maxWidth + lineFitEpsilon;\n let lineCount = 0;\n let lineW = 0;\n let hasContent = false;\n let lineStartSegmentIndex = 0;\n let lineStartGraphemeIndex = 0;\n let lineEndSegmentIndex = 0;\n let lineEndGraphemeIndex = 0;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakPaintWidth = 0;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakPaintWidth = 0;\n }\n function emitCurrentLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n lineCount++;\n onLine?.({\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n });\n lineW = 0;\n hasContent = false;\n clearPendingBreak();\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = graphemeIndex;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const fitAdvances = breakableFitAdvances[segmentIndex];\n for (let g = startGraphemeIndex; g < fitAdvances.length; g++) {\n const gw = fitAdvances[g];\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else if (lineW + gw > fitLimit) {\n emitCurrentLine();\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else {\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === fitAdvances.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n }\n let i = 0;\n while (i < widths.length) {\n if (!hasContent) {\n i = normalizeSimpleLineStartSegmentIndex(prepared, i);\n if (i >= widths.length)\n break;\n }\n const w = widths[i];\n const kind = kinds[i];\n const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';\n if (!hasContent) {\n if (w > maxWidth && breakableFitAdvances[i] !== null) {\n appendBreakableSegmentFrom(i, 0);\n }\n else {\n startLineAtSegment(i, w);\n }\n if (breakAfter) {\n pendingBreakSegmentIndex = i + 1;\n pendingBreakPaintWidth = lineW - w;\n }\n i++;\n continue;\n }\n const newW = lineW + w;\n if (newW > fitLimit) {\n if (breakAfter) {\n appendWholeSegment(i, w);\n emitCurrentLine(i + 1, 0, lineW - w);\n i++;\n continue;\n }\n if (pendingBreakSegmentIndex >= 0) {\n if (lineEndSegmentIndex > pendingBreakSegmentIndex ||\n (lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0)) {\n emitCurrentLine();\n continue;\n }\n emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n continue;\n }\n if (w > maxWidth && breakableFitAdvances[i] !== null) {\n emitCurrentLine();\n appendBreakableSegmentFrom(i, 0);\n i++;\n continue;\n }\n emitCurrentLine();\n continue;\n }\n appendWholeSegment(i, w);\n if (breakAfter) {\n pendingBreakSegmentIndex = i + 1;\n pendingBreakPaintWidth = lineW - w;\n }\n i++;\n }\n if (hasContent)\n emitCurrentLine();\n return lineCount;\n}\nexport function walkPreparedLines(prepared, maxWidth, onLine) {\n if (prepared.simpleLineWalkFastPath) {\n return walkPreparedLinesSimple(prepared, maxWidth, onLine);\n }\n const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds, breakableFitAdvances, discretionaryHyphenWidth, tabStopAdvance, chunks, } = prepared;\n if (widths.length === 0 || chunks.length === 0)\n return 0;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n const fitLimit = maxWidth + lineFitEpsilon;\n let lineCount = 0;\n let lineW = 0;\n let hasContent = false;\n let lineStartSegmentIndex = 0;\n let lineStartGraphemeIndex = 0;\n let lineEndSegmentIndex = 0;\n let lineEndGraphemeIndex = 0;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakFitWidth = 0;\n let pendingBreakPaintWidth = 0;\n let pendingBreakKind = null;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakFitWidth = 0;\n pendingBreakPaintWidth = 0;\n pendingBreakKind = null;\n }\n function emitCurrentLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n lineCount++;\n onLine?.({\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex,\n endGraphemeIndex,\n width,\n });\n lineW = 0;\n hasContent = false;\n clearPendingBreak();\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineStartSegmentIndex = segmentIndex;\n lineStartGraphemeIndex = graphemeIndex;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreakForWholeSegment(kind, breakAfter, segmentIndex, segmentWidth) {\n if (!breakAfter)\n return;\n const fitAdvance = kind === 'tab' ? 0 : lineEndFitAdvances[segmentIndex];\n const paintAdvance = kind === 'tab' ? segmentWidth : lineEndPaintAdvances[segmentIndex];\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakFitWidth = lineW - segmentWidth + fitAdvance;\n pendingBreakPaintWidth = lineW - segmentWidth + paintAdvance;\n pendingBreakKind = kind;\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const fitAdvances = breakableFitAdvances[segmentIndex];\n for (let g = startGraphemeIndex; g < fitAdvances.length; g++) {\n const gw = fitAdvances[g];\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else if (lineW + gw > fitLimit) {\n emitCurrentLine();\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else {\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === fitAdvances.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n }\n function continueSoftHyphenBreakableSegment(segmentIndex) {\n if (pendingBreakKind !== 'soft-hyphen')\n return false;\n const fitWidths = breakableFitAdvances[segmentIndex];\n if (fitWidths == null)\n return false;\n const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth);\n if (fitCount === 0)\n return false;\n lineW = fittedWidth;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = fitCount;\n clearPendingBreak();\n if (fitCount === fitWidths.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n return true;\n }\n emitCurrentLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);\n appendBreakableSegmentFrom(segmentIndex, fitCount);\n return true;\n }\n function emitEmptyChunk(chunk) {\n lineCount++;\n onLine?.({\n startSegmentIndex: chunk.startSegmentIndex,\n startGraphemeIndex: 0,\n endSegmentIndex: chunk.consumedEndSegmentIndex,\n endGraphemeIndex: 0,\n width: 0,\n });\n clearPendingBreak();\n }\n for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {\n const chunk = chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex) {\n emitEmptyChunk(chunk);\n continue;\n }\n hasContent = false;\n lineW = 0;\n lineStartSegmentIndex = chunk.startSegmentIndex;\n lineStartGraphemeIndex = 0;\n lineEndSegmentIndex = chunk.startSegmentIndex;\n lineEndGraphemeIndex = 0;\n clearPendingBreak();\n let i = chunk.startSegmentIndex;\n while (i < chunk.endSegmentIndex) {\n const kind = kinds[i];\n const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';\n const w = kind === 'tab' ? getTabAdvance(lineW, tabStopAdvance) : widths[i];\n if (kind === 'soft-hyphen') {\n if (hasContent) {\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n pendingBreakSegmentIndex = i + 1;\n pendingBreakFitWidth = lineW + discretionaryHyphenWidth;\n pendingBreakPaintWidth = lineW + discretionaryHyphenWidth;\n pendingBreakKind = kind;\n }\n i++;\n continue;\n }\n if (!hasContent) {\n if (w > maxWidth && breakableFitAdvances[i] !== null) {\n appendBreakableSegmentFrom(i, 0);\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreakForWholeSegment(kind, breakAfter, i, w);\n i++;\n continue;\n }\n const newW = lineW + w;\n if (newW > fitLimit) {\n const currentBreakFitWidth = lineW + (kind === 'tab' ? 0 : lineEndFitAdvances[i]);\n const currentBreakPaintWidth = lineW + (kind === 'tab' ? w : lineEndPaintAdvances[i]);\n if (pendingBreakKind === 'soft-hyphen' &&\n engineProfile.preferEarlySoftHyphenBreak &&\n pendingBreakFitWidth <= fitLimit) {\n emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n continue;\n }\n if (pendingBreakKind === 'soft-hyphen' && continueSoftHyphenBreakableSegment(i)) {\n i++;\n continue;\n }\n if (breakAfter && currentBreakFitWidth <= fitLimit) {\n appendWholeSegment(i, w);\n emitCurrentLine(i + 1, 0, currentBreakPaintWidth);\n i++;\n continue;\n }\n if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <= fitLimit) {\n if (lineEndSegmentIndex > pendingBreakSegmentIndex ||\n (lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0)) {\n emitCurrentLine();\n continue;\n }\n const nextSegmentIndex = pendingBreakSegmentIndex;\n emitCurrentLine(nextSegmentIndex, 0, pendingBreakPaintWidth);\n i = nextSegmentIndex;\n continue;\n }\n if (w > maxWidth && breakableFitAdvances[i] !== null) {\n emitCurrentLine();\n appendBreakableSegmentFrom(i, 0);\n i++;\n continue;\n }\n emitCurrentLine();\n continue;\n }\n appendWholeSegment(i, w);\n updatePendingBreakForWholeSegment(kind, breakAfter, i, w);\n i++;\n }\n if (hasContent) {\n const finalPaintWidth = pendingBreakSegmentIndex === chunk.consumedEndSegmentIndex\n ? pendingBreakPaintWidth\n : lineW;\n emitCurrentLine(chunk.consumedEndSegmentIndex, 0, finalPaintWidth);\n }\n }\n return lineCount;\n}\nfunction stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth) {\n const chunk = prepared.chunks[chunkIndex];\n if (chunk.startSegmentIndex === chunk.endSegmentIndex) {\n cursor.segmentIndex = chunk.consumedEndSegmentIndex;\n cursor.graphemeIndex = 0;\n return 0;\n }\n const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds, breakableFitAdvances, discretionaryHyphenWidth, tabStopAdvance, } = prepared;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n const fitLimit = maxWidth + lineFitEpsilon;\n let lineW = 0;\n let hasContent = false;\n let lineEndSegmentIndex = cursor.segmentIndex;\n let lineEndGraphemeIndex = cursor.graphemeIndex;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakFitWidth = 0;\n let pendingBreakPaintWidth = 0;\n let pendingBreakKind = null;\n function clearPendingBreak() {\n pendingBreakSegmentIndex = -1;\n pendingBreakFitWidth = 0;\n pendingBreakPaintWidth = 0;\n pendingBreakKind = null;\n }\n function finishLine(endSegmentIndex = lineEndSegmentIndex, endGraphemeIndex = lineEndGraphemeIndex, width = lineW) {\n if (!hasContent)\n return null;\n cursor.segmentIndex = endSegmentIndex;\n cursor.graphemeIndex = endGraphemeIndex;\n return width;\n }\n function startLineAtSegment(segmentIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n lineW = width;\n }\n function startLineAtGrapheme(segmentIndex, graphemeIndex, width) {\n hasContent = true;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = graphemeIndex + 1;\n lineW = width;\n }\n function appendWholeSegment(segmentIndex, width) {\n if (!hasContent) {\n startLineAtSegment(segmentIndex, width);\n return;\n }\n lineW += width;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n function updatePendingBreakForWholeSegment(kind, breakAfter, segmentIndex, segmentWidth) {\n if (!breakAfter)\n return;\n const fitAdvance = kind === 'tab' ? 0 : lineEndFitAdvances[segmentIndex];\n const paintAdvance = kind === 'tab' ? segmentWidth : lineEndPaintAdvances[segmentIndex];\n pendingBreakSegmentIndex = segmentIndex + 1;\n pendingBreakFitWidth = lineW - segmentWidth + fitAdvance;\n pendingBreakPaintWidth = lineW - segmentWidth + paintAdvance;\n pendingBreakKind = kind;\n }\n function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {\n const fitAdvances = breakableFitAdvances[segmentIndex];\n for (let g = startGraphemeIndex; g < fitAdvances.length; g++) {\n const gw = fitAdvances[g];\n if (!hasContent) {\n startLineAtGrapheme(segmentIndex, g, gw);\n }\n else {\n if (lineW + gw > fitLimit) {\n return finishLine();\n }\n lineW += gw;\n lineEndSegmentIndex = segmentIndex;\n lineEndGraphemeIndex = g + 1;\n }\n }\n if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === fitAdvances.length) {\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n }\n return null;\n }\n function maybeFinishAtSoftHyphen(segmentIndex) {\n if (pendingBreakKind !== 'soft-hyphen' || pendingBreakSegmentIndex < 0)\n return null;\n const fitWidths = breakableFitAdvances[segmentIndex] ?? null;\n if (fitWidths !== null) {\n const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth);\n if (fitCount === fitWidths.length) {\n lineW = fittedWidth;\n lineEndSegmentIndex = segmentIndex + 1;\n lineEndGraphemeIndex = 0;\n clearPendingBreak();\n return null;\n }\n if (fitCount > 0) {\n return finishLine(segmentIndex, fitCount, fittedWidth + discretionaryHyphenWidth);\n }\n }\n if (pendingBreakFitWidth <= fitLimit) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n return null;\n }\n for (let i = cursor.segmentIndex; i < chunk.endSegmentIndex; i++) {\n const kind = kinds[i];\n const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';\n const startGraphemeIndex = i === cursor.segmentIndex ? cursor.graphemeIndex : 0;\n const w = kind === 'tab' ? getTabAdvance(lineW, tabStopAdvance) : widths[i];\n if (kind === 'soft-hyphen' && startGraphemeIndex === 0) {\n if (hasContent) {\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n pendingBreakSegmentIndex = i + 1;\n pendingBreakFitWidth = lineW + discretionaryHyphenWidth;\n pendingBreakPaintWidth = lineW + discretionaryHyphenWidth;\n pendingBreakKind = kind;\n }\n continue;\n }\n if (!hasContent) {\n if (startGraphemeIndex > 0) {\n const line = appendBreakableSegmentFrom(i, startGraphemeIndex);\n if (line !== null)\n return line;\n }\n else if (w > maxWidth && breakableFitAdvances[i] !== null) {\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n else {\n startLineAtSegment(i, w);\n }\n updatePendingBreakForWholeSegment(kind, breakAfter, i, w);\n continue;\n }\n const newW = lineW + w;\n if (newW > fitLimit) {\n const currentBreakFitWidth = lineW + (kind === 'tab' ? 0 : lineEndFitAdvances[i]);\n const currentBreakPaintWidth = lineW + (kind === 'tab' ? w : lineEndPaintAdvances[i]);\n if (pendingBreakKind === 'soft-hyphen' &&\n engineProfile.preferEarlySoftHyphenBreak &&\n pendingBreakFitWidth <= fitLimit) {\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n const softBreakLine = maybeFinishAtSoftHyphen(i);\n if (softBreakLine !== null)\n return softBreakLine;\n if (breakAfter && currentBreakFitWidth <= fitLimit) {\n appendWholeSegment(i, w);\n return finishLine(i + 1, 0, currentBreakPaintWidth);\n }\n if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <= fitLimit) {\n if (lineEndSegmentIndex > pendingBreakSegmentIndex ||\n (lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0)) {\n return finishLine();\n }\n return finishLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);\n }\n if (w > maxWidth && breakableFitAdvances[i] !== null) {\n const currentLine = finishLine();\n if (currentLine !== null)\n return currentLine;\n const line = appendBreakableSegmentFrom(i, 0);\n if (line !== null)\n return line;\n }\n return finishLine();\n }\n appendWholeSegment(i, w);\n updatePendingBreakForWholeSegment(kind, breakAfter, i, w);\n }\n if (pendingBreakSegmentIndex === chunk.consumedEndSegmentIndex && lineEndGraphemeIndex === 0) {\n return finishLine(chunk.consumedEndSegmentIndex, 0, pendingBreakPaintWidth);\n }\n return finishLine(chunk.consumedEndSegmentIndex, 0, lineW);\n}\nfunction stepPreparedSimpleLineGeometry(prepared, cursor, maxWidth) {\n const { widths, kinds, breakableFitAdvances } = prepared;\n const engineProfile = getEngineProfile();\n const lineFitEpsilon = engineProfile.lineFitEpsilon;\n const fitLimit = maxWidth + lineFitEpsilon;\n let lineW = 0;\n let hasContent = false;\n let lineEndSegmentIndex = cursor.segmentIndex;\n let lineEndGraphemeIndex = cursor.graphemeIndex;\n let pendingBreakSegmentIndex = -1;\n let pendingBreakPaintWidth = 0;\n for (let i = cursor.segmentIndex; i < widths.length; i++) {\n const w = widths[i];\n const kind = kinds[i];\n const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';\n const startGraphemeIndex = i === cursor.segmentIndex ? cursor.graphemeIndex : 0;\n const breakableFitAdvance = breakableFitAdvances[i];\n if (!hasContent) {\n if (startGraphemeIndex > 0 || (w > maxWidth && breakableFitAdvance !== null)) {\n const fitAdvances = breakableFitAdvance;\n const firstGraphemeWidth = fitAdvances[startGraphemeIndex];\n hasContent = true;\n lineW = firstGraphemeWidth;\n lineEndSegmentIndex = i;\n lineEndGraphemeIndex = startGraphemeIndex + 1;\n for (let g = startGraphemeIndex + 1; g < fitAdvances.length; g++) {\n const gw = fitAdvances[g];\n if (lineW + gw > fitLimit) {\n cursor.segmentIndex = lineEndSegmentIndex;\n cursor.graphemeIndex = lineEndGraphemeIndex;\n return lineW;\n }\n lineW += gw;\n lineEndSegmentIndex = i;\n lineEndGraphemeIndex = g + 1;\n }\n if (lineEndSegmentIndex === i && lineEndGraphemeIndex === fitAdvances.length) {\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n }\n }\n else {\n hasContent = true;\n lineW = w;\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n }\n if (breakAfter) {\n pendingBreakSegmentIndex = i + 1;\n pendingBreakPaintWidth = lineW - w;\n }\n continue;\n }\n if (lineW + w > fitLimit) {\n if (breakAfter) {\n cursor.segmentIndex = i + 1;\n cursor.graphemeIndex = 0;\n return lineW;\n }\n if (pendingBreakSegmentIndex >= 0) {\n if (lineEndSegmentIndex > pendingBreakSegmentIndex ||\n (lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0)) {\n cursor.segmentIndex = lineEndSegmentIndex;\n cursor.graphemeIndex = lineEndGraphemeIndex;\n return lineW;\n }\n cursor.segmentIndex = pendingBreakSegmentIndex;\n cursor.graphemeIndex = 0;\n return pendingBreakPaintWidth;\n }\n cursor.segmentIndex = lineEndSegmentIndex;\n cursor.graphemeIndex = lineEndGraphemeIndex;\n return lineW;\n }\n lineW += w;\n lineEndSegmentIndex = i + 1;\n lineEndGraphemeIndex = 0;\n if (breakAfter) {\n pendingBreakSegmentIndex = i + 1;\n pendingBreakPaintWidth = lineW - w;\n }\n }\n if (!hasContent)\n return null;\n cursor.segmentIndex = lineEndSegmentIndex;\n cursor.graphemeIndex = lineEndGraphemeIndex;\n return lineW;\n}\nexport function layoutNextLineRange(prepared, start, maxWidth) {\n const end = {\n segmentIndex: start.segmentIndex,\n graphemeIndex: start.graphemeIndex,\n };\n const chunkIndex = normalizeLineStartChunkIndex(prepared, end);\n if (chunkIndex < 0)\n return null;\n const lineStartSegmentIndex = end.segmentIndex;\n const lineStartGraphemeIndex = end.graphemeIndex;\n const width = prepared.simpleLineWalkFastPath\n ? stepPreparedSimpleLineGeometry(prepared, end, maxWidth)\n : stepPreparedChunkLineGeometry(prepared, end, chunkIndex, maxWidth);\n if (width === null)\n return null;\n return {\n startSegmentIndex: lineStartSegmentIndex,\n startGraphemeIndex: lineStartGraphemeIndex,\n endSegmentIndex: end.segmentIndex,\n endGraphemeIndex: end.graphemeIndex,\n width,\n };\n}\nexport function stepPreparedLineGeometry(prepared, cursor, maxWidth) {\n const chunkIndex = normalizeLineStartChunkIndex(prepared, cursor);\n if (chunkIndex < 0)\n return null;\n if (prepared.simpleLineWalkFastPath) {\n return stepPreparedSimpleLineGeometry(prepared, cursor, maxWidth);\n }\n return stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth);\n}\nexport function measurePreparedLineGeometry(prepared, maxWidth) {\n if (prepared.widths.length === 0) {\n return {\n lineCount: 0,\n maxLineWidth: 0,\n };\n }\n const cursor = {\n segmentIndex: 0,\n graphemeIndex: 0,\n };\n let lineCount = 0;\n let maxLineWidth = 0;\n if (!prepared.simpleLineWalkFastPath) {\n let chunkIndex = normalizeLineStartChunkIndex(prepared, cursor);\n while (chunkIndex >= 0) {\n const lineWidth = stepPreparedChunkLineGeometry(prepared, cursor, chunkIndex, maxWidth);\n if (lineWidth === null) {\n return {\n lineCount,\n maxLineWidth,\n };\n }\n lineCount++;\n if (lineWidth > maxLineWidth)\n maxLineWidth = lineWidth;\n chunkIndex = normalizeLineStartChunkIndexFromHint(prepared, chunkIndex, cursor);\n }\n return {\n lineCount,\n maxLineWidth,\n };\n }\n while (true) {\n const lineWidth = stepPreparedLineGeometry(prepared, cursor, maxWidth);\n if (lineWidth === null) {\n return {\n lineCount,\n maxLineWidth,\n };\n }\n lineCount++;\n if (lineWidth > maxLineWidth)\n maxLineWidth = lineWidth;\n }\n}\n","// Text measurement for browser environments using canvas measureText.\n//\n// Problem: DOM-based text measurement (getBoundingClientRect, offsetHeight)\n// forces synchronous layout reflow. When components independently measure text,\n// each measurement triggers a reflow of the entire document. This creates\n// read/write interleaving that can cost 30ms+ per frame for 500 text blocks.\n//\n// Solution: two-phase measurement centered around canvas measureText.\n// prepare(text, font) — segments text via Intl.Segmenter, measures each word\n// via canvas, caches widths, and does one cached DOM calibration read per\n// font when emoji correction is needed. Call once when text first appears.\n// layout(prepared, maxWidth, lineHeight) — walks cached word widths with pure\n// arithmetic to count lines and compute height. Call on every resize.\n// ~0.0002ms per text.\n//\n// i18n: Intl.Segmenter handles CJK (per-character breaking), Thai, Arabic, etc.\n// Bidi: simplified rich-path metadata for mixed LTR/RTL custom rendering.\n// Punctuation merging: \"better.\" measured as one unit (matches CSS behavior).\n// Trailing whitespace: hangs past line edge without triggering breaks (CSS behavior).\n// overflow-wrap: pre-measured grapheme widths enable character-level word breaking.\n//\n// Emoji correction: Chrome/Firefox canvas measures emoji wider than DOM at font\n// sizes <24px on macOS (Apple Color Emoji). The inflation is constant per emoji\n// grapheme at a given size, font-independent. Auto-detected by comparing canvas\n// vs actual DOM emoji width (one cached DOM read per font). Safari canvas and\n// DOM agree (both wider than fontSize), so correction = 0 there.\n//\n// Limitations:\n// - system-ui font: canvas resolves to different optical variants than DOM on macOS.\n// Use named fonts (Helvetica, Inter, etc.) for guaranteed accuracy.\n// See RESEARCH.md \"Discovery: system-ui font resolution mismatch\".\n//\n// Based on Sebastian Markbage's text-layout research (github.com/chenglou/text-layout).\nimport { computeSegmentLevels } from './bidi.js';\nimport { analyzeText, canContinueKeepAllTextRun, clearAnalysisCaches, endsWithClosingQuote, isCJK, isNumericRunSegment, kinsokuEnd, kinsokuStart, leftStickyPunctuation, setAnalysisLocale, } from './analysis.js';\nimport { clearMeasurementCaches, getCorrectedSegmentWidth, getSegmentBreakableFitAdvances, getEngineProfile, getFontMeasurementState, getSegmentMetrics, textMayContainEmoji, } from './measurement.js';\nimport { countPreparedLines, layoutNextLineRange as stepPreparedLineRange, measurePreparedLineGeometry, walkPreparedLines, } from './line-break.js';\nlet sharedGraphemeSegmenter = null;\n// Rich-path only. Reuses grapheme splits while materializing multiple lines\n// from the same prepared handle, without pushing that cache into the API.\nlet sharedLineTextCaches = new WeakMap();\nfunction getSharedGraphemeSegmenter() {\n if (sharedGraphemeSegmenter === null) {\n sharedGraphemeSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n }\n return sharedGraphemeSegmenter;\n}\n// --- Public API ---\nfunction createEmptyPrepared(includeSegments) {\n if (includeSegments) {\n return {\n widths: [],\n lineEndFitAdvances: [],\n lineEndPaintAdvances: [],\n kinds: [],\n simpleLineWalkFastPath: true,\n segLevels: null,\n breakableFitAdvances: [],\n discretionaryHyphenWidth: 0,\n tabStopAdvance: 0,\n chunks: [],\n segments: [],\n };\n }\n return {\n widths: [],\n lineEndFitAdvances: [],\n lineEndPaintAdvances: [],\n kinds: [],\n simpleLineWalkFastPath: true,\n segLevels: null,\n breakableFitAdvances: [],\n discretionaryHyphenWidth: 0,\n tabStopAdvance: 0,\n chunks: [],\n };\n}\nfunction buildBaseCjkUnits(segText, engineProfile) {\n const units = [];\n let unitParts = [];\n let unitStart = 0;\n let unitContainsCJK = false;\n let unitEndsWithClosingQuote = false;\n let unitIsSingleKinsokuEnd = false;\n function pushUnit() {\n if (unitParts.length === 0)\n return;\n units.push({\n text: unitParts.length === 1 ? unitParts[0] : unitParts.join(''),\n start: unitStart,\n });\n unitParts = [];\n unitContainsCJK = false;\n unitEndsWithClosingQuote = false;\n unitIsSingleKinsokuEnd = false;\n }\n function startUnit(grapheme, start, graphemeContainsCJK) {\n unitParts = [grapheme];\n unitStart = start;\n unitContainsCJK = graphemeContainsCJK;\n unitEndsWithClosingQuote = endsWithClosingQuote(grapheme);\n unitIsSingleKinsokuEnd = kinsokuEnd.has(grapheme);\n }\n function appendToUnit(grapheme, graphemeContainsCJK) {\n unitParts.push(grapheme);\n unitContainsCJK = unitContainsCJK || graphemeContainsCJK;\n const graphemeEndsWithClosingQuote = endsWithClosingQuote(grapheme);\n if (grapheme.length === 1 && leftStickyPunctuation.has(grapheme)) {\n unitEndsWithClosingQuote = unitEndsWithClosingQuote || graphemeEndsWithClosingQuote;\n }\n else {\n unitEndsWithClosingQuote = graphemeEndsWithClosingQuote;\n }\n unitIsSingleKinsokuEnd = false;\n }\n for (const gs of getSharedGraphemeSegmenter().segment(segText)) {\n const grapheme = gs.segment;\n const graphemeContainsCJK = isCJK(grapheme);\n if (unitParts.length === 0) {\n startUnit(grapheme, gs.index, graphemeContainsCJK);\n continue;\n }\n if (unitIsSingleKinsokuEnd ||\n kinsokuStart.has(grapheme) ||\n leftStickyPunctuation.has(grapheme) ||\n (engineProfile.carryCJKAfterClosingQuote &&\n graphemeContainsCJK &&\n unitEndsWithClosingQuote)) {\n appendToUnit(grapheme, graphemeContainsCJK);\n continue;\n }\n if (!unitContainsCJK && !graphemeContainsCJK) {\n appendToUnit(grapheme, graphemeContainsCJK);\n continue;\n }\n pushUnit();\n startUnit(grapheme, gs.index, graphemeContainsCJK);\n }\n pushUnit();\n return units;\n}\nfunction mergeKeepAllTextUnits(units) {\n if (units.length <= 1)\n return units;\n const merged = [];\n let currentTextParts = [units[0].text];\n let currentStart = units[0].start;\n let currentContainsCJK = isCJK(units[0].text);\n let currentCanContinue = canContinueKeepAllTextRun(units[0].text);\n function flushCurrent() {\n merged.push({\n text: currentTextParts.length === 1 ? currentTextParts[0] : currentTextParts.join(''),\n start: currentStart,\n });\n }\n for (let i = 1; i < units.length; i++) {\n const next = units[i];\n const nextContainsCJK = isCJK(next.text);\n const nextCanContinue = canContinueKeepAllTextRun(next.text);\n if (currentContainsCJK && currentCanContinue) {\n currentTextParts.push(next.text);\n currentContainsCJK = currentContainsCJK || nextContainsCJK;\n currentCanContinue = nextCanContinue;\n continue;\n }\n flushCurrent();\n currentTextParts = [next.text];\n currentStart = next.start;\n currentContainsCJK = nextContainsCJK;\n currentCanContinue = nextCanContinue;\n }\n flushCurrent();\n return merged;\n}\nfunction measureAnalysis(analysis, font, includeSegments, wordBreak) {\n const engineProfile = getEngineProfile();\n const { cache, emojiCorrection } = getFontMeasurementState(font, textMayContainEmoji(analysis.normalized));\n const discretionaryHyphenWidth = getCorrectedSegmentWidth('-', getSegmentMetrics('-', cache), emojiCorrection);\n const spaceWidth = getCorrectedSegmentWidth(' ', getSegmentMetrics(' ', cache), emojiCorrection);\n const tabStopAdvance = spaceWidth * 8;\n if (analysis.len === 0)\n return createEmptyPrepared(includeSegments);\n const widths = [];\n const lineEndFitAdvances = [];\n const lineEndPaintAdvances = [];\n const kinds = [];\n let simpleLineWalkFastPath = analysis.chunks.length <= 1;\n const segStarts = includeSegments ? [] : null;\n const breakableFitAdvances = [];\n const segments = includeSegments ? [] : null;\n const preparedStartByAnalysisIndex = Array.from({ length: analysis.len });\n function pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, breakableFitAdvance) {\n if (kind !== 'text' && kind !== 'space' && kind !== 'zero-width-break') {\n simpleLineWalkFastPath = false;\n }\n widths.push(width);\n lineEndFitAdvances.push(lineEndFitAdvance);\n lineEndPaintAdvances.push(lineEndPaintAdvance);\n kinds.push(kind);\n segStarts?.push(start);\n breakableFitAdvances.push(breakableFitAdvance);\n if (segments !== null)\n segments.push(text);\n }\n function pushMeasuredTextSegment(text, kind, start, wordLike, allowOverflowBreaks) {\n const textMetrics = getSegmentMetrics(text, cache);\n const width = getCorrectedSegmentWidth(text, textMetrics, emojiCorrection);\n const lineEndFitAdvance = kind === 'space' || kind === 'preserved-space' || kind === 'zero-width-break'\n ? 0\n : width;\n const lineEndPaintAdvance = kind === 'space' || kind === 'zero-width-break'\n ? 0\n : width;\n if (allowOverflowBreaks && wordLike && text.length > 1) {\n let fitMode = 'sum-graphemes';\n if (isNumericRunSegment(text)) {\n fitMode = 'pair-context';\n }\n else if (engineProfile.preferPrefixWidthsForBreakableRuns) {\n fitMode = 'segment-prefixes';\n }\n const fitAdvances = getSegmentBreakableFitAdvances(text, textMetrics, cache, emojiCorrection, fitMode);\n pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, fitAdvances);\n return;\n }\n pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, null);\n }\n for (let mi = 0; mi < analysis.len; mi++) {\n preparedStartByAnalysisIndex[mi] = widths.length;\n const segText = analysis.texts[mi];\n const segWordLike = analysis.isWordLike[mi];\n const segKind = analysis.kinds[mi];\n const segStart = analysis.starts[mi];\n if (segKind === 'soft-hyphen') {\n pushMeasuredSegment(segText, 0, discretionaryHyphenWidth, discretionaryHyphenWidth, segKind, segStart, null);\n continue;\n }\n if (segKind === 'hard-break') {\n pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null);\n continue;\n }\n if (segKind === 'tab') {\n pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null);\n continue;\n }\n const segMetrics = getSegmentMetrics(segText, cache);\n if (segKind === 'text' && segMetrics.containsCJK) {\n const baseUnits = buildBaseCjkUnits(segText, engineProfile);\n const measuredUnits = wordBreak === 'keep-all'\n ? mergeKeepAllTextUnits(baseUnits)\n : baseUnits;\n for (let i = 0; i < measuredUnits.length; i++) {\n const unit = measuredUnits[i];\n pushMeasuredTextSegment(unit.text, 'text', segStart + unit.start, segWordLike, wordBreak === 'keep-all' || !isCJK(unit.text));\n }\n continue;\n }\n pushMeasuredTextSegment(segText, segKind, segStart, segWordLike, true);\n }\n const chunks = mapAnalysisChunksToPreparedChunks(analysis.chunks, preparedStartByAnalysisIndex, widths.length);\n const segLevels = segStarts === null ? null : computeSegmentLevels(analysis.normalized, segStarts);\n if (segments !== null) {\n return {\n widths,\n lineEndFitAdvances,\n lineEndPaintAdvances,\n kinds,\n simpleLineWalkFastPath,\n segLevels,\n breakableFitAdvances,\n discretionaryHyphenWidth,\n tabStopAdvance,\n chunks,\n segments,\n };\n }\n return {\n widths,\n lineEndFitAdvances,\n lineEndPaintAdvances,\n kinds,\n simpleLineWalkFastPath,\n segLevels,\n breakableFitAdvances,\n discretionaryHyphenWidth,\n tabStopAdvance,\n chunks,\n };\n}\nfunction mapAnalysisChunksToPreparedChunks(chunks, preparedStartByAnalysisIndex, preparedEndSegmentIndex) {\n const preparedChunks = [];\n for (let i = 0; i < chunks.length; i++) {\n const chunk = chunks[i];\n const startSegmentIndex = chunk.startSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.startSegmentIndex]\n : preparedEndSegmentIndex;\n const endSegmentIndex = chunk.endSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.endSegmentIndex]\n : preparedEndSegmentIndex;\n const consumedEndSegmentIndex = chunk.consumedEndSegmentIndex < preparedStartByAnalysisIndex.length\n ? preparedStartByAnalysisIndex[chunk.consumedEndSegmentIndex]\n : preparedEndSegmentIndex;\n preparedChunks.push({\n startSegmentIndex,\n endSegmentIndex,\n consumedEndSegmentIndex,\n });\n }\n return preparedChunks;\n}\nfunction prepareInternal(text, font, includeSegments, options) {\n const wordBreak = options?.wordBreak ?? 'normal';\n const analysis = analyzeText(text, getEngineProfile(), options?.whiteSpace, wordBreak);\n return measureAnalysis(analysis, font, includeSegments, wordBreak);\n}\n// Prepare text for layout. Segments the text, measures each segment via canvas,\n// and stores the widths for fast relayout at any width. Call once per text block\n// (e.g. when a comment first appears). The result is width-independent — the\n// same PreparedText can be laid out at any maxWidth and lineHeight via layout().\n//\n// Steps:\n// 1. Normalize collapsible whitespace (CSS white-space: normal behavior)\n// 2. Segment via Intl.Segmenter (handles CJK, Thai, etc.)\n// 3. Merge punctuation into preceding word (\"better.\" as one unit)\n// 4. Split CJK words into individual graphemes (per-character line breaks)\n// 5. Measure each segment via canvas measureText, cache by (segment, font)\n// 6. Pre-measure graphemes of long words (for overflow-wrap: break-word)\n// 7. Correct emoji canvas inflation (auto-detected per font size)\n// 8. Optionally compute rich-path bidi metadata for custom renderers\nexport function prepare(text, font, options) {\n return prepareInternal(text, font, false, options);\n}\n// Rich variant used by callers that need enough information to render the\n// laid-out lines themselves.\nexport function prepareWithSegments(text, font, options) {\n return prepareInternal(text, font, true, options);\n}\nfunction getInternalPrepared(prepared) {\n return prepared;\n}\n// Layout prepared text at a given max width and caller-provided lineHeight.\n// Pure arithmetic on cached widths — no canvas calls, no DOM reads, no string\n// operations, no allocations.\n// ~0.0002ms per text block. Call on every resize.\n//\n// Line breaking rules (matching CSS white-space: normal + overflow-wrap: break-word):\n// - Break before any non-space segment that would overflow the line\n// - Trailing whitespace hangs past the line edge (doesn't trigger breaks)\n// - Segments wider than maxWidth are broken at grapheme boundaries\nexport function layout(prepared, maxWidth, lineHeight) {\n // Keep the resize hot path specialized. `layoutWithLines()` shares the same\n // break semantics but also tracks line ranges; the extra bookkeeping is too\n // expensive to pay on every hot-path `layout()` call.\n const lineCount = countPreparedLines(getInternalPrepared(prepared), maxWidth);\n return { lineCount, height: lineCount * lineHeight };\n}\nfunction getSegmentGraphemes(segmentIndex, segments, cache) {\n let graphemes = cache.get(segmentIndex);\n if (graphemes !== undefined)\n return graphemes;\n graphemes = [];\n const graphemeSegmenter = getSharedGraphemeSegmenter();\n for (const gs of graphemeSegmenter.segment(segments[segmentIndex])) {\n graphemes.push(gs.segment);\n }\n cache.set(segmentIndex, graphemes);\n return graphemes;\n}\nfunction getLineTextCache(prepared) {\n let cache = sharedLineTextCaches.get(prepared);\n if (cache !== undefined)\n return cache;\n cache = new Map();\n sharedLineTextCaches.set(prepared, cache);\n return cache;\n}\nfunction lineHasDiscretionaryHyphen(kinds, startSegmentIndex, startGraphemeIndex, endSegmentIndex) {\n return (endSegmentIndex > 0 &&\n kinds[endSegmentIndex - 1] === 'soft-hyphen' &&\n !(startSegmentIndex === endSegmentIndex && startGraphemeIndex > 0));\n}\nfunction buildLineTextFromRange(segments, kinds, cache, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {\n let text = '';\n const endsWithDiscretionaryHyphen = lineHasDiscretionaryHyphen(kinds, startSegmentIndex, startGraphemeIndex, endSegmentIndex);\n for (let i = startSegmentIndex; i < endSegmentIndex; i++) {\n if (kinds[i] === 'soft-hyphen' || kinds[i] === 'hard-break')\n continue;\n if (i === startSegmentIndex && startGraphemeIndex > 0) {\n text += getSegmentGraphemes(i, segments, cache).slice(startGraphemeIndex).join('');\n }\n else {\n text += segments[i];\n }\n }\n if (endGraphemeIndex > 0) {\n if (endsWithDiscretionaryHyphen)\n text += '-';\n text += getSegmentGraphemes(endSegmentIndex, segments, cache).slice(startSegmentIndex === endSegmentIndex ? startGraphemeIndex : 0, endGraphemeIndex).join('');\n }\n else if (endsWithDiscretionaryHyphen) {\n text += '-';\n }\n return text;\n}\nfunction createLayoutLine(prepared, cache, width, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex) {\n return {\n text: buildLineTextFromRange(prepared.segments, prepared.kinds, cache, startSegmentIndex, startGraphemeIndex, endSegmentIndex, endGraphemeIndex),\n width,\n start: {\n segmentIndex: startSegmentIndex,\n graphemeIndex: startGraphemeIndex,\n },\n end: {\n segmentIndex: endSegmentIndex,\n graphemeIndex: endGraphemeIndex,\n },\n };\n}\nfunction materializeLayoutLine(prepared, cache, line) {\n return createLayoutLine(prepared, cache, line.width, line.startSegmentIndex, line.startGraphemeIndex, line.endSegmentIndex, line.endGraphemeIndex);\n}\nfunction toLayoutLineRange(line) {\n return {\n width: line.width,\n start: {\n segmentIndex: line.startSegmentIndex,\n graphemeIndex: line.startGraphemeIndex,\n },\n end: {\n segmentIndex: line.endSegmentIndex,\n graphemeIndex: line.endGraphemeIndex,\n },\n };\n}\nexport function materializeLineRange(prepared, line) {\n return createLayoutLine(prepared, getLineTextCache(prepared), line.width, line.start.segmentIndex, line.start.graphemeIndex, line.end.segmentIndex, line.end.graphemeIndex);\n}\n// Batch low-level line-range pass. This is the non-materializing counterpart\n// to layoutWithLines(), useful for shrinkwrap and other aggregate stats work.\nexport function walkLineRanges(prepared, maxWidth, onLine) {\n if (prepared.widths.length === 0)\n return 0;\n return walkPreparedLines(getInternalPrepared(prepared), maxWidth, line => {\n onLine(toLayoutLineRange(line));\n });\n}\nexport function measureLineStats(prepared, maxWidth) {\n return measurePreparedLineGeometry(getInternalPrepared(prepared), maxWidth);\n}\n// Intrinsic-width helper for rich/userland layout work. This asks \"how wide is\n// the prepared text when container width is not the thing forcing wraps?\".\n// Explicit hard breaks still count, so this returns the widest forced line.\nexport function measureNaturalWidth(prepared) {\n let maxWidth = 0;\n walkLineRanges(prepared, Number.POSITIVE_INFINITY, line => {\n if (line.width > maxWidth)\n maxWidth = line.width;\n });\n return maxWidth;\n}\nexport function layoutNextLine(prepared, start, maxWidth) {\n const line = layoutNextLineRange(prepared, start, maxWidth);\n if (line === null)\n return null;\n return materializeLineRange(prepared, line);\n}\nexport function layoutNextLineRange(prepared, start, maxWidth) {\n const line = stepPreparedLineRange(prepared, start, maxWidth);\n if (line === null)\n return null;\n return toLayoutLineRange(line);\n}\n// Rich layout API for callers that want the actual line contents and widths.\n// Caller still supplies lineHeight at layout time. Mirrors layout()'s break\n// decisions, but keeps extra per-line bookkeeping so it should stay off the\n// resize hot path.\nexport function layoutWithLines(prepared, maxWidth, lineHeight) {\n const lines = [];\n if (prepared.widths.length === 0)\n return { lineCount: 0, height: 0, lines };\n const graphemeCache = getLineTextCache(prepared);\n const lineCount = walkPreparedLines(getInternalPrepared(prepared), maxWidth, line => {\n lines.push(materializeLayoutLine(prepared, graphemeCache, line));\n });\n return { lineCount, height: lineCount * lineHeight, lines };\n}\nexport function clearCache() {\n clearAnalysisCaches();\n sharedGraphemeSegmenter = null;\n sharedLineTextCaches = new WeakMap();\n clearMeasurementCaches();\n}\nexport function setLocale(locale) {\n setAnalysisLocale(locale);\n clearCache();\n}\n","import {prepareWithSegments, layoutWithLines} from \"@chenglou/pretext\";\n\n/**\n * Strips HTML and \"un-escapes\" escape characters.\n * @param {String} input\n */\nfunction htmlDecode(input: string): string {\n if (input.replace(/\\s+/g, \"\") === \"\") return input;\n const doc = new DOMParser().parseFromString(\n input.replace(/<[^>]+>/g, \"\"),\n \"text/html\",\n );\n return doc.documentElement ? doc.documentElement.textContent! : input;\n}\n\n/**\n * Builds a CSS font shorthand string from a style object.\n * @param {Object} styleObj\n */\nfunction buildFont(styleObj: Record<string, string | number>): string {\n const style = styleObj[\"font-style\"] || \"normal\";\n const variant = styleObj[\"font-variant\"] || \"normal\";\n const weight = styleObj[\"font-weight\"] || 400;\n const size =\n typeof styleObj[\"font-size\"] === \"string\"\n ? styleObj[\"font-size\"]\n : `${styleObj[\"font-size\"] || 10}px`;\n const family = styleObj[\"font-family\"] || \"sans-serif\";\n return `${style} ${variant} ${weight} ${size} ${family}`;\n}\n\n/**\n * Measures the width of a single text string using pretext.\n * @param {String} text\n * @param {String} font CSS font shorthand\n */\nfunction measureWidth(text: string, font: string): number {\n if (!text) return 0;\n const prepared = prepareWithSegments(text, font);\n const result = layoutWithLines(prepared, Infinity, 20);\n return result.lines.length ? result.lines[0].width : 0;\n}\n\n/**\n Given a text string, returns the predicted pixel width of the string when placed into DOM.\n @param text The text string to measure.\n @param style CSS style properties to apply when measuring.\n*/\nexport default function (\n text: string,\n style?: Record<string, string | number>,\n): number;\nexport default function (\n text: string[],\n style?: Record<string, string | number>,\n): number[];\nexport default function (\n text: string | string[],\n style: Record<string, string | number> = {},\n): number | number[] {\n const font = buildFont(style);\n\n if (text instanceof Array)\n return text.map(t => measureWidth(htmlDecode(t), font));\n return measureWidth(htmlDecode(text), font);\n}\n","import {default as textWidth} from \"./textWidth.js\";\n\nconst alpha: string = \"abcdefghiABCDEFGHI_!@#$%^&*()_+1234567890\",\n checked: Record<string, boolean> = {},\n height: number = 32;\n\nlet dejavu: number, macos: number, monospace: number, proportional: number;\n\n/**\n Given either a single font-family or a list of fonts, returns the name of the first font that can be rendered, or `false` if none are installed on the user's machine.\n @param font Can be either a valid CSS font-family string (single or comma-separated names) or an Array of string names.\n*/\nconst fontExists = (font: string | string[]): string | false => {\n if (!dejavu) {\n dejavu = textWidth(alpha, {\n \"font-family\": \"DejaVuSans\",\n \"font-size\": height,\n }) as number;\n macos = textWidth(alpha, {\n \"font-family\": \"-apple-system\",\n \"font-size\": height,\n }) as number;\n monospace = textWidth(alpha, {\n \"font-family\": \"monospace\",\n \"font-size\": height,\n }) as number;\n proportional = textWidth(alpha, {\n \"font-family\": \"sans-serif\",\n \"font-size\": height,\n }) as number;\n }\n\n if (!(font instanceof Array)) font = font.split(\",\");\n font = font.map(f => f.trim());\n\n for (let i = 0; i < font.length; i++) {\n const fam = font[i];\n if (\n checked[fam] ||\n [\"-apple-system\", \"monospace\", \"sans-serif\", \"DejaVuSans\"].includes(fam)\n )\n return fam;\n else if (checked[fam] === false) continue;\n const width = textWidth(alpha, {\n \"font-family\": fam,\n \"font-size\": height,\n }) as number;\n checked[fam] = width !== monospace;\n if (checked[fam]) checked[fam] = width !== proportional;\n if (macos && checked[fam]) checked[fam] = width !== macos;\n if (dejavu && checked[fam]) checked[fam] = width !== dejavu;\n if (checked[fam]) return fam;\n }\n\n return false;\n};\n\nexport default fontExists;\n","import {select} from \"d3-selection\";\n\n/**\n Given an HTMLElement and a \"width\" or \"height\" string, this function returns the current calculated size for the DOM element.\n @private\n*/\nfunction _elementSize(\n element: HTMLElement | null,\n s: \"width\" | \"height\",\n): number | undefined {\n if (!element) return undefined;\n\n if (\n (element as HTMLElement).tagName === undefined ||\n [\"BODY\", \"HTML\"].indexOf((element as HTMLElement).tagName) >= 0\n ) {\n let val = (window as any)[\n `inner${s.charAt(0).toUpperCase() + s.slice(1)}`\n ] as number;\n const elem = select(element);\n\n if (s === \"width\") {\n val -= parseFloat(elem.style(\"margin-left\"));\n val -= parseFloat(elem.style(\"margin-right\"));\n val -= parseFloat(elem.style(\"padding-left\"));\n val -= parseFloat(elem.style(\"padding-right\"));\n } else {\n val -= parseFloat(elem.style(\"margin-top\"));\n val -= parseFloat(elem.style(\"margin-bottom\"));\n val -= parseFloat(elem.style(\"padding-top\"));\n val -= parseFloat(elem.style(\"padding-bottom\"));\n }\n\n return val;\n } else {\n let val: number = element.getBoundingClientRect()[s];\n if (typeof val === \"number\" && val > 0) {\n if (s === \"height\") {\n val -= parseFloat(select(element).style(\"padding-top\"));\n val -= parseFloat(select(element).style(\"padding-bottom\"));\n val -= parseFloat(select(element).style(\"border-top\"));\n val -= parseFloat(select(element).style(\"border-bottom\"));\n } else {\n val -= parseFloat(select(element).style(\"padding-left\"));\n val -= parseFloat(select(element).style(\"padding-right\"));\n val -= parseFloat(select(element).style(\"border-left\"));\n val -= parseFloat(select(element).style(\"border-right\"));\n }\n return val;\n } else return _elementSize(element.parentNode as HTMLElement | null, s);\n }\n}\n\n/**\n Finds the available width and height for a specified HTMLElement, traversing it's parents until it finds something with constrained dimensions. Falls back to the inner dimensions of the browser window if none is found.\n @private\n*/\nexport default function (\n elem: HTMLElement,\n): [number | undefined, number | undefined] {\n return [_elementSize(elem, \"width\"), _elementSize(elem, \"height\")];\n}\n","/**\n Determines whether a given DOM element is visible within the current viewport, with an optional pixel buffer.\n @param elem The DOM element to check.\n @param buffer Extra pixel margin around the viewport boundary.\n*/\nexport default function (elem: Element, buffer: number = 0): boolean {\n const pageX = window.scrollX;\n const pageY = window.scrollY;\n\n const bounds = elem.getBoundingClientRect();\n const height = bounds.height,\n left = bounds.left + pageX,\n top = bounds.top + pageY,\n width = bounds.width;\n\n return (\n pageY + window.innerHeight > top + buffer &&\n pageY + buffer < top + height &&\n pageX + window.innerWidth > left + buffer &&\n pageX + buffer < left + width\n );\n}\n","export interface ParsedSides {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\n/**\n Converts a string of directional CSS shorthand values into an object with the values expanded.\n @param sides The CSS shorthand string to expand.\n */\nexport default function (sides: string | number): ParsedSides {\n let values: string[];\n if (typeof sides === \"number\") values = [`${sides}`];\n else values = sides.split(/\\s+/);\n\n if (values.length === 1)\n values = [values[0], values[0], values[0], values[0]];\n else if (values.length === 2) values = values.concat(values);\n else if (values.length === 3) values.push(values[1]);\n\n return [\"top\", \"right\", \"bottom\", \"left\"].reduce((acc, direction, i) => {\n const value = parseFloat(values[i]);\n acc[direction as keyof ParsedSides] = value || 0;\n return acc;\n }, {} as ParsedSides);\n}\n","/**\n Returns `true` if the HTML or body element has either the \"dir\" HTML attribute or the \"direction\" CSS property set to \"rtl\".\n*/\nexport default function (): boolean {\n return (\n document.documentElement.dir === \"rtl\" ||\n document.body.dir === \"rtl\" ||\n getComputedStyle(document.documentElement).direction === \"rtl\" ||\n getComputedStyle(document.body).direction === \"rtl\"\n );\n}\n","import type {Stylable} from \"./D3Selection.js\";\n\n/**\n Applies each key/value in an object as a style.\n @param e The d3 selection to apply styles to.\n @param s An object of key/value style pairs.\n*/\nexport default function (\n e: Stylable,\n s: Record<string, string | number | boolean | null> = {},\n): void {\n for (const k in s) if ({}.hasOwnProperty.call(s, k)) e.style(k, s[k]);\n}\n"],"names":["item","window","document","Element","Array","isArray","validObject","obj","assign","objects","target","i","length","source","isObject","Object","keys","forEach","prop","value","prototype","hasOwnProperty","call","slice","elem","node","bg","getComputedStyle","backgroundColor","parentElement","e","a","k","attr","d","undefined","NaN","includes","Date","Number","s","dayFormat","RegExp","exec","year","indexOf","replace","substring","date","setFullYear","strFormat","quarterPrefix","quarterSuffix","quarter","toLowerCase","monthPrefix","monthSuffix","month","iso8601","xhtml","svg","xlink","xml","xmlns","name","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","select","groups","_groups","m","subgroups","j","group","n","subgroup","subnode","__data__","Selection","_parents","array","x","from","empty","querySelectorAll","arrayAll","apply","arguments","selectorAll","parents","push","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","map","sparse","EnterNode","parent","datum","_next","_parent","appendChild","child","insertBefore","next","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","nodeByKeyValue","Map","keyValues","keyValue","has","set","get","delete","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","_exit","onenter","onupdate","onexit","selection","append","remove","merge","order","context","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","parentNode","compare","ascending","compareNode","b","sortgroups","sortgroup","sort","callback","size","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","getAttributeNS","getAttribute","each","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","add","join","splice","contains","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","parseTypenames","typenames","t","type","onRemove","typename","on","__on","o","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","selection_style","selection_property","classed","selection_classed","text","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","insert","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","dispatch","selection_dispatch","Symbol","iterator","selection_iterator","noop","_","test","Error","Dispatch","types","T","copy","that","args","c","concat","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","restart","delay","time","TypeError","sleep","stop","Infinity","timerFlush","wake","nap","poke","t0","t1","t2","clearTimeout","clearInterval","setInterval","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","id","index","timing","schedules","__transition","tween","duration","ease","state","init","schedule","self","start","tick","active","interrupt","constructor","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","define","color","channels","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","toString","hslConvert","format","l","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","pow","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","isNaN","max","round","h","Hsl","hsl","m2","hsl2rgb","clamph","clampt","linear","exponential","y","gamma","nogamma","rgbGamma","end","colorRgb","reA","reB","zero","one","bi","lastIndex","am","bm","bs","q","number","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","transform","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","string1","interpolate0","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","cubicInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","p","condition","className","tag","attrize","latin1BidiTypes","nonLatin1BidiRanges","classifyCodePoint","codePoint","lo","hi","mid","range","computeBidiLevels","str","len","sawBidi","first","charCodeAt","codeUnitLength","second","startLevel","levels","Int8Array","sor","lastType","after","bDir","aDir","computeSegmentLevels","normalized","segStarts","bidiLevels","segLevels","collapsibleWhitespaceRunRe","needsWhitespaceNormalizationRe","getWhiteSpaceProfile","whiteSpace","mode","preserveOrdinarySpaces","preserveHardBreaks","normalizeWhitespaceNormal","normalizeWhitespacePreWrap","sharedWordSegmenter","segmenterLocale","getSharedWordSegmenter","Intl","Segmenter","granularity","arabicScriptRe","combiningMarkRe","decimalDigitRe","containsArabicScript","isCJKCodePoint","isCJK","endsWithLineStartProhibitedText","last","getLastCodePoint","kinsokuStart","leftStickyPunctuation","keepAllGlueChars","Set","containsCJKText","endsWithKeepAllGlueText","canContinueKeepAllTextRun","previousText","kinsokuEnd","forwardStickyGlue","arabicNoSpaceTrailingPunctuation","myanmarMedialGlue","closingQuoteChars","isLeftStickyPunctuationSegment","segment","isEscapedQuoteClusterSegment","sawPunctuation","ch","isCJKLineStartProhibitedSegment","isForwardStickyClusterSegment","sawQuote","previousCodePointStart","lastCodeUnit","maybeHigh","highCodeUnit","splitTrailingForwardStickyCluster","chars","splitIndex","head","tail","getRepeatableSingleCharRunChar","isWordLike","kind","materializeDeferredSingleCharRun","texts","lengths","materialized","repeat","hasArabicNoSpacePunctuation","containsArabic","lastCodePoint","endsWithMyanmarMedialGlue","splitLeadingSpaceAndMarks","marks","endsWithClosingQuote","classifySegmentBreakChar","whiteSpaceProfile","breakCharRe","joinTextParts","parts","joinReversedPrefixParts","prefixParts","splitSegmentByBreakKind","pieces","currentKind","currentTextParts","currentStart","currentWordLike","offset","wordLike","isTextRunBoundary","urlSchemeSegmentRe","isUrlLikeRunStart","segmentation","startsWith","kinds","isUrlQueryBoundarySegment","mergeUrlLikeRuns","starts","mergedParts","endsQueryPrefix","compactLen","read","mergeUrlQueryRuns","nextIndex","queryParts","queryStart","numericJoinerChars","asciiPunctuationChainSegmentRe","asciiPunctuationChainTrailingJoinersRe","segmentContainsDecimalDigit","isNumericRunSegment","mergeNumericRuns","mergeAsciiPunctuationChains","endsWithJoiners","nextText","splitHyphenatedNumericRuns","shouldSplit","part","splitText","mergeGlueConnectedTextRuns","textParts","glueParts","glueStart","glueText","carryTrailingForwardStickyAcrossCJKBoundary","buildMergedSegmentation","profile","wordSegmenter","mergedLen","mergedTexts","mergedTextParts","mergedWordLike","mergedKinds","mergedStarts","mergedSingleCharRunChars","mergedSingleCharRunLengths","mergedContainsCJK","mergedContainsArabicScript","mergedEndsWithClosingQuote","mergedEndsWithMyanmarMedialGlue","mergedHasArabicNoSpacePunctuation","piece","isText","repeatableSingleCharRunChar","pieceContainsCJK","pieceContainsArabicScript","pieceLastCodePoint","pieceEndsWithClosingQuote","pieceEndsWithMyanmarMedialGlue","prevIndex","appendPieceToPrevious","carryCJKAfterClosingQuote","forwardStickyPrefixParts","nextLiveIndex","compacted","withMergedUrls","compileAnalysisChunks","startSegmentIndex","endSegmentIndex","consumedEndSegmentIndex","chunks","mergeKeepAllTextSegments","pendingTextParts","pendingWordLike","pendingStart","pendingContainsCJK","pendingCanContinue","flushPendingText","textContainsCJK","textCanContinue","analyzeText","wordBreak","measureContext","segmentMetricCaches","cachedEngineProfile","MAX_PREFIX_FIT_GRAPHEMES","emojiPresentationRe","maybeEmojiRe","sharedGraphemeSegmenter","emojiCorrectionCache","getMeasureContext","OffscreenCanvas","getContext","getSegmentMetricCache","font","cache","getSegmentMetrics","seg","metrics","ctx","width","measureText","containsCJK","getEngineProfile","navigator","lineFitEpsilon","preferPrefixWidthsForBreakableRuns","preferEarlySoftHyphenBreak","ua","userAgent","vendor","isSafari","isChromium","parseFontSize","parseFloat","getSharedGraphemeSegmenter","isEmojiGrapheme","textMayContainEmoji","getEmojiCorrection","fontSize","correction","canvasW","body","span","display","visibility","position","domW","getBoundingClientRect","countEmojiGraphemes","count","graphemeSegmenter","getEmojiCount","emojiCount","getCorrectedSegmentWidth","emojiCorrection","getSegmentBreakableFitAdvances","breakableFitAdvances","graphemes","gs","advances","grapheme","graphemeMetrics","previousGrapheme","previousWidth","currentWidth","pair","pairMetrics","prefixWidth","prefixMetrics","nextPrefixWidth","getFontMeasurementState","needsEmojiCorrection","normalizeSimpleLineStartSegmentIndex","prepared","segmentIndex","widths","getTabAdvance","lineWidth","tabStopAdvance","remainder","abs","fitSoftHyphenBreak","graphemeFitAdvances","initialWidth","maxWidth","discretionaryHyphenWidth","fitCount","fittedWidth","nextWidth","nextLineWidth","walkPreparedLinesSimple","onLine","engineProfile","fitLimit","lineCount","lineW","hasContent","lineStartSegmentIndex","lineStartGraphemeIndex","lineEndSegmentIndex","lineEndGraphemeIndex","pendingBreakSegmentIndex","pendingBreakPaintWidth","clearPendingBreak","emitCurrentLine","endGraphemeIndex","startGraphemeIndex","startLineAtSegment","startLineAtGrapheme","graphemeIndex","appendWholeSegment","appendBreakableSegmentFrom","fitAdvances","gw","w","breakAfter","newW","walkPreparedLines","simpleLineWalkFastPath","lineEndFitAdvances","lineEndPaintAdvances","pendingBreakFitWidth","pendingBreakKind","updatePendingBreakForWholeSegment","segmentWidth","fitAdvance","paintAdvance","continueSoftHyphenBreakableSegment","fitWidths","emitEmptyChunk","chunk","chunkIndex","currentBreakFitWidth","currentBreakPaintWidth","nextSegmentIndex","finalPaintWidth","sharedLineTextCaches","WeakMap","createEmptyPrepared","includeSegments","segments","buildBaseCjkUnits","segText","units","unitParts","unitStart","unitContainsCJK","unitEndsWithClosingQuote","unitIsSingleKinsokuEnd","pushUnit","startUnit","graphemeContainsCJK","appendToUnit","graphemeEndsWithClosingQuote","measureAnalysis","analysis","spaceWidth","preparedStartByAnalysisIndex","pushMeasuredSegment","lineEndFitAdvance","lineEndPaintAdvance","breakableFitAdvance","pushMeasuredTextSegment","allowOverflowBreaks","textMetrics","fitMode","mi","segWordLike","segKind","segStart","segMetrics","baseUnits","measuredUnits","unit","mapAnalysisChunksToPreparedChunks","preparedEndSegmentIndex","preparedChunks","prepareInternal","prepareWithSegments","getInternalPrepared","getSegmentGraphemes","getLineTextCache","lineHasDiscretionaryHyphen","buildLineTextFromRange","endsWithDiscretionaryHyphen","createLayoutLine","materializeLayoutLine","line","layoutWithLines","lineHeight","lines","height","graphemeCache","htmlDecode","input","doc","DOMParser","parseFromString","buildFont","styleObj","variant","weight","family","measureWidth","result","alpha","checked","dejavu","macos","monospace","proportional","fontExists","textWidth","fam","_elementSize","element","tagName","val","charAt","toUpperCase","buffer","pageX","scrollX","pageY","scrollY","bounds","left","top","innerHeight","innerWidth","sides","values","reduce","acc","direction","dir"],"mappings":"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EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,IAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;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A;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAI,KAAA;EACnB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAK,KAAA;EACpB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;EAAM,KAAA;EACrB,IAAA;EAAC,QAAA,KAAA;EAAO,QAAA,KAAA;EAAO,QAAA;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AAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAI,KAAA;EACrB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAI,KAAA;EACrB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAI,KAAA;EACrB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAI,KAAA;EACrB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAI,KAAA;EACrB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAM,KAAA;EACvB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC,QAAA,MAAA;EAAQ,QAAA,MAAA;EAAQ,QAAA;EAAK,KAAA;EACtB,IAAA;EAAC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QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAI,KAAA;EACvB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAM,KAAA;EACzB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,OAAA;EAAS,QAAA,OAAA;EAAS,QAAA;EAAK,KAAA;EACxB,IAAA;EAAC,QAAA,QAAA;EAAU,QAAA,QAAA;EAAU,QAAA;EAAK;GAC7B;;ECl9BD;EACA;EACA;EACA;EACA;EAEA,SAASC,kBAAkBC,SAAS,EAAA;EAChC,IAAA,IAAIA,SAAAA,IAAa,MAAA,EACb,OAAOH,eAAe,CAACG,SAAAA,CAAU;EACrC,IAAA,IAAIC,EAAAA,GAAK,CAAA;MACT,IAAIC,EAAAA,GAAKJ,mBAAAA,CAAoBruB,MAAM,GAAG,CAAA;EACtC,IAAA,MAAOwuB,MAAMC,EAAAA,CAAI;UACb,MAAMC,GAAAA,GAAM,EAACF,GAAKC,EAAAA,IAAO,CAAA;UACzB,MAAME,KAAAA,GAAQN,mBAAmB,CAACK,GAAAA,CAAI;EACtC,QAAA,IAAIH,SAAAA,GAAYI,KAAK,CAAC,CAAA,CAAE,EAAE;EACtBF,YAAAA,EAAAA,GAAKC,GAAAA,GAAM,CAAA;EACX,YAAA;EACJ,QAAA;EACA,QAAA,IAAIH,SAAAA,GAAYI,KAAK,CAAC,CAAA,CAAE,EAAE;EACtBH,YAAAA,EAAAA,GAAKE,GAAAA,GAAM,CAAA;EACX,YAAA;EACJ,QAAA;UACA,OAAOC,KAAK,CAAC,CAAA,CAAE;EACnB,IAAA;MACA,OAAO,GAAA;EACX;EACA,SAASC,kBAAkBC,GAAG,EAAA;MAC1B,MAAMC,GAAAA,GAAMD,IAAI7uB,MAAM;MACtB,IAAI8uB,GAAAA,KAAQ,GACR,OAAO,IAAA;;MAEX,MAAM7a,KAAAA,GAAQ,IAAIzU,KAAAA,CAAMsvB,GAAAA,CAAAA;EACxB,IAAA,IAAIC,OAAAA,GAAU,KAAA;;;;EAId,IAAA,IAAK,IAAIhvB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,GAAAA,EAAM;UACtB,MAAME,KAAAA,GAAQH,GAAAA,CAAII,UAAU,CAAClvB,CAAAA,CAAAA;EAC7B,QAAA,IAAIwuB,SAAAA,GAAYS,KAAAA;EAChB,QAAA,IAAIE,cAAAA,GAAiB,CAAA;EACrB,QAAA,IAAIF,SAAS,MAAA,IAAUA,KAAAA,IAAS,MAAA,IAAUjvB,CAAAA,GAAI,IAAI+uB,GAAAA,EAAK;EACnD,YAAA,MAAMK,MAAAA,GAASN,GAAAA,CAAII,UAAU,CAAClvB,CAAAA,GAAI,CAAA,CAAA;cAClC,IAAIovB,MAAAA,IAAU,MAAA,IAAUA,MAAAA,IAAU,MAAA,EAAQ;kBACtCZ,SAAAA,GAAa,CAACS,KAAAA,GAAQ,MAAA,IAAW,EAAC,KAAMG,MAAAA,GAAS,MAAK,CAAA,GAAK,OAAA;kBAC3DD,cAAAA,GAAiB,CAAA;EACrB,YAAA;EACJ,QAAA;EACA,QAAA,MAAMzf,IAAI6e,iBAAAA,CAAkBC,SAAAA,CAAAA;EAC5B,QAAA,IAAI9e,MAAM,GAAA,IAAOA,CAAAA,KAAM,IAAA,IAAQA,CAAAA,KAAM,MACjCsf,OAAAA,GAAU,IAAA;EACd,QAAA,IAAK,IAAIpqB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIuqB,gBAAgBvqB,CAAAA,EAAAA,CAAK;cACrCsP,KAAK,CAAClU,CAAAA,GAAI4E,CAAAA,CAAE,GAAG8K,CAAAA;EACnB,QAAA;UACA1P,CAAAA,IAAKmvB,cAAAA;EACT,IAAA;MACA,IAAI,CAACH,SACD,OAAO,IAAA;;;;EAIX,IAAA,IAAIK,UAAAA,GAAa,CAAA;EACjB,IAAA,IAAK,IAAIrvB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,MAAM0P,CAAAA,GAAIwE,KAAK,CAAClU,CAAAA,CAAE;EAClB,QAAA,IAAI0P,MAAM,GAAA,EAAK;cACX2f,UAAAA,GAAa,CAAA;EACb,YAAA;EACJ,QAAA;UACA,IAAI3f,CAAAA,KAAM,GAAA,IAAOA,CAAAA,KAAM,IAAA,EAAM;cACzB2f,UAAAA,GAAa,CAAA;EACb,YAAA;EACJ,QAAA;EACJ,IAAA;MACA,MAAMC,MAAAA,GAAS,IAAIC,SAAAA,CAAUR,GAAAA,CAAAA;MAC7B,IAAK,IAAI/uB,IAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CACrBsvB,MAAM,CAACtvB,CAAAA,CAAE,GAAGqvB,UAAAA;EAChB,IAAA,MAAMluB,CAAAA,GAAKkuB,UAAAA,GAAa,CAAA,GAAK,GAAA,GAAM,GAAA;EACnC,IAAA,MAAMG,GAAAA,GAAMruB,CAAAA;;EAEZ,IAAA,IAAIsuB,QAAAA,GAAWD,GAAAA;EACf,IAAA,IAAK,IAAIxvB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,OACbkU,KAAK,CAAClU,EAAE,GAAGyvB,QAAAA;eAEXA,QAAAA,GAAWvb,KAAK,CAAClU,CAAAA,CAAE;EAC3B,IAAA;MACAyvB,QAAAA,GAAWD,GAAAA;EACX,IAAA,IAAK,IAAIxvB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,MAAM0P,CAAAA,GAAIwE,KAAK,CAAClU,CAAAA,CAAE;UAClB,IAAI0P,CAAAA,KAAM,MACNwE,KAAK,CAAClU,EAAE,GAAGyvB,QAAAA,KAAa,OAAO,IAAA,GAAO,IAAA;EACrC,aAAA,IAAI/f,MAAM,GAAA,IAAOA,CAAAA,KAAM,GAAA,IAAOA,CAAAA,KAAM,MACrC+f,QAAAA,GAAW/f,CAAAA;EACnB,IAAA;EACA,IAAA,IAAK,IAAI1P,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,MACbkU,KAAK,CAAClU,EAAE,GAAG,GAAA;EACnB,IAAA;EACA,IAAA,IAAK,IAAIA,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,GAAAA,GAAM,GAAG/uB,CAAAA,EAAAA,CAAK;EAC9B,QAAA,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,IAAA,IAAQkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,KAAK,QAAQkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,KAAK,IAAA,EAAM;cACrEkU,KAAK,CAAClU,EAAE,GAAG,IAAA;EACf,QAAA;EACA,QAAA,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,IAAA,KACZkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,KAAK,IAAA,IAAQkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,KAAK,IAAG,CAAA,IAC9CkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,KAAKkU,KAAK,CAAClU,CAAAA,GAAI,CAAA,CAAE,EAAE;EAC/BkU,YAAAA,KAAK,CAAClU,CAAAA,CAAE,GAAGkU,KAAK,CAAClU,IAAI,CAAA,CAAE;EAC3B,QAAA;EACJ,IAAA;EACA,IAAA,IAAK,IAAIA,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;EAC1B,QAAA,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,IAAA,EACb;UACJ,IAAI4E,CAAAA;EACJ,QAAA,IAAKA,CAAAA,GAAI5E,CAAAA,GAAI,CAAA,EAAG4E,CAAAA,IAAK,KAAKsP,KAAK,CAACtP,CAAAA,CAAE,KAAK,IAAA,EAAMA,CAAAA,EAAAA,CACzCsP,KAAK,CAACtP,EAAE,GAAG,IAAA;EACf,QAAA,IAAKA,CAAAA,GAAI5E,CAAAA,GAAI,CAAA,EAAG4E,CAAAA,GAAImqB,OAAO7a,KAAK,CAACtP,CAAAA,CAAE,KAAK,IAAA,EAAMA,CAAAA,EAAAA,CAC1CsP,KAAK,CAACtP,EAAE,GAAG,IAAA;EACnB,IAAA;EACA,IAAA,IAAK,IAAI5E,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,MAAM0P,CAAAA,GAAIwE,KAAK,CAAClU,CAAAA,CAAE;UAClB,IAAI0P,CAAAA,KAAM,IAAA,IAAQA,CAAAA,KAAM,IAAA,IAAQA,CAAAA,KAAM,IAAA,IAAQA,CAAAA,KAAM,IAAA,EAChDwE,KAAK,CAAClU,CAAAA,CAAE,GAAG,IAAA;EACnB,IAAA;MACAyvB,QAAAA,GAAWD,GAAAA;EACX,IAAA,IAAK,IAAIxvB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,MAAM0P,CAAAA,GAAIwE,KAAK,CAAClU,CAAAA,CAAE;UAClB,IAAI0P,CAAAA,KAAM,MACNwE,KAAK,CAAClU,EAAE,GAAGyvB,QAAAA,KAAa,MAAM,GAAA,GAAM,IAAA;EACnC,aAAA,IAAI/f,CAAAA,KAAM,GAAA,IAAOA,CAAAA,KAAM,GAAA,EACxB+f,QAAAA,GAAW/f,CAAAA;EACnB,IAAA;;EAEA,IAAA,IAAK,IAAI1P,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;EAC1B,QAAA,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,IAAA,EACb;EACJ,QAAA,IAAIimB,MAAMjmB,CAAAA,GAAI,CAAA;EACd,QAAA,MAAOimB,MAAM8I,GAAAA,IAAO7a,KAAK,CAAC+R,GAAAA,CAAI,KAAK,IAAA,CAC/BA,GAAAA,EAAAA;EACJ,QAAA,MAAMpX,SAAS7O,CAAAA,GAAI,CAAA,GAAIkU,KAAK,CAAClU,CAAAA,GAAI,EAAE,GAAGwvB,GAAAA;EACtC,QAAA,MAAME,QAAQzJ,GAAAA,GAAM8I,GAAAA,GAAM7a,KAAK,CAAC+R,IAAI,GAAGuJ,GAAAA;UACvC,MAAMG,IAAAA,GAAO9gB,MAAAA,KAAW,GAAA,GAAM,GAAA,GAAM,GAAA;UACpC,MAAM+gB,IAAAA,GAAOF,KAAAA,KAAU,GAAA,GAAM,GAAA,GAAM,GAAA;EACnC,QAAA,IAAIC,SAASC,IAAAA,EAAM;cACf,IAAK,IAAIhrB,IAAI5E,CAAAA,EAAG4E,CAAAA,GAAIqhB,KAAKrhB,CAAAA,EAAAA,CACrBsP,KAAK,CAACtP,CAAAA,CAAE,GAAG+qB,IAAAA;EACnB,QAAA;EACA3vB,QAAAA,CAAAA,GAAIimB,GAAAA,GAAM,CAAA;EACd,IAAA;EACA,IAAA,IAAK,IAAIjmB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,IAAIkU,KAAK,CAAClU,CAAAA,CAAE,KAAK,MACbkU,KAAK,CAAClU,EAAE,GAAGmB,CAAAA;EACnB,IAAA;;EAEA,IAAA,IAAK,IAAInB,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI+uB,KAAK/uB,CAAAA,EAAAA,CAAK;UAC1B,MAAM0P,CAAAA,GAAIwE,KAAK,CAAClU,CAAAA,CAAE;UAClB,IAAKsvB,CAAAA,MAAM,CAACtvB,EAAE,GAAG,CAAA,MAAO,CAAA,EAAG;EACvB,YAAA,IAAI0P,CAAAA,KAAM,GAAA,EACN4f,MAAM,CAACtvB,CAAAA,CAAE,EAAA;EACR,iBAAA,IAAI0P,MAAM,IAAA,IAAQA,CAAAA,KAAM,MACzB4f,MAAM,CAACtvB,EAAE,IAAI,CAAA;EACrB,QAAA,CAAA,MACK,IAAI0P,CAAAA,KAAM,GAAA,IAAOA,CAAAA,KAAM,IAAA,IAAQA,MAAM,IAAA,EAAM;EAC5C4f,YAAAA,MAAM,CAACtvB,CAAAA,CAAE,EAAA;EACb,QAAA;EACJ,IAAA;MACA,OAAOsvB,MAAAA;EACX;EACO,SAASO,oBAAAA,CAAqBC,UAAU,EAAEC,SAAS,EAAA;EACtD,IAAA,MAAMC,aAAanB,iBAAAA,CAAkBiB,UAAAA,CAAAA;MACrC,IAAIE,UAAAA,KAAe,MACf,OAAO,IAAA;EACX,IAAA,MAAMC,SAAAA,GAAY,IAAIV,SAAAA,CAAUQ,SAAAA,CAAU9vB,MAAM,CAAA;EAChD,IAAA,IAAK,IAAID,CAAAA,GAAI,CAAA,EAAGA,IAAI+vB,SAAAA,CAAU9vB,MAAM,EAAED,CAAAA,EAAAA,CAAK;UACvCiwB,SAAS,CAACjwB,EAAE,GAAGgwB,UAAU,CAACD,SAAS,CAAC/vB,EAAE,CAAC;EAC3C,IAAA;MACA,OAAOiwB,SAAAA;EACX;;EC9KA,MAAMC,0BAAAA,GAA6B,eAAA;EACnC,MAAMC,8BAAAA,GAAiC,wBAAA;EACvC,SAASC,qBAAqBC,UAAU,EAAA;EACpC,IAAA,MAAMC,OAAOD,UAAAA,IAAc,QAAA;EAC3B,IAAA,OAAOC,SAAS,UAAA,GACV;EAAEA,QAAAA,IAAAA;UAAMC,sBAAAA,EAAwB,IAAA;UAAMC,kBAAAA,EAAoB;OAAK,GAC/D;EAAEF,QAAAA,IAAAA;UAAMC,sBAAAA,EAAwB,KAAA;UAAOC,kBAAAA,EAAoB;EAAM,KAAA;EAC3E;EACO,SAASC,0BAA0B9d,IAAI,EAAA;EAC1C,IAAA,IAAI,CAACwd,8BAAAA,CAA+Bpc,IAAI,CAACpB,OACrC,OAAOA,IAAAA;EACX,IAAA,IAAImd,UAAAA,GAAand,IAAAA,CAAKxQ,OAAO,CAAC+tB,0BAAAA,EAA4B,GAAA,CAAA;EAC1D,IAAA,IAAIJ,UAAAA,CAAWZ,UAAU,CAAC,CAAA,CAAA,KAAO,IAAA,EAAM;UACnCY,UAAAA,GAAaA,UAAAA,CAAWlvB,KAAK,CAAC,CAAA,CAAA;EAClC,IAAA;MACA,IAAIkvB,UAAAA,CAAW7vB,MAAM,GAAG,CAAA,IAAK6vB,UAAAA,CAAWZ,UAAU,CAACY,UAAAA,CAAW7vB,MAAM,GAAG,CAAA,CAAA,KAAO,IAAA,EAAM;EAChF6vB,QAAAA,UAAAA,GAAaA,UAAAA,CAAWlvB,KAAK,CAAC,CAAA,EAAG,EAAC,CAAA;EACtC,IAAA;MACA,OAAOkvB,UAAAA;EACX;EACA,SAASY,2BAA2B/d,IAAI,EAAA;MACpC,IAAI,CAAC,SAASoB,IAAI,CAACpB,OACf,OAAOA,IAAAA,CAAKxQ,OAAO,CAAC,OAAA,EAAS,IAAA,CAAA;EACjC,IAAA,OAAOwQ,KACFxQ,OAAO,CAAC,SAAS,IAAA,CAAA,CACjBA,OAAO,CAAC,SAAA,EAAW,IAAA,CAAA;EAC5B;EACA,IAAIwuB,mBAAAA,GAAsB,IAAA;EAC1B,IAAIC,eAAAA;EACJ,SAASC,sBAAAA,GAAAA;EACL,IAAA,IAAIF,wBAAwB,IAAA,EAAM;EAC9BA,QAAAA,mBAAAA,GAAsB,IAAIG,IAAAA,CAAKC,SAAS,CAACH,eAAAA,EAAiB;cAAEI,WAAAA,EAAa;EAAO,SAAA,CAAA;EACpF,IAAA;MACA,OAAOL,mBAAAA;EACX;EAWA,MAAMM,cAAAA,GAAiB,oBAAA;EACvB,MAAMC,eAAAA,GAAkB,QAAA;EACxB,MAAMC,cAAAA,GAAiB,SAAA;EACvB,SAASC,qBAAqBze,IAAI,EAAA;MAC9B,OAAOse,cAAAA,CAAeld,IAAI,CAACpB,IAAAA,CAAAA;EAC/B;EACA,SAAS0e,eAAe7C,SAAS,EAAA;EAC7B,IAAA,OAAQ,SAACA,IAAa,MAAA,IAAUA,SAAAA,IAAa,UACxCA,SAAAA,IAAa,MAAA,IAAUA,SAAAA,IAAa,MAAA,IACpCA,SAAAA,IAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,aAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,WAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,OAAA,IAAWA,aAAa,OAAA,IACrCA,SAAAA,IAAa,OAAA,IAAWA,SAAAA,IAAa,WACrCA,SAAAA,IAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,aAAa,OAAA,IAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,WAAWA,SAAAA,IAAa,OAAA,IACrCA,SAAAA,IAAa,MAAA,IAAUA,aAAa,MAAA,IACpCA,SAAAA,IAAa,MAAA,IAAUA,SAAAA,IAAa,MAAA,IACpCA,SAAAA,IAAa,MAAA,IAAUA,SAAAA,IAAa,UACpCA,SAAAA,IAAa,MAAA,IAAUA,SAAAA,IAAa,MAAA,IACpCA,aAAa,MAAA,IAAUA,SAAAA,IAAa,MAAA,IACpCA,SAAAA,IAAa,UAAUA,SAAAA,IAAa,MAAA;EAC7C;EACO,SAAS8C,MAAMzvB,CAAC,EAAA;EACnB,IAAA,IAAK,IAAI7B,CAAAA,GAAI,CAAA,EAAGA,IAAI6B,CAAAA,CAAE5B,MAAM,EAAED,CAAAA,EAAAA,CAAK;UAC/B,MAAMivB,KAAAA,GAAQptB,CAAAA,CAAEqtB,UAAU,CAAClvB,CAAAA,CAAAA;EAC3B,QAAA,IAAIivB,QAAQ,MAAA,EACR;UACJ,IAAIA,KAAAA,IAAS,UAAUA,KAAAA,IAAS,MAAA,IAAUjvB,IAAI,CAAA,GAAI6B,CAAAA,CAAE5B,MAAM,EAAE;EACxD,YAAA,MAAMmvB,MAAAA,GAASvtB,CAAAA,CAAEqtB,UAAU,CAAClvB,CAAAA,GAAI,CAAA,CAAA;cAChC,IAAIovB,MAAAA,IAAU,MAAA,IAAUA,MAAAA,IAAU,MAAA,EAAQ;kBACtC,MAAMZ,SAAAA,GAAY,CAAC,KAACS,GAAQ,MAAA,IAAW,EAAC,KAAMG,MAAAA,GAAS,MAAK,CAAA,GAAK,OAAA;kBACjE,IAAIiC,cAAAA,CAAe7C,YACf,OAAO,IAAA;EACXxuB,gBAAAA,CAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACJ,QAAA;UACA,IAAIqxB,cAAAA,CAAepC,QACf,OAAO,IAAA;EACf,IAAA;MACA,OAAO,KAAA;EACX;EACA,SAASsC,gCAAgC5e,IAAI,EAAA;EACzC,IAAA,MAAM6e,OAAOC,gBAAAA,CAAiB9e,IAAAA,CAAAA;MAC9B,OAAO6e,IAAAA,KAAS,IAAA,KAASE,YAAAA,CAAatpB,GAAG,CAACopB,IAAAA,CAAAA,IAASG,qBAAAA,CAAsBvpB,GAAG,CAACopB,IAAAA,CAAI,CAAA;EACrF;EACA,MAAMI,gBAAAA,GAAmB,IAAIC,GAAAA,CAAI;EAC7B,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA;EACH,CAAA,CAAA;EACD,SAASC,gBAAgBnf,IAAI,EAAA;EACzB,IAAA,OAAO2e,KAAAA,CAAM3e,IAAAA,CAAAA;EACjB;EACA,SAASof,wBAAwBpf,IAAI,EAAA;EACjC,IAAA,MAAM6e,OAAOC,gBAAAA,CAAiB9e,IAAAA,CAAAA;EAC9B,IAAA,OAAO6e,IAAAA,KAAS,IAAA,IAAQI,gBAAAA,CAAiBxpB,GAAG,CAACopB,IAAAA,CAAAA;EACjD;EACO,SAASQ,0BAA0BC,YAAY,EAAA;EAClD,IAAA,OAAQ,CAACV,+BAAAA,CAAgCU,YAAAA,CAAAA,IACrC,CAACF,uBAAAA,CAAwBE,YAAAA,CAAAA;EACjC;EACO,MAAMP,YAAAA,GAAe,IAAIG,GAAAA,CAAI;EAChC,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA;GACH,CAAA;EACM,MAAMK,UAAAA,GAAa,IAAIL,GAAAA,CAAI;EAC9B,IAAA,GAAA;EACA,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACV,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACf,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA;GACH,CAAA;EACD,MAAMM,iBAAAA,GAAoB,IAAIN,GAAAA,CAAI;EAC9B,IAAA,GAAA;EAAK,IAAA;EACR,CAAA,CAAA;EACM,MAAMF,qBAAAA,GAAwB,IAAIE,GAAAA,CAAI;EACzC,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACzB,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACV,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACf,IAAA;GACH,CAAA;EACD,MAAMO,gCAAAA,GAAmC,IAAIP,GAAAA,CAAI;EAC7C,IAAA,GAAA;EACA,IAAA,GAAA;EACA,IAAA,QAAA;EACA,IAAA;EACH,CAAA,CAAA;EACD,MAAMQ,iBAAAA,GAAoB,IAAIR,GAAAA,CAAI;EAC9B,IAAA;EACH,CAAA,CAAA;EACD,MAAMS,iBAAAA,GAAoB,IAAIT,GAAAA,CAAI;EAC9B,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EACf,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA,QAAA;EACA,IAAA;EACH,CAAA,CAAA;EACD,SAASU,+BAA+BC,OAAO,EAAA;MAC3C,IAAIC,4BAAAA,CAA6BD,UAC7B,OAAO,IAAA;EACX,IAAA,IAAIE,cAAAA,GAAiB,KAAA;MACrB,KAAK,MAAMC,MAAMH,OAAAA,CAAS;UACtB,IAAIb,qBAAAA,CAAsBvpB,GAAG,CAACuqB,EAAAA,CAAAA,EAAK;cAC/BD,cAAAA,GAAiB,IAAA;EACjB,YAAA;EACJ,QAAA;EACA,QAAA,IAAIA,cAAAA,IAAkBxB,eAAAA,CAAgBnd,IAAI,CAAC4e,EAAAA,CAAAA,EACvC;UACJ,OAAO,KAAA;EACX,IAAA;MACA,OAAOD,cAAAA;EACX;EACA,SAASE,gCAAgCJ,OAAO,EAAA;MAC5C,KAAK,MAAMG,MAAMH,OAAAA,CAAS;UACtB,IAAI,CAACd,YAAAA,CAAatpB,GAAG,CAACuqB,EAAAA,CAAAA,IAAO,CAAChB,qBAAAA,CAAsBvpB,GAAG,CAACuqB,EAAAA,CAAAA,EACpD,OAAO,KAAA;EACf,IAAA;MACA,OAAOH,OAAAA,CAAQvyB,MAAM,GAAG,CAAA;EAC5B;EACA,SAAS4yB,8BAA8BL,OAAO,EAAA;MAC1C,IAAIC,4BAAAA,CAA6BD,UAC7B,OAAO,IAAA;MACX,KAAK,MAAMG,MAAMH,OAAAA,CAAS;EACtB,QAAA,IAAI,CAACN,UAAAA,CAAW9pB,GAAG,CAACuqB,OAAO,CAACR,iBAAAA,CAAkB/pB,GAAG,CAACuqB,OAAO,CAACzB,eAAAA,CAAgBnd,IAAI,CAAC4e,KAC3E,OAAO,KAAA;EACf,IAAA;MACA,OAAOH,OAAAA,CAAQvyB,MAAM,GAAG,CAAA;EAC5B;EACA,SAASwyB,6BAA6BD,OAAO,EAAA;EACzC,IAAA,IAAIM,QAAAA,GAAW,KAAA;MACf,KAAK,MAAMH,MAAMH,OAAAA,CAAS;EACtB,QAAA,IAAIG,EAAAA,KAAO,IAAA,IAAQzB,eAAAA,CAAgBnd,IAAI,CAAC4e,EAAAA,CAAAA,EACpC;UACJ,IAAIT,UAAAA,CAAW9pB,GAAG,CAACuqB,EAAAA,CAAAA,IAAOhB,qBAAAA,CAAsBvpB,GAAG,CAACuqB,EAAAA,CAAAA,IAAOR,iBAAAA,CAAkB/pB,GAAG,CAACuqB,EAAAA,CAAAA,EAAK;cAClFG,QAAAA,GAAW,IAAA;EACX,YAAA;EACJ,QAAA;UACA,OAAO,KAAA;EACX,IAAA;MACA,OAAOA,QAAAA;EACX;EACA,SAASC,sBAAAA,CAAuBpgB,IAAI,EAAEsT,GAAG,EAAA;EACrC,IAAA,MAAMuL,OAAOvL,GAAAA,GAAM,CAAA;EACnB,IAAA,IAAIuL,QAAQ,CAAA,EACR,OAAOznB,IAAAA,CAAKmb,GAAG,CAACsM,IAAAA,EAAM,CAAA,CAAA;MAC1B,MAAMwB,YAAAA,GAAergB,IAAAA,CAAKuc,UAAU,CAACsC,IAAAA,CAAAA;EACrC,IAAA,IAAIwB,YAAAA,GAAe,MAAA,IAAUA,YAAAA,GAAe,MAAA,EACxC,OAAOxB,IAAAA;EACX,IAAA,MAAMyB,YAAYzB,IAAAA,GAAO,CAAA;MACzB,IAAIyB,SAAAA,GAAY,GACZ,OAAOzB,IAAAA;MACX,MAAM0B,YAAAA,GAAevgB,IAAAA,CAAKuc,UAAU,CAAC+D,SAAAA,CAAAA;EACrC,IAAA,OAAOC,YAAAA,IAAgB,MAAA,IAAUA,YAAAA,IAAgB,MAAA,GAASD,SAAAA,GAAYzB,IAAAA;EAC1E;EACA,SAASC,iBAAiB9e,IAAI,EAAA;EAC1B,IAAA,IAAIA,IAAAA,CAAK1S,MAAM,KAAK,CAAA,EAChB,OAAO,IAAA;EACX,IAAA,MAAMoY,KAAAA,GAAQ0a,sBAAAA,CAAuBpgB,IAAAA,EAAMA,IAAAA,CAAK1S,MAAM,CAAA;MACtD,OAAO0S,IAAAA,CAAK/R,KAAK,CAACyX,KAAAA,CAAAA;EACtB;EACA,SAAS8a,kCAAkCxgB,IAAI,EAAA;MAC3C,MAAMygB,KAAAA,GAAQ3zB,KAAAA,CAAM6F,IAAI,CAACqN,IAAAA,CAAAA;MACzB,IAAI0gB,UAAAA,GAAaD,MAAMnzB,MAAM;EAC7B,IAAA,MAAOozB,aAAa,CAAA,CAAG;EACnB,QAAA,MAAMV,EAAAA,GAAKS,KAAK,CAACC,UAAAA,GAAa,CAAA,CAAE;UAChC,IAAInC,eAAAA,CAAgBnd,IAAI,CAAC4e,EAAAA,CAAAA,EAAK;EAC1BU,YAAAA,UAAAA,EAAAA;EACA,YAAA;EACJ,QAAA;EACA,QAAA,IAAInB,WAAW9pB,GAAG,CAACuqB,OAAOR,iBAAAA,CAAkB/pB,GAAG,CAACuqB,EAAAA,CAAAA,EAAK;EACjDU,YAAAA,UAAAA,EAAAA;EACA,YAAA;EACJ,QAAA;EACA,QAAA;EACJ,IAAA;EACA,IAAA,IAAIA,cAAc,CAAA,IAAKA,UAAAA,KAAeD,KAAAA,CAAMnzB,MAAM,EAC9C,OAAO,IAAA;MACX,OAAO;EACHqzB,QAAAA,IAAAA,EAAMF,MAAMxyB,KAAK,CAAC,CAAA,EAAGyyB,UAAAA,CAAAA,CAAYlmB,IAAI,CAAC,EAAA,CAAA;EACtComB,QAAAA,IAAAA,EAAMH,KAAAA,CAAMxyB,KAAK,CAACyyB,UAAAA,CAAAA,CAAYlmB,IAAI,CAAC,EAAA;EACvC,KAAA;EACJ;EACA,SAASqmB,8BAAAA,CAA+B7gB,IAAI,EAAE8gB,UAAU,EAAEC,IAAI,EAAA;EAC1D,IAAA,OAAOA,IAAAA,KAAS,MAAA,IAAU,CAACD,UAAAA,IAAc9gB,IAAAA,CAAK1S,MAAM,KAAK,CAAA,IAAK0S,IAAAA,KAAS,GAAA,IAAOA,IAAAA,KAAS,GAAA,GACjFA,IAAAA,GACA,IAAA;EACV;EACA,SAASghB,iCAAiCC,KAAK,EAAER,KAAK,EAAES,OAAO,EAAEnc,KAAK,EAAA;MAClE,MAAMib,EAAAA,GAAKS,KAAK,CAAC1b,KAAAA,CAAM;MACvB,MAAM/E,IAAAA,GAAOihB,KAAK,CAAClc,KAAAA,CAAM;MACzB,IAAIib,EAAAA,IAAM,MACN,OAAOhgB,IAAAA;MACX,MAAM1S,MAAAA,GAAS4zB,OAAO,CAACnc,KAAAA,CAAM;EAC7B,IAAA,IAAI/E,IAAAA,CAAK1S,MAAM,KAAKA,MAAAA,EAChB,OAAO0S,IAAAA;MACX,MAAMmhB,YAAAA,GAAenB,EAAAA,CAAGoB,MAAM,CAAC9zB,MAAAA,CAAAA;MAC/B2zB,KAAK,CAAClc,MAAM,GAAGoc,YAAAA;MACf,OAAOA,YAAAA;EACX;EACA,SAASE,2BAAAA,CAA4BC,cAAc,EAAEC,aAAa,EAAA;EAC9D,IAAA,OAAOD,cAAAA,IAAkBC,aAAAA,KAAkB,IAAA,IAAQ9B,gCAAAA,CAAiChqB,GAAG,CAAC8rB,aAAAA,CAAAA;EAC5F;EACA,SAASC,0BAA0B3B,OAAO,EAAA;EACtC,IAAA,MAAM0B,gBAAgBzC,gBAAAA,CAAiBe,OAAAA,CAAAA;EACvC,IAAA,OAAO0B,aAAAA,KAAkB,IAAA,IAAQ7B,iBAAAA,CAAkBjqB,GAAG,CAAC8rB,aAAAA,CAAAA;EAC3D;EACA,SAASE,0BAA0B5B,OAAO,EAAA;MACtC,IAAIA,OAAAA,CAAQvyB,MAAM,GAAG,CAAA,IAAKuyB,OAAO,CAAC,CAAA,CAAE,KAAK,GAAA,EACrC,OAAO,IAAA;MACX,MAAM6B,KAAAA,GAAQ7B,OAAAA,CAAQ5xB,KAAK,CAAC,CAAA,CAAA;MAC5B,IAAI,WAAA,CAAYmT,IAAI,CAACsgB,KAAAA,CAAAA,EAAQ;UACzB,OAAO;cAAE7wB,KAAAA,EAAO,GAAA;EAAK6wB,YAAAA;EAAM,SAAA;EAC/B,IAAA;MACA,OAAO,IAAA;EACX;EACO,SAASC,qBAAqB3hB,IAAI,EAAA;MACrC,IAAIsT,GAAAA,GAAMtT,KAAK1S,MAAM;EACrB,IAAA,MAAOgmB,MAAM,CAAA,CAAG;UACZ,MAAM5N,KAAAA,GAAQ0a,uBAAuBpgB,IAAAA,EAAMsT,GAAAA,CAAAA;EAC3C,QAAA,MAAM0M,EAAAA,GAAKhgB,IAAAA,CAAK/R,KAAK,CAACyX,KAAAA,EAAO4N,GAAAA,CAAAA;EAC7B,QAAA,IAAIqM,iBAAAA,CAAkBlqB,GAAG,CAACuqB,EAAAA,CAAAA,EACtB,OAAO,IAAA;EACX,QAAA,IAAI,CAAChB,qBAAAA,CAAsBvpB,GAAG,CAACuqB,KAC3B,OAAO,KAAA;UACX1M,GAAAA,GAAM5N,KAAAA;EACV,IAAA;MACA,OAAO,KAAA;EACX;EACA,SAASkc,wBAAAA,CAAyB5B,EAAE,EAAE6B,iBAAiB,EAAA;EACnD,IAAA,IAAIA,iBAAAA,CAAkBjE,sBAAsB,IAAIiE,iBAAAA,CAAkBhE,kBAAkB,EAAE;UAClF,IAAImC,EAAAA,KAAO,KACP,OAAO,iBAAA;UACX,IAAIA,EAAAA,KAAO,MACP,OAAO,KAAA;EACX,QAAA,IAAI6B,iBAAAA,CAAkBhE,kBAAkB,IAAImC,EAAAA,KAAO,MAC/C,OAAO,YAAA;EACf,IAAA;MACA,IAAIA,EAAAA,KAAO,KACP,OAAO,OAAA;EACX,IAAA,IAAIA,OAAO,QAAA,IAAYA,EAAAA,KAAO,YAAYA,EAAAA,KAAO,QAAA,IAAYA,OAAO,QAAA,EAAU;UAC1E,OAAO,MAAA;EACX,IAAA;MACA,IAAIA,EAAAA,KAAO,UACP,OAAO,kBAAA;MACX,IAAIA,EAAAA,KAAO,UACP,OAAO,aAAA;MACX,OAAO,MAAA;EACX;EACA;EACA,MAAM8B,WAAAA,GAAc,4CAAA;EACpB,SAASC,cAAcC,KAAK,EAAA;MACxB,OAAOA,KAAAA,CAAM10B,MAAM,KAAK,CAAA,GAAI00B,KAAK,CAAC,CAAA,CAAE,GAAGA,KAAAA,CAAMxnB,IAAI,CAAC,EAAA,CAAA;EACtD;EACA,SAASynB,uBAAAA,CAAwBC,WAAW,EAAEtB,IAAI,EAAA;EAC9C,IAAA,MAAMoB,QAAQ,EAAE;MAChB,IAAK,IAAI30B,IAAI60B,WAAAA,CAAY50B,MAAM,GAAG,CAAA,EAAGD,CAAAA,IAAK,GAAGA,CAAAA,EAAAA,CAAK;EAC9C20B,QAAAA,KAAAA,CAAM7uB,IAAI,CAAC+uB,WAAW,CAAC70B,CAAAA,CAAE,CAAA;EAC7B,IAAA;EACA20B,IAAAA,KAAAA,CAAM7uB,IAAI,CAACytB,IAAAA,CAAAA;EACX,IAAA,OAAOmB,aAAAA,CAAcC,KAAAA,CAAAA;EACzB;EACA,SAASG,wBAAwBtC,OAAO,EAAEiB,UAAU,EAAEpb,KAAK,EAAEmc,iBAAiB,EAAA;EAC1E,IAAA,IAAI,CAACC,WAAAA,CAAY1gB,IAAI,CAACye,OAAAA,CAAAA,EAAU;UAC5B,OAAO;EAAC,YAAA;kBAAE7f,IAAAA,EAAM6f,OAAAA;EAASiB,gBAAAA,UAAAA;kBAAYC,IAAAA,EAAM,MAAA;EAAQrb,gBAAAA;EAAM;EAAE,SAAA;EAC/D,IAAA;EACA,IAAA,MAAM0c,SAAS,EAAE;EACjB,IAAA,IAAIC,WAAAA,GAAc,IAAA;EAClB,IAAA,IAAIC,mBAAmB,EAAE;EACzB,IAAA,IAAIC,YAAAA,GAAe7c,KAAAA;EACnB,IAAA,IAAI8c,eAAAA,GAAkB,KAAA;EACtB,IAAA,IAAIC,MAAAA,GAAS,CAAA;MACb,KAAK,MAAMzC,MAAMH,OAAAA,CAAS;UACtB,MAAMkB,IAAAA,GAAOa,yBAAyB5B,EAAAA,EAAI6B,iBAAAA,CAAAA;UAC1C,MAAMa,QAAAA,GAAW3B,SAAS,MAAA,IAAUD,UAAAA;EACpC,QAAA,IAAIuB,WAAAA,KAAgB,IAAA,IAAQtB,IAAAA,KAASsB,WAAAA,IAAeK,aAAaF,eAAAA,EAAiB;EAC9EF,YAAAA,gBAAAA,CAAiBnvB,IAAI,CAAC6sB,EAAAA,CAAAA;EACtByC,YAAAA,MAAAA,IAAUzC,GAAG1yB,MAAM;EACnB,YAAA;EACJ,QAAA;EACA,QAAA,IAAI+0B,gBAAgB,IAAA,EAAM;EACtBD,YAAAA,MAAAA,CAAOjvB,IAAI,CAAC;EACR6M,gBAAAA,IAAAA,EAAM+hB,aAAAA,CAAcO,gBAAAA,CAAAA;kBACpBxB,UAAAA,EAAY0B,eAAAA;kBACZzB,IAAAA,EAAMsB,WAAAA;kBACN3c,KAAAA,EAAO6c;EACX,aAAA,CAAA;EACJ,QAAA;UACAF,WAAAA,GAActB,IAAAA;UACduB,gBAAAA,GAAmB;EAACtC,YAAAA;EAAG,SAAA;EACvBuC,QAAAA,YAAAA,GAAe7c,KAAAA,GAAQ+c,MAAAA;UACvBD,eAAAA,GAAkBE,QAAAA;EAClBD,QAAAA,MAAAA,IAAUzC,GAAG1yB,MAAM;EACvB,IAAA;EACA,IAAA,IAAI+0B,gBAAgB,IAAA,EAAM;EACtBD,QAAAA,MAAAA,CAAOjvB,IAAI,CAAC;EACR6M,YAAAA,IAAAA,EAAM+hB,aAAAA,CAAcO,gBAAAA,CAAAA;cACpBxB,UAAAA,EAAY0B,eAAAA;cACZzB,IAAAA,EAAMsB,WAAAA;cACN3c,KAAAA,EAAO6c;EACX,SAAA,CAAA;EACJ,IAAA;MACA,OAAOH,MAAAA;EACX;EACA,SAASO,kBAAkB5B,IAAI,EAAA;EAC3B,IAAA,OAAQA,SAAS,OAAA,IACbA,IAAAA,KAAS,iBAAA,IACTA,IAAAA,KAAS,sBACTA,IAAAA,KAAS,YAAA;EACjB;EACA,MAAM6B,kBAAAA,GAAqB,4BAAA;EAC3B,SAASC,iBAAAA,CAAkBC,YAAY,EAAE/d,KAAK,EAAA;EAC1C,IAAA,MAAM/E,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAClc,KAAAA,CAAM;EACtC,IAAA,IAAI/E,IAAAA,CAAK+iB,UAAU,CAAC,MAAA,CAAA,EAChB,OAAO,IAAA;MACX,OAAQH,kBAAAA,CAAmBxhB,IAAI,CAACpB,IAAAA,CAAAA,IAC5B+E,QAAQ,CAAA,GAAI+d,YAAAA,CAAa1G,GAAG,IAC5B0G,YAAAA,CAAaE,KAAK,CAACje,KAAAA,GAAQ,EAAE,KAAK,MAAA,IAClC+d,aAAa7B,KAAK,CAAClc,KAAAA,GAAQ,CAAA,CAAE,KAAK,IAAA;EAC1C;EACA,SAASke,0BAA0BjjB,IAAI,EAAA;EACnC,IAAA,OAAOA,IAAAA,CAAKjR,QAAQ,CAAC,GAAA,CAAA,KAASiR,IAAAA,CAAKjR,QAAQ,CAAC,KAAA,CAAA,IAAUiR,IAAAA,CAAK+iB,UAAU,CAAC,MAAA,CAAM,CAAA;EAChF;EACA,SAASG,iBAAiBJ,YAAY,EAAA;EAClC,IAAA,MAAM7B,KAAAA,GAAQ6B,YAAAA,CAAa7B,KAAK,CAAChzB,KAAK,EAAA;EACtC,IAAA,MAAM6yB,UAAAA,GAAagC,YAAAA,CAAahC,UAAU,CAAC7yB,KAAK,EAAA;EAChD,IAAA,MAAM+0B,KAAAA,GAAQF,YAAAA,CAAaE,KAAK,CAAC/0B,KAAK,EAAA;EACtC,IAAA,MAAMk1B,MAAAA,GAASL,YAAAA,CAAaK,MAAM,CAACl1B,KAAK,EAAA;EACxC,IAAA,IAAK,IAAIZ,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;UACvC,IAAI21B,KAAK,CAAC31B,CAAAA,CAAE,KAAK,UAAU,CAACw1B,iBAAAA,CAAkBC,cAAcz1B,CAAAA,CAAAA,EACxD;EACJ,QAAA,MAAM+1B,WAAAA,GAAc;EAACnC,YAAAA,KAAK,CAAC5zB,CAAAA;EAAG,SAAA;EAC9B,QAAA,IAAI4E,IAAI5E,CAAAA,GAAI,CAAA;UACZ,MAAO4E,CAAAA,GAAI6wB,aAAa1G,GAAG,IAAI,CAACuG,iBAAAA,CAAkBK,KAAK,CAAC/wB,CAAAA,CAAE,CAAA,CAAG;EACzDmxB,YAAAA,WAAAA,CAAYjwB,IAAI,CAAC8tB,KAAK,CAAChvB,CAAAA,CAAE,CAAA;cACzB6uB,UAAU,CAACzzB,EAAE,GAAG,IAAA;EAChB,YAAA,MAAMg2B,kBAAkBpC,KAAK,CAAChvB,CAAAA,CAAE,CAAClD,QAAQ,CAAC,GAAA,CAAA;cAC1Ci0B,KAAK,CAAC/wB,EAAE,GAAG,MAAA;cACXgvB,KAAK,CAAChvB,EAAE,GAAG,EAAA;EACXA,YAAAA,CAAAA,EAAAA;EACA,YAAA,IAAIoxB,eAAAA,EACA;EACR,QAAA;UACApC,KAAK,CAAC5zB,CAAAA,CAAE,GAAG00B,aAAAA,CAAcqB,WAAAA,CAAAA;EAC7B,IAAA;EACA,IAAA,IAAIE,UAAAA,GAAa,CAAA;EACjB,IAAA,IAAK,IAAIC,IAAAA,GAAO,CAAA,EAAGA,OAAOtC,KAAAA,CAAM3zB,MAAM,EAAEi2B,IAAAA,EAAAA,CAAQ;UAC5C,MAAMvjB,IAAAA,GAAOihB,KAAK,CAACsC,IAAAA,CAAK;UACxB,IAAIvjB,IAAAA,CAAK1S,MAAM,KAAK,CAAA,EAChB;EACJ,QAAA,IAAIg2B,eAAeC,IAAAA,EAAM;cACrBtC,KAAK,CAACqC,WAAW,GAAGtjB,IAAAA;EACpB8gB,YAAAA,UAAU,CAACwC,UAAAA,CAAW,GAAGxC,UAAU,CAACyC,IAAAA,CAAK;EACzCP,YAAAA,KAAK,CAACM,UAAAA,CAAW,GAAGN,KAAK,CAACO,IAAAA,CAAK;EAC/BJ,YAAAA,MAAM,CAACG,UAAAA,CAAW,GAAGH,MAAM,CAACI,IAAAA,CAAK;EACrC,QAAA;EACAD,QAAAA,UAAAA,EAAAA;EACJ,IAAA;EACArC,IAAAA,KAAAA,CAAM3zB,MAAM,GAAGg2B,UAAAA;EACfxC,IAAAA,UAAAA,CAAWxzB,MAAM,GAAGg2B,UAAAA;EACpBN,IAAAA,KAAAA,CAAM11B,MAAM,GAAGg2B,UAAAA;EACfH,IAAAA,MAAAA,CAAO71B,MAAM,GAAGg2B,UAAAA;MAChB,OAAO;UACHlH,GAAAA,EAAKkH,UAAAA;EACLrC,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAASK,kBAAkBV,YAAY,EAAA;EACnC,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAK,IAAI91B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,MAAM2S,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAC5zB,CAAAA,CAAE;EAClC4zB,QAAAA,KAAAA,CAAM9tB,IAAI,CAAC6M,IAAAA,CAAAA;EACX8gB,QAAAA,UAAAA,CAAW3tB,IAAI,CAAC2vB,YAAAA,CAAahC,UAAU,CAACzzB,CAAAA,CAAE,CAAA;EAC1C21B,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC2vB,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE,CAAA;EAChC81B,QAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;UAClC,IAAI,CAAC41B,0BAA0BjjB,IAAAA,CAAAA,EAC3B;EACJ,QAAA,MAAMyjB,YAAYp2B,CAAAA,GAAI,CAAA;UACtB,IAAIo2B,SAAAA,IAAaX,aAAa1G,GAAG,IAC7BuG,kBAAkBG,YAAAA,CAAaE,KAAK,CAACS,SAAAA,CAAU,CAAA,EAAG;EAClD,YAAA;EACJ,QAAA;EACA,QAAA,MAAMC,aAAa,EAAE;EACrB,QAAA,MAAMC,UAAAA,GAAab,YAAAA,CAAaK,MAAM,CAACM,SAAAA,CAAU;EACjD,QAAA,IAAIxxB,CAAAA,GAAIwxB,SAAAA;UACR,MAAOxxB,CAAAA,GAAI6wB,YAAAA,CAAa1G,GAAG,IAAI,CAACuG,kBAAkBG,YAAAA,CAAaE,KAAK,CAAC/wB,CAAAA,CAAE,CAAA,CAAG;EACtEyxB,YAAAA,UAAAA,CAAWvwB,IAAI,CAAC2vB,YAAAA,CAAa7B,KAAK,CAAChvB,CAAAA,CAAE,CAAA;EACrCA,YAAAA,CAAAA,EAAAA;EACJ,QAAA;UACA,IAAIyxB,UAAAA,CAAWp2B,MAAM,GAAG,CAAA,EAAG;cACvB2zB,KAAAA,CAAM9tB,IAAI,CAAC4uB,aAAAA,CAAc2B,UAAAA,CAAAA,CAAAA;EACzB5C,YAAAA,UAAAA,CAAW3tB,IAAI,CAAC,IAAA,CAAA;EAChB6vB,YAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,YAAAA,MAAAA,CAAOhwB,IAAI,CAACwwB,UAAAA,CAAAA;EACZt2B,YAAAA,CAAAA,GAAI4E,CAAAA,GAAI,CAAA;EACZ,QAAA;EACJ,IAAA;MACA,OAAO;EACHmqB,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,MAAMS,kBAAAA,GAAqB,IAAI1E,GAAAA,CAAI;EAC/B,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAAK,IAAA,GAAA;EAC9B,IAAA,QAAA;EACA,IAAA;EACH,CAAA,CAAA;EACD,MAAM2E,8BAAAA,GAAiC,uBAAA;EACvC,MAAMC,sCAAAA,GAAyC,SAAA;EAC/C,SAASC,4BAA4B/jB,IAAI,EAAA;MACrC,KAAK,MAAMggB,MAAMhgB,IAAAA,CAAM;EACnB,QAAA,IAAIwe,cAAAA,CAAepd,IAAI,CAAC4e,EAAAA,CAAAA,EACpB,OAAO,IAAA;EACf,IAAA;MACA,OAAO,KAAA;EACX;EACO,SAASgE,oBAAoBhkB,IAAI,EAAA;EACpC,IAAA,IAAIA,IAAAA,CAAK1S,MAAM,KAAK,CAAA,EAChB,OAAO,KAAA;MACX,KAAK,MAAM0yB,MAAMhgB,IAAAA,CAAM;EACnB,QAAA,IAAIwe,eAAepd,IAAI,CAAC4e,OAAO4D,kBAAAA,CAAmBnuB,GAAG,CAACuqB,EAAAA,CAAAA,EAClD;UACJ,OAAO,KAAA;EACX,IAAA;MACA,OAAO,IAAA;EACX;EACA,SAASiE,iBAAiBnB,YAAY,EAAA;EAClC,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAK,IAAI91B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,MAAM2S,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAC5zB,CAAAA,CAAE;EAClC,QAAA,MAAM0zB,IAAAA,GAAO+B,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE;EAClC,QAAA,IAAI0zB,IAAAA,KAAS,MAAA,IAAUiD,mBAAAA,CAAoBhkB,IAAAA,CAAAA,IAAS+jB,4BAA4B/jB,IAAAA,CAAAA,EAAO;EACnF,YAAA,MAAMojB,WAAAA,GAAc;EAACpjB,gBAAAA;EAAK,aAAA;EAC1B,YAAA,IAAI/N,IAAI5E,CAAAA,GAAI,CAAA;EACZ,YAAA,MAAO4E,CAAAA,GAAI6wB,YAAAA,CAAa1G,GAAG,IACvB0G,aAAaE,KAAK,CAAC/wB,CAAAA,CAAE,KAAK,UAC1B+xB,mBAAAA,CAAoBlB,YAAAA,CAAa7B,KAAK,CAAChvB,EAAE,CAAA,CAAG;EAC5CmxB,gBAAAA,WAAAA,CAAYjwB,IAAI,CAAC2vB,YAAAA,CAAa7B,KAAK,CAAChvB,CAAAA,CAAE,CAAA;EACtCA,gBAAAA,CAAAA,EAAAA;EACJ,YAAA;cACAgvB,KAAAA,CAAM9tB,IAAI,CAAC4uB,aAAAA,CAAcqB,WAAAA,CAAAA,CAAAA;EACzBtC,YAAAA,UAAAA,CAAW3tB,IAAI,CAAC,IAAA,CAAA;EAChB6vB,YAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,YAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;EAClCA,YAAAA,CAAAA,GAAI4E,CAAAA,GAAI,CAAA;EACR,YAAA;EACJ,QAAA;EACAgvB,QAAAA,KAAAA,CAAM9tB,IAAI,CAAC6M,IAAAA,CAAAA;EACX8gB,QAAAA,UAAAA,CAAW3tB,IAAI,CAAC2vB,YAAAA,CAAahC,UAAU,CAACzzB,CAAAA,CAAE,CAAA;EAC1C21B,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC4tB,IAAAA,CAAAA;EACXoC,QAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;EACtC,IAAA;MACA,OAAO;EACH+uB,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAASe,4BAA4BpB,YAAY,EAAA;EAC7C,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAK,IAAI91B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,MAAM2S,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAC5zB,CAAAA,CAAE;EAClC,QAAA,MAAM0zB,IAAAA,GAAO+B,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE;EAClC,QAAA,MAAMq1B,QAAAA,GAAWI,YAAAA,CAAahC,UAAU,CAACzzB,CAAAA,CAAE;EAC3C,QAAA,IAAI0zB,SAAS,MAAA,IAAU2B,QAAAA,IAAYmB,8BAAAA,CAA+BziB,IAAI,CAACpB,IAAAA,CAAAA,EAAO;EAC1E,YAAA,MAAMojB,WAAAA,GAAc;EAACpjB,gBAAAA;EAAK,aAAA;cAC1B,IAAImkB,eAAAA,GAAkBL,sCAAAA,CAAuC1iB,IAAI,CAACpB,IAAAA,CAAAA;EAClE,YAAA,IAAI/N,IAAI5E,CAAAA,GAAI,CAAA;cACZ,MAAO82B,eAAAA,IACHlyB,IAAI6wB,YAAAA,CAAa1G,GAAG,IACpB0G,YAAAA,CAAaE,KAAK,CAAC/wB,CAAAA,CAAE,KAAK,MAAA,IAC1B6wB,aAAahC,UAAU,CAAC7uB,CAAAA,CAAE,IAC1B4xB,8BAAAA,CAA+BziB,IAAI,CAAC0hB,YAAAA,CAAa7B,KAAK,CAAChvB,CAAAA,CAAE,CAAA,CAAG;EAC5D,gBAAA,MAAMmyB,QAAAA,GAAWtB,YAAAA,CAAa7B,KAAK,CAAChvB,CAAAA,CAAE;EACtCmxB,gBAAAA,WAAAA,CAAYjwB,IAAI,CAACixB,QAAAA,CAAAA;kBACjBD,eAAAA,GAAkBL,sCAAAA,CAAuC1iB,IAAI,CAACgjB,QAAAA,CAAAA;EAC9DnyB,gBAAAA,CAAAA,EAAAA;EACJ,YAAA;cACAgvB,KAAAA,CAAM9tB,IAAI,CAAC4uB,aAAAA,CAAcqB,WAAAA,CAAAA,CAAAA;EACzBtC,YAAAA,UAAAA,CAAW3tB,IAAI,CAAC,IAAA,CAAA;EAChB6vB,YAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,YAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;EAClCA,YAAAA,CAAAA,GAAI4E,CAAAA,GAAI,CAAA;EACR,YAAA;EACJ,QAAA;EACAgvB,QAAAA,KAAAA,CAAM9tB,IAAI,CAAC6M,IAAAA,CAAAA;EACX8gB,QAAAA,UAAAA,CAAW3tB,IAAI,CAACuvB,QAAAA,CAAAA;EAChBM,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC4tB,IAAAA,CAAAA;EACXoC,QAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;EACtC,IAAA;MACA,OAAO;EACH+uB,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAASkB,2BAA2BvB,YAAY,EAAA;EAC5C,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAK,IAAI91B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,MAAM2S,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAC5zB,CAAAA,CAAE;UAClC,IAAIy1B,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE,KAAK,MAAA,IAAU2S,IAAAA,CAAKjR,QAAQ,CAAC,GAAA,CAAA,EAAM;cACxD,MAAMizB,KAAAA,GAAQhiB,IAAAA,CAAK9F,KAAK,CAAC,GAAA,CAAA;cACzB,IAAIoqB,WAAAA,GAActC,KAAAA,CAAM10B,MAAM,GAAG,CAAA;EACjC,YAAA,IAAK,IAAI2E,CAAAA,GAAI,CAAA,EAAGA,IAAI+vB,KAAAA,CAAM10B,MAAM,EAAE2E,CAAAA,EAAAA,CAAK;kBACnC,MAAMsyB,IAAAA,GAAOvC,KAAK,CAAC/vB,CAAAA,CAAE;EACrB,gBAAA,IAAI,CAACqyB,WAAAA,EACD;kBACJ,IAAIC,IAAAA,CAAKj3B,MAAM,KAAK,CAAA,IAChB,CAACy2B,2BAAAA,CAA4BQ,IAAAA,CAAAA,IAC7B,CAACP,mBAAAA,CAAoBO,IAAAA,CAAAA,EAAO;sBAC5BD,WAAAA,GAAc,KAAA;EAClB,gBAAA;EACJ,YAAA;EACA,YAAA,IAAIA,WAAAA,EAAa;EACb,gBAAA,IAAI7B,MAAAA,GAAS,CAAA;EACb,gBAAA,IAAK,IAAIxwB,CAAAA,GAAI,CAAA,EAAGA,IAAI+vB,KAAAA,CAAM10B,MAAM,EAAE2E,CAAAA,EAAAA,CAAK;sBACnC,MAAMsyB,IAAAA,GAAOvC,KAAK,CAAC/vB,CAAAA,CAAE;sBACrB,MAAMuyB,SAAAA,GAAYvyB,CAAAA,GAAI+vB,KAAAA,CAAM10B,MAAM,GAAG,IAAI,CAAA,EAAGi3B,IAAAA,CAAK,CAAC,CAAC,GAAGA,IAAAA;EACtDtD,oBAAAA,KAAAA,CAAM9tB,IAAI,CAACqxB,SAAAA,CAAAA;EACX1D,oBAAAA,UAAAA,CAAW3tB,IAAI,CAAC,IAAA,CAAA;EAChB6vB,oBAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,oBAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,EAAE,GAAGo1B,MAAAA,CAAAA;EACrCA,oBAAAA,MAAAA,IAAU+B,UAAUl3B,MAAM;EAC9B,gBAAA;EACA,gBAAA;EACJ,YAAA;EACJ,QAAA;EACA2zB,QAAAA,KAAAA,CAAM9tB,IAAI,CAAC6M,IAAAA,CAAAA;EACX8gB,QAAAA,UAAAA,CAAW3tB,IAAI,CAAC2vB,YAAAA,CAAahC,UAAU,CAACzzB,CAAAA,CAAE,CAAA;EAC1C21B,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC2vB,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE,CAAA;EAChC81B,QAAAA,MAAAA,CAAOhwB,IAAI,CAAC2vB,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE,CAAA;EACtC,IAAA;MACA,OAAO;EACH+uB,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAASsB,2BAA2B3B,YAAY,EAAA;EAC5C,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAII,IAAAA,GAAO,CAAA;MACX,MAAOA,IAAAA,GAAOT,YAAAA,CAAa1G,GAAG,CAAE;EAC5B,QAAA,MAAMsI,SAAAA,GAAY;cAAC5B,YAAAA,CAAa7B,KAAK,CAACsC,IAAAA;EAAM,SAAA;EAC5C,QAAA,IAAIb,QAAAA,GAAWI,YAAAA,CAAahC,UAAU,CAACyC,IAAAA,CAAK;EAC5C,QAAA,IAAIxC,IAAAA,GAAO+B,YAAAA,CAAaE,KAAK,CAACO,IAAAA,CAAK;EACnC,QAAA,IAAI7d,KAAAA,GAAQod,YAAAA,CAAaK,MAAM,CAACI,IAAAA,CAAK;EACrC,QAAA,IAAIxC,SAAS,MAAA,EAAQ;EACjB,YAAA,MAAM4D,SAAAA,GAAY;EAACD,gBAAAA,SAAS,CAAC,CAAA;EAAG,aAAA;EAChC,YAAA,MAAME,SAAAA,GAAYlf,KAAAA;EAClB6d,YAAAA,IAAAA,EAAAA;cACA,MAAOA,IAAAA,GAAOT,aAAa1G,GAAG,IAAI0G,aAAaE,KAAK,CAACO,IAAAA,CAAK,KAAK,MAAA,CAAQ;EACnEoB,gBAAAA,SAAAA,CAAUxxB,IAAI,CAAC2vB,YAAAA,CAAa7B,KAAK,CAACsC,IAAAA,CAAK,CAAA;EACvCA,gBAAAA,IAAAA,EAAAA;EACJ,YAAA;EACA,YAAA,MAAMsB,WAAW9C,aAAAA,CAAc4C,SAAAA,CAAAA;cAC/B,IAAIpB,IAAAA,GAAOT,aAAa1G,GAAG,IAAI0G,aAAaE,KAAK,CAACO,IAAAA,CAAK,KAAK,MAAA,EAAQ;kBAChEmB,SAAS,CAAC,EAAE,GAAGG,QAAAA;EACfH,gBAAAA,SAAAA,CAAUvxB,IAAI,CAAC2vB,YAAAA,CAAa7B,KAAK,CAACsC,IAAAA,CAAK,CAAA;kBACvCb,QAAAA,GAAWI,YAAAA,CAAahC,UAAU,CAACyC,IAAAA,CAAK;kBACxCxC,IAAAA,GAAO,MAAA;kBACPrb,KAAAA,GAAQkf,SAAAA;EACRrB,gBAAAA,IAAAA,EAAAA;cACJ,CAAA,MACK;EACDtC,gBAAAA,KAAAA,CAAM9tB,IAAI,CAAC0xB,QAAAA,CAAAA;EACX/D,gBAAAA,UAAAA,CAAW3tB,IAAI,CAAC,KAAA,CAAA;EAChB6vB,gBAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,gBAAAA,MAAAA,CAAOhwB,IAAI,CAACyxB,SAAAA,CAAAA;EACZ,gBAAA;EACJ,YAAA;UACJ,CAAA,MACK;EACDrB,YAAAA,IAAAA,EAAAA;EACJ,QAAA;EACA,QAAA,IAAIxC,SAAS,MAAA,EAAQ;cACjB,MAAOwC,IAAAA,GAAOT,aAAa1G,GAAG,IAAI0G,aAAaE,KAAK,CAACO,IAAAA,CAAK,KAAK,MAAA,CAAQ;EACnE,gBAAA,MAAMoB,YAAY,EAAE;kBACpB,MAAOpB,IAAAA,GAAOT,aAAa1G,GAAG,IAAI0G,aAAaE,KAAK,CAACO,IAAAA,CAAK,KAAK,MAAA,CAAQ;EACnEoB,oBAAAA,SAAAA,CAAUxxB,IAAI,CAAC2vB,YAAAA,CAAa7B,KAAK,CAACsC,IAAAA,CAAK,CAAA;EACvCA,oBAAAA,IAAAA,EAAAA;EACJ,gBAAA;EACA,gBAAA,MAAMsB,WAAW9C,aAAAA,CAAc4C,SAAAA,CAAAA;kBAC/B,IAAIpB,IAAAA,GAAOT,aAAa1G,GAAG,IAAI0G,aAAaE,KAAK,CAACO,IAAAA,CAAK,KAAK,MAAA,EAAQ;EAChEmB,oBAAAA,SAAAA,CAAUvxB,IAAI,CAAC0xB,QAAAA,EAAU/B,YAAAA,CAAa7B,KAAK,CAACsC,IAAAA,CAAK,CAAA;EACjDb,oBAAAA,QAAAA,GAAWA,QAAAA,IAAYI,YAAAA,CAAahC,UAAU,CAACyC,IAAAA,CAAK;EACpDA,oBAAAA,IAAAA,EAAAA;EACA,oBAAA;EACJ,gBAAA;EACAmB,gBAAAA,SAAAA,CAAUvxB,IAAI,CAAC0xB,QAAAA,CAAAA;EACnB,YAAA;EACJ,QAAA;UACA5D,KAAAA,CAAM9tB,IAAI,CAAC4uB,aAAAA,CAAc2C,SAAAA,CAAAA,CAAAA;EACzB5D,QAAAA,UAAAA,CAAW3tB,IAAI,CAACuvB,QAAAA,CAAAA;EAChBM,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC4tB,IAAAA,CAAAA;EACXoC,QAAAA,MAAAA,CAAOhwB,IAAI,CAACuS,KAAAA,CAAAA;EAChB,IAAA;MACA,OAAO;EACH0W,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAAS2B,4CAA4ChC,YAAY,EAAA;EAC7D,IAAA,MAAM7B,KAAAA,GAAQ6B,YAAAA,CAAa7B,KAAK,CAAChzB,KAAK,EAAA;EACtC,IAAA,MAAM6yB,UAAAA,GAAagC,YAAAA,CAAahC,UAAU,CAAC7yB,KAAK,EAAA;EAChD,IAAA,MAAM+0B,KAAAA,GAAQF,YAAAA,CAAaE,KAAK,CAAC/0B,KAAK,EAAA;EACtC,IAAA,MAAMk1B,MAAAA,GAASL,YAAAA,CAAaK,MAAM,CAACl1B,KAAK,EAAA;MACxC,IAAK,IAAIZ,IAAI,CAAA,EAAGA,CAAAA,GAAI4zB,MAAM3zB,MAAM,GAAG,GAAGD,CAAAA,EAAAA,CAAK;UACvC,IAAI21B,KAAK,CAAC31B,CAAAA,CAAE,KAAK,MAAA,IAAU21B,KAAK,CAAC31B,CAAAA,GAAI,CAAA,CAAE,KAAK,MAAA,EACxC;EACJ,QAAA,IAAI,CAACsxB,KAAAA,CAAMsC,KAAK,CAAC5zB,CAAAA,CAAE,CAAA,IAAK,CAACsxB,KAAAA,CAAMsC,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE,CAAA,EACvC;EACJ,QAAA,MAAM6M,KAAAA,GAAQsmB,iCAAAA,CAAkCS,KAAK,CAAC5zB,CAAAA,CAAE,CAAA;EACxD,QAAA,IAAI6M,UAAU,IAAA,EACV;EACJ+mB,QAAAA,KAAK,CAAC5zB,CAAAA,CAAE,GAAG6M,KAAAA,CAAMymB,IAAI;UACrBM,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE,GAAG6M,KAAAA,CAAM0mB,IAAI,GAAGK,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE;UACxC81B,MAAM,CAAC91B,CAAAA,GAAI,CAAA,CAAE,GAAG81B,MAAM,CAAC91B,CAAAA,CAAE,GAAG6M,KAAAA,CAAMymB,IAAI,CAACrzB,MAAM;EACjD,IAAA;MACA,OAAO;EACH8uB,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACA,SAAS4B,uBAAAA,CAAwB5H,UAAU,EAAE6H,OAAO,EAAEnD,iBAAiB,EAAA;EACnE,IAAA,MAAMoD,aAAAA,GAAgB/G,sBAAAA,EAAAA;EACtB,IAAA,IAAIgH,SAAAA,GAAY,CAAA;EAChB,IAAA,MAAMC,cAAc,EAAE;EACtB,IAAA,MAAMC,kBAAkB,EAAE;EAC1B,IAAA,MAAMC,iBAAiB,EAAE;EACzB,IAAA,MAAMC,cAAc,EAAE;EACtB,IAAA,MAAMC,eAAe,EAAE;;;EAGvB,IAAA,MAAMC,2BAA2B,EAAE;EACnC,IAAA,MAAMC,6BAA6B,EAAE;EACrC,IAAA,MAAMC,oBAAoB,EAAE;EAC5B,IAAA,MAAMC,6BAA6B,EAAE;EACrC,IAAA,MAAMC,6BAA6B,EAAE;EACrC,IAAA,MAAMC,kCAAkC,EAAE;EAC1C,IAAA,MAAMC,oCAAoC,EAAE;EAC5C,IAAA,KAAK,MAAM52B,CAAAA,IAAK+1B,aAAAA,CAAcpF,OAAO,CAAC1C,UAAAA,CAAAA,CAAa;EAC/C,QAAA,KAAK,MAAM4I,KAAAA,IAAS5D,uBAAAA,CAAwBjzB,CAAAA,CAAE2wB,OAAO,EAAE3wB,CAAAA,CAAE4xB,UAAU,IAAI,KAAA,EAAO5xB,CAAAA,CAAE6V,KAAK,EAAE8c,iBAAAA,CAAAA,CAAoB;cACvG,MAAMmE,MAAAA,GAASD,KAAAA,CAAMhF,IAAI,KAAK,MAAA;cAC9B,MAAMkF,2BAAAA,GAA8BpF,+BAA+BkF,KAAAA,CAAM/lB,IAAI,EAAE+lB,KAAAA,CAAMjF,UAAU,EAAEiF,KAAAA,CAAMhF,IAAI,CAAA;cAC3G,MAAMmF,gBAAAA,GAAmBvH,KAAAA,CAAMoH,KAAAA,CAAM/lB,IAAI,CAAA;cACzC,MAAMmmB,yBAAAA,GAA4B1H,oBAAAA,CAAqBsH,KAAAA,CAAM/lB,IAAI,CAAA;cACjE,MAAMomB,kBAAAA,GAAqBtH,gBAAAA,CAAiBiH,KAAAA,CAAM/lB,IAAI,CAAA;cACtD,MAAMqmB,yBAAAA,GAA4B1E,oBAAAA,CAAqBoE,KAAAA,CAAM/lB,IAAI,CAAA;cACjE,MAAMsmB,8BAAAA,GAAiC9E,yBAAAA,CAA0BuE,KAAAA,CAAM/lB,IAAI,CAAA;EAC3E,YAAA,MAAMumB,YAAYrB,SAAAA,GAAY,CAAA;cAC9B,SAASsB,qBAAAA,GAAAA;EACL,gBAAA,IAAIhB,wBAAwB,CAACe,SAAAA,CAAU,KAAK,IAAA,EAAM;sBAC9CnB,eAAe,CAACmB,UAAU,GAAG;0BACzBvF,gCAAAA,CAAiCmE,WAAAA,EAAaK,0BAA0BC,0BAAAA,EAA4Bc,SAAAA;EACvG,qBAAA;sBACDf,wBAAwB,CAACe,UAAU,GAAG,IAAA;EAC1C,gBAAA;EACAnB,gBAAAA,eAAe,CAACmB,SAAAA,CAAU,CAACpzB,IAAI,CAAC4yB,MAAM/lB,IAAI,CAAA;kBAC1CqlB,cAAc,CAACkB,UAAU,GAAGlB,cAAc,CAACkB,SAAAA,CAAU,IAAIR,MAAMjF,UAAU;EACzE4E,gBAAAA,iBAAiB,CAACa,SAAAA,CAAU,GAAGb,iBAAiB,CAACa,UAAU,IAAIL,gBAAAA;EAC/DP,gBAAAA,0BAA0B,CAACY,SAAAA,CAAU,GACjCZ,0BAA0B,CAACY,UAAU,IAAIJ,yBAAAA;kBAC7CP,0BAA0B,CAACW,UAAU,GAAGF,yBAAAA;kBACxCR,+BAA+B,CAACU,UAAU,GAAGD,8BAAAA;EAC7CR,gBAAAA,iCAAiC,CAACS,SAAAA,CAAU,GAAGlF,4BAA4BsE,0BAA0B,CAACY,UAAU,EAAEH,kBAAAA,CAAAA;EACtH,YAAA;;;EAGA,YAAA,IAAIpB,QAAQyB,yBAAyB,IACjCT,UACAd,SAAAA,GAAY,CAAA,IACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,MAAA,IAC3BL,gBAAAA,IACAR,iBAAiB,CAACa,SAAAA,CAAU,IAC5BX,0BAA0B,CAACW,UAAU,EAAE;EACvCC,gBAAAA,qBAAAA,EAAAA;EACJ,YAAA,CAAA,MACK,IAAIR,MAAAA,IACLd,SAAAA,GAAY,CAAA,IACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,MAAA,IAC3BtG,+BAAAA,CAAgC8F,MAAM/lB,IAAI,CAAA,IAC1C0lB,iBAAiB,CAACa,UAAU,EAAE;EAC9BC,gBAAAA,qBAAAA,EAAAA;EACJ,YAAA,CAAA,MACK,IAAIR,MAAAA,IACLd,SAAAA,GAAY,CAAA,IACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,MAAA,IAC3BV,+BAA+B,CAACU,SAAAA,CAAU,EAAE;EAC5CC,gBAAAA,qBAAAA,EAAAA;EACJ,YAAA,CAAA,MACK,IAAIR,MAAAA,IACLd,SAAAA,GAAY,CAAA,IACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,MAAA,IAC3BR,KAAAA,CAAMjF,UAAU,IAChBqF,yBAAAA,IACAL,iCAAiC,CAACS,UAAU,EAAE;EAC9CC,gBAAAA,qBAAAA,EAAAA;kBACAnB,cAAc,CAACkB,UAAU,GAAG,IAAA;EAChC,YAAA,CAAA,MACK,IAAIN,2BAAAA,KAAgC,IAAA,IACrCf,SAAAA,GAAY,KACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,MAAA,IAC3Bf,wBAAwB,CAACe,SAAAA,CAAU,KAAKN,2BAAAA,EAA6B;kBACrER,0BAA0B,CAACc,SAAAA,CAAU,GAAG,CAACd,0BAA0B,CAACc,SAAAA,CAAU,IAAI,CAAA,IAAK,CAAA;cAC3F,CAAA,MACK,IAAIP,MAAAA,IACL,CAACD,KAAAA,CAAMjF,UAAU,IACjBoE,SAAAA,GAAY,CAAA,IACZI,WAAW,CAACiB,SAAAA,CAAU,KAAK,WAC1B3G,8BAAAA,CAA+BmG,KAAAA,CAAM/lB,IAAI,CAAA,IACrC+lB,KAAAA,CAAM/lB,IAAI,KAAK,GAAA,IAAOqlB,cAAc,CAACkB,SAAAA,CAAU,CAAA,EAAI;EACxDC,gBAAAA,qBAAAA,EAAAA;cACJ,CAAA,MACK;EACDrB,gBAAAA,WAAW,CAACD,SAAAA,CAAU,GAAGa,KAAAA,CAAM/lB,IAAI;kBACnColB,eAAe,CAACF,UAAU,GAAG;EAACa,oBAAAA,KAAAA,CAAM/lB;EAAK,iBAAA;EACzCqlB,gBAAAA,cAAc,CAACH,SAAAA,CAAU,GAAGa,KAAAA,CAAMjF,UAAU;EAC5CwE,gBAAAA,WAAW,CAACJ,SAAAA,CAAU,GAAGa,KAAAA,CAAMhF,IAAI;EACnCwE,gBAAAA,YAAY,CAACL,SAAAA,CAAU,GAAGa,KAAAA,CAAMrgB,KAAK;kBACrC8f,wBAAwB,CAACN,UAAU,GAAGe,2BAAAA;EACtCR,gBAAAA,0BAA0B,CAACP,SAAAA,CAAU,GAAGe,2BAAAA,KAAgC,OAAO,CAAA,GAAI,CAAA;kBACnFP,iBAAiB,CAACR,UAAU,GAAGgB,gBAAAA;kBAC/BP,0BAA0B,CAACT,UAAU,GAAGiB,yBAAAA;kBACxCP,0BAA0B,CAACV,UAAU,GAAGmB,yBAAAA;kBACxCR,+BAA+B,CAACX,UAAU,GAAGoB,8BAAAA;EAC7CR,gBAAAA,iCAAiC,CAACZ,SAAAA,CAAU,GAAG7D,2BAAAA,CAA4B8E,yBAAAA,EAA2BC,kBAAAA,CAAAA;EACtGlB,gBAAAA,SAAAA,EAAAA;EACJ,YAAA;EACJ,QAAA;EACJ,IAAA;EACA,IAAA,IAAK,IAAI73B,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI63B,WAAW73B,CAAAA,EAAAA,CAAK;EAChC,QAAA,IAAIm4B,wBAAwB,CAACn4B,CAAAA,CAAE,KAAK,IAAA,EAAM;EACtC83B,YAAAA,WAAW,CAAC93B,CAAAA,CAAE,GAAG2zB,gCAAAA,CAAiCmE,WAAAA,EAAaK,0BAA0BC,0BAAAA,EAA4Bp4B,CAAAA,CAAAA;EACrH,YAAA;EACJ,QAAA;EACA83B,QAAAA,WAAW,CAAC93B,CAAAA,CAAE,GAAG00B,aAAAA,CAAcqD,eAAe,CAAC/3B,CAAAA,CAAE,CAAA;EACrD,IAAA;;;;EAIA,IAAA,IAAK,IAAIA,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI63B,WAAW73B,CAAAA,EAAAA,CAAK;UAChC,IAAIi4B,WAAW,CAACj4B,CAAAA,CAAE,KAAK,UACnB,CAACg4B,cAAc,CAACh4B,CAAAA,CAAE,IAClByyB,6BAA6BqF,WAAW,CAAC93B,EAAE,CAAA,IAC3Ci4B,WAAW,CAACj4B,CAAAA,GAAI,CAAA,CAAE,KAAK,MAAA,EAAQ;EAC/B83B,YAAAA,WAAW,CAAC93B,CAAAA,GAAI,CAAA,CAAE,IAAI83B,WAAW,CAAC93B,CAAAA,CAAE;cACpCg4B,cAAc,CAACh4B,CAAAA,GAAI,CAAA,CAAE,GAAGg4B,cAAc,CAACh4B,CAAAA,GAAI,CAAA,CAAE,IAAIg4B,cAAc,CAACh4B,CAAAA,CAAE;cAClE83B,WAAW,CAAC93B,EAAE,GAAG,EAAA;EACrB,QAAA;EACJ,IAAA;MACA,MAAMq5B,wBAAAA,GAA2B55B,KAAAA,CAAM6F,IAAI,CAAC;UAAErF,MAAAA,EAAQ43B;EAAU,KAAA,EAAG,IAAM,IAAA,CAAA;EACzE,IAAA,IAAIyB,gBAAgB,EAAC;EACrB,IAAA,IAAK,IAAIt5B,CAAAA,GAAI63B,SAAAA,GAAY,CAAA,EAAG73B,CAAAA,IAAK,GAAGA,CAAAA,EAAAA,CAAK;UACrC,MAAM2S,IAAAA,GAAOmlB,WAAW,CAAC93B,CAAAA,CAAE;UAC3B,IAAI2S,IAAAA,CAAK1S,MAAM,KAAK,CAAA,EAChB;EACJ,QAAA,IAAIg4B,WAAW,CAACj4B,CAAAA,CAAE,KAAK,MAAA,IACnB,CAACg4B,cAAc,CAACh4B,CAAAA,CAAE,IAClB6yB,6BAAAA,CAA8BlgB,SAC9B2mB,aAAAA,IAAiB,CAAA,IACjBrB,WAAW,CAACqB,aAAAA,CAAc,KAAK,MAAA,EAAQ;EACvC,YAAA,MAAMzE,WAAAA,GAAcwE,wBAAwB,CAACC,aAAAA,CAAc,IAAI,EAAE;EACjEzE,YAAAA,WAAAA,CAAY/uB,IAAI,CAAC6M,IAAAA,CAAAA;cACjB0mB,wBAAwB,CAACC,cAAc,GAAGzE,WAAAA;EAC1CqD,YAAAA,YAAY,CAACoB,aAAAA,CAAc,GAAGpB,YAAY,CAACl4B,CAAAA,CAAE;cAC7C83B,WAAW,CAAC93B,EAAE,GAAG,EAAA;EACjB,YAAA;EACJ,QAAA;UACAs5B,aAAAA,GAAgBt5B,CAAAA;EACpB,IAAA;EACA,IAAA,IAAK,IAAIA,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAI63B,WAAW73B,CAAAA,EAAAA,CAAK;UAChC,MAAM60B,WAAAA,GAAcwE,wBAAwB,CAACr5B,CAAAA,CAAE;EAC/C,QAAA,IAAI60B,eAAe,IAAA,EACf;EACJiD,QAAAA,WAAW,CAAC93B,CAAAA,CAAE,GAAG40B,wBAAwBC,WAAAA,EAAaiD,WAAW,CAAC93B,CAAAA,CAAE,CAAA;EACxE,IAAA;EACA,IAAA,IAAIi2B,UAAAA,GAAa,CAAA;EACjB,IAAA,IAAK,IAAIC,IAAAA,GAAO,CAAA,EAAGA,IAAAA,GAAO2B,WAAW3B,IAAAA,EAAAA,CAAQ;UACzC,MAAMvjB,IAAAA,GAAOmlB,WAAW,CAAC5B,IAAAA,CAAK;UAC9B,IAAIvjB,IAAAA,CAAK1S,MAAM,KAAK,CAAA,EAChB;EACJ,QAAA,IAAIg2B,eAAeC,IAAAA,EAAM;cACrB4B,WAAW,CAAC7B,WAAW,GAAGtjB,IAAAA;EAC1BqlB,YAAAA,cAAc,CAAC/B,UAAAA,CAAW,GAAG+B,cAAc,CAAC9B,IAAAA,CAAK;EACjD+B,YAAAA,WAAW,CAAChC,UAAAA,CAAW,GAAGgC,WAAW,CAAC/B,IAAAA,CAAK;EAC3CgC,YAAAA,YAAY,CAACjC,UAAAA,CAAW,GAAGiC,YAAY,CAAChC,IAAAA,CAAK;EACjD,QAAA;EACAD,QAAAA,UAAAA,EAAAA;EACJ,IAAA;EACA6B,IAAAA,WAAAA,CAAY73B,MAAM,GAAGg2B,UAAAA;EACrB+B,IAAAA,cAAAA,CAAe/3B,MAAM,GAAGg2B,UAAAA;EACxBgC,IAAAA,WAAAA,CAAYh4B,MAAM,GAAGg2B,UAAAA;EACrBiC,IAAAA,YAAAA,CAAaj4B,MAAM,GAAGg2B,UAAAA;EACtB,IAAA,MAAMsD,YAAYnC,0BAAAA,CAA2B;UACzCrI,GAAAA,EAAKkH,UAAAA;UACLrC,KAAAA,EAAOkE,WAAAA;UACPrE,UAAAA,EAAYuE,cAAAA;UACZrC,KAAAA,EAAOsC,WAAAA;UACPnC,MAAAA,EAAQoC;EACZ,KAAA,CAAA;EACA,IAAA,MAAMsB,iBAAiB/B,2CAAAA,CAA4CZ,2BAAAA,CAA4BG,0BAAAA,CAA2BJ,gBAAAA,CAAiBT,kBAAkBN,gBAAAA,CAAiB0D,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;MAC9K,IAAK,IAAIv5B,IAAI,CAAA,EAAGA,CAAAA,GAAIw5B,eAAezK,GAAG,GAAG,GAAG/uB,CAAAA,EAAAA,CAAK;EAC7C,QAAA,MAAM6M,KAAAA,GAAQunB,yBAAAA,CAA0BoF,cAAAA,CAAe5F,KAAK,CAAC5zB,CAAAA,CAAE,CAAA;EAC/D,QAAA,IAAI6M,UAAU,IAAA,EACV;UACJ,IAAK2sB,cAAAA,CAAe7D,KAAK,CAAC31B,CAAAA,CAAE,KAAK,OAAA,IAAWw5B,cAAAA,CAAe7D,KAAK,CAAC31B,CAAAA,CAAE,KAAK,iBAAA,IACpEw5B,cAAAA,CAAe7D,KAAK,CAAC31B,CAAAA,GAAI,CAAA,CAAE,KAAK,MAAA,IAChC,CAACoxB,oBAAAA,CAAqBoI,cAAAA,CAAe5F,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE,CAAA,EAAG;EACpD,YAAA;EACJ,QAAA;EACAw5B,QAAAA,cAAAA,CAAe5F,KAAK,CAAC5zB,CAAAA,CAAE,GAAG6M,MAAMrJ,KAAK;UACrCg2B,cAAAA,CAAe/F,UAAU,CAACzzB,CAAAA,CAAE,GAAG,KAAA;UAC/Bw5B,cAAAA,CAAe7D,KAAK,CAAC31B,CAAAA,CAAE,GAAGw5B,cAAAA,CAAe7D,KAAK,CAAC31B,CAAAA,CAAE,KAAK,iBAAA,GAAoB,iBAAA,GAAoB,OAAA;EAC9Fw5B,QAAAA,cAAAA,CAAe5F,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE,GAAG6M,KAAAA,CAAMwnB,KAAK,GAAGmF,cAAAA,CAAe5F,KAAK,CAAC5zB,CAAAA,GAAI,CAAA,CAAE;EACvEw5B,QAAAA,cAAAA,CAAe1D,MAAM,CAAC91B,CAAAA,GAAI,CAAA,CAAE,GAAGw5B,cAAAA,CAAe1D,MAAM,CAAC91B,CAAAA,CAAE,GAAG6M,KAAAA,CAAMrJ,KAAK,CAACvD,MAAM;EAChF,IAAA;MACA,OAAOu5B,cAAAA;EACX;EACA,SAASC,qBAAAA,CAAsBhE,YAAY,EAAEjB,iBAAiB,EAAA;EAC1D,IAAA,IAAIiB,YAAAA,CAAa1G,GAAG,KAAK,CAAA,EACrB,OAAO,EAAE;MACb,IAAI,CAACyF,iBAAAA,CAAkBhE,kBAAkB,EAAE;UACvC,OAAO;EAAC,YAAA;kBACAkJ,iBAAAA,EAAmB,CAAA;EACnBC,gBAAAA,eAAAA,EAAiBlE,aAAa1G,GAAG;EACjC6K,gBAAAA,uBAAAA,EAAyBnE,aAAa1G;EAC1C;EAAE,SAAA;EACV,IAAA;EACA,IAAA,MAAM8K,SAAS,EAAE;EACjB,IAAA,IAAIH,iBAAAA,GAAoB,CAAA;EACxB,IAAA,IAAK,IAAI15B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,IAAIy1B,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE,KAAK,YAAA,EAC1B;EACJ65B,QAAAA,MAAAA,CAAO/zB,IAAI,CAAC;EACR4zB,YAAAA,iBAAAA;cACAC,eAAAA,EAAiB35B,CAAAA;EACjB45B,YAAAA,uBAAAA,EAAyB55B,CAAAA,GAAI;EACjC,SAAA,CAAA;EACA05B,QAAAA,iBAAAA,GAAoB15B,CAAAA,GAAI,CAAA;EAC5B,IAAA;MACA,IAAI05B,iBAAAA,GAAoBjE,YAAAA,CAAa1G,GAAG,EAAE;EACtC8K,QAAAA,MAAAA,CAAO/zB,IAAI,CAAC;EACR4zB,YAAAA,iBAAAA;EACAC,YAAAA,eAAAA,EAAiBlE,aAAa1G,GAAG;EACjC6K,YAAAA,uBAAAA,EAAyBnE,aAAa1G;EAC1C,SAAA,CAAA;EACJ,IAAA;MACA,OAAO8K,MAAAA;EACX;EACA,SAASC,yBAAyBrE,YAAY,EAAA;EAC1C,IAAA,IAAIA,YAAAA,CAAa1G,GAAG,IAAI,CAAA,EACpB,OAAO0G,YAAAA;EACX,IAAA,MAAM7B,QAAQ,EAAE;EAChB,IAAA,MAAMH,aAAa,EAAE;EACrB,IAAA,MAAMkC,QAAQ,EAAE;EAChB,IAAA,MAAMG,SAAS,EAAE;EACjB,IAAA,IAAIiE,gBAAAA,GAAmB,IAAA;EACvB,IAAA,IAAIC,eAAAA,GAAkB,KAAA;EACtB,IAAA,IAAIC,YAAAA,GAAe,CAAA;EACnB,IAAA,IAAIC,kBAAAA,GAAqB,KAAA;EACzB,IAAA,IAAIC,kBAAAA,GAAqB,KAAA;MACzB,SAASC,gBAAAA,GAAAA;EACL,QAAA,IAAIL,qBAAqB,IAAA,EACrB;UACJnG,KAAAA,CAAM9tB,IAAI,CAAC4uB,aAAAA,CAAcqF,gBAAAA,CAAAA,CAAAA;EACzBtG,QAAAA,UAAAA,CAAW3tB,IAAI,CAACk0B,eAAAA,CAAAA;EAChBrE,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC,MAAA,CAAA;EACXgwB,QAAAA,MAAAA,CAAOhwB,IAAI,CAACm0B,YAAAA,CAAAA;UACZF,gBAAAA,GAAmB,IAAA;EACvB,IAAA;EACA,IAAA,IAAK,IAAI/5B,CAAAA,GAAI,CAAA,EAAGA,IAAIy1B,YAAAA,CAAa1G,GAAG,EAAE/uB,CAAAA,EAAAA,CAAK;EACvC,QAAA,MAAM2S,IAAAA,GAAO8iB,YAAAA,CAAa7B,KAAK,CAAC5zB,CAAAA,CAAE;EAClC,QAAA,MAAM0zB,IAAAA,GAAO+B,YAAAA,CAAaE,KAAK,CAAC31B,CAAAA,CAAE;EAClC,QAAA,MAAMq1B,QAAAA,GAAWI,YAAAA,CAAahC,UAAU,CAACzzB,CAAAA,CAAE;EAC3C,QAAA,MAAMqY,KAAAA,GAAQod,YAAAA,CAAaK,MAAM,CAAC91B,CAAAA,CAAE;EACpC,QAAA,IAAI0zB,SAAS,MAAA,EAAQ;EACjB,YAAA,MAAM2G,kBAAkBvI,eAAAA,CAAgBnf,IAAAA,CAAAA;EACxC,YAAA,MAAM2nB,kBAAkBtI,yBAAAA,CAA0Brf,IAAAA,CAAAA;cAClD,IAAIonB,gBAAAA,KAAqB,IAAA,IAAQG,kBAAAA,IAAsBC,kBAAAA,EAAoB;EACvEJ,gBAAAA,gBAAAA,CAAiBj0B,IAAI,CAAC6M,IAAAA,CAAAA;EACtBqnB,gBAAAA,eAAAA,GAAkBA,eAAAA,IAAmB3E,QAAAA;EACrC6E,gBAAAA,kBAAAA,GAAqBA,kBAAAA,IAAsBG,eAAAA;kBAC3CF,kBAAAA,GAAqBG,eAAAA;EACrB,gBAAA;EACJ,YAAA;EACAF,YAAAA,gBAAAA,EAAAA;cACAL,gBAAAA,GAAmB;EAACpnB,gBAAAA;EAAK,aAAA;cACzBqnB,eAAAA,GAAkB3E,QAAAA;cAClB4E,YAAAA,GAAe5hB,KAAAA;cACf6hB,kBAAAA,GAAqBG,eAAAA;cACrBF,kBAAAA,GAAqBG,eAAAA;EACrB,YAAA;EACJ,QAAA;EACAF,QAAAA,gBAAAA,EAAAA;EACAxG,QAAAA,KAAAA,CAAM9tB,IAAI,CAAC6M,IAAAA,CAAAA;EACX8gB,QAAAA,UAAAA,CAAW3tB,IAAI,CAACuvB,QAAAA,CAAAA;EAChBM,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC4tB,IAAAA,CAAAA;EACXoC,QAAAA,MAAAA,CAAOhwB,IAAI,CAACuS,KAAAA,CAAAA;EAChB,IAAA;EACA+hB,IAAAA,gBAAAA,EAAAA;MACA,OAAO;EACHrL,QAAAA,GAAAA,EAAK6E,MAAM3zB,MAAM;EACjB2zB,QAAAA,KAAAA;EACAH,QAAAA,UAAAA;EACAkC,QAAAA,KAAAA;EACAG,QAAAA;EACJ,KAAA;EACJ;EACO,SAASyE,WAAAA,CAAY5nB,IAAI,EAAEglB,OAAO,EAAEtH,UAAAA,GAAa,QAAQ,EAAEmK,SAAAA,GAAY,QAAQ,EAAA;EAClF,IAAA,MAAMhG,oBAAoBpE,oBAAAA,CAAqBC,UAAAA,CAAAA;EAC/C,IAAA,MAAMP,aAAa0E,iBAAAA,CAAkBlE,IAAI,KAAK,UAAA,GACxCI,0BAAAA,CAA2B/d,QAC3B8d,yBAAAA,CAA0B9d,IAAAA,CAAAA;MAChC,IAAImd,UAAAA,CAAW7vB,MAAM,KAAK,CAAA,EAAG;UACzB,OAAO;EACH6vB,YAAAA,UAAAA;EACA+J,YAAAA,MAAAA,EAAQ,EAAE;cACV9K,GAAAA,EAAK,CAAA;EACL6E,YAAAA,KAAAA,EAAO,EAAE;EACTH,YAAAA,UAAAA,EAAY,EAAE;EACdkC,YAAAA,KAAAA,EAAO,EAAE;EACTG,YAAAA,MAAAA,EAAQ;EACZ,SAAA;EACJ,IAAA;MACA,MAAML,YAAAA,GAAe+E,SAAAA,KAAc,UAAA,GAC7BV,wBAAAA,CAAyBpC,uBAAAA,CAAwB5H,YAAY6H,OAAAA,EAASnD,iBAAAA,CAAAA,CAAAA,GACtEkD,uBAAAA,CAAwB5H,UAAAA,EAAY6H,OAAAA,EAASnD,iBAAAA,CAAAA;MACnD,OAAO;EACH1E,QAAAA,UAAAA;EACA+J,QAAAA,MAAAA,EAAQJ,sBAAsBhE,YAAAA,EAAcjB,iBAAAA,CAAAA;EAC5C,QAAA,GAAGiB;EACP,KAAA;EACJ;;ECriCA,IAAIgF,cAAAA,GAAiB,IAAA;EACrB,MAAMC,sBAAsB,IAAIzyB,GAAAA,EAAAA;EAChC,IAAI0yB,mBAAAA,GAAsB,IAAA;EAC1B;EACA;EACA;EACA;EACA,MAAMC,wBAAAA,GAA2B,EAAA;EACjC,MAAMC,mBAAAA,GAAsB,yBAAA;EAC5B,MAAMC,YAAAA,GAAe,sFAAA;EACrB,IAAIC,yBAAAA,GAA0B,IAAA;EAC9B,MAAMC,uBAAuB,IAAI/yB,GAAAA,EAAAA;EAC1B,SAASgzB,iBAAAA,GAAAA;MACZ,IAAIR,cAAAA,KAAmB,MACnB,OAAOA,cAAAA;MACX,IAAI,OAAOS,oBAAoB,WAAA,EAAa;EACxCT,QAAAA,cAAAA,GAAiB,IAAIS,eAAAA,CAAgB,CAAA,EAAG,CAAA,CAAA,CAAGC,UAAU,CAAC,IAAA,CAAA;UACtD,OAAOV,cAAAA;EACX,IAAA;MACA,IAAI,OAAOl7B,aAAa,WAAA,EAAa;EACjCk7B,QAAAA,cAAAA,GAAiBl7B,QAAAA,CAASwE,aAAa,CAAC,QAAA,CAAA,CAAUo3B,UAAU,CAAC,IAAA,CAAA;UAC7D,OAAOV,cAAAA;EACX,IAAA;EACA,IAAA,MAAM,IAAIzmB,KAAAA,CAAM,oEAAA,CAAA;EACpB;EACO,SAASonB,sBAAsBC,IAAI,EAAA;MACtC,IAAIC,KAAAA,GAAQZ,mBAAAA,CAAoBpyB,GAAG,CAAC+yB,IAAAA,CAAAA;EACpC,IAAA,IAAI,CAACC,KAAAA,EAAO;EACRA,QAAAA,KAAAA,GAAQ,IAAIrzB,GAAAA,EAAAA;UACZyyB,mBAAAA,CAAoBryB,GAAG,CAACgzB,IAAAA,EAAMC,KAAAA,CAAAA;EAClC,IAAA;MACA,OAAOA,KAAAA;EACX;EACO,SAASC,iBAAAA,CAAkBC,GAAG,EAAEF,KAAK,EAAA;MACxC,IAAIG,OAAAA,GAAUH,KAAAA,CAAMhzB,GAAG,CAACkzB,GAAAA,CAAAA;EACxB,IAAA,IAAIC,YAAYj6B,SAAAA,EAAW;EACvB,QAAA,MAAMk6B,GAAAA,GAAMT,iBAAAA,EAAAA;UACZQ,OAAAA,GAAU;EACNE,YAAAA,KAAAA,EAAOD,GAAAA,CAAIE,WAAW,CAACJ,GAAAA,CAAAA,CAAKG,KAAK;EACjCE,YAAAA,WAAAA,EAAavK,KAAAA,CAAMkK,GAAAA;EACvB,SAAA;UACAF,KAAAA,CAAMjzB,GAAG,CAACmzB,GAAAA,EAAKC,OAAAA,CAAAA;EACnB,IAAA;MACA,OAAOA,OAAAA;EACX;EACO,SAASK,gBAAAA,GAAAA;MACZ,IAAInB,mBAAAA,KAAwB,MACxB,OAAOA,mBAAAA;MACX,IAAI,OAAOoB,cAAc,WAAA,EAAa;UAClCpB,mBAAAA,GAAsB;cAClBqB,cAAAA,EAAgB,KAAA;cAChB5C,yBAAAA,EAA2B,KAAA;cAC3B6C,kCAAAA,EAAoC,KAAA;cACpCC,0BAAAA,EAA4B;EAChC,SAAA;UACA,OAAOvB,mBAAAA;EACX,IAAA;MACA,MAAMwB,EAAAA,GAAKJ,UAAUK,SAAS;MAC9B,MAAMC,MAAAA,GAASN,UAAUM,MAAM;EAC/B,IAAA,MAAMC,QAAAA,GAAWD,MAAAA,KAAW,sBAAA,IACxBF,EAAAA,CAAGz6B,QAAQ,CAAC,SAAA,CAAA,IACZ,CAACy6B,EAAAA,CAAGz6B,QAAQ,CAAC,SAAA,CAAA,IACb,CAACy6B,EAAAA,CAAGz6B,QAAQ,CAAC,WAAA,CAAA,IACb,CAACy6B,EAAAA,CAAGz6B,QAAQ,CAAC,QAAA,CAAA,IACb,CAACy6B,EAAAA,CAAGz6B,QAAQ,CAAC,QAAA,CAAA,IACb,CAACy6B,EAAAA,CAAGz6B,QAAQ,CAAC,SAAA,CAAA;EACjB,IAAA,MAAM66B,UAAAA,GAAaJ,EAAAA,CAAGz6B,QAAQ,CAAC,cAC3By6B,EAAAA,CAAGz6B,QAAQ,CAAC,WAAA,CAAA,IACZy6B,GAAGz6B,QAAQ,CAAC,QAAA,CAAA,IACZy6B,EAAAA,CAAGz6B,QAAQ,CAAC,MAAA,CAAA;MAChBi5B,mBAAAA,GAAsB;UAClBqB,cAAAA,EAAgBM,QAAAA,GAAW,IAAI,EAAA,GAAK,KAAA;UACpClD,yBAAAA,EAA2BmD,UAAAA;UAC3BN,kCAAAA,EAAoCK,QAAAA;UACpCJ,0BAAAA,EAA4BI;EAChC,KAAA;MACA,OAAO3B,mBAAAA;EACX;EACO,SAAS6B,cAAcnB,IAAI,EAAA;MAC9B,MAAM32B,CAAAA,GAAI22B,IAAAA,CAAKl1B,KAAK,CAAC,sBAAA,CAAA;EACrB,IAAA,OAAOzB,CAAAA,GAAI+3B,UAAAA,CAAW/3B,CAAC,CAAC,EAAE,CAAA,GAAI,EAAA;EAClC;EACA,SAASg4B,4BAAAA,GAAAA;EACL,IAAA,IAAI3B,8BAA4B,IAAA,EAAM;EAClCA,QAAAA,yBAAAA,GAA0B,IAAIjK,IAAAA,CAAKC,SAAS,CAACvvB,SAAAA,EAAW;cAAEwvB,WAAAA,EAAa;EAAW,SAAA,CAAA;EACtF,IAAA;MACA,OAAO+J,yBAAAA;EACX;EACA,SAAS4B,gBAAgBpY,CAAC,EAAA;EACtB,IAAA,OAAOsW,oBAAoB9mB,IAAI,CAACwQ,CAAAA,CAAAA,IAAMA,CAAAA,CAAE7iB,QAAQ,CAAC,QAAA,CAAA;EACrD;EACO,SAASk7B,oBAAoBjqB,IAAI,EAAA;MACpC,OAAOmoB,YAAAA,CAAa/mB,IAAI,CAACpB,IAAAA,CAAAA;EAC7B;EACA,SAASkqB,kBAAAA,CAAmBxB,IAAI,EAAEyB,QAAQ,EAAA;MACtC,IAAIC,UAAAA,GAAa/B,oBAAAA,CAAqB1yB,GAAG,CAAC+yB,IAAAA,CAAAA;MAC1C,IAAI0B,UAAAA,KAAev7B,WACf,OAAOu7B,UAAAA;EACX,IAAA,MAAMrB,GAAAA,GAAMT,iBAAAA,EAAAA;EACZS,IAAAA,GAAAA,CAAIL,IAAI,GAAGA,IAAAA;EACX,IAAA,MAAM2B,OAAAA,GAAUtB,GAAAA,CAAIE,WAAW,CAAC,aAAaD,KAAK;MAClDoB,UAAAA,GAAa,CAAA;MACb,IAAIC,OAAAA,GAAUF,WAAW,GAAA,IACrB,OAAOv9B,aAAa,WAAA,IACpBA,QAAAA,CAAS09B,IAAI,KAAK,IAAA,EAAM;UACxB,MAAMC,IAAAA,GAAO39B,QAAAA,CAASwE,aAAa,CAAC,MAAA,CAAA;UACpCm5B,IAAAA,CAAKnxB,KAAK,CAACsvB,IAAI,GAAGA,IAAAA;UAClB6B,IAAAA,CAAKnxB,KAAK,CAACoxB,OAAO,GAAG,cAAA;UACrBD,IAAAA,CAAKnxB,KAAK,CAACqxB,UAAU,GAAG,QAAA;UACxBF,IAAAA,CAAKnxB,KAAK,CAACsxB,QAAQ,GAAG,UAAA;EACtBH,QAAAA,IAAAA,CAAKpvB,WAAW,GAAG,WAAA;UACnBvO,QAAAA,CAAS09B,IAAI,CAAC71B,WAAW,CAAC81B,IAAAA,CAAAA;EAC1B,QAAA,MAAMI,IAAAA,GAAOJ,IAAAA,CAAKK,qBAAqB,EAAA,CAAG5B,KAAK;UAC/Cp8B,QAAAA,CAAS09B,IAAI,CAACnuB,WAAW,CAACouB,IAAAA,CAAAA;UAC1B,IAAIF,OAAAA,GAAUM,OAAO,GAAA,EAAK;EACtBP,YAAAA,UAAAA,GAAaC,OAAAA,GAAUM,IAAAA;EAC3B,QAAA;EACJ,IAAA;MACAtC,oBAAAA,CAAqB3yB,GAAG,CAACgzB,IAAAA,EAAM0B,UAAAA,CAAAA;MAC/B,OAAOA,UAAAA;EACX;EACA,SAASS,oBAAoB7qB,IAAI,EAAA;EAC7B,IAAA,IAAI8qB,KAAAA,GAAQ,CAAA;EACZ,IAAA,MAAMC,iBAAAA,GAAoBhB,4BAAAA,EAAAA;EAC1B,IAAA,KAAK,MAAMnY,CAAAA,IAAKmZ,iBAAAA,CAAkBlL,OAAO,CAAC7f,IAAAA,CAAAA,CAAO;UAC7C,IAAIgqB,eAAAA,CAAgBpY,CAAAA,CAAEiO,OAAO,CAAA,EACzBiL,KAAAA,EAAAA;EACR,IAAA;MACA,OAAOA,KAAAA;EACX;EACA,SAASE,aAAAA,CAAcnC,GAAG,EAAEC,OAAO,EAAA;MAC/B,IAAIA,OAAAA,CAAQmC,UAAU,KAAKp8B,SAAAA,EAAW;UAClCi6B,OAAAA,CAAQmC,UAAU,GAAGJ,mBAAAA,CAAoBhC,GAAAA,CAAAA;EAC7C,IAAA;EACA,IAAA,OAAOC,QAAQmC,UAAU;EAC7B;EACO,SAASC,wBAAAA,CAAyBrC,GAAG,EAAEC,OAAO,EAAEqC,eAAe,EAAA;EAClE,IAAA,IAAIA,eAAAA,KAAoB,CAAA,EACpB,OAAOrC,OAAAA,CAAQE,KAAK;EACxB,IAAA,OAAOF,OAAAA,CAAQE,KAAK,GAAGgC,aAAAA,CAAcnC,KAAKC,OAAAA,CAAAA,GAAWqC,eAAAA;EACzD;EAUO,SAASC,8BAAAA,CAA+BvC,GAAG,EAAEC,OAAO,EAAEH,KAAK,EAAEwC,eAAe,EAAExN,IAAI,EAAA;EACrF,IAAA,IAAImL,QAAQuC,oBAAoB,KAAKx8B,SAAAA,EACjC,OAAOi6B,QAAQuC,oBAAoB;EACvC,IAAA,MAAMN,iBAAAA,GAAoBhB,4BAAAA,EAAAA;EAC1B,IAAA,MAAMuB,YAAY,EAAE;EACpB,IAAA,KAAK,MAAMC,EAAAA,IAAMR,iBAAAA,CAAkBlL,OAAO,CAACgJ,GAAAA,CAAAA,CAAM;UAC7CyC,SAAAA,CAAUn4B,IAAI,CAACo4B,EAAAA,CAAG1L,OAAO,CAAA;EAC7B,IAAA;MACA,IAAIyL,SAAAA,CAAUh+B,MAAM,IAAI,CAAA,EAAG;EACvBw7B,QAAAA,OAAAA,CAAQuC,oBAAoB,GAAG,IAAA;EAC/B,QAAA,OAAOvC,QAAQuC,oBAAoB;EACvC,IAAA;EACA,IAAA,IAAI1N,SAAS,eAAA,EAAiB;EAC1B,QAAA,MAAM6N,WAAW,EAAE;UACnB,KAAK,MAAMC,YAAYH,SAAAA,CAAW;cAC9B,MAAMI,eAAAA,GAAkB9C,kBAAkB6C,QAAAA,EAAU9C,KAAAA,CAAAA;EACpD6C,YAAAA,QAAAA,CAASr4B,IAAI,CAAC+3B,wBAAAA,CAAyBO,QAAAA,EAAUC,eAAAA,EAAiBP,eAAAA,CAAAA,CAAAA;EACtE,QAAA;EACArC,QAAAA,OAAAA,CAAQuC,oBAAoB,GAAGG,QAAAA;EAC/B,QAAA,OAAO1C,QAAQuC,oBAAoB;EACvC,IAAA;EACA,IAAA,IAAI1N,IAAAA,KAAS,cAAA,IAAkB2N,SAAAA,CAAUh+B,MAAM,GAAG26B,wBAAAA,EAA0B;EACxE,QAAA,MAAMuD,WAAW,EAAE;EACnB,QAAA,IAAIG,gBAAAA,GAAmB,IAAA;EACvB,QAAA,IAAIC,aAAAA,GAAgB,CAAA;UACpB,KAAK,MAAMH,YAAYH,SAAAA,CAAW;cAC9B,MAAMI,eAAAA,GAAkB9C,kBAAkB6C,QAAAA,EAAU9C,KAAAA,CAAAA;cACpD,MAAMkD,YAAAA,GAAeX,wBAAAA,CAAyBO,QAAAA,EAAUC,eAAAA,EAAiBP,eAAAA,CAAAA;EACzE,YAAA,IAAIQ,qBAAqB,IAAA,EAAM;EAC3BH,gBAAAA,QAAAA,CAASr4B,IAAI,CAAC04B,YAAAA,CAAAA;cAClB,CAAA,MACK;EACD,gBAAA,MAAMC,OAAOH,gBAAAA,GAAmBF,QAAAA;kBAChC,MAAMM,WAAAA,GAAcnD,kBAAkBkD,IAAAA,EAAMnD,KAAAA,CAAAA;EAC5C6C,gBAAAA,QAAAA,CAASr4B,IAAI,CAAC+3B,wBAAAA,CAAyBY,IAAAA,EAAMC,aAAaZ,eAAAA,CAAAA,GAAmBS,aAAAA,CAAAA;EACjF,YAAA;cACAD,gBAAAA,GAAmBF,QAAAA;cACnBG,aAAAA,GAAgBC,YAAAA;EACpB,QAAA;EACA/C,QAAAA,OAAAA,CAAQuC,oBAAoB,GAAGG,QAAAA;EAC/B,QAAA,OAAO1C,QAAQuC,oBAAoB;EACvC,IAAA;EACA,IAAA,MAAMG,WAAW,EAAE;EACnB,IAAA,IAAI76B,MAAAA,GAAS,EAAA;EACb,IAAA,IAAIq7B,WAAAA,GAAc,CAAA;MAClB,KAAK,MAAMP,YAAYH,SAAAA,CAAW;UAC9B36B,MAAAA,IAAU86B,QAAAA;UACV,MAAMQ,aAAAA,GAAgBrD,kBAAkBj4B,MAAAA,EAAQg4B,KAAAA,CAAAA;UAChD,MAAMuD,eAAAA,GAAkBhB,wBAAAA,CAAyBv6B,MAAAA,EAAQs7B,aAAAA,EAAed,eAAAA,CAAAA;UACxEK,QAAAA,CAASr4B,IAAI,CAAC+4B,eAAAA,GAAkBF,WAAAA,CAAAA;UAChCA,WAAAA,GAAcE,eAAAA;EAClB,IAAA;EACApD,IAAAA,OAAAA,CAAQuC,oBAAoB,GAAGG,QAAAA;EAC/B,IAAA,OAAO1C,QAAQuC,oBAAoB;EACvC;EACO,SAASc,uBAAAA,CAAwBzD,IAAI,EAAE0D,oBAAoB,EAAA;EAC9D,IAAA,MAAMrD,GAAAA,GAAMT,iBAAAA,EAAAA;EACZS,IAAAA,GAAAA,CAAIL,IAAI,GAAGA,IAAAA;EACX,IAAA,MAAMC,QAAQF,qBAAAA,CAAsBC,IAAAA,CAAAA;EACpC,IAAA,MAAMyB,WAAWN,aAAAA,CAAcnB,IAAAA,CAAAA;EAC/B,IAAA,MAAMyC,eAAAA,GAAkBiB,oBAAAA,GAAuBlC,kBAAAA,CAAmBxB,IAAAA,EAAMyB,QAAAA,CAAAA,GAAY,CAAA;MACpF,OAAO;EAAExB,QAAAA,KAAAA;EAAOwB,QAAAA,QAAAA;EAAUgB,QAAAA;EAAgB,KAAA;EAC9C;;ECpNA,SAASkB,oCAAAA,CAAqCC,QAAQ,EAAEC,YAAY,EAAA;EAChE,IAAA,MAAOA,YAAAA,GAAeD,QAAAA,CAASE,MAAM,CAACl/B,MAAM,CAAE;EAC1C,QAAA,MAAMyzB,IAAAA,GAAOuL,QAAAA,CAAStJ,KAAK,CAACuJ,YAAAA,CAAa;EACzC,QAAA,IAAIxL,IAAAA,KAAS,OAAA,IAAWA,IAAAA,KAAS,kBAAA,IAAsBA,SAAS,aAAA,EAC5D;EACJwL,QAAAA,YAAAA,EAAAA;EACJ,IAAA;MACA,OAAOA,YAAAA;EACX;EACA,SAASE,aAAAA,CAAcC,SAAS,EAAEC,cAAc,EAAA;MAC5C,IAAIA,cAAAA,IAAkB,GAClB,OAAO,CAAA;EACX,IAAA,MAAMC,YAAYF,SAAAA,GAAYC,cAAAA;EAC9B,IAAA,IAAIv1B,IAAAA,CAAKy1B,GAAG,CAACD,SAAAA,CAAAA,IAAc,MACvB,OAAOD,cAAAA;EACX,IAAA,OAAOA,cAAAA,GAAiBC,SAAAA;EAC5B;EACA,SAASE,kBAAAA,CAAmBC,mBAAmB,EAAEC,YAAY,EAAEC,QAAQ,EAAE5D,cAAc,EAAE6D,wBAAwB,EAAA;EAC7G,IAAA,IAAIC,QAAAA,GAAW,CAAA;EACf,IAAA,IAAIC,WAAAA,GAAcJ,YAAAA;MAClB,MAAOG,QAAAA,GAAWJ,mBAAAA,CAAoBz/B,MAAM,CAAE;EAC1C,QAAA,MAAM+/B,SAAAA,GAAYD,WAAAA,GAAcL,mBAAmB,CAACI,QAAAA,CAAS;EAC7D,QAAA,MAAMG,gBAAgBH,QAAAA,GAAW,CAAA,GAAIJ,oBAAoBz/B,MAAM,GACzD+/B,YAAYH,wBAAAA,GACZG,SAAAA;UACN,IAAIC,aAAAA,GAAgBL,WAAW5D,cAAAA,EAC3B;UACJ+D,WAAAA,GAAcC,SAAAA;EACdF,QAAAA,QAAAA,EAAAA;EACJ,IAAA;MACA,OAAO;EAAEA,QAAAA,QAAAA;EAAUC,QAAAA;EAAY,KAAA;EACnC;EA4EA,SAASG,uBAAAA,CAAwBjB,QAAQ,EAAEW,QAAQ,EAAEO,MAAM,EAAA;EACvD,IAAA,MAAM,EAAEhB,MAAM,EAAExJ,KAAK,EAAEqI,oBAAoB,EAAE,GAAGiB,QAAAA;EAChD,IAAA,IAAIE,MAAAA,CAAOl/B,MAAM,KAAK,CAAA,EAClB,OAAO,CAAA;EACX,IAAA,MAAMmgC,aAAAA,GAAgBtE,gBAAAA,EAAAA;MACtB,MAAME,cAAAA,GAAiBoE,cAAcpE,cAAc;EACnD,IAAA,MAAMqE,WAAWT,QAAAA,GAAW5D,cAAAA;EAC5B,IAAA,IAAIsE,SAAAA,GAAY,CAAA;EAChB,IAAA,IAAIC,KAAAA,GAAQ,CAAA;EACZ,IAAA,IAAIC,UAAAA,GAAa,KAAA;EACjB,IAAA,IAAIC,qBAAAA,GAAwB,CAAA;EAC5B,IAAA,IAAIC,sBAAAA,GAAyB,CAAA;EAC7B,IAAA,IAAIC,mBAAAA,GAAsB,CAAA;EAC1B,IAAA,IAAIC,oBAAAA,GAAuB,CAAA;EAC3B,IAAA,IAAIC,2BAA2B,EAAC;EAChC,IAAA,IAAIC,sBAAAA,GAAyB,CAAA;MAC7B,SAASC,iBAAAA,GAAAA;EACLF,QAAAA,wBAAAA,GAA2B,EAAC;UAC5BC,sBAAAA,GAAyB,CAAA;EAC7B,IAAA;MACA,SAASE,eAAAA,CAAgBrH,kBAAkBgH,mBAAmB,EAAEM,mBAAmBL,oBAAoB,EAAEjF,QAAQ4E,KAAK,EAAA;EAClHD,QAAAA,SAAAA,EAAAA;UACAH,MAAAA,GAAS;cACLzG,iBAAAA,EAAmB+G,qBAAAA;cACnBS,kBAAAA,EAAoBR,sBAAAA;EACpB/G,YAAAA,eAAAA;EACAsH,YAAAA,gBAAAA;EACAtF,YAAAA;EACJ,SAAA,CAAA;UACA4E,KAAAA,GAAQ,CAAA;UACRC,UAAAA,GAAa,KAAA;EACbO,QAAAA,iBAAAA,EAAAA;EACJ,IAAA;MACA,SAASI,kBAAAA,CAAmBjC,YAAY,EAAEvD,KAAK,EAAA;UAC3C6E,UAAAA,GAAa,IAAA;UACbC,qBAAAA,GAAwBvB,YAAAA;UACxBwB,sBAAAA,GAAyB,CAAA;EACzBC,QAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;UACrC0B,oBAAAA,GAAuB,CAAA;UACvBL,KAAAA,GAAQ5E,KAAAA;EACZ,IAAA;EACA,IAAA,SAASyF,mBAAAA,CAAoBlC,YAAY,EAAEmC,aAAa,EAAE1F,KAAK,EAAA;UAC3D6E,UAAAA,GAAa,IAAA;UACbC,qBAAAA,GAAwBvB,YAAAA;UACxBwB,sBAAAA,GAAyBW,aAAAA;UACzBV,mBAAAA,GAAsBzB,YAAAA;EACtB0B,QAAAA,oBAAAA,GAAuBS,aAAAA,GAAgB,CAAA;UACvCd,KAAAA,GAAQ5E,KAAAA;EACZ,IAAA;MACA,SAAS2F,kBAAAA,CAAmBpC,YAAY,EAAEvD,KAAK,EAAA;EAC3C,QAAA,IAAI,CAAC6E,UAAAA,EAAY;EACbW,YAAAA,kBAAAA,CAAmBjC,YAAAA,EAAcvD,KAAAA,CAAAA;EACjC,YAAA;EACJ,QAAA;UACA4E,KAAAA,IAAS5E,KAAAA;EACTgF,QAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;UACrC0B,oBAAAA,GAAuB,CAAA;EAC3B,IAAA;MACA,SAASW,0BAAAA,CAA2BrC,YAAY,EAAEgC,kBAAkB,EAAA;UAChE,MAAMM,WAAAA,GAAcxD,oBAAoB,CAACkB,YAAAA,CAAa;EACtD,QAAA,IAAK,IAAI3a,CAAAA,GAAI2c,kBAAAA,EAAoB3c,IAAIid,WAAAA,CAAYvhC,MAAM,EAAEskB,CAAAA,EAAAA,CAAK;cAC1D,MAAMkd,EAAAA,GAAKD,WAAW,CAACjd,CAAAA,CAAE;EACzB,YAAA,IAAI,CAACic,UAAAA,EAAY;EACbY,gBAAAA,mBAAAA,CAAoBlC,cAAc3a,CAAAA,EAAGkd,EAAAA,CAAAA;cACzC,CAAA,MACK,IAAIlB,KAAAA,GAAQkB,EAAAA,GAAKpB,QAAAA,EAAU;EAC5BW,gBAAAA,eAAAA,EAAAA;EACAI,gBAAAA,mBAAAA,CAAoBlC,cAAc3a,CAAAA,EAAGkd,EAAAA,CAAAA;cACzC,CAAA,MACK;kBACDlB,KAAAA,IAASkB,EAAAA;kBACTd,mBAAAA,GAAsBzB,YAAAA;EACtB0B,gBAAAA,oBAAAA,GAAuBrc,CAAAA,GAAI,CAAA;EAC/B,YAAA;EACJ,QAAA;EACA,QAAA,IAAIic,cAAcG,mBAAAA,KAAwBzB,YAAAA,IAAgB0B,oBAAAA,KAAyBY,WAAAA,CAAYvhC,MAAM,EAAE;EACnG0gC,YAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;cACrC0B,oBAAAA,GAAuB,CAAA;EAC3B,QAAA;EACJ,IAAA;EACA,IAAA,IAAI5gC,CAAAA,GAAI,CAAA;MACR,MAAOA,CAAAA,GAAIm/B,MAAAA,CAAOl/B,MAAM,CAAE;EACtB,QAAA,IAAI,CAACugC,UAAAA,EAAY;EACbxgC,YAAAA,CAAAA,GAAIg/B,qCAAqCC,QAAAA,EAAUj/B,CAAAA,CAAAA;cACnD,IAAIA,CAAAA,IAAKm/B,MAAAA,CAAOl/B,MAAM,EAClB;EACR,QAAA;UACA,MAAMyhC,CAAAA,GAAIvC,MAAM,CAACn/B,CAAAA,CAAE;UACnB,MAAM0zB,IAAAA,GAAOiC,KAAK,CAAC31B,CAAAA,CAAE;UACrB,MAAM2hC,UAAAA,GAAajO,SAAS,OAAA,IAAWA,IAAAA,KAAS,qBAAqBA,IAAAA,KAAS,KAAA,IAASA,IAAAA,KAAS,kBAAA,IAAsBA,IAAAA,KAAS,aAAA;EAC/H,QAAA,IAAI,CAAC8M,UAAAA,EAAY;EACb,YAAA,IAAIkB,IAAI9B,QAAAA,IAAY5B,oBAAoB,CAACh+B,CAAAA,CAAE,KAAK,IAAA,EAAM;EAClDuhC,gBAAAA,0BAAAA,CAA2BvhC,CAAAA,EAAG,CAAA,CAAA;cAClC,CAAA,MACK;EACDmhC,gBAAAA,kBAAAA,CAAmBnhC,CAAAA,EAAG0hC,CAAAA,CAAAA;EAC1B,YAAA;EACA,YAAA,IAAIC,UAAAA,EAAY;EACZd,gBAAAA,wBAAAA,GAA2B7gC,CAAAA,GAAI,CAAA;EAC/B8gC,gBAAAA,sBAAAA,GAAyBP,KAAAA,GAAQmB,CAAAA;EACrC,YAAA;EACA1hC,YAAAA,CAAAA,EAAAA;EACA,YAAA;EACJ,QAAA;EACA,QAAA,MAAM4hC,OAAOrB,KAAAA,GAAQmB,CAAAA;EACrB,QAAA,IAAIE,OAAOvB,QAAAA,EAAU;EACjB,YAAA,IAAIsB,UAAAA,EAAY;EACZL,gBAAAA,kBAAAA,CAAmBthC,CAAAA,EAAG0hC,CAAAA,CAAAA;kBACtBV,eAAAA,CAAgBhhC,CAAAA,GAAI,CAAA,EAAG,CAAA,EAAGugC,KAAAA,GAAQmB,CAAAA,CAAAA;EAClC1hC,gBAAAA,CAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACA,YAAA,IAAI6gC,4BAA4B,CAAA,EAAG;EAC/B,gBAAA,IAAIF,mBAAAA,GAAsBE,wBAAAA,IACrBF,mBAAAA,KAAwBE,wBAAAA,IAA4BD,uBAAuB,CAAA,EAAI;EAChFI,oBAAAA,eAAAA,EAAAA;EACA,oBAAA;EACJ,gBAAA;EACAA,gBAAAA,eAAAA,CAAgBH,0BAA0B,CAAA,EAAGC,sBAAAA,CAAAA;EAC7C,gBAAA;EACJ,YAAA;EACA,YAAA,IAAIY,IAAI9B,QAAAA,IAAY5B,oBAAoB,CAACh+B,CAAAA,CAAE,KAAK,IAAA,EAAM;EAClDghC,gBAAAA,eAAAA,EAAAA;EACAO,gBAAAA,0BAAAA,CAA2BvhC,CAAAA,EAAG,CAAA,CAAA;EAC9BA,gBAAAA,CAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACAghC,YAAAA,eAAAA,EAAAA;EACA,YAAA;EACJ,QAAA;EACAM,QAAAA,kBAAAA,CAAmBthC,CAAAA,EAAG0hC,CAAAA,CAAAA;EACtB,QAAA,IAAIC,UAAAA,EAAY;EACZd,YAAAA,wBAAAA,GAA2B7gC,CAAAA,GAAI,CAAA;EAC/B8gC,YAAAA,sBAAAA,GAAyBP,KAAAA,GAAQmB,CAAAA;EACrC,QAAA;EACA1hC,QAAAA,CAAAA,EAAAA;EACJ,IAAA;EACA,IAAA,IAAIwgC,UAAAA,EACAQ,eAAAA,EAAAA;MACJ,OAAOV,SAAAA;EACX;EACO,SAASuB,iBAAAA,CAAkB5C,QAAQ,EAAEW,QAAQ,EAAEO,MAAM,EAAA;MACxD,IAAIlB,QAAAA,CAAS6C,sBAAsB,EAAE;UACjC,OAAO5B,uBAAAA,CAAwBjB,UAAUW,QAAAA,EAAUO,MAAAA,CAAAA;EACvD,IAAA;EACA,IAAA,MAAM,EAAEhB,MAAM,EAAE4C,kBAAkB,EAAEC,oBAAoB,EAAErM,KAAK,EAAEqI,oBAAoB,EAAE6B,wBAAwB,EAAEP,cAAc,EAAEzF,MAAM,EAAG,GAAGoF,QAAAA;MAC7I,IAAIE,MAAAA,CAAOl/B,MAAM,KAAK,CAAA,IAAK45B,OAAO55B,MAAM,KAAK,GACzC,OAAO,CAAA;EACX,IAAA,MAAMmgC,aAAAA,GAAgBtE,gBAAAA,EAAAA;MACtB,MAAME,cAAAA,GAAiBoE,cAAcpE,cAAc;EACnD,IAAA,MAAMqE,WAAWT,QAAAA,GAAW5D,cAAAA;EAC5B,IAAA,IAAIsE,SAAAA,GAAY,CAAA;EAChB,IAAA,IAAIC,KAAAA,GAAQ,CAAA;EACZ,IAAA,IAAIC,UAAAA,GAAa,KAAA;EACjB,IAAA,IAAIC,qBAAAA,GAAwB,CAAA;EAC5B,IAAA,IAAIC,sBAAAA,GAAyB,CAAA;EAC7B,IAAA,IAAIC,mBAAAA,GAAsB,CAAA;EAC1B,IAAA,IAAIC,oBAAAA,GAAuB,CAAA;EAC3B,IAAA,IAAIC,2BAA2B,EAAC;EAChC,IAAA,IAAIoB,oBAAAA,GAAuB,CAAA;EAC3B,IAAA,IAAInB,sBAAAA,GAAyB,CAAA;EAC7B,IAAA,IAAIoB,gBAAAA,GAAmB,IAAA;MACvB,SAASnB,iBAAAA,GAAAA;EACLF,QAAAA,wBAAAA,GAA2B,EAAC;UAC5BoB,oBAAAA,GAAuB,CAAA;UACvBnB,sBAAAA,GAAyB,CAAA;UACzBoB,gBAAAA,GAAmB,IAAA;EACvB,IAAA;MACA,SAASlB,eAAAA,CAAgBrH,kBAAkBgH,mBAAmB,EAAEM,mBAAmBL,oBAAoB,EAAEjF,QAAQ4E,KAAK,EAAA;EAClHD,QAAAA,SAAAA,EAAAA;UACAH,MAAAA,GAAS;cACLzG,iBAAAA,EAAmB+G,qBAAAA;cACnBS,kBAAAA,EAAoBR,sBAAAA;EACpB/G,YAAAA,eAAAA;EACAsH,YAAAA,gBAAAA;EACAtF,YAAAA;EACJ,SAAA,CAAA;UACA4E,KAAAA,GAAQ,CAAA;UACRC,UAAAA,GAAa,KAAA;EACbO,QAAAA,iBAAAA,EAAAA;EACJ,IAAA;MACA,SAASI,kBAAAA,CAAmBjC,YAAY,EAAEvD,KAAK,EAAA;UAC3C6E,UAAAA,GAAa,IAAA;UACbC,qBAAAA,GAAwBvB,YAAAA;UACxBwB,sBAAAA,GAAyB,CAAA;EACzBC,QAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;UACrC0B,oBAAAA,GAAuB,CAAA;UACvBL,KAAAA,GAAQ5E,KAAAA;EACZ,IAAA;EACA,IAAA,SAASyF,mBAAAA,CAAoBlC,YAAY,EAAEmC,aAAa,EAAE1F,KAAK,EAAA;UAC3D6E,UAAAA,GAAa,IAAA;UACbC,qBAAAA,GAAwBvB,YAAAA;UACxBwB,sBAAAA,GAAyBW,aAAAA;UACzBV,mBAAAA,GAAsBzB,YAAAA;EACtB0B,QAAAA,oBAAAA,GAAuBS,aAAAA,GAAgB,CAAA;UACvCd,KAAAA,GAAQ5E,KAAAA;EACZ,IAAA;MACA,SAAS2F,kBAAAA,CAAmBpC,YAAY,EAAEvD,KAAK,EAAA;EAC3C,QAAA,IAAI,CAAC6E,UAAAA,EAAY;EACbW,YAAAA,kBAAAA,CAAmBjC,YAAAA,EAAcvD,KAAAA,CAAAA;EACjC,YAAA;EACJ,QAAA;UACA4E,KAAAA,IAAS5E,KAAAA;EACTgF,QAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;UACrC0B,oBAAAA,GAAuB,CAAA;EAC3B,IAAA;EACA,IAAA,SAASuB,kCAAkCzO,IAAI,EAAEiO,UAAU,EAAEzC,YAAY,EAAEkD,YAAY,EAAA;EACnF,QAAA,IAAI,CAACT,UAAAA,EACD;EACJ,QAAA,MAAMU,aAAa3O,IAAAA,KAAS,KAAA,GAAQ,CAAA,GAAIqO,kBAAkB,CAAC7C,YAAAA,CAAa;EACxE,QAAA,MAAMoD,eAAe5O,IAAAA,KAAS,KAAA,GAAQ0O,YAAAA,GAAeJ,oBAAoB,CAAC9C,YAAAA,CAAa;EACvF2B,QAAAA,wBAAAA,GAA2B3B,YAAAA,GAAe,CAAA;EAC1C+C,QAAAA,oBAAAA,GAAuB1B,QAAQ6B,YAAAA,GAAeC,UAAAA;EAC9CvB,QAAAA,sBAAAA,GAAyBP,QAAQ6B,YAAAA,GAAeE,YAAAA;UAChDJ,gBAAAA,GAAmBxO,IAAAA;EACvB,IAAA;MACA,SAAS6N,0BAAAA,CAA2BrC,YAAY,EAAEgC,kBAAkB,EAAA;UAChE,MAAMM,WAAAA,GAAcxD,oBAAoB,CAACkB,YAAAA,CAAa;EACtD,QAAA,IAAK,IAAI3a,CAAAA,GAAI2c,kBAAAA,EAAoB3c,IAAIid,WAAAA,CAAYvhC,MAAM,EAAEskB,CAAAA,EAAAA,CAAK;cAC1D,MAAMkd,EAAAA,GAAKD,WAAW,CAACjd,CAAAA,CAAE;EACzB,YAAA,IAAI,CAACic,UAAAA,EAAY;EACbY,gBAAAA,mBAAAA,CAAoBlC,cAAc3a,CAAAA,EAAGkd,EAAAA,CAAAA;cACzC,CAAA,MACK,IAAIlB,KAAAA,GAAQkB,EAAAA,GAAKpB,QAAAA,EAAU;EAC5BW,gBAAAA,eAAAA,EAAAA;EACAI,gBAAAA,mBAAAA,CAAoBlC,cAAc3a,CAAAA,EAAGkd,EAAAA,CAAAA;cACzC,CAAA,MACK;kBACDlB,KAAAA,IAASkB,EAAAA;kBACTd,mBAAAA,GAAsBzB,YAAAA;EACtB0B,gBAAAA,oBAAAA,GAAuBrc,CAAAA,GAAI,CAAA;EAC/B,YAAA;EACJ,QAAA;EACA,QAAA,IAAIic,cAAcG,mBAAAA,KAAwBzB,YAAAA,IAAgB0B,oBAAAA,KAAyBY,WAAAA,CAAYvhC,MAAM,EAAE;EACnG0gC,YAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;cACrC0B,oBAAAA,GAAuB,CAAA;EAC3B,QAAA;EACJ,IAAA;EACA,IAAA,SAAS2B,mCAAmCrD,YAAY,EAAA;UACpD,IAAIgD,gBAAAA,KAAqB,eACrB,OAAO,KAAA;UACX,MAAMM,SAAAA,GAAYxE,oBAAoB,CAACkB,YAAAA,CAAa;UACpD,IAAIsD,SAAAA,IAAa,MACb,OAAO,KAAA;UACX,MAAM,EAAE1C,QAAQ,EAAEC,WAAW,EAAE,GAAGN,kBAAAA,CAAmB+C,SAAAA,EAAWjC,KAAAA,EAAOX,QAAAA,EAAU5D,cAAAA,EAAgB6D,wBAAAA,CAAAA;UACjG,IAAIC,QAAAA,KAAa,GACb,OAAO,KAAA;UACXS,KAAAA,GAAQR,WAAAA;UACRY,mBAAAA,GAAsBzB,YAAAA;UACtB0B,oBAAAA,GAAuBd,QAAAA;EACvBiB,QAAAA,iBAAAA,EAAAA;UACA,IAAIjB,QAAAA,KAAa0C,SAAAA,CAAUviC,MAAM,EAAE;EAC/B0gC,YAAAA,mBAAAA,GAAsBzB,YAAAA,GAAe,CAAA;cACrC0B,oBAAAA,GAAuB,CAAA;cACvB,OAAO,IAAA;EACX,QAAA;UACAI,eAAAA,CAAgB9B,YAAAA,EAAcY,UAAUC,WAAAA,GAAcF,wBAAAA,CAAAA;EACtD0B,QAAAA,0BAAAA,CAA2BrC,YAAAA,EAAcY,QAAAA,CAAAA;UACzC,OAAO,IAAA;EACX,IAAA;EACA,IAAA,SAAS2C,eAAeC,KAAK,EAAA;EACzBpC,QAAAA,SAAAA,EAAAA;UACAH,MAAAA,GAAS;EACLzG,YAAAA,iBAAAA,EAAmBgJ,MAAMhJ,iBAAiB;cAC1CwH,kBAAAA,EAAoB,CAAA;EACpBvH,YAAAA,eAAAA,EAAiB+I,MAAM9I,uBAAuB;cAC9CqH,gBAAAA,EAAkB,CAAA;cAClBtF,KAAAA,EAAO;EACX,SAAA,CAAA;EACAoF,QAAAA,iBAAAA,EAAAA;EACJ,IAAA;EACA,IAAA,IAAK,IAAI4B,UAAAA,GAAa,CAAA,EAAGA,aAAa9I,MAAAA,CAAO55B,MAAM,EAAE0iC,UAAAA,EAAAA,CAAc;UAC/D,MAAMD,KAAAA,GAAQ7I,MAAM,CAAC8I,UAAAA,CAAW;EAChC,QAAA,IAAID,KAAAA,CAAMhJ,iBAAiB,KAAKgJ,KAAAA,CAAM/I,eAAe,EAAE;cACnD8I,cAAAA,CAAeC,KAAAA,CAAAA;EACf,YAAA;EACJ,QAAA;UACAlC,UAAAA,GAAa,KAAA;UACbD,KAAAA,GAAQ,CAAA;EACRE,QAAAA,qBAAAA,GAAwBiC,MAAMhJ,iBAAiB;UAC/CgH,sBAAAA,GAAyB,CAAA;EACzBC,QAAAA,mBAAAA,GAAsB+B,MAAMhJ,iBAAiB;UAC7CkH,oBAAAA,GAAuB,CAAA;EACvBG,QAAAA,iBAAAA,EAAAA;UACA,IAAI/gC,CAAAA,GAAI0iC,MAAMhJ,iBAAiB;UAC/B,MAAO15B,CAAAA,GAAI0iC,KAAAA,CAAM/I,eAAe,CAAE;cAC9B,MAAMjG,IAAAA,GAAOiC,KAAK,CAAC31B,CAAAA,CAAE;cACrB,MAAM2hC,UAAAA,GAAajO,SAAS,OAAA,IAAWA,IAAAA,KAAS,qBAAqBA,IAAAA,KAAS,KAAA,IAASA,IAAAA,KAAS,kBAAA,IAAsBA,IAAAA,KAAS,aAAA;cAC/H,MAAMgO,CAAAA,GAAIhO,SAAS,KAAA,GAAQ0L,aAAAA,CAAcmB,OAAOjB,cAAAA,CAAAA,GAAkBH,MAAM,CAACn/B,CAAAA,CAAE;EAC3E,YAAA,IAAI0zB,SAAS,aAAA,EAAe;EACxB,gBAAA,IAAI8M,UAAAA,EAAY;EACZG,oBAAAA,mBAAAA,GAAsB3gC,CAAAA,GAAI,CAAA;sBAC1B4gC,oBAAAA,GAAuB,CAAA;EACvBC,oBAAAA,wBAAAA,GAA2B7gC,CAAAA,GAAI,CAAA;EAC/BiiC,oBAAAA,oBAAAA,GAAuB1B,KAAAA,GAAQV,wBAAAA;EAC/BiB,oBAAAA,sBAAAA,GAAyBP,KAAAA,GAAQV,wBAAAA;sBACjCqC,gBAAAA,GAAmBxO,IAAAA;EACvB,gBAAA;EACA1zB,gBAAAA,CAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACA,YAAA,IAAI,CAACwgC,UAAAA,EAAY;EACb,gBAAA,IAAIkB,IAAI9B,QAAAA,IAAY5B,oBAAoB,CAACh+B,CAAAA,CAAE,KAAK,IAAA,EAAM;EAClDuhC,oBAAAA,0BAAAA,CAA2BvhC,CAAAA,EAAG,CAAA,CAAA;kBAClC,CAAA,MACK;EACDmhC,oBAAAA,kBAAAA,CAAmBnhC,CAAAA,EAAG0hC,CAAAA,CAAAA;EAC1B,gBAAA;kBACAS,iCAAAA,CAAkCzO,IAAAA,EAAMiO,YAAY3hC,CAAAA,EAAG0hC,CAAAA,CAAAA;EACvD1hC,gBAAAA,CAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACA,YAAA,MAAM4hC,OAAOrB,KAAAA,GAAQmB,CAAAA;EACrB,YAAA,IAAIE,OAAOvB,QAAAA,EAAU;kBACjB,MAAMuC,oBAAAA,GAAuBrC,SAAS7M,IAAAA,KAAS,QAAQ,CAAA,GAAIqO,kBAAkB,CAAC/hC,CAAAA,CAAE,CAAD;kBAC/E,MAAM6iC,sBAAAA,GAAyBtC,SAAS7M,IAAAA,KAAS,QAAQgO,CAAAA,GAAIM,oBAAoB,CAAChiC,CAAAA,CAAE,CAAD;EACnF,gBAAA,IAAIkiC,qBAAqB,aAAA,IACrB9B,aAAAA,CAAclE,0BAA0B,IACxC+F,wBAAwB5B,QAAAA,EAAU;EAClCW,oBAAAA,eAAAA,CAAgBH,0BAA0B,CAAA,EAAGC,sBAAAA,CAAAA;EAC7C,oBAAA;EACJ,gBAAA;kBACA,IAAIoB,gBAAAA,KAAqB,aAAA,IAAiBK,kCAAAA,CAAmCviC,CAAAA,CAAAA,EAAI;EAC7EA,oBAAAA,CAAAA,EAAAA;EACA,oBAAA;EACJ,gBAAA;kBACA,IAAI2hC,UAAAA,IAAciB,wBAAwBvC,QAAAA,EAAU;EAChDiB,oBAAAA,kBAAAA,CAAmBthC,CAAAA,EAAG0hC,CAAAA,CAAAA;sBACtBV,eAAAA,CAAgBhhC,CAAAA,GAAI,GAAG,CAAA,EAAG6iC,sBAAAA,CAAAA;EAC1B7iC,oBAAAA,CAAAA,EAAAA;EACA,oBAAA;EACJ,gBAAA;kBACA,IAAI6gC,wBAAAA,IAA4B,CAAA,IAAKoB,oBAAAA,IAAwB5B,QAAAA,EAAU;EACnE,oBAAA,IAAIM,mBAAAA,GAAsBE,wBAAAA,IACrBF,mBAAAA,KAAwBE,wBAAAA,IAA4BD,uBAAuB,CAAA,EAAI;EAChFI,wBAAAA,eAAAA,EAAAA;EACA,wBAAA;EACJ,oBAAA;EACA,oBAAA,MAAM8B,gBAAAA,GAAmBjC,wBAAAA;EACzBG,oBAAAA,eAAAA,CAAgB8B,kBAAkB,CAAA,EAAGhC,sBAAAA,CAAAA;sBACrC9gC,CAAAA,GAAI8iC,gBAAAA;EACJ,oBAAA;EACJ,gBAAA;EACA,gBAAA,IAAIpB,IAAI9B,QAAAA,IAAY5B,oBAAoB,CAACh+B,CAAAA,CAAE,KAAK,IAAA,EAAM;EAClDghC,oBAAAA,eAAAA,EAAAA;EACAO,oBAAAA,0BAAAA,CAA2BvhC,CAAAA,EAAG,CAAA,CAAA;EAC9BA,oBAAAA,CAAAA,EAAAA;EACA,oBAAA;EACJ,gBAAA;EACAghC,gBAAAA,eAAAA,EAAAA;EACA,gBAAA;EACJ,YAAA;EACAM,YAAAA,kBAAAA,CAAmBthC,CAAAA,EAAG0hC,CAAAA,CAAAA;cACtBS,iCAAAA,CAAkCzO,IAAAA,EAAMiO,YAAY3hC,CAAAA,EAAG0hC,CAAAA,CAAAA;EACvD1hC,YAAAA,CAAAA,EAAAA;EACJ,QAAA;EACA,QAAA,IAAIwgC,UAAAA,EAAY;EACZ,YAAA,MAAMuC,eAAAA,GAAkBlC,wBAAAA,KAA6B6B,KAAAA,CAAM9I,uBAAuB,GAC5EkH,sBAAAA,GACAP,KAAAA;cACNS,eAAAA,CAAgB0B,KAAAA,CAAM9I,uBAAuB,EAAE,CAAA,EAAGmJ,eAAAA,CAAAA;EACtD,QAAA;EACJ,IAAA;MACA,OAAOzC,SAAAA;EACX;;ECxdA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA,IAAIvF,uBAAAA,GAA0B,IAAA;EAC9B;EACA;EACA,IAAIiI,uBAAuB,IAAIC,OAAAA,EAAAA;EAC/B,SAASvG,0BAAAA,GAAAA;EACL,IAAA,IAAI3B,4BAA4B,IAAA,EAAM;EAClCA,QAAAA,uBAAAA,GAA0B,IAAIjK,IAAAA,CAAKC,SAAS,CAACvvB,SAAAA,EAAW;cAAEwvB,WAAAA,EAAa;EAAW,SAAA,CAAA;EACtF,IAAA;MACA,OAAO+J,uBAAAA;EACX;EACA;EACA,SAASmI,oBAAoBC,eAAe,EAAA;EACxC,IAAqB;UACjB,OAAO;EACHhE,YAAAA,MAAAA,EAAQ,EAAE;EACV4C,YAAAA,kBAAAA,EAAoB,EAAE;EACtBC,YAAAA,oBAAAA,EAAsB,EAAE;EACxBrM,YAAAA,KAAAA,EAAO,EAAE;cACTmM,sBAAAA,EAAwB,IAAA;cACxB7R,SAAAA,EAAW,IAAA;EACX+N,YAAAA,oBAAAA,EAAsB,EAAE;cACxB6B,wBAAAA,EAA0B,CAAA;cAC1BP,cAAAA,EAAgB,CAAA;EAChBzF,YAAAA,MAAAA,EAAQ,EAAE;EACVuJ,YAAAA,QAAAA,EAAU;EACd,SAAA;EACJ,IAAA;EAaJ;EACA,SAASC,iBAAAA,CAAkBC,OAAO,EAAElD,aAAa,EAAA;EAC7C,IAAA,MAAMmD,QAAQ,EAAE;EAChB,IAAA,IAAIC,YAAY,EAAE;EAClB,IAAA,IAAIC,SAAAA,GAAY,CAAA;EAChB,IAAA,IAAIC,eAAAA,GAAkB,KAAA;EACtB,IAAA,IAAIC,wBAAAA,GAA2B,KAAA;EAC/B,IAAA,IAAIC,sBAAAA,GAAyB,KAAA;MAC7B,SAASC,QAAAA,GAAAA;UACL,IAAIL,SAAAA,CAAUvjC,MAAM,KAAK,CAAA,EACrB;EACJsjC,QAAAA,KAAAA,CAAMz9B,IAAI,CAAC;cACP6M,IAAAA,EAAM6wB,SAAAA,CAAUvjC,MAAM,KAAK,CAAA,GAAIujC,SAAS,CAAC,CAAA,CAAE,GAAGA,SAAAA,CAAUr2B,IAAI,CAAC,EAAA,CAAA;cAC7DkL,KAAAA,EAAOorB;EACX,SAAA,CAAA;EACAD,QAAAA,SAAAA,GAAY,EAAE;UACdE,eAAAA,GAAkB,KAAA;UAClBC,wBAAAA,GAA2B,KAAA;UAC3BC,sBAAAA,GAAyB,KAAA;EAC7B,IAAA;EACA,IAAA,SAASE,SAAAA,CAAU1F,QAAQ,EAAE/lB,KAAK,EAAE0rB,mBAAmB,EAAA;UACnDP,SAAAA,GAAY;EAACpF,YAAAA;EAAS,SAAA;UACtBqF,SAAAA,GAAYprB,KAAAA;UACZqrB,eAAAA,GAAkBK,mBAAAA;EAClBJ,QAAAA,wBAAAA,GAA2BrP,oBAAAA,CAAqB8J,QAAAA,CAAAA;UAChDwF,sBAAAA,GAAyB1R,UAAAA,CAAW9pB,GAAG,CAACg2B,QAAAA,CAAAA;EAC5C,IAAA;MACA,SAAS4F,YAAAA,CAAa5F,QAAQ,EAAE2F,mBAAmB,EAAA;EAC/CP,QAAAA,SAAAA,CAAU19B,IAAI,CAACs4B,QAAAA,CAAAA;EACfsF,QAAAA,eAAAA,GAAkBA,eAAAA,IAAmBK,mBAAAA;EACrC,QAAA,MAAME,+BAA+B3P,oBAAAA,CAAqB8J,QAAAA,CAAAA;EAC1D,QAAA,IAAIA,SAASn+B,MAAM,KAAK,KAAK0xB,qBAAAA,CAAsBvpB,GAAG,CAACg2B,QAAAA,CAAAA,EAAW;EAC9DuF,YAAAA,wBAAAA,GAA2BA,wBAAAA,IAA4BM,4BAAAA;UAC3D,CAAA,MACK;cACDN,wBAAAA,GAA2BM,4BAAAA;EAC/B,QAAA;UACAL,sBAAAA,GAAyB,KAAA;EAC7B,IAAA;EACA,IAAA,KAAK,MAAM1F,EAAAA,IAAMxB,0BAAAA,EAAAA,CAA6BlK,OAAO,CAAC8Q,OAAAA,CAAAA,CAAU;UAC5D,MAAMlF,QAAAA,GAAWF,GAAG1L,OAAO;EAC3B,QAAA,MAAMuR,sBAAsBzS,KAAAA,CAAM8M,QAAAA,CAAAA;UAClC,IAAIoF,SAAAA,CAAUvjC,MAAM,KAAK,CAAA,EAAG;cACxB6jC,SAAAA,CAAU1F,QAAAA,EAAUF,EAAAA,CAAGxmB,KAAK,EAAEqsB,mBAAAA,CAAAA;EAC9B,YAAA;EACJ,QAAA;EACA,QAAA,IAAIH,sBAAAA,IACAlS,YAAAA,CAAatpB,GAAG,CAACg2B,QAAAA,CAAAA,IACjBzM,qBAAAA,CAAsBvpB,GAAG,CAACg2B,QAAAA,CAAAA,IACzBgC,aAAAA,CAAchH,yBAAyB,IACpC2K,uBACAJ,wBAAAA,EAA2B;EAC/BK,YAAAA,YAAAA,CAAa5F,QAAAA,EAAU2F,mBAAAA,CAAAA;EACvB,YAAA;EACJ,QAAA;UACA,IAAI,CAACL,eAAAA,IAAmB,CAACK,mBAAAA,EAAqB;EAC1CC,YAAAA,YAAAA,CAAa5F,QAAAA,EAAU2F,mBAAAA,CAAAA;EACvB,YAAA;EACJ,QAAA;EACAF,QAAAA,QAAAA,EAAAA;UACAC,SAAAA,CAAU1F,QAAAA,EAAUF,EAAAA,CAAGxmB,KAAK,EAAEqsB,mBAAAA,CAAAA;EAClC,IAAA;EACAF,IAAAA,QAAAA,EAAAA;MACA,OAAON,KAAAA;EACX;EAkCA,SAASW,gBAAgBC,QAAQ,EAAE9I,IAAI,EAAE8H,eAAe,EAAE3I,SAAS,EAAA;EAC/D,IAAA,MAAM4F,aAAAA,GAAgBtE,gBAAAA,EAAAA;MACtB,MAAM,EAAER,KAAK,EAAEwC,eAAe,EAAE,GAAGgB,uBAAAA,CAAwBzD,IAAAA,EAAMuB,mBAAAA,CAAoBuH,QAAAA,CAASrU,UAAU,CAAA,CAAA;EACxG,IAAA,MAAM+P,wBAAAA,GAA2BhC,wBAAAA,CAAyB,GAAA,EAAKtC,iBAAAA,CAAkB,KAAKD,KAAAA,CAAAA,EAAQwC,eAAAA,CAAAA;EAC9F,IAAA,MAAMsG,UAAAA,GAAavG,wBAAAA,CAAyB,GAAA,EAAKtC,iBAAAA,CAAkB,KAAKD,KAAAA,CAAAA,EAAQwC,eAAAA,CAAAA;EAChF,IAAA,MAAMwB,iBAAiB8E,UAAAA,GAAa,CAAA;EACpC,IAAA,IAAID,QAAAA,CAASpV,GAAG,KAAK,CAAA,EACjB,OAAOmU,mBAAAA,CAAoBC,CAAAA;EAC/B,IAAA,MAAMhE,SAAS,EAAE;EACjB,IAAA,MAAM4C,qBAAqB,EAAE;EAC7B,IAAA,MAAMC,uBAAuB,EAAE;EAC/B,IAAA,MAAMrM,QAAQ,EAAE;EAChB,IAAA,IAAImM,sBAAAA,GAAyBqC,QAAAA,CAAStK,MAAM,CAAC55B,MAAM,IAAI,CAAA;MACvD,MAAM8vB,SAAAA,GAA8B,EAAE,CAAG;EACzC,IAAA,MAAMiO,uBAAuB,EAAE;MAC/B,MAAMoF,QAAAA,GAAWD,eAAAA,GAAkB,EAAE,GAAG,IAAA;MACxC,MAAMkB,4BAAAA,GAA+B5kC,KAAAA,CAAM6F,IAAI,CAAC;EAAErF,QAAAA,MAAAA,EAAQkkC,SAASpV;EAAI,KAAA,CAAA;EACvE,IAAA,SAASuV,mBAAAA,CAAoB3xB,IAAI,EAAEgpB,KAAK,EAAE4I,iBAAiB,EAAEC,mBAAmB,EAAE9Q,IAAI,EAAErb,KAAK,EAAEosB,mBAAmB,EAAA;EAC9G,QAAA,IAAI/Q,IAAAA,KAAS,MAAA,IAAUA,IAAAA,KAAS,OAAA,IAAWA,SAAS,kBAAA,EAAoB;cACpEoO,sBAAAA,GAAyB,KAAA;EAC7B,QAAA;EACA3C,QAAAA,MAAAA,CAAOr5B,IAAI,CAAC61B,KAAAA,CAAAA;EACZoG,QAAAA,kBAAAA,CAAmBj8B,IAAI,CAACy+B,iBAAAA,CAAAA;EACxBvC,QAAAA,oBAAAA,CAAqBl8B,IAAI,CAAC0+B,mBAAAA,CAAAA;EAC1B7O,QAAAA,KAAAA,CAAM7vB,IAAI,CAAC4tB,IAAAA,CAAAA;EACX3D,QAAAA,SAAAA,EAAWjqB,IAAAA,CAAKuS,KAAAA,CAAAA;EAChB2lB,QAAAA,oBAAAA,CAAqBl4B,IAAI,CAAC2+B,mBAAAA,CAAAA;EAC1B,QAAA,IAAIrB,QAAAA,KAAa,IAAA,EACbA,QAAAA,CAASt9B,IAAI,CAAC6M,IAAAA,CAAAA;EACtB,IAAA;MACA,SAAS+xB,uBAAAA,CAAwB/xB,IAAI,EAAE+gB,IAAI,EAAErb,KAAK,EAAEgd,QAAQ,EAAEsP,mBAAmB,EAAA;UAC7E,MAAMC,WAAAA,GAAcrJ,kBAAkB5oB,IAAAA,EAAM2oB,KAAAA,CAAAA;UAC5C,MAAMK,KAAAA,GAAQkC,wBAAAA,CAAyBlrB,IAAAA,EAAMiyB,WAAAA,EAAa9G,eAAAA,CAAAA;EAC1D,QAAA,MAAMyG,oBAAoB7Q,IAAAA,KAAS,OAAA,IAAWA,SAAS,iBAAA,IAAqBA,IAAAA,KAAS,qBAC/E,CAAA,GACAiI,KAAAA;EACN,QAAA,MAAM6I,mBAAAA,GAAsB9Q,IAAAA,KAAS,OAAA,IAAWA,IAAAA,KAAS,qBACnD,CAAA,GACAiI,KAAAA;EACN,QAAA,IAAIgJ,mBAAAA,IAAuBtP,QAAAA,IAAY1iB,IAAAA,CAAK1S,MAAM,GAAG,CAAA,EAAG;EACpD,YAAA,IAAI4kC,OAAAA,GAAU,eAAA;EACd,YAAA,IAAIlO,oBAAoBhkB,IAAAA,CAAAA,EAAO;kBAC3BkyB,OAAAA,GAAU,cAAA;cACd,CAAA,MACK,IAAIzE,aAAAA,CAAcnE,kCAAkC,EAAE;kBACvD4I,OAAAA,GAAU,kBAAA;EACd,YAAA;EACA,YAAA,MAAMrD,WAAAA,GAAczD,8BAAAA,CAA+BprB,IAAAA,EAAMiyB,WAAAA,EAAatJ,OAAOwC,eAAAA,EAAiB+G,OAAAA,CAAAA;EAC9FP,YAAAA,mBAAAA,CAAoB3xB,IAAAA,EAAMgpB,KAAAA,EAAO4I,iBAAAA,EAAmBC,mBAAAA,EAAqB9Q,MAAMrb,KAAAA,EAAOmpB,WAAAA,CAAAA;EACtF,YAAA;EACJ,QAAA;EACA8C,QAAAA,mBAAAA,CAAoB3xB,IAAAA,EAAMgpB,KAAAA,EAAO4I,iBAAAA,EAAmBC,mBAAAA,EAAqB9Q,MAAMrb,KAAAA,EAAO,IAAA,CAAA;EAC1F,IAAA;EACA,IAAA,IAAK,IAAIysB,EAAAA,GAAK,CAAA,EAAGA,KAAKX,QAAAA,CAASpV,GAAG,EAAE+V,EAAAA,EAAAA,CAAM;EACtCT,QAAAA,4BAA4B,CAACS,EAAAA,CAAG,GAAG3F,MAAAA,CAAOl/B,MAAM;EAChD,QAAA,MAAMqjC,OAAAA,GAAUa,QAAAA,CAASvQ,KAAK,CAACkR,EAAAA,CAAG;EAClC,QAAA,MAAMC,WAAAA,GAAcZ,QAAAA,CAAS1Q,UAAU,CAACqR,EAAAA,CAAG;EAC3C,QAAA,MAAME,OAAAA,GAAUb,QAAAA,CAASxO,KAAK,CAACmP,EAAAA,CAAG;EAClC,QAAA,MAAMG,QAAAA,GAAWd,QAAAA,CAASrO,MAAM,CAACgP,EAAAA,CAAG;EACpC,QAAA,IAAIE,YAAY,aAAA,EAAe;EAC3BV,YAAAA,mBAAAA,CAAoBhB,OAAAA,EAAS,CAAA,EAAGzD,wBAAAA,EAA0BA,wBAAAA,EAA0BmF,SAASC,QAAAA,EAAU,IAAA,CAAA;EACvG,YAAA;EACJ,QAAA;EACA,QAAA,IAAID,YAAY,YAAA,EAAc;EAC1BV,YAAAA,mBAAAA,CAAoBhB,OAAAA,EAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG0B,SAASC,QAAAA,EAAU,IAAA,CAAA;EACzD,YAAA;EACJ,QAAA;EACA,QAAA,IAAID,YAAY,KAAA,EAAO;EACnBV,YAAAA,mBAAAA,CAAoBhB,OAAAA,EAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG0B,SAASC,QAAAA,EAAU,IAAA,CAAA;EACzD,YAAA;EACJ,QAAA;UACA,MAAMC,UAAAA,GAAa3J,kBAAkB+H,OAAAA,EAAShI,KAAAA,CAAAA;EAC9C,QAAA,IAAI0J,OAAAA,KAAY,MAAA,IAAUE,UAAAA,CAAWrJ,WAAW,EAAE;cAC9C,MAAMsJ,SAAAA,GAAY9B,kBAAkBC,OAAAA,EAASlD,aAAAA,CAAAA;EAC7C,YAAA,MAAMgF,aAAAA,GAEAD,SAAAA;EACN,YAAA,IAAK,IAAInlC,CAAAA,GAAI,CAAA,EAAGA,IAAIolC,aAAAA,CAAcnlC,MAAM,EAAED,CAAAA,EAAAA,CAAK;kBAC3C,MAAMqlC,IAAAA,GAAOD,aAAa,CAACplC,CAAAA,CAAE;EAC7B0kC,gBAAAA,uBAAAA,CAAwBW,IAAAA,CAAK1yB,IAAI,EAAE,MAAA,EAAQsyB,WAAWI,IAAAA,CAAKhtB,KAAK,EAAE0sB,WAAAA,EAAyC,CAACzT,KAAAA,CAAM+T,KAAK1yB,IAAI,CAAA,CAAA;EAC/H,YAAA;EACA,YAAA;EACJ,QAAA;UACA+xB,uBAAAA,CAAwBpB,OAAAA,EAAS0B,OAAAA,EAASC,QAAAA,EAAUF,WAAAA,EAAa,IAAA,CAAA;EACrE,IAAA;EACA,IAAA,MAAMlL,SAASyL,iCAAAA,CAAkCnB,QAAAA,CAAStK,MAAM,EAAEwK,4BAAAA,EAA8BlF,OAAOl/B,MAAM,CAAA;EAC7G,IAAA,MAAMgwB,YAAYF,SAAAA,KAAc,IAAA,GAAO,OAAOF,oBAAAA,CAAqBsU,QAAAA,CAASrU,UAAU,EAAEC,SAAAA,CAAAA;EACxF,IAAA,IAAIqT,aAAa,IAAA,EAAM;UACnB,OAAO;EACHjE,YAAAA,MAAAA;EACA4C,YAAAA,kBAAAA;EACAC,YAAAA,oBAAAA;EACArM,YAAAA,KAAAA;EACAmM,YAAAA,sBAAAA;EACA7R,YAAAA,SAAAA;EACA+N,YAAAA,oBAAAA;EACA6B,YAAAA,wBAAAA;EACAP,YAAAA,cAAAA;EACAzF,YAAAA,MAAAA;EACAuJ,YAAAA;EACJ,SAAA;EACJ,IAAA;MACA,OAAO;EACHjE,QAAAA,MAAAA;EACA4C,QAAAA,kBAAAA;EACAC,QAAAA,oBAAAA;EACArM,QAAAA,KAAAA;EACAmM,QAAAA,sBAAAA;EACA7R,QAAAA,SAAAA;EACA+N,QAAAA,oBAAAA;EACA6B,QAAAA,wBAAAA;EACAP,QAAAA,cAAAA;EACAzF,QAAAA;EACJ,KAAA;EACJ;EACA,SAASyL,iCAAAA,CAAkCzL,MAAM,EAAEwK,4BAA4B,EAAEkB,uBAAuB,EAAA;EACpG,IAAA,MAAMC,iBAAiB,EAAE;EACzB,IAAA,IAAK,IAAIxlC,CAAAA,GAAI,CAAA,EAAGA,IAAI65B,MAAAA,CAAO55B,MAAM,EAAED,CAAAA,EAAAA,CAAK;UACpC,MAAM0iC,KAAAA,GAAQ7I,MAAM,CAAC75B,CAAAA,CAAE;EACvB,QAAA,MAAM05B,iBAAAA,GAAoBgJ,KAAAA,CAAMhJ,iBAAiB,GAAG2K,4BAAAA,CAA6BpkC,MAAM,GACjFokC,4BAA4B,CAAC3B,KAAAA,CAAMhJ,iBAAiB,CAAC,GACrD6L,uBAAAA;EACN,QAAA,MAAM5L,eAAAA,GAAkB+I,KAAAA,CAAM/I,eAAe,GAAG0K,4BAAAA,CAA6BpkC,MAAM,GAC7EokC,4BAA4B,CAAC3B,KAAAA,CAAM/I,eAAe,CAAC,GACnD4L,uBAAAA;EACN,QAAA,MAAM3L,uBAAAA,GAA0B8I,KAAAA,CAAM9I,uBAAuB,GAAGyK,4BAAAA,CAA6BpkC,MAAM,GAC7FokC,4BAA4B,CAAC3B,KAAAA,CAAM9I,uBAAuB,CAAC,GAC3D2L,uBAAAA;EACNC,QAAAA,cAAAA,CAAe1/B,IAAI,CAAC;EAChB4zB,YAAAA,iBAAAA;EACAC,YAAAA,eAAAA;EACAC,YAAAA;EACJ,SAAA,CAAA;EACJ,IAAA;MACA,OAAO4L,cAAAA;EACX;EACA,SAASC,gBAAgB9yB,IAAI,EAAE0oB,IAAI,EAAE8H,eAAe,EAAEjzB,OAAO,EAAA;MACzD,MAAMsqB,SAAAA,GAAkC,QAAA;EACxC,IAAA,MAAM2J,QAAAA,GAAW5J,WAAAA,CAAY5nB,IAAAA,EAAMmpB,gBAAAA,EAAAA,EAAoB5rB,SAASmgB,UAAAA,EAAYmK,SAAAA,CAAAA;MAC5E,OAAO0J,eAAAA,CAAgBC,QAAAA,EAAU9I,IAAAA,EAAM8H,eAAiB3I,CAAAA;EAC5D;EAkBA;EACA;EACO,SAASkL,mBAAAA,CAAoB/yB,IAAI,EAAE0oB,IAAI,EAAEnrB,OAAO,EAAA;MACnD,OAAOu1B,eAAAA,CAAgB9yB,IAAAA,EAAM0oB,IAAAA,EAAM,IAAA,EAAMnrB,OAAAA,CAAAA;EAC7C;EACA,SAASy1B,oBAAoB1G,QAAQ,EAAA;MACjC,OAAOA,QAAAA;EACX;EAiBA,SAAS2G,mBAAAA,CAAoB1G,YAAY,EAAEkE,QAAQ,EAAE9H,KAAK,EAAA;MACtD,IAAI2C,SAAAA,GAAY3C,KAAAA,CAAMhzB,GAAG,CAAC42B,YAAAA,CAAAA;MAC1B,IAAIjB,SAAAA,KAAcz8B,WACd,OAAOy8B,SAAAA;EACXA,IAAAA,SAAAA,GAAY,EAAE;EACd,IAAA,MAAMP,iBAAAA,GAAoBhB,0BAAAA,EAAAA;MAC1B,KAAK,MAAMwB,MAAMR,iBAAAA,CAAkBlL,OAAO,CAAC4Q,QAAQ,CAAClE,aAAa,CAAA,CAAG;UAChEjB,SAAAA,CAAUn4B,IAAI,CAACo4B,EAAAA,CAAG1L,OAAO,CAAA;EAC7B,IAAA;MACA8I,KAAAA,CAAMjzB,GAAG,CAAC62B,YAAAA,EAAcjB,SAAAA,CAAAA;MACxB,OAAOA,SAAAA;EACX;EACA,SAAS4H,iBAAiB5G,QAAQ,EAAA;MAC9B,IAAI3D,KAAAA,GAAQ0H,oBAAAA,CAAqB16B,GAAG,CAAC22B,QAAAA,CAAAA;MACrC,IAAI3D,KAAAA,KAAU95B,WACV,OAAO85B,KAAAA;EACXA,IAAAA,KAAAA,GAAQ,IAAIrzB,GAAAA,EAAAA;MACZ+6B,oBAAAA,CAAqB36B,GAAG,CAAC42B,QAAAA,EAAU3D,KAAAA,CAAAA;MACnC,OAAOA,KAAAA;EACX;EACA,SAASwK,2BAA2BnQ,KAAK,EAAE+D,iBAAiB,EAAEwH,kBAAkB,EAAEvH,eAAe,EAAA;EAC7F,IAAA,OAAQA,eAAAA,GAAkB,CAAA,IACtBhE,KAAK,CAACgE,eAAAA,GAAkB,CAAA,CAAE,KAAK,aAAA,IAC/B,EAAED,iBAAAA,KAAsBC,eAAAA,IAAmBuH,qBAAqB,CAAA,CAAA;EACxE;EACA,SAAS6E,sBAAAA,CAAuB3C,QAAQ,EAAEzN,KAAK,EAAE2F,KAAK,EAAE5B,iBAAiB,EAAEwH,kBAAkB,EAAEvH,eAAe,EAAEsH,gBAAgB,EAAA;EAC5H,IAAA,IAAItuB,IAAAA,GAAO,EAAA;EACX,IAAA,MAAMqzB,2BAAAA,GAA8BF,0BAAAA,CAA2BnQ,KAAAA,EAAO+D,iBAAAA,EAAmBwH,kBAAAA,EAAoBvH,eAAAA,CAAAA;EAC7G,IAAA,IAAK,IAAI35B,CAAAA,GAAI05B,iBAAAA,EAAmB15B,CAAAA,GAAI25B,iBAAiB35B,CAAAA,EAAAA,CAAK;UACtD,IAAI21B,KAAK,CAAC31B,CAAAA,CAAE,KAAK,iBAAiB21B,KAAK,CAAC31B,CAAAA,CAAE,KAAK,YAAA,EAC3C;UACJ,IAAIA,CAAAA,KAAM05B,iBAAAA,IAAqBwH,kBAAAA,GAAqB,CAAA,EAAG;cACnDvuB,IAAAA,IAAQizB,mBAAAA,CAAoB5lC,GAAGojC,QAAAA,EAAU9H,KAAAA,CAAAA,CAAO16B,KAAK,CAACsgC,kBAAAA,CAAAA,CAAoB/zB,IAAI,CAAC,EAAA,CAAA;UACnF,CAAA,MACK;cACDwF,IAAAA,IAAQywB,QAAQ,CAACpjC,CAAAA,CAAE;EACvB,QAAA;EACJ,IAAA;EACA,IAAA,IAAIihC,mBAAmB,CAAA,EAAG;EACtB,QAAA,IAAI+E,6BACArzB,IAAAA,IAAQ,GAAA;EACZA,QAAAA,IAAAA,IAAQizB,mBAAAA,CAAoBjM,eAAAA,EAAiByJ,QAAAA,EAAU9H,KAAAA,CAAAA,CAAO16B,KAAK,CAAC84B,iBAAAA,KAAsBC,eAAAA,GAAkBuH,kBAAAA,GAAqB,CAAA,EAAGD,gBAAAA,CAAAA,CAAkB9zB,IAAI,CAAC,EAAA,CAAA;EAC/J,IAAA,CAAA,MACK,IAAI64B,2BAAAA,EAA6B;UAClCrzB,IAAAA,IAAQ,GAAA;EACZ,IAAA;MACA,OAAOA,IAAAA;EACX;EACA,SAASszB,gBAAAA,CAAiBhH,QAAQ,EAAE3D,KAAK,EAAEK,KAAK,EAAEjC,iBAAiB,EAAEwH,kBAAkB,EAAEvH,eAAe,EAAEsH,gBAAgB,EAAA;MACtH,OAAO;UACHtuB,IAAAA,EAAMozB,sBAAAA,CAAuB9G,QAAAA,CAASmE,QAAQ,EAAEnE,QAAAA,CAAStJ,KAAK,EAAE2F,KAAAA,EAAO5B,iBAAAA,EAAmBwH,kBAAAA,EAAoBvH,eAAAA,EAAiBsH,gBAAAA,CAAAA;EAC/HtF,QAAAA,KAAAA;UACAtjB,KAAAA,EAAO;cACH6mB,YAAAA,EAAcxF,iBAAAA;cACd2H,aAAAA,EAAeH;EACnB,SAAA;UACAjb,GAAAA,EAAK;cACDiZ,YAAAA,EAAcvF,eAAAA;cACd0H,aAAAA,EAAeJ;EACnB;EACJ,KAAA;EACJ;EACA,SAASiF,qBAAAA,CAAsBjH,QAAQ,EAAE3D,KAAK,EAAE6K,IAAI,EAAA;EAChD,IAAA,OAAOF,iBAAiBhH,QAAAA,EAAU3D,KAAAA,EAAO6K,IAAAA,CAAKxK,KAAK,EAAEwK,IAAAA,CAAKzM,iBAAiB,EAAEyM,IAAAA,CAAKjF,kBAAkB,EAAEiF,IAAAA,CAAKxM,eAAe,EAAEwM,KAAKlF,gBAAgB,CAAA;EACrJ;EAoDA;EACA;EACA;EACA;EACO,SAASmF,eAAAA,CAAgBnH,QAAQ,EAAEW,QAAQ,EAAEyG,UAAU,EAAA;EAC1D,IAAA,MAAMC,QAAQ,EAAE;EAChB,IAAA,IAAIrH,SAASE,MAAM,CAACl/B,MAAM,KAAK,GAC3B,OAAO;UAAEqgC,SAAAA,EAAW,CAAA;UAAGiG,MAAAA,EAAQ,CAAA;EAAGD,QAAAA;EAAM,KAAA;EAC5C,IAAA,MAAME,gBAAgBX,gBAAAA,CAAiB5G,QAAAA,CAAAA;EACvC,IAAA,MAAMqB,SAAAA,GAAYuB,iBAAAA,CAAkB8D,mBAAAA,CAAoB1G,QAAAA,CAAAA,EAAWW,UAAUuG,CAAAA,IAAAA,GAAAA;EACzEG,QAAAA,KAAAA,CAAMxgC,IAAI,CAACogC,qBAAAA,CAAsBjH,QAAAA,EAAUuH,aAAAA,EAAeL,IAAAA,CAAAA,CAAAA;EAC9D,IAAA,CAAA,CAAA;MACA,OAAO;EAAE7F,QAAAA,SAAAA;EAAWiG,QAAAA,MAAAA,EAAQjG,SAAAA,GAAY+F,UAAAA;EAAYC,QAAAA;EAAM,KAAA;EAC9D;;ECneA;;;MAIA,SAASG,WAAWC,KAAa,EAAA;EAC/B,IAAA,IAAIA,MAAMvkC,OAAO,CAAC,MAAA,EAAQ,EAAA,CAAA,KAAQ,IAAI,OAAOukC,KAAAA;MAC7C,MAAMC,GAAAA,GAAM,IAAIC,SAAAA,EAAAA,CAAYC,eAAe,CACzCH,KAAAA,CAAMvkC,OAAO,CAAC,UAAA,EAAY,EAAA,CAAA,EAC1B,WAAA,CAAA;EAEF,IAAA,OAAOwkC,IAAI7iC,eAAe,GAAG6iC,IAAI7iC,eAAe,CAACgK,WAAW,GAAI44B,KAAAA;EAClE;EAEA;;;MAIA,SAASI,UAAUC,QAAyC,EAAA;EAC1D,IAAA,MAAMh7B,KAAAA,GAAQg7B,QAAQ,CAAC,YAAA,CAAa,IAAI,QAAA;EACxC,IAAA,MAAMC,OAAAA,GAAUD,QAAQ,CAAC,cAAA,CAAe,IAAI,QAAA;EAC5C,IAAA,MAAME,MAAAA,GAASF,QAAQ,CAAC,aAAA,CAAc,IAAI,GAAA;EAC1C,IAAA,MAAMj8B,OACJ,OAAOi8B,QAAQ,CAAC,WAAA,CAAY,KAAK,WAC7BA,QAAQ,CAAC,WAAA,CAAY,GACrB,GAAGA,QAAQ,CAAC,YAAY,IAAI,EAAA,CAAG,EAAE,CAAC;EACxC,IAAA,MAAMG,MAAAA,GAASH,QAAQ,CAAC,aAAA,CAAc,IAAI,YAAA;EAC1C,IAAA,OAAO,CAAA,EAAGh7B,KAAAA,CAAM,CAAC,EAAEi7B,OAAAA,CAAQ,CAAC,EAAEC,MAAAA,CAAO,CAAC,EAAEn8B,IAAAA,CAAK,CAAC,EAAEo8B,MAAAA,CAAAA,CAAQ;EAC1D;EAEA;;;;EAIC,IACD,SAASC,YAAAA,CAAax0B,IAAY,EAAE0oB,IAAY,EAAA;MAC9C,IAAI,CAAC1oB,MAAM,OAAO,CAAA;MAClB,MAAMssB,QAAAA,GAAWyG,oBAAoB/yB,IAAAA,EAAM0oB,IAAAA,CAAAA;MAC3C,MAAM+L,MAAAA,GAAShB,eAAAA,CAAgBnH,QAAAA,EAAU7oB,QAAAA,EAAU,EAAA,CAAA;MACnD,OAAOgxB,MAAAA,CAAOd,KAAK,CAACrmC,MAAM,GAAGmnC,MAAAA,CAAOd,KAAK,CAAC,CAAA,CAAE,CAAC3K,KAAK,GAAG,CAAA;EACvD;EAee,kBAAA,CACbhpB,IAAuB,EACvB5G,KAAAA,GAAyC,EAAE,EAAA;EAE3C,IAAA,MAAMsvB,OAAOyL,SAAAA,CAAU/6B,KAAAA,CAAAA;MAEvB,IAAI4G,IAAAA,YAAgBlT,KAAAA,EAClB,OAAOkT,IAAAA,CAAK9L,GAAG,CAAC6I,CAAAA,CAAAA,GAAKy3B,YAAAA,CAAaV,UAAAA,CAAW/2B,CAAAA,CAAAA,EAAI2rB,IAAAA,CAAAA,CAAAA;MACnD,OAAO8L,YAAAA,CAAaV,WAAW9zB,IAAAA,CAAAA,EAAO0oB,IAAAA,CAAAA;EACxC;;EC/DA,MAAMgM,KAAAA,GAAgB,2CAAA,EACpBC,OAAAA,GAAmC,IACnCf,MAAAA,GAAiB,EAAA;EAEnB,IAAIgB,MAAAA,EAAgBC,OAAeC,SAAAA,EAAmBC,YAAAA;EAEtD;;;EAGA,GACA,MAAMC,aAAa,CAACtM,IAAAA,GAAAA;EAClB,IAAA,IAAI,CAACkM,MAAAA,EAAQ;EACXA,QAAAA,MAAAA,GAASK,UAAUP,KAAAA,EAAO;cACxB,aAAA,EAAe,YAAA;cACf,WAAA,EAAad;EACf,SAAA,CAAA;EACAiB,QAAAA,KAAAA,GAAQI,UAAUP,KAAAA,EAAO;cACvB,aAAA,EAAe,eAAA;cACf,WAAA,EAAad;EACf,SAAA,CAAA;EACAkB,QAAAA,SAAAA,GAAYG,UAAUP,KAAAA,EAAO;cAC3B,aAAA,EAAe,WAAA;cACf,WAAA,EAAad;EACf,SAAA,CAAA;EACAmB,QAAAA,YAAAA,GAAeE,UAAUP,KAAAA,EAAO;cAC9B,aAAA,EAAe,YAAA;cACf,WAAA,EAAad;EACf,SAAA,CAAA;EACF,IAAA;MAEA,IAAI,EAAElL,IAAAA,YAAgB57B,KAAI,GAAI47B,IAAAA,GAAOA,IAAAA,CAAKxuB,KAAK,CAAC,GAAA,CAAA;EAChDwuB,IAAAA,IAAAA,GAAOA,KAAKx0B,GAAG,CAAC0O,CAAAA,CAAAA,GAAKA,EAAE3I,IAAI,EAAA,CAAA;EAE3B,IAAA,IAAK,IAAI5M,CAAAA,GAAI,CAAA,EAAGA,IAAIq7B,IAAAA,CAAKp7B,MAAM,EAAED,CAAAA,EAAAA,CAAK;UACpC,MAAM6nC,GAAAA,GAAMxM,IAAI,CAACr7B,CAAAA,CAAE;UACnB,IACEsnC,OAAO,CAACO,GAAAA,CAAI,IACZ;EAAC,YAAA,eAAA;EAAiB,YAAA,WAAA;EAAa,YAAA,YAAA;EAAc,YAAA;WAAa,CAACnmC,QAAQ,CAACmmC,GAAAA,CAAAA,EAEpE,OAAOA,GAAAA;EACJ,aAAA,IAAIP,OAAO,CAACO,GAAAA,CAAI,KAAK,KAAA,EAAO;UACjC,MAAMlM,KAAAA,GAAQiM,UAAUP,KAAAA,EAAO;cAC7B,aAAA,EAAeQ,GAAAA;cACf,WAAA,EAAatB;EACf,SAAA,CAAA;UACAe,OAAO,CAACO,GAAAA,CAAI,GAAGlM,KAAAA,KAAU8L,SAAAA;UACzB,IAAIH,OAAO,CAACO,GAAAA,CAAI,EAAEP,OAAO,CAACO,GAAAA,CAAI,GAAGlM,KAAAA,KAAU+L,YAAAA;UAC3C,IAAIF,KAAAA,IAASF,OAAO,CAACO,GAAAA,CAAI,EAAEP,OAAO,CAACO,GAAAA,CAAI,GAAGlM,KAAAA,KAAU6L,KAAAA;UACpD,IAAID,MAAAA,IAAUD,OAAO,CAACO,GAAAA,CAAI,EAAEP,OAAO,CAACO,GAAAA,CAAI,GAAGlM,KAAAA,KAAU4L,MAAAA;EACrD,QAAA,IAAID,OAAO,CAACO,GAAAA,CAAI,EAAE,OAAOA,GAAAA;EAC3B,IAAA;MAEA,OAAO,KAAA;EACT;;ECrDA;;;EAGA,GACA,SAASC,YAAAA,CACPC,OAA2B,EAC3BlmC,CAAqB,EAAA;MAErB,IAAI,CAACkmC,SAAS,OAAOvmC,SAAAA;EAErB,IAAA,IACE,OAACumC,CAAwBC,OAAO,KAAKxmC,SAAAA,IACrC;EAAC,QAAA,MAAA;EAAQ,QAAA;EAAO,KAAA,CAACU,OAAO,CAAE6lC,OAAAA,CAAwBC,OAAO,KAAK,CAAA,EAC9D;EACA,QAAA,IAAIC,MAAM,MAAe,CACvB,CAAC,KAAK,EAAEpmC,CAAAA,CAAEqmC,MAAM,CAAC,GAAGC,WAAW,EAAA,GAAKtmC,EAAEjB,KAAK,CAAC,IAAI,CACjD;EACD,QAAA,MAAMC,OAAO0D,MAAAA,CAAOwjC,OAAAA,CAAAA;EAEpB,QAAA,IAAIlmC,MAAM,OAAA,EAAS;cACjBomC,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,aAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,cAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,cAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,eAAA,CAAA,CAAA;UAC/B,CAAA,MAAO;cACLk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,YAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,eAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,aAAA,CAAA,CAAA;cAC7Bk8B,GAAAA,IAAOxL,UAAAA,CAAW57B,IAAAA,CAAKkL,KAAK,CAAC,gBAAA,CAAA,CAAA;EAC/B,QAAA;UAEA,OAAOk8B,GAAAA;MACT,CAAA,MAAO;EACL,QAAA,IAAIA,GAAAA,GAAcF,OAAAA,CAAQxK,qBAAqB,EAAE,CAAC17B,CAAAA,CAAE;EACpD,QAAA,IAAI,OAAOomC,GAAAA,KAAQ,QAAA,IAAYA,GAAAA,GAAM,CAAA,EAAG;EACtC,YAAA,IAAIpmC,MAAM,QAAA,EAAU;EAClBomC,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,aAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,gBAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,YAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,eAAA,CAAA,CAAA;cAC1C,CAAA,MAAO;EACLk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,cAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,eAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,aAAA,CAAA,CAAA;EACxCk8B,gBAAAA,GAAAA,IAAOxL,UAAAA,CAAWl4B,MAAAA,CAAOwjC,OAAAA,CAAAA,CAASh8B,KAAK,CAAC,cAAA,CAAA,CAAA;EAC1C,YAAA;cACA,OAAOk8B,GAAAA;EACT,QAAA,CAAA,MAAO,OAAOH,YAAAA,CAAaC,OAAAA,CAAQ19B,UAAU,EAAwBxI,CAAAA,CAAAA;EACvE,IAAA;EACF;EAEA;;;EAGA,GACe,iBACbhB,IAAiB,EAAA;MAEjB,OAAO;EAACinC,QAAAA,YAAAA,CAAajnC,IAAAA,EAAM,OAAA,CAAA;EAAUinC,QAAAA,YAAAA,CAAajnC,IAAAA,EAAM,QAAA;EAAU,KAAA;EACpE;;EC7DA;;;;EAIA,GACe,mBAAA,CAAUA,IAAa,EAAEunC,SAAiB,CAAC,EAAA;MACxD,MAAMC,KAAAA,GAAQ/oC,OAAOgpC,OAAO;MAC5B,MAAMC,KAAAA,GAAQjpC,OAAOkpC,OAAO;MAE5B,MAAMC,MAAAA,GAAS5nC,KAAK08B,qBAAqB,EAAA;EACzC,IAAA,MAAMgJ,SAASkC,MAAAA,CAAOlC,MAAM,EAC1BmC,IAAAA,GAAOD,OAAOC,IAAI,GAAGL,KAAAA,EACrBM,GAAAA,GAAMF,OAAOE,GAAG,GAAGJ,KAAAA,EACnB5M,KAAAA,GAAQ8M,OAAO9M,KAAK;EAEtB,IAAA,OACE4M,QAAQjpC,MAAAA,CAAOspC,WAAW,GAAGD,GAAAA,GAAMP,MAAAA,IACnCG,QAAQH,MAAAA,GAASO,GAAAA,GAAMpC,MAAAA,IACvB8B,KAAAA,GAAQ/oC,OAAOupC,UAAU,GAAGH,OAAON,MAAAA,IACnCC,KAAAA,GAAQD,SAASM,IAAAA,GAAO/M,KAAAA;EAE5B;;ECdA;;;MAIe,oBAAUmN,KAAsB,EAAA;MAC7C,IAAIC,MAAAA;MACJ,IAAI,OAAOD,KAAAA,KAAU,QAAA,EAAUC,MAAAA,GAAS;EAAC,QAAA,CAAA,EAAGD,KAAAA,CAAAA;EAAQ,KAAA;WAC/CC,MAAAA,GAASD,KAAAA,CAAMj8B,KAAK,CAAC,KAAA,CAAA;EAE1B,IAAA,IAAIk8B,MAAAA,CAAO9oC,MAAM,KAAK,CAAA,EACpB8oC,MAAAA,GAAS;EAACA,QAAAA,MAAM,CAAC,CAAA,CAAE;EAAEA,QAAAA,MAAM,CAAC,CAAA,CAAE;EAAEA,QAAAA,MAAM,CAAC,CAAA,CAAE;EAAEA,QAAAA,MAAM,CAAC,CAAA;EAAG,KAAA;EAClD,SAAA,IAAIA,OAAO9oC,MAAM,KAAK,GAAG8oC,MAAAA,GAASA,MAAAA,CAAOv0B,MAAM,CAACu0B,MAAAA,CAAAA;WAChD,IAAIA,MAAAA,CAAO9oC,MAAM,KAAK,CAAA,EAAG8oC,OAAOjjC,IAAI,CAACijC,MAAM,CAAC,CAAA,CAAE,CAAA;MAEnD,OAAO;EAAC,QAAA,KAAA;EAAO,QAAA,OAAA;EAAS,QAAA,QAAA;EAAU,QAAA;EAAO,KAAA,CAACC,MAAM,CAAC,CAACC,GAAAA,EAAKC,SAAAA,EAAWlpC,CAAAA,GAAAA;EAChE,QAAA,MAAMQ,KAAAA,GAAQi8B,UAAAA,CAAWsM,MAAM,CAAC/oC,CAAAA,CAAE,CAAA;UAClCipC,GAAG,CAACC,SAAAA,CAA+B,GAAG1oC,KAAAA,IAAS,CAAA;UAC/C,OAAOyoC,GAAAA;EACT,IAAA,CAAA,EAAG,EAAC,CAAA;EACN;;EC1BA;;EAEA,GACe,YAAA,GAAA;MACb,OACE1pC,QAAAA,CAASuE,eAAe,CAACqlC,GAAG,KAAK,SACjC5pC,QAAAA,CAAS09B,IAAI,CAACkM,GAAG,KAAK,KAAA,IACtBnoC,iBAAiBzB,QAAAA,CAASuE,eAAe,CAAA,CAAEolC,SAAS,KAAK,KAAA,IACzDloC,iBAAiBzB,QAAAA,CAAS09B,IAAI,CAAA,CAAEiM,SAAS,KAAK,KAAA;EAElD;;ECRA;;;;EAIA,GACe,gBAAA,CACb/nC,CAAW,EACXU,CAAAA,GAAsD,EAAE,EAAA;MAExD,IAAK,MAAMR,KAAKQ,CAAAA,CAAG,IAAI,CAAA,EAAC,EAAEnB,cAAc,CAACC,IAAI,CAACkB,CAAAA,EAAGR,IAAIF,CAAAA,CAAE4K,KAAK,CAAC1K,CAAAA,EAAGQ,CAAC,CAACR,CAAAA,CAAE,CAAA;EACtE;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98]}