solfaces 2.3.2 → 2.3.3

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.
Files changed (40) hide show
  1. package/README.md +3 -3
  2. package/dist/agent/index.cjs +13 -13
  3. package/dist/agent/index.js +3 -3
  4. package/dist/agent/mcp-server.cjs +24 -14
  5. package/dist/{chunk-PCSRDAWQ.cjs → chunk-375DBADY.cjs} +20 -14
  6. package/dist/chunk-375DBADY.cjs.map +1 -0
  7. package/dist/{chunk-MYUSB4LA.js → chunk-C44YBK6V.js} +20 -14
  8. package/dist/chunk-C44YBK6V.js.map +1 -0
  9. package/dist/{chunk-2KW35VRI.js → chunk-EFN2CSAI.js} +3 -3
  10. package/dist/{chunk-2KW35VRI.js.map → chunk-EFN2CSAI.js.map} +1 -1
  11. package/dist/{chunk-W2U6ITMR.cjs → chunk-FYZJEEBJ.cjs} +8 -4
  12. package/dist/chunk-FYZJEEBJ.cjs.map +1 -0
  13. package/dist/{chunk-T7HEUW2O.cjs → chunk-G4VYNQII.cjs} +6 -6
  14. package/dist/{chunk-T7HEUW2O.cjs.map → chunk-G4VYNQII.cjs.map} +1 -1
  15. package/dist/{chunk-O2IIBSQH.js → chunk-N4AP5NEL.js} +4 -4
  16. package/dist/{chunk-O2IIBSQH.js.map → chunk-N4AP5NEL.js.map} +1 -1
  17. package/dist/{chunk-BI3GHRKQ.cjs → chunk-QVCF45AC.cjs} +12 -12
  18. package/dist/{chunk-BI3GHRKQ.cjs.map → chunk-QVCF45AC.cjs.map} +1 -1
  19. package/dist/{chunk-N5GDLCCL.js → chunk-VWYO6SVB.js} +8 -4
  20. package/dist/chunk-VWYO6SVB.js.map +1 -0
  21. package/dist/core/index.cjs +30 -30
  22. package/dist/core/index.js +2 -2
  23. package/dist/index.cjs +37 -37
  24. package/dist/index.js +4 -4
  25. package/dist/react/index.cjs +23 -19
  26. package/dist/react/index.cjs.map +1 -1
  27. package/dist/react/index.js +9 -5
  28. package/dist/react/index.js.map +1 -1
  29. package/dist/solfaces.cdn.global.js +2 -2
  30. package/dist/solfaces.cdn.global.js.map +1 -1
  31. package/dist/themes/index.cjs +15 -15
  32. package/dist/themes/index.js +1 -1
  33. package/dist/vanilla/index.cjs +6 -6
  34. package/dist/vanilla/index.js +2 -2
  35. package/package.json +1 -1
  36. package/python/solfaces.py +8 -5
  37. package/dist/chunk-MYUSB4LA.js.map +0 -1
  38. package/dist/chunk-N5GDLCCL.js.map +0 -1
  39. package/dist/chunk-PCSRDAWQ.cjs.map +0 -1
  40. package/dist/chunk-W2U6ITMR.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/SolFace.tsx","../../src/react/useSolName.ts"],"names":["useMemo"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\";\n\n// ═══════════════════════════════════════════════════════════════\n// SOLFACES v2 — React Component\n// Gradient-rich SVG avatar with pixel art and liquid glass modes.\n// ═══════════════════════════════════════════════════════════════\n\nimport { useMemo, type SVGAttributes, type CSSProperties } from \"react\";\nimport {\n generateTraits,\n effectiveAccessory,\n SKIN_COLORS,\n EYE_COLORS,\n HAIR_COLORS,\n BG_COLORS,\n type SolFaceTraits,\n type SolFaceTheme,\n} from \"../core/traits\";\nimport { deriveSkinColors, darken, lighten, blend } from \"../core/colors\";\nimport { renderSolFaceSVG } from \"../core/renderer\";\nimport { solFaceAltText } from \"../core/describe\";\nimport { deriveName } from \"../names\";\nimport type { NameFormat } from \"../names\";\n\n/** Props for the `<SolFace>` React component. Extends standard SVG attributes. */\nexport interface SolFaceProps extends Omit<SVGAttributes<SVGSVGElement>, \"viewBox\" | \"xmlns\"> {\n /** Solana wallet address (base58). Deterministically generates the avatar. */\n walletAddress: string;\n /** Avatar size in CSS pixels (width and height). Default: 64. */\n size?: number;\n /** Enable blink animation. Pass `true` for defaults, or an object for custom timing. Default: false. */\n enableBlink?: boolean | {\n /** Interval between blinks in seconds. Default: 4. */\n duration?: number;\n /** Initial delay before first blink in seconds. Default: 0. */\n delay?: number;\n };\n /** Theme configuration for colors, layout, and rendering style. */\n theme?: SolFaceTheme;\n /** Override specific trait indices. Merged on top of the deterministic traits. */\n traitOverrides?: Partial<SolFaceTraits>;\n /** Detail level. \"auto\" uses full detail at size ≥ 48px. Default: \"auto\". */\n detail?: \"full\" | \"simplified\" | \"auto\";\n /** Per-instance color overrides (hex strings). Takes precedence over theme color settings. */\n colorOverrides?: {\n /** Override skin color (hex). */\n skin?: string;\n /** Override eye iris color (hex). */\n eyes?: string;\n /** Override hair color (hex). */\n hair?: string;\n /** Override background color (hex). */\n bg?: string;\n /** Override mouth/lip color (hex). */\n mouth?: string;\n /** Override eyebrow color (hex). */\n eyebrow?: string;\n /** Override accessory accent color (hex). */\n accessory?: string;\n /** Override nose shadow/fill color (hex). */\n nose?: string;\n /** Override eye white (sclera) color (hex). */\n eyeWhite?: string;\n };\n /** Show a derived SolName label next to the avatar. Default: false. */\n showName?: boolean;\n /** Position of the name label relative to the avatar. Default: \"below\". */\n namePosition?: \"below\" | \"above\";\n /** Name display format (e.g. \"display\", \"short\", \"tag\"). Default: \"display\". */\n nameFormat?: NameFormat;\n}\n\n// ─── Helpers ────────────────────────────────────\n\nfunction djb2(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) + hash + str.charCodeAt(i)) | 0;\n }\n return hash >>> 0;\n}\n\n// ─── Hair Back (behind face) ────────────────────\n\nfunction HairBack(_props: { hi: number; id: string; flat: boolean }) {\n return null;\n}\n\n// ─── Ears ───────────────────────────────────────\n\nfunction Ears({ earFill, earShadow }: { earFill: string; earShadow: string }) {\n return (\n <>\n <ellipse cx=\"11\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"11\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n <ellipse cx=\"53\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"53\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n </>\n );\n}\n\n// ─── Face Overlays ──────────────────────────────\n\nfunction FaceOverlays({ id }: { id: string }) {\n return (\n <>\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}glow)`} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}chin)`} />\n <ellipse cx=\"22\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cL)`} />\n <ellipse cx=\"42\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cR)`} />\n <line x1=\"20\" y1=\"50\" x2=\"44\" y2=\"50\" stroke=\"currentColor\" strokeWidth=\"0.3\" opacity=\"0.08\" strokeLinecap=\"round\" />\n </>\n );\n}\n\n// ─── Hair Front ─────────────────────────────────\n\nfunction HairFront(_props: { hi: number; id: string; hairCol: string; flat: boolean }) {\n return null;\n}\n\n// ─── Eyes ───────────────────────────────────────\n\nfunction Eyes({ ei, eyeCol, eyeWhite, lidColor, full }: { ei: number; eyeCol: string; eyeWhite: string; lidColor: string; full: boolean }) {\n const lx = 25, rx = 39, y = 33;\n\n const lids = full && ei !== 1 && ei !== 5 ? (\n <>\n <path d={`M${lx - 4} ${y - 1.5} Q${lx} ${y - 4} ${lx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n <path d={`M${rx - 4} ${y - 1.5} Q${rx} ${y - 4} ${rx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n </>\n ) : null;\n\n switch (ei) {\n case 0:\n return (\n <>\n <circle cx={lx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 1:\n return (\n <>\n <circle cx={lx} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 0.5} cy={y - 0.5} r=\"0.5\" fill=\"white\" opacity=\"0.4\" />}\n <circle cx={rx} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 0.5} cy={y - 0.5} r=\"0.5\" fill=\"white\" opacity=\"0.4\" />}\n </>\n );\n case 2:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n {lids}\n </>\n );\n case 3:\n return (\n <>\n <circle cx={lx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 4:\n return (\n <>\n <ellipse cx={lx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={lx - 4.5} y1={y - 0.5} x2={lx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n <ellipse cx={rx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={rx - 4.5} y1={y - 0.5} x2={rx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n {lids}\n </>\n );\n case 5:\n return (\n <>\n <path d={`M${lx - 4} ${y} Q${lx} ${y + 4.5} ${lx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y} Q${rx} ${y + 4.5} ${rx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"2\" strokeLinecap=\"round\" />\n </>\n );\n case 6:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={lx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {lids}\n </>\n );\n case 7:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={lx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={rx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n {lids}\n </>\n );\n case 8: // Side-look — pupils shifted left\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx - 1} cy={y} r=\"2\" fill={eyeCol} />\n {full && <circle cx={lx - 0.3} cy={y - 0.8} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx - 1} cy={y} r=\"2\" fill={eyeCol} />\n {full && <circle cx={rx - 0.3} cy={y - 0.8} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n default:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n {lids}\n </>\n );\n }\n}\n\n// ─── Eyebrows ───────────────────────────────────\n\nfunction Eyebrows({ bi, browColor, full = true }: { bi: number; browColor: string; full?: boolean }) {\n const lx = 25, rx = 39, y = 27;\n switch (bi) {\n case 0:\n return (\n <>\n <line x1={lx - 3} y1={y} x2={lx + 3} y2={y - 0.5} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y - 0.5} x2={rx + 3} y2={y} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n </>\n );\n case 1:\n return (\n <>\n <line x1={lx - 3.5} y1={y} x2={lx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <line x1={rx - 3.5} y1={y} x2={rx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 2:\n return (\n <>\n <path d={`M${lx - 3.5} ${y + 0.5} Q${lx} ${y - 1.5} ${lx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y + 0.5} Q${rx} ${y - 1.5} ${rx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 3:\n return (\n <>\n <path d={`M${lx - 4} ${y + 1} Q${lx} ${y - 3} ${lx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 1} Q${rx} ${y - 3} ${rx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n </>\n );\n case 4:\n return (\n <>\n <polyline points={`${lx - 3},${y + 1} ${lx},${y - 2} ${lx + 3},${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <polyline points={`${rx - 3},${y} ${rx},${y - 2} ${rx + 3},${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </>\n );\n case 5: // Worried\n return (\n <>\n <line x1={lx - 3} y1={y - 1} x2={lx + 3} y2={y + 1} stroke={browColor} strokeWidth=\"1.1\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y + 1} x2={rx + 3} y2={y - 1} stroke={browColor} strokeWidth=\"1.1\" strokeLinecap=\"round\" />\n </>\n );\n case 6: { // Bushy\n const bw = full ? \"2.0\" : \"1.5\";\n return (\n <>\n <path d={`M${lx - 4} ${y + 0.5} Q${lx} ${y - 2} ${lx + 4} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth={bw} strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 0.5} Q${rx} ${y - 2} ${rx + 4} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth={bw} strokeLinecap=\"round\" />\n </>\n );\n }\n case 7: // Thin\n return (\n <>\n <path d={`M${lx - 3.5} ${y} Q${lx} ${y - 1.5} ${lx + 3.5} ${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"0.5\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y} Q${rx} ${y - 1.5} ${rx + 3.5} ${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"0.5\" strokeLinecap=\"round\" />\n </>\n );\n default: return null;\n }\n}\n\n// ─── Nose ───────────────────────────────────────\n\nfunction Nose({ ni, noseFill }: { ni: number; noseFill: string }) {\n const cx = 32, y = 39;\n switch (ni) {\n case 0: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n case 1: return <circle cx={cx} cy={y} r=\"1.8\" fill={noseFill} opacity=\"0.5\" />;\n case 2: return <path d={`M${cx - 2} ${y + 1} Q${cx} ${y - 2} ${cx + 2} ${y + 1}`} fill=\"none\" stroke={noseFill} strokeWidth=\"1\" strokeLinecap=\"round\" opacity=\"0.5\" />;\n case 3:\n return (\n <>\n <circle cx={cx - 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n <circle cx={cx + 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n </>\n );\n case 4: // Pointed\n return <path d={`M${cx} ${y - 2} L${cx - 2} ${y + 1.5} L${cx + 2} ${y + 1.5} Z`} fill={noseFill} opacity=\"0.4\" />;\n case 5: // Wide\n return <ellipse cx={cx} cy={y} rx=\"3.5\" ry=\"1.5\" fill={noseFill} opacity=\"0.35\" />;\n case 6: // Bridge\n return <line x1={cx} y1={y - 3} x2={cx} y2={y + 1} stroke={noseFill} strokeWidth=\"1.2\" strokeLinecap=\"round\" opacity=\"0.4\" />;\n case 7: // Snub\n return (\n <>\n <circle cx={cx} cy={y + 0.5} r=\"2\" fill={noseFill} opacity=\"0.35\" />\n <ellipse cx={cx} cy={y - 0.5} rx=\"1\" ry=\"0.5\" fill={noseFill} opacity=\"0.15\" />\n </>\n );\n default: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n }\n}\n\n// ─── Mouth ──────────────────────────────────────\n\nfunction Mouth({ mi, lipColor, isDark }: { mi: number; lipColor: string; isDark: boolean }) {\n const cx = 32, y = 45;\n const teethCol = isDark ? \"#e8e0d8\" : \"#ffffff\";\n switch (mi) {\n case 0: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 1: return <line x1={cx - 3} y1={y + 1} x2={cx + 3} y2={y + 1} stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />;\n case 2: return <path d={`M${cx - 5} ${y} Q${cx} ${y + 5} ${cx + 5} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 3: return <ellipse cx={cx} cy={y + 1} rx=\"2.5\" ry=\"3\" fill={lipColor} opacity=\"0.7\" />;\n case 4: return <path d={`M${cx - 4} ${y + 1} Q${cx + 1} ${y + 1} ${cx + 4} ${y - 1.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.3\" strokeLinecap=\"round\" />;\n case 5:\n return (\n <>\n <path d={`M${cx - 5} ${y} Q${cx} ${y + 6} ${cx + 5} ${y}`} fill={teethCol} stroke={lipColor} strokeWidth=\"1\" />\n <line x1={cx - 4} y1={y + 1.5} x2={cx + 4} y2={y + 1.5} stroke={lipColor} strokeWidth=\"0.3\" opacity=\"0.3\" />\n </>\n );\n case 6: return <path d={`M${cx - 4} ${y + 0.5} Q${cx} ${y + 1.5} ${cx + 4} ${y + 0.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 7:\n return (\n <>\n <ellipse cx={cx} cy={y + 1} rx=\"3.5\" ry=\"2\" fill={lipColor} opacity=\"0.25\" />\n <path d={`M${cx - 3} ${y} Q${cx} ${y + 2.5} ${cx + 3} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n default: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n }\n}\n\n// ─── Accessory ──────────────────────────────────\n\nfunction Accessory({ ai, accessoryColor: _accessoryColor, glassesColor, earringColor, headbandColor, beautyMarkColor = \"#3a2a2a\", freckleColor = \"#a0785a\", skinColor = \"#E8BA8B\" }: {\n ai: number; accessoryColor: string; glassesColor: string; earringColor: string; headbandColor: string; beautyMarkColor?: string; freckleColor?: string; skinColor?: string;\n}) {\n switch (ai) {\n case 0: return null;\n case 1: return <circle cx=\"40\" cy=\"44\" r=\"0.8\" fill={beautyMarkColor} />;\n case 2:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <circle cx=\"25\" cy=\"33\" r=\"5.5\" />\n <circle cx=\"39\" cy=\"33\" r=\"5.5\" />\n <line x1=\"30.5\" y1=\"33\" x2=\"33.5\" y2=\"33\" />\n <line x1=\"19.5\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"44.5\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 3:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <rect x=\"19\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <rect x=\"33\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <line x1=\"31\" y1=\"33\" x2=\"33\" y2=\"33\" />\n <line x1=\"19\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"45\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 4:\n return (\n <>\n <circle cx=\"10\" cy=\"38\" r=\"1.5\" fill={earringColor} />\n <circle cx=\"10\" cy=\"41\" r=\"2\" fill={earringColor} opacity=\"0.8\" />\n </>\n );\n case 5:\n return <rect x=\"13\" y=\"20\" width=\"38\" height=\"3.5\" rx=\"1.5\" fill={headbandColor} opacity=\"0.85\" />;\n case 6:\n return (\n <g fill={freckleColor} opacity=\"0.35\">\n <circle cx=\"21\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"23\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"19\" cy=\"41.5\" r=\"0.5\" />\n <circle cx=\"43\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"41\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"45\" cy=\"41.5\" r=\"0.5\" />\n </g>\n );\n case 7:\n return (\n <>\n <circle cx=\"10\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n <circle cx=\"54\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n </>\n );\n case 8:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1.2\">\n <path d=\"M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <path d=\"M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <line x1=\"31\" y1=\"32\" x2=\"33\" y2=\"32\" />\n <line x1=\"19\" y1=\"31\" x2=\"14\" y2=\"29\" />\n <line x1=\"45\" y1=\"31\" x2=\"50\" y2=\"29\" />\n </g>\n );\n case 9:\n return (\n <g>\n <rect x=\"38\" y=\"38\" width=\"9\" height=\"4.5\" rx=\"1.2\" fill=\"#f0d0a0\" transform=\"rotate(-15 42 40)\" />\n <rect x=\"39.5\" y=\"38.5\" width=\"6\" height=\"3.5\" rx=\"0.8\" fill=\"#f5ddb5\" transform=\"rotate(-15 42 40)\" />\n <circle cx=\"42.5\" cy=\"40.25\" r=\"0.5\" fill=\"#d4b898\" transform=\"rotate(-15 42 40)\" />\n </g>\n );\n case 10: // Left Eyebrow Slit\n return <line x1=\"23\" y1=\"24.8\" x2=\"23.8\" y2=\"29.2\" stroke={skinColor} strokeWidth=\"1.3\" strokeLinecap=\"butt\" />;\n case 11: // Right Eyebrow Slit\n return <line x1=\"41\" y1=\"24.8\" x2=\"40.2\" y2=\"29.2\" stroke={skinColor} strokeWidth=\"1.3\" strokeLinecap=\"butt\" />;\n default: return null;\n }\n}\n\n// ─── Pixel Art Wrapper ──────────────────────────\n\nfunction PixelWrapper({ svgString, size, theme, alt = \"\" }: { svgString: string; size: number; theme: SolFaceTheme; alt?: string }) {\n const scale = size / 64;\n\n const density = theme._pixelDensity ?? 16;\n const rounded = theme._pixelRounded ?? true;\n const outline = theme._pixelOutline ?? false;\n const outlineColor = theme._pixelOutlineColor ?? \"#000\";\n const outlineWidth = Math.max(1, Math.round((theme._pixelOutlineWidth ?? 1) * scale));\n const scanlines = theme._pixelScanlines ?? false;\n const scanlineOpacity = theme._pixelScanlineOpacity ?? 0.08;\n const scanlineSpacing = Math.max(1, Math.round((theme._pixelScanlineSpacing ?? 2) * scale));\n const grid = theme._pixelGrid ?? false;\n const gridOpacity = theme._pixelGridOpacity ?? 0.06;\n const gridColor = theme._pixelGridColor ?? \"#000\";\n const shadow = theme._pixelShadow ?? false;\n const shadowColor = theme._pixelShadowColor ?? \"rgba(0,0,0,0.3)\";\n const shadowOffset = Math.max(1, Math.round((theme._pixelShadowOffset ?? 2) * scale));\n const contrast = theme._pixelContrast;\n const saturation = theme._pixelSaturation;\n const brightness = theme._pixelBrightness;\n\n const dataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;\n\n // Build CSS filter string\n const filters: string[] = [];\n if (shadow) filters.push(`drop-shadow(${shadowOffset}px ${shadowOffset}px 0px ${shadowColor})`);\n if (contrast !== undefined) filters.push(`contrast(${contrast})`);\n if (saturation !== undefined) filters.push(`saturate(${saturation})`);\n if (brightness !== undefined) filters.push(`brightness(${brightness})`);\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n ...(filters.length ? { filter: filters.join(\" \") } : {}),\n };\n\n const imgStyle: CSSProperties = {\n width: size,\n height: size,\n imageRendering: \"pixelated\",\n borderRadius: rounded ? \"12%\" : 0,\n display: \"block\",\n border: outline ? `${outlineWidth}px solid ${outlineColor}` : \"none\",\n };\n\n return (\n <div style={containerStyle}>\n <img src={dataUri} width={density} height={density} style={imgStyle} alt={alt} />\n {scanlines && (\n <div style={{\n position: \"absolute\", inset: 0,\n background: `repeating-linear-gradient(0deg, transparent, transparent ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing + 1}px)`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n {grid && (\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundSize: `${size / density}px ${size / density}px`,\n backgroundImage: `linear-gradient(${gridColor} ${gridOpacity}, transparent ${gridOpacity}), linear-gradient(90deg, ${gridColor} ${gridOpacity}, transparent ${gridOpacity})`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n </div>\n );\n}\n\n// ─── Liquid Glass Wrapper ───────────────────────\n\nfunction GlassWrapper({ children, size, theme }: { children: React.ReactNode; size: number; theme: SolFaceTheme }) {\n const scale = size / 64;\n\n const blurRadius = (theme._blurRadius ?? 12) * scale;\n const saturate = theme._saturate ?? 1.8;\n const tintOpacity = theme._tintOpacity ?? 0.12;\n const tintColor = theme._tintColor ?? \"rgba(255,255,255,1)\";\n const borderOpacity = theme._borderOpacity ?? 0.25;\n const borderWidth = Math.max(0.5, (theme._borderWidth ?? 1) * scale);\n const borderColor = theme._borderColor ?? `rgba(255,255,255,${borderOpacity})`;\n const specularOpacity = theme._specularOpacity ?? 0.25;\n const specularColor = theme._specularColor ?? \"rgba(255,255,255,1)\";\n const specularEnd = theme._specularEnd ?? 50;\n const lightAngle = theme._lightAngle ?? 135;\n const rimIntensity = theme._rimIntensity ?? 0.08;\n\n // Decomposed shadow scales with size; legacy _shadow string used as-is for backward compat\n const shadowY = Math.round((theme._shadowY ?? 8) * scale);\n const shadowBlurR = Math.round((theme._shadowBlur ?? 32) * scale);\n const shadowOpacity = theme._shadowOpacity ?? 0.12;\n const shadowStr = theme._shadow ?? `0 ${shadowY}px ${shadowBlurR}px rgba(0,0,0,${shadowOpacity})`;\n\n const bgRadius = (theme.bgRadius ?? 16) * scale;\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n borderRadius: bgRadius,\n overflow: \"hidden\",\n backdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n WebkitBackdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n border: `${borderWidth}px solid ${borderColor}`,\n boxShadow: shadowStr,\n };\n\n return (\n <div style={containerStyle}>\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundColor: tintColor, opacity: tintOpacity,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{ position: \"relative\", zIndex: 1 }}>\n {children}\n </div>\n <div style={{\n position: \"absolute\", inset: 0,\n background: `linear-gradient(${lightAngle}deg, ${specularColor.replace(\"1)\", `${specularOpacity})`)} 0%, transparent ${specularEnd}%)`,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{\n position: \"absolute\", inset: 0,\n borderRadius: bgRadius,\n boxShadow: `inset 0 0 0 1px rgba(255,255,255,${rimIntensity})`,\n pointerEvents: \"none\",\n }} />\n </div>\n );\n}\n\n// ─── Main Component ─────────────────────────────\n\nexport function SolFace({\n walletAddress,\n size = 64,\n enableBlink = false,\n theme,\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n showName = false,\n namePosition = \"below\",\n nameFormat = \"display\",\n className,\n style,\n ...rest\n}: SolFaceProps) {\n const traits = useMemo(\n () => generateTraits(walletAddress, traitOverrides),\n [walletAddress, traitOverrides],\n );\n\n const detailOpt = detailProp ?? \"auto\";\n const full = detailOpt === \"full\" || (detailOpt === \"auto\" && size >= 48);\n const flat = theme?.flat ?? false;\n\n const skinColors = theme?.skinColors ?? SKIN_COLORS;\n const eyeColors = theme?.eyeColors ?? EYE_COLORS;\n const hairColors = theme?.hairColors ?? HAIR_COLORS;\n const bgColors = theme?.bgColors ?? BG_COLORS;\n\n const skin = colorOverrides?.skin ?? skinColors[traits.skinColor % skinColors.length];\n const eyeCol = colorOverrides?.eyes ?? eyeColors[traits.eyeColor % eyeColors.length];\n const hairCol = colorOverrides?.hair ?? hairColors[traits.hairColor % hairColors.length];\n const bgCol = colorOverrides?.bg ?? bgColors[traits.bgColor % bgColors.length];\n\n const derived = useMemo(() => deriveSkinColors(skin), [skin]);\n\n const bgOpacity = theme?.bgOpacity ?? 1;\n const bgRadius = theme?.bgRadius ?? 4;\n const browColor = colorOverrides?.eyebrow ?? theme?.eyebrowColor ?? derived.browColor;\n const noseFill = colorOverrides?.nose ?? theme?.noseColor ?? derived.noseFill;\n const lipColor = colorOverrides?.mouth ?? theme?.mouthColor ?? derived.lipColor;\n const eyeWhite = colorOverrides?.eyeWhite ?? theme?.eyeWhiteColor ?? derived.eyeWhiteAdapted;\n const glassesColor = theme?.glassesColor ?? \"#4a4a5a\";\n const earringColor = theme?.earringColor ?? blend(skin, \"#d4a840\", 0.4);\n const headbandColor = theme?.headbandColor ?? blend(hairCol, \"#c04040\", 0.5);\n const accColor = colorOverrides?.accessory ?? theme?.accessoryColor ?? derived.accessoryColor;\n const earFillFinal = theme?.earColor ?? derived.earFill;\n const lidFinal = theme?.lidColor ?? derived.lidColor;\n const beautyMarkColor = theme?.beautyMarkColor ?? \"#3a2a2a\";\n const freckleColor = theme?.freckleColor ?? \"#a0785a\";\n\n const id = useMemo(() => \"sf\" + djb2(walletAddress).toString(36), [walletAddress]);\n\n const cheekEnabled = theme?.cheekEnabled ?? true;\n const cheekColor = theme?.cheekColor ?? derived.cheekColor;\n const cheekOpacity = theme?.cheekOpacity ?? derived.cheekOpacity;\n\n const hi = traits.hairStyle % 10;\n const ai = effectiveAccessory(traits);\n\n const blinkEnabled = !!enableBlink;\n const blinkDuration = typeof enableBlink === \"object\" ? (enableBlink.duration ?? 4) : 4;\n const blinkDelay = typeof enableBlink === \"object\" ? (enableBlink.delay ?? 0) : 0;\n const delayStr = blinkDelay ? ` ${blinkDelay}s` : \"\";\n\n const bgFill = flat ? bgCol : `url(#${id}bg)`;\n const skinFill = flat ? skin : `url(#${id}sg)`;\n\n // Pixel art mode — use string renderer and wrap in pixel div\n if (theme?._pixel) {\n const pixelSvg = renderSolFaceSVG(walletAddress, {\n size,\n theme: { ...theme, _pixel: false, _glass: false },\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n });\n return <PixelWrapper svgString={pixelSvg} size={size} theme={theme} alt={solFaceAltText(walletAddress)} />;\n }\n\n const svgElement = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 64\"\n width={size}\n height={size}\n className={className}\n style={{ display: \"block\", ...style }}\n role=\"img\"\n aria-label={solFaceAltText(walletAddress)}\n {...rest}\n >\n {!flat && (\n <defs>\n <linearGradient id={`${id}sg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={derived.skinHi} />\n <stop offset=\"50%\" stopColor={skin} />\n <stop offset=\"100%\" stopColor={derived.skinLo} />\n </linearGradient>\n <linearGradient id={`${id}bg`} x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(bgCol, 0.12)} />\n <stop offset=\"100%\" stopColor={darken(bgCol, 0.12)} />\n </linearGradient>\n {full && cheekEnabled && (\n <>\n <radialGradient id={`${id}glow`} cx=\"0.5\" cy=\"0.28\" r=\"0.45\">\n <stop offset=\"0%\" stopColor=\"#ffffff\" stopOpacity={theme?.glowIntensity ?? 0.10} />\n <stop offset=\"100%\" stopColor=\"#ffffff\" stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}chin`} cx=\"0.5\" cy=\"0.85\" r=\"0.35\">\n <stop offset=\"0%\" stopColor={derived.skinLo} stopOpacity={0.30} />\n <stop offset=\"100%\" stopColor={derived.skinLo} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cL`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cR`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n </>\n )}\n </defs>\n )}\n\n {blinkEnabled && (\n <style>{`\n @keyframes ${id}-blink {\n 0%, 90%, 100% { transform: scaleY(1); }\n 95% { transform: scaleY(0.1); }\n }\n .${id}-eyes {\n animation: ${id}-blink ${blinkDuration}s ease-in-out${delayStr} infinite;\n transform-origin: 32px 33px;\n }\n `}</style>\n )}\n\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill={bgFill} opacity={bgOpacity} rx={bgRadius} />\n\n {theme?.hairEnabled !== false && <HairBack hi={hi} id={id} flat={flat} />}\n {theme?.earsEnabled !== false && <Ears earFill={earFillFinal} earShadow={derived.earShadow} />}\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={skinFill} opacity={theme?.skinOpacity ?? 1} />\n\n {full && cheekEnabled && !flat && (theme?.shadowEnabled ?? true) && <FaceOverlays id={id} />}\n\n {theme?.hairEnabled !== false && <HairFront hi={hi} id={id} hairCol={hairCol} flat={flat} />}\n\n {ai === 5 && theme?.accessoriesEnabled !== false && <Accessory ai={5} accessoryColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} beautyMarkColor={beautyMarkColor} freckleColor={freckleColor} skinColor={skin} />}\n\n <g className={blinkEnabled ? `${id}-eyes` : undefined}>\n <Eyes ei={traits.eyeStyle % 9} eyeCol={eyeCol} eyeWhite={eyeWhite} lidColor={lidFinal} full={full} />\n </g>\n\n {theme?.eyebrowsEnabled !== false && <Eyebrows bi={traits.eyebrows % 8} browColor={browColor} full={full} />}\n {theme?.noseEnabled !== false && <Nose ni={traits.nose % 8} noseFill={noseFill} />}\n <Mouth mi={traits.mouth % 8} lipColor={lipColor} isDark={derived.isDark} />\n\n {ai !== 0 && ai !== 5 && theme?.accessoriesEnabled !== false && (\n <Accessory ai={ai} accessoryColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} beautyMarkColor={beautyMarkColor} freckleColor={freckleColor} skinColor={skin} />\n )}\n\n {theme?.border && (\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill=\"none\" stroke={theme.border.color} strokeWidth={theme.border.width} rx={bgRadius} />\n )}\n </svg>\n );\n\n // Liquid glass mode\n if (theme?._glass) {\n const glassEl = (\n <GlassWrapper size={size} theme={theme}>\n {svgElement}\n </GlassWrapper>\n );\n if (!showName) return glassEl;\n const glassName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n {glassEl}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n </div>\n );\n }\n\n if (!showName) return svgElement;\n const walletName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n {svgElement}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n </div>\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport { deriveName, deriveIdentity } from \"../names\";\nimport type { NameFormat, SolNameIdentity } from \"../names\";\n\n/**\n * React hook for deriving a SolName from a wallet address.\n *\n * @param wallet Base58 wallet address\n * @param format Optional name format. If omitted, returns full SolNameIdentity.\n */\nexport function useSolName(wallet: string): SolNameIdentity;\nexport function useSolName(wallet: string, format: NameFormat): string;\nexport function useSolName(\n wallet: string,\n format?: NameFormat,\n): string | SolNameIdentity {\n return useMemo(() => {\n if (format) return deriveName(wallet, format);\n return deriveIdentity(wallet);\n }, [wallet, format]);\n}\n"]}
1
+ {"version":3,"sources":["../../src/react/SolFace.tsx","../../src/react/useSolName.ts"],"names":["useMemo"],"mappings":";;;;;AA0EA,SAAS,KAAK,GAAA,EAAqB;AACjC,EAAA,IAAI,IAAA,GAAO,IAAA;AACX,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,IAAA,IAAA,GAAA,CAAS,QAAQ,CAAA,IAAK,IAAA,GAAO,GAAA,CAAI,UAAA,CAAW,CAAC,CAAA,GAAK,CAAA;AAAA,EACpD;AACA,EAAA,OAAO,IAAA,KAAS,CAAA;AAClB;AAIA,SAAS,SAAS,MAAA,EAAmD;AACnE,EAAA,OAAO,IAAA;AACT;AAIA,SAAS,IAAA,CAAK,EAAE,OAAA,EAAS,SAAA,EAAU,EAA2C;AAC5E,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,oBACtD,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,SAAA,EAAW,SAAQ,KAAA,EAAM,CAAA;AAAA,oBAC1E,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,oBACtD,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,SAAA,EAAW,SAAQ,KAAA,EAAM;AAAA,GAAA,EAC5E,CAAA;AAEJ;AAIA,SAAS,YAAA,CAAa,EAAE,EAAA,EAAG,EAAmB;AAC5C,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,KAAA,CAAA,EAAS,CAAA;AAAA,wBACnF,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,MAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,KAAA,CAAA,EAAS,CAAA;AAAA,oBACpF,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA,EAAO,CAAA;AAAA,oBAChE,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA,EAAO,CAAA;AAAA,wBAC/D,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,QAAO,cAAA,EAAe,WAAA,EAAY,OAAM,OAAA,EAAQ,MAAA,EAAO,eAAc,OAAA,EAAQ;AAAA,GAAA,EACrH,CAAA;AAEJ;AAIA,SAAS,UAAU,MAAA,EAAoE;AACrF,EAAA,OAAO,IAAA;AACT;AAIA,SAAS,KAAK,EAAE,EAAA,EAAI,QAAQ,QAAA,EAAU,QAAA,EAAU,MAAK,EAAsF;AACzI,EAAA,MAAM,EAAA,GAAK,EAAA,EAAI,EAAA,GAAK,EAAA,EAAI,CAAA,GAAI,EAAA;AAE5B,EAAA,MAAM,OAAO,IAAA,IAAQ,EAAA,KAAO,CAAA,IAAK,EAAA,KAAO,oBACtC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,oBACrI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,OAAA,EAAQ,KAAA,EAAM;AAAA,GAAA,EACvI,CAAA,GACE,IAAA;AAEJ,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,GAAA,EAAI,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC7E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC5E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,MAAA,EAAQ,CAAA;AAAA,QAC5C,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC/E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC5C,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM;AAAA,OAAA,EACjF,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC/E,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC9E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,GAAA,EAAI,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC7E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC7C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAClD,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC5E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC5D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD,IAAA,wBAAS,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,wBAC/H,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC5D,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD,IAAA,wBAAS,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,QAC9H;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,IAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBAC/H,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACjI,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAClE,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QACjE;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,IAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBAC9D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC1D,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC7D;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC9C,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,wBAC/E,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC9C,IAAA,oBAAQ,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,QAC9E;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ;AACE,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA,EAAE,KAAA,EAAM,MAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,wBACjD,GAAA,CAAC,YAAO,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,wBAC/C,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAChD;AAAA,OAAA,EACH,CAAA;AAAA;AAGR;AAIA,SAAS,SAAS,EAAE,EAAA,EAAI,SAAA,EAAW,IAAA,GAAO,MAAK,EAAsD;AACnG,EAAA,MAAM,EAAA,GAAK,EAAA,EAAI,EAAA,GAAK,EAAA,EAAI,CAAA,GAAI,EAAA;AAC5B,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,4BAC5G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,OAAA,EAC/G,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,GAAG,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,GAAG,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,4BAC1G,MAAA,EAAA,EAAK,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,OAAA,EAC7G,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBACpJ,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACtJ,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBACxI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EAC1I,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,CAAA;AAAA,wBACpK,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ;AAAA,OAAA,EACtK,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,EAAA,EAAI,EAAA,GAAK,GAAG,EAAA,EAAI,CAAA,GAAI,GAAG,EAAA,EAAI,EAAA,GAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,4BAC9G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,WAAW,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ;AAAA,OAAA,EACjH,CAAA;AAAA,IAEJ,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,EAAA,GAAK,OAAO,KAAA,GAAQ,KAAA;AAC1B,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAa,EAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBAC7I,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAa,EAAA,EAAI,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EAC/I,CAAA;AAAA,IAEJ;AAAA,IACA,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,IAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,wBACxI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EAC1I,CAAA;AAAA,IAEJ;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,IAAA,CAAK,EAAE,EAAA,EAAI,QAAA,EAAS,EAAqC;AAChE,EAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,EAAA;AACnB,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,IACtF,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,GAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,IAC5E,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,GAAA,EAAI,aAAA,EAAc,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,IACpK,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,wBACnE,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAI,EAAA,GAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM;AAAA,OAAA,EACrE,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAE,IAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,IAAI,GAAG,CAAA,EAAA,EAAK,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,CAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,KAAA,EAAM,CAAA;AAAA,IACjH,KAAK,CAAA;AACH,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,IAClF,KAAK,CAAA;AACH,MAAA,2BAAQ,MAAA,EAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,CAAA,GAAI,GAAG,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,GAAI,CAAA,EAAG,QAAQ,QAAA,EAAU,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,SAAQ,KAAA,EAAM,CAAA;AAAA,IAC7H,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,GAAE,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,wBAClE,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,GAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,SAAQ,MAAA,EAAO;AAAA,OAAA,EAC/E,CAAA;AAAA,IAEJ;AAAS,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA;AAE3F;AAIA,SAAS,KAAA,CAAM,EAAE,EAAA,EAAI,QAAA,EAAU,QAAO,EAAsD;AAC1F,EAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,EAAA;AACnB,EAAA,MAAM,QAAA,GAAW,SAAS,SAAA,GAAY,SAAA;AACtC,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,IAChJ,KAAK,CAAA;AAAG,MAAA,2BAAQ,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,CAAA,EAAG,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,IAC7H,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,IAChJ,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,SAAQ,KAAA,EAAM,CAAA;AAAA,IACzF,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,EAAA,EAAK,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,eAAc,OAAA,EAAQ,CAAA;AAAA,IAC9J,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,MAAM,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,GAAA,EAAI,CAAA;AAAA,4BAC5G,MAAA,EAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,MAAA,EAAQ,UAAU,WAAA,EAAY,KAAA,EAAM,SAAQ,KAAA,EAAM;AAAA,OAAA,EAC5G,CAAA;AAAA,IAEJ,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA,IAC9J,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAA,EAAA,EAAQ,EAAA,EAAQ,EAAA,EAAI,CAAA,GAAI,CAAA,EAAG,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,GAAA,EAAI,IAAA,EAAM,QAAA,EAAU,OAAA,EAAQ,MAAA,EAAO,CAAA;AAAA,wBAC3E,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,GAAG,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ;AAAA,OAAA,EACrI,CAAA;AAAA,IAEJ;AAAS,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,CAAA,CAAA,EAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,IAAI,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,CAAA;AAAA;AAErJ;AAIA,SAAS,SAAA,CAAU,EAAE,EAAA,EAAI,cAAA,EAAgB,iBAAiB,YAAA,EAAc,YAAA,EAAc,aAAA,EAAe,eAAA,GAAkB,SAAA,EAAW,YAAA,GAAe,SAAA,EAAW,SAAA,GAAY,WAAU,EAE/K;AACD,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,CAAA;AAAG,MAAA,OAAO,IAAA;AAAA,IACf,KAAK,CAAA;AAAG,MAAA,uBAAO,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,eAAA,EAAiB,CAAA;AAAA,IACtE,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,GAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,wBAChC,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBAC1C,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACxC,GAAA,CAAC,UAAK,EAAA,EAAG,MAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EAC1C,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,GAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,OAAM,IAAA,EAAK,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,CAAA;AAAA,wBACnD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,GAAA,EAAI,EAAA,EAAG,KAAA,EAAM,CAAA;AAAA,wBACnD,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EACxC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,CAAA,EAAE,KAAA,EAAM,MAAM,YAAA,EAAc,CAAA;AAAA,wBACpD,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,IAAA,EAAM,YAAA,EAAc,OAAA,EAAQ,KAAA,EAAM;AAAA,OAAA,EAClE,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,GAAE,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,OAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,aAAA,EAAe,SAAQ,MAAA,EAAO,CAAA;AAAA,IAClG,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAM,YAAA,EAAc,SAAQ,MAAA,EAC7B,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,MAAA,EAAO,GAAE,KAAA,EAAM,CAAA;AAAA,4BACjC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,KAAA,EAAM,CAAA;AAAA,4BAC/B,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,MAAA,EAAO,GAAE,KAAA,EAAM;AAAA,OAAA,EACpC,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,CAAA,EAAE,KAAA,EAAM,MAAM,YAAA,EAAc,CAAA;AAAA,wBACpD,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,YAAA,EAAc;AAAA,OAAA,EACtD,CAAA;AAAA,IAEJ,KAAK,CAAA;AACH,MAAA,4BACG,GAAA,EAAA,EAAE,IAAA,EAAK,QAAO,MAAA,EAAQ,YAAA,EAAc,aAAY,KAAA,EAC/C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,CAAA,EAAE,8DAAA,EAA+D,IAAA,EAAM,YAAA,EAAc,aAAY,MAAA,EAAO,CAAA;AAAA,4BAC7G,MAAA,EAAA,EAAK,CAAA,EAAE,gEAA+D,IAAA,EAAM,YAAA,EAAc,aAAY,MAAA,EAAO,CAAA;AAAA,wBAC9G,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,wBACtC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,OAAA,EACxC,CAAA;AAAA,IAEJ,KAAK,CAAA,EAAG;AACN,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA;AACvC,MAAA,MAAM,OAAA,GAAW,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA;AACvC,MAAA,MAAM,OAAA,GAAW,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA;AACtC,MAAA,4BACG,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,MAAK,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,QAAA,EAAU,WAAU,mBAAA,EAAoB,CAAA;AAAA,wBAClG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,MAAA,EAAO,GAAE,MAAA,EAAO,KAAA,EAAM,GAAA,EAAI,MAAA,EAAO,OAAM,EAAA,EAAG,KAAA,EAAM,IAAA,EAAM,OAAA,EAAS,WAAU,mBAAA,EAAoB,CAAA;AAAA,wBACrG,GAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,OAAA,EAAQ,CAAA,EAAE,KAAA,EAAM,IAAA,EAAM,OAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,OAAA,EACpF,CAAA;AAAA,IAEJ;AAAA,IACA,KAAK,EAAA;AACH,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,MAAA,EAAO,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,QAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,eAAc,MAAA,EAAO,CAAA;AAAA,IAC/G,KAAK,EAAA;AACH,MAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,MAAA,EAAO,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,QAAO,MAAA,EAAQ,SAAA,EAAW,WAAA,EAAY,KAAA,EAAM,eAAc,MAAA,EAAO,CAAA;AAAA,IAC/G;AAAS,MAAA,OAAO,IAAA;AAAA;AAEpB;AAIA,SAAS,aAAa,EAAE,SAAA,EAAW,MAAM,KAAA,EAAO,GAAA,GAAM,IAAG,EAA2E;AAClI,EAAA,MAAM,QAAQ,IAAA,GAAO,EAAA;AAErB,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,EAAA;AACvC,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,IAAA;AACvC,EAAA,MAAM,OAAA,GAAU,MAAM,aAAA,IAAiB,KAAA;AACvC,EAAA,MAAM,YAAA,GAAe,MAAM,kBAAA,IAAsB,MAAA;AACjD,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,OAAO,KAAA,CAAM,kBAAA,IAAsB,CAAA,IAAK,KAAK,CAAC,CAAA;AACpF,EAAA,MAAM,SAAA,GAAY,MAAM,eAAA,IAAmB,KAAA;AAC3C,EAAA,MAAM,eAAA,GAAkB,MAAM,qBAAA,IAAyB,IAAA;AACvD,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,OAAO,KAAA,CAAM,qBAAA,IAAyB,CAAA,IAAK,KAAK,CAAC,CAAA;AAC1F,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,IAAc,KAAA;AACjC,EAAA,MAAM,WAAA,GAAc,MAAM,iBAAA,IAAqB,IAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,MAAM,eAAA,IAAmB,MAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,MAAM,YAAA,IAAgB,KAAA;AACrC,EAAA,MAAM,WAAA,GAAc,MAAM,iBAAA,IAAqB,iBAAA;AAC/C,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,OAAO,KAAA,CAAM,kBAAA,IAAsB,CAAA,IAAK,KAAK,CAAC,CAAA;AACpF,EAAA,MAAM,WAAW,KAAA,CAAM,cAAA;AACvB,EAAA,MAAM,aAAa,KAAA,CAAM,gBAAA;AACzB,EAAA,MAAM,aAAa,KAAA,CAAM,gBAAA;AAEzB,EAAA,MAAM,OAAA,GAAU,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,SAAS,CAAC,CAAA,CAAA;AAGjF,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,MAAA,UAAgB,IAAA,CAAK,CAAA,YAAA,EAAe,YAAY,CAAA,GAAA,EAAM,YAAY,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA,CAAG,CAAA;AAC9F,EAAA,IAAI,aAAa,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,CAAG,CAAA;AAChE,EAAA,IAAI,eAAe,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,SAAA,EAAY,UAAU,CAAA,CAAA,CAAG,CAAA;AACpE,EAAA,IAAI,eAAe,MAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,CAAA,WAAA,EAAc,UAAU,CAAA,CAAA,CAAG,CAAA;AAEtE,EAAA,MAAM,cAAA,GAAgC;AAAA,IACpC,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA,EAAS,cAAA;AAAA,IACT,GAAI,OAAA,CAAQ,MAAA,GAAS,EAAE,MAAA,EAAQ,QAAQ,IAAA,CAAK,GAAG,CAAA,EAAE,GAAI;AAAC,GACxD;AAEA,EAAA,MAAM,QAAA,GAA0B;AAAA,IAC9B,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,cAAA,EAAgB,WAAA;AAAA,IAChB,YAAA,EAAc,UAAU,KAAA,GAAQ,CAAA;AAAA,IAChC,OAAA,EAAS,OAAA;AAAA,IACT,QAAQ,OAAA,GAAU,CAAA,EAAG,YAAY,CAAA,SAAA,EAAY,YAAY,CAAA,CAAA,GAAK;AAAA,GAChE;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAK,OAAA,EAAS,KAAA,EAAO,SAAS,MAAA,EAAQ,OAAA,EAAS,KAAA,EAAO,QAAA,EAAU,GAAA,EAAU,CAAA;AAAA,IAC9E,SAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,UAAA,EAAY,CAAA,yDAAA,EAA4D,eAAe,CAAA,eAAA,EAAkB,eAAe,CAAA,EAAA,EAAK,eAAe,CAAA,eAAA,EAAkB,eAAe,CAAA,EAAA,EAAK,eAAA,GAAkB,CAAC,CAAA,GAAA,CAAA;AAAA,MACrM,aAAA,EAAe,MAAA;AAAA,MACf,YAAA,EAAc,UAAU,KAAA,GAAQ;AAAA,KAClC,EAAG,CAAA;AAAA,IAEJ,IAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,gBAAgB,CAAA,EAAG,IAAA,GAAO,OAAO,CAAA,GAAA,EAAM,OAAO,OAAO,CAAA,EAAA,CAAA;AAAA,MACrD,eAAA,EAAiB,CAAA,gBAAA,EAAmB,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,cAAA,EAAiB,WAAW,CAAA,0BAAA,EAA6B,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAA,CAAA;AAAA,MACzK,aAAA,EAAe,MAAA;AAAA,MACf,YAAA,EAAc,UAAU,KAAA,GAAQ;AAAA,KAClC,EAAG;AAAA,GAAA,EAEP,CAAA;AAEJ;AAIA,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,IAAA,EAAM,OAAM,EAAqE;AACjH,EAAA,MAAM,QAAQ,IAAA,GAAO,EAAA;AAErB,EAAA,MAAM,UAAA,GAAA,CAAc,KAAA,CAAM,WAAA,IAAe,EAAA,IAAM,KAAA;AAC/C,EAAA,MAAM,QAAA,GAAW,MAAM,SAAA,IAAa,GAAA;AACpC,EAAA,MAAM,WAAA,GAAc,MAAM,YAAA,IAAgB,IAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,IAAc,qBAAA;AACtC,EAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,IAAkB,IAAA;AAC9C,EAAA,MAAM,cAAc,IAAA,CAAK,GAAA,CAAI,MAAM,KAAA,CAAM,YAAA,IAAgB,KAAK,KAAK,CAAA;AACnE,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,YAAA,IAAgB,CAAA,iBAAA,EAAoB,aAAa,CAAA,CAAA,CAAA;AAC3E,EAAA,MAAM,eAAA,GAAkB,MAAM,gBAAA,IAAoB,IAAA;AAClD,EAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,IAAkB,qBAAA;AAC9C,EAAA,MAAM,WAAA,GAAc,MAAM,YAAA,IAAgB,EAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,MAAM,WAAA,IAAe,GAAA;AACxC,EAAA,MAAM,YAAA,GAAe,MAAM,aAAA,IAAiB,IAAA;AAG5C,EAAA,MAAM,UAAU,IAAA,CAAK,KAAA,CAAA,CAAO,KAAA,CAAM,QAAA,IAAY,KAAK,KAAK,CAAA;AACxD,EAAA,MAAM,cAAc,IAAA,CAAK,KAAA,CAAA,CAAO,KAAA,CAAM,WAAA,IAAe,MAAM,KAAK,CAAA;AAChE,EAAA,MAAM,aAAA,GAAgB,MAAM,cAAA,IAAkB,IAAA;AAC9C,EAAA,MAAM,SAAA,GAAY,MAAM,OAAA,IAAW,CAAA,EAAA,EAAK,OAAO,CAAA,GAAA,EAAM,WAAW,iBAAiB,aAAa,CAAA,CAAA,CAAA;AAE9F,EAAA,MAAM,QAAA,GAAA,CAAY,KAAA,CAAM,QAAA,IAAY,EAAA,IAAM,KAAA;AAE1C,EAAA,MAAM,cAAA,GAAgC;AAAA,IACpC,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA,EAAS,cAAA;AAAA,IACT,YAAA,EAAc,QAAA;AAAA,IACd,QAAA,EAAU,QAAA;AAAA,IACV,cAAA,EAAgB,CAAA,KAAA,EAAQ,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAA,CAAA;AAAA,IAC1D,oBAAA,EAAsB,CAAA,KAAA,EAAQ,UAAU,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAA,CAAA;AAAA,IAChE,MAAA,EAAQ,CAAA,EAAG,WAAW,CAAA,SAAA,EAAY,WAAW,CAAA,CAAA;AAAA,IAC7C,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,eAAA,EAAiB,SAAA;AAAA,MAAW,OAAA,EAAS,WAAA;AAAA,MACrC,YAAA,EAAc,QAAA;AAAA,MAAU,aAAA,EAAe;AAAA,KACzC,EAAG,CAAA;AAAA,oBACH,GAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,MAAA,EAAQ,CAAA,EAAE,EAC3C,QAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,UAAA,EAAY,CAAA,gBAAA,EAAmB,UAAU,CAAA,KAAA,EAAQ,aAAA,CAAc,OAAA,CAAQ,IAAA,EAAM,CAAA,EAAG,eAAe,CAAA,CAAA,CAAG,CAAC,CAAA,iBAAA,EAAoB,WAAW,CAAA,EAAA,CAAA;AAAA,MAClI,YAAA,EAAc,QAAA;AAAA,MAAU,aAAA,EAAe;AAAA,KACzC,EAAG,CAAA;AAAA,oBACH,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MAAY,KAAA,EAAO,CAAA;AAAA,MAC7B,YAAA,EAAc,QAAA;AAAA,MACd,SAAA,EAAW,oCAAoC,YAAY,CAAA,CAAA,CAAA;AAAA,MAC3D,aAAA,EAAe;AAAA,KACjB,EAAG;AAAA,GAAA,EACL,CAAA;AAEJ;AAIO,SAAS,OAAA,CAAQ;AAAA,EACtB,aAAA;AAAA,EACA,IAAA,GAAO,EAAA;AAAA,EACP,WAAA,GAAc,KAAA;AAAA,EACd,KAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA,EAAQ,UAAA;AAAA,EACR,QAAA,GAAW,KAAA;AAAA,EACX,YAAA,GAAe,OAAA;AAAA,EACf,UAAA,GAAa,SAAA;AAAA,EACb,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,MAAM,cAAA,CAAe,aAAA,EAAe,cAAc,CAAA;AAAA,IAClD,CAAC,eAAe,cAAc;AAAA,GAChC;AAEA,EAAA,MAAM,YAAY,UAAA,IAAc,MAAA;AAChC,EAAA,MAAM,IAAA,GAAO,SAAA,KAAc,MAAA,IAAW,SAAA,KAAc,UAAU,IAAA,IAAQ,EAAA;AACtE,EAAA,MAAM,IAAA,GAAO,OAAO,IAAA,IAAQ,KAAA;AAE5B,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,IAAc,WAAA;AACxC,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,UAAA;AACtC,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,IAAc,WAAA;AACxC,EAAA,MAAM,QAAA,GAAW,OAAO,QAAA,IAAY,SAAA;AAEpC,EAAA,MAAM,OAAO,cAAA,EAAgB,IAAA,IAAQ,WAAW,MAAA,CAAO,SAAA,GAAY,WAAW,MAAM,CAAA;AACpF,EAAA,MAAM,SAAS,cAAA,EAAgB,IAAA,IAAQ,UAAU,MAAA,CAAO,QAAA,GAAW,UAAU,MAAM,CAAA;AACnF,EAAA,MAAM,UAAU,cAAA,EAAgB,IAAA,IAAQ,WAAW,MAAA,CAAO,SAAA,GAAY,WAAW,MAAM,CAAA;AACvF,EAAA,MAAM,QAAQ,cAAA,EAAgB,EAAA,IAAM,SAAS,MAAA,CAAO,OAAA,GAAU,SAAS,MAAM,CAAA;AAE7E,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM,gBAAA,CAAiB,IAAI,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAE5D,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,CAAA;AACtC,EAAA,MAAM,QAAA,GAAW,OAAO,QAAA,IAAY,CAAA;AACpC,EAAA,MAAM,SAAA,GAAY,cAAA,EAAgB,OAAA,IAAW,KAAA,EAAO,gBAAgB,OAAA,CAAQ,SAAA;AAC5E,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,IAAA,IAAQ,KAAA,EAAO,aAAa,OAAA,CAAQ,QAAA;AACrE,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,KAAA,IAAS,KAAA,EAAO,cAAc,OAAA,CAAQ,QAAA;AACvE,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,QAAA,IAAY,KAAA,EAAO,iBAAiB,OAAA,CAAQ,eAAA;AAC7E,EAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,SAAA;AAC5C,EAAA,MAAM,eAAe,KAAA,EAAO,YAAA,IAAgB,KAAA,CAAM,IAAA,EAAM,WAAW,GAAG,CAAA;AACtE,EAAA,MAAM,gBAAgB,KAAA,EAAO,aAAA,IAAiB,KAAA,CAAM,OAAA,EAAS,WAAW,GAAG,CAAA;AAC3E,EAAA,MAAM,QAAA,GAAW,cAAA,EAAgB,SAAA,IAAa,KAAA,EAAO,kBAAkB,OAAA,CAAQ,cAAA;AAC/E,EAAA,MAAM,YAAA,GAAe,KAAA,EAAO,QAAA,IAAY,OAAA,CAAQ,OAAA;AAChD,EAAA,MAAM,QAAA,GAAW,KAAA,EAAO,QAAA,IAAY,OAAA,CAAQ,QAAA;AAC5C,EAAA,MAAM,eAAA,GAAkB,OAAO,eAAA,IAAmB,SAAA;AAClD,EAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,SAAA;AAE5C,EAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,MAAM,IAAA,GAAO,IAAA,CAAK,aAAa,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAEjF,EAAA,MAAM,YAAA,GAAe,OAAO,YAAA,IAAgB,IAAA;AAC5C,EAAA,MAAM,UAAA,GAAa,KAAA,EAAO,UAAA,IAAc,OAAA,CAAQ,UAAA;AAChD,EAAA,MAAM,YAAA,GAAe,KAAA,EAAO,YAAA,IAAgB,OAAA,CAAQ,YAAA;AAEpD,EAAA,MAAM,EAAA,GAAK,OAAO,SAAA,GAAY,EAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,mBAAmB,MAAM,CAAA;AAEpC,EAAA,MAAM,YAAA,GAAe,CAAC,CAAC,WAAA;AACvB,EAAA,MAAM,gBAAgB,OAAO,WAAA,KAAgB,QAAA,GAAY,WAAA,CAAY,YAAY,CAAA,GAAK,CAAA;AACtF,EAAA,MAAM,aAAa,OAAO,WAAA,KAAgB,QAAA,GAAY,WAAA,CAAY,SAAS,CAAA,GAAK,CAAA;AAChF,EAAA,MAAM,QAAA,GAAW,UAAA,GAAa,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,CAAA,GAAM,EAAA;AAElD,EAAA,MAAM,MAAA,GAAS,IAAA,GAAO,KAAA,GAAQ,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AACxC,EAAA,MAAM,QAAA,GAAW,IAAA,GAAO,IAAA,GAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,GAAA,CAAA;AAGzC,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,MAAM,QAAA,GAAW,iBAAiB,aAAA,EAAe;AAAA,MAC/C,IAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAQ,KAAA,EAAM;AAAA,MAChD,cAAA;AAAA,MACA,cAAA;AAAA,MACA,MAAA,EAAQ;AAAA,KACT,CAAA;AACD,IAAA,uBAAO,GAAA,CAAC,gBAAa,SAAA,EAAW,QAAA,EAAU,MAAY,KAAA,EAAc,GAAA,EAAK,cAAA,CAAe,aAAa,CAAA,EAAG,CAAA;AAAA,EAC1G;AAEA,EAAA,MAAM,UAAA,mBACJ,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,4BAAA;AAAA,MACN,OAAA,EAAQ,WAAA;AAAA,MACR,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,IAAA;AAAA,MACR,SAAA;AAAA,MACA,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,EAAS,GAAG,KAAA,EAAM;AAAA,MACpC,IAAA,EAAK,KAAA;AAAA,MACL,YAAA,EAAY,eAAe,aAAa,CAAA;AAAA,MACvC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,CAAC,IAAA,yBACC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EACrD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,QAAQ,MAAA,EAAQ,CAAA;AAAA,4BAC7C,GAAA,CAAC,MAAA,EAAA,EAAK,MAAA,EAAO,KAAA,EAAM,WAAW,IAAA,EAAM,CAAA;AAAA,gCACnC,MAAA,EAAA,EAAK,MAAA,EAAO,MAAA,EAAO,SAAA,EAAW,QAAQ,MAAA,EAAQ;AAAA,WAAA,EACjD,CAAA;AAAA,0BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EACrD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,WAAW,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA,EAAG,CAAA;AAAA,4BACnD,GAAA,CAAC,UAAK,MAAA,EAAO,MAAA,EAAO,WAAW,MAAA,CAAO,KAAA,EAAO,IAAI,CAAA,EAAG;AAAA,WAAA,EACtD,CAAA;AAAA,UACC,IAAA,IAAQ,gCACP,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,IAAA,CAAA,EAAQ,IAAG,KAAA,EAAM,EAAA,EAAG,MAAA,EAAO,CAAA,EAAE,MAAA,EACpD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,QAAO,IAAA,EAAK,SAAA,EAAU,WAAU,WAAA,EAAa,KAAA,EAAO,iBAAiB,GAAA,EAAM,CAAA;AAAA,kCAChF,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAU,SAAA,EAAU,aAAa,CAAA,EAAG;AAAA,aAAA,EAC1D,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,IAAA,CAAA,EAAQ,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,MAAA,EAAO,CAAA,EAAE,MAAA,EACpD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,WAAW,OAAA,CAAQ,MAAA,EAAQ,aAAa,GAAA,EAAM,CAAA;AAAA,8BAChE,GAAA,CAAC,UAAK,MAAA,EAAO,MAAA,EAAO,WAAW,OAAA,CAAQ,MAAA,EAAQ,aAAa,CAAA,EAAG;AAAA,aAAA,EACjE,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,CAAA,EAAE,KAAA,EACjD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,UAAA,EAAY,aAAa,YAAA,EAAc,CAAA;AAAA,kCACnE,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAW,UAAA,EAAY,aAAa,CAAA,EAAG;AAAA,aAAA,EAC7D,CAAA;AAAA,4BACA,IAAA,CAAC,gBAAA,EAAA,EAAe,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,EAAA,CAAA,EAAM,EAAA,EAAG,KAAA,EAAM,EAAA,EAAG,KAAA,EAAM,CAAA,EAAE,KAAA,EACjD,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,UAAK,MAAA,EAAO,IAAA,EAAK,SAAA,EAAW,UAAA,EAAY,aAAa,YAAA,EAAc,CAAA;AAAA,kCACnE,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAW,UAAA,EAAY,aAAa,CAAA,EAAG;AAAA,aAAA,EAC7D;AAAA,WAAA,EACF;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGD,YAAA,wBACE,OAAA,EAAA,EAAO,QAAA,EAAA;AAAA,qBAAA,EACO,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAIZ,EAAE,CAAA;AAAA,uBAAA,EACU,EAAE,CAAA,OAAA,EAAU,aAAa,CAAA,aAAA,EAAgB,QAAQ,CAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAGhE,CAAA;AAAA,wBAGJ,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,GAAA,EAAI,GAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,IAAI,QAAA,EAAU,CAAA;AAAA,QAExF,OAAO,WAAA,KAAgB,KAAA,wBAAU,QAAA,EAAA,EAAS,EAAA,EAAQ,IAAQ,IAAA,EAAY,CAAA;AAAA,QACtE,KAAA,EAAO,gBAAgB,KAAA,oBAAS,GAAA,CAAC,QAAK,OAAA,EAAS,YAAA,EAAc,SAAA,EAAW,OAAA,CAAQ,SAAA,EAAW,CAAA;AAAA,4BAC3F,MAAA,EAAA,EAAK,CAAA,EAAE,MAAK,CAAA,EAAE,IAAA,EAAK,OAAM,IAAA,EAAK,MAAA,EAAO,MAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,IAAA,EAAM,UAAU,OAAA,EAAS,KAAA,EAAO,eAAe,CAAA,EAAG,CAAA;AAAA,QAE5G,IAAA,IAAQ,gBAAgB,CAAC,IAAA,KAAS,OAAO,aAAA,IAAiB,IAAA,CAAA,oBAAS,GAAA,CAAC,YAAA,EAAA,EAAa,EAAA,EAAQ,CAAA;AAAA,QAEzF,KAAA,EAAO,gBAAgB,KAAA,oBAAS,GAAA,CAAC,aAAU,EAAA,EAAQ,EAAA,EAAQ,SAAkB,IAAA,EAAY,CAAA;AAAA,QAEzF,OAAO,CAAA,IAAK,KAAA,EAAO,kBAAA,KAAuB,KAAA,wBAAU,SAAA,EAAA,EAAU,EAAA,EAAI,CAAA,EAAG,cAAA,EAAgB,UAAU,YAAA,EAA4B,YAAA,EAA4B,eAA8B,eAAA,EAAkC,YAAA,EAA4B,WAAW,IAAA,EAAM,CAAA;AAAA,4BAEpQ,GAAA,EAAA,EAAE,SAAA,EAAW,eAAe,CAAA,EAAG,EAAE,UAAU,MAAA,EAC1C,QAAA,kBAAA,GAAA,CAAC,QAAK,EAAA,EAAI,MAAA,CAAO,WAAW,CAAA,EAAG,MAAA,EAAgB,UAAoB,QAAA,EAAU,QAAA,EAAU,MAAY,CAAA,EACrG,CAAA;AAAA,QAEC,KAAA,EAAO,eAAA,KAAoB,KAAA,oBAAS,GAAA,CAAC,QAAA,EAAA,EAAS,IAAI,MAAA,CAAO,QAAA,GAAW,CAAA,EAAG,SAAA,EAAsB,IAAA,EAAY,CAAA;AAAA,QACzG,KAAA,EAAO,gBAAgB,KAAA,oBAAS,GAAA,CAAC,QAAK,EAAA,EAAI,MAAA,CAAO,IAAA,GAAO,CAAA,EAAG,QAAA,EAAoB,CAAA;AAAA,wBAChF,GAAA,CAAC,SAAM,EAAA,EAAI,MAAA,CAAO,QAAQ,CAAA,EAAG,QAAA,EAAoB,MAAA,EAAQ,OAAA,CAAQ,MAAA,EAAQ,CAAA;AAAA,QAExE,OAAO,CAAA,IAAK,EAAA,KAAO,KAAK,KAAA,EAAO,kBAAA,KAAuB,yBACrD,GAAA,CAAC,SAAA,EAAA,EAAU,EAAA,EAAQ,cAAA,EAAgB,UAAU,YAAA,EAA4B,YAAA,EAA4B,eAA8B,eAAA,EAAkC,YAAA,EAA4B,WAAW,IAAA,EAAM,CAAA;AAAA,QAGnN,KAAA,EAAO,0BACN,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,MAAK,IAAA,EAAK,MAAA,EAAO,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,aAAa,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,EAAA,EAAI,QAAA,EAAU;AAAA;AAAA;AAAA,GAEpI;AAIF,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,MAAM,OAAA,mBACJ,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAY,OACvB,QAAA,EAAA,UAAA,EACH,CAAA;AAEF,IAAA,IAAI,CAAC,UAAU,OAAO,OAAA;AACtB,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,aAAA,EAAe,UAAU,CAAA;AACtD,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,aAAA,EAAe,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EACzF,QAAA,EAAA;AAAA,MAAA,YAAA,KAAiB,OAAA,oBAAW,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,OAAO,CAAC,CAAA,EAAG,UAAA,EAAY,SAAA,IAAc,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,MACjH,OAAA;AAAA,MACA,iBAAiB,OAAA,oBAAW,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,OAAO,CAAC,CAAA,EAAG,UAAA,EAAY,SAAA,IAAc,QAAA,EAAA,SAAA,EAAU;AAAA,KAAA,EACpH,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,CAAC,UAAU,OAAO,UAAA;AACtB,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,aAAA,EAAe,UAAU,CAAA;AACvD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,aAAA,EAAe,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EACzF,QAAA,EAAA;AAAA,IAAA,YAAA,KAAiB,OAAA,oBAAW,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,OAAO,CAAC,CAAA,EAAG,UAAA,EAAY,SAAA,IAAc,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,IAClH,UAAA;AAAA,IACA,iBAAiB,OAAA,oBAAW,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,OAAO,CAAC,CAAA,EAAG,UAAA,EAAY,SAAA,IAAc,QAAA,EAAA,UAAA,EAAW;AAAA,GAAA,EACrH,CAAA;AAEJ;AC5wBO,SAAS,UAAA,CACd,QACA,MAAA,EAC0B;AAC1B,EAAA,OAAOA,QAAQ,MAAM;AACnB,IAAA,IAAI,MAAA,EAAQ,OAAO,UAAA,CAAW,MAAA,EAAQ,MAAM,CAAA;AAC5C,IAAA,OAAO,eAAe,MAAM,CAAA;AAAA,EAC9B,CAAA,EAAG,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AACrB","file":"index.js","sourcesContent":["\"use client\";\n\n// ═══════════════════════════════════════════════════════════════\n// SOLFACES v2 — React Component\n// Gradient-rich SVG avatar with pixel art and liquid glass modes.\n// ═══════════════════════════════════════════════════════════════\n\nimport { useMemo, type SVGAttributes, type CSSProperties } from \"react\";\nimport {\n generateTraits,\n effectiveAccessory,\n SKIN_COLORS,\n EYE_COLORS,\n HAIR_COLORS,\n BG_COLORS,\n type SolFaceTraits,\n type SolFaceTheme,\n} from \"../core/traits\";\nimport { deriveSkinColors, darken, lighten, blend } from \"../core/colors\";\nimport { renderSolFaceSVG } from \"../core/renderer\";\nimport { solFaceAltText } from \"../core/describe\";\nimport { deriveName } from \"../names\";\nimport type { NameFormat } from \"../names\";\n\n/** Props for the `<SolFace>` React component. Extends standard SVG attributes. */\nexport interface SolFaceProps extends Omit<SVGAttributes<SVGSVGElement>, \"viewBox\" | \"xmlns\"> {\n /** Solana wallet address (base58). Deterministically generates the avatar. */\n walletAddress: string;\n /** Avatar size in CSS pixels (width and height). Default: 64. */\n size?: number;\n /** Enable blink animation. Pass `true` for defaults, or an object for custom timing. Default: false. */\n enableBlink?: boolean | {\n /** Interval between blinks in seconds. Default: 4. */\n duration?: number;\n /** Initial delay before first blink in seconds. Default: 0. */\n delay?: number;\n };\n /** Theme configuration for colors, layout, and rendering style. */\n theme?: SolFaceTheme;\n /** Override specific trait indices. Merged on top of the deterministic traits. */\n traitOverrides?: Partial<SolFaceTraits>;\n /** Detail level. \"auto\" uses full detail at size ≥ 48px. Default: \"auto\". */\n detail?: \"full\" | \"simplified\" | \"auto\";\n /** Per-instance color overrides (hex strings). Takes precedence over theme color settings. */\n colorOverrides?: {\n /** Override skin color (hex). */\n skin?: string;\n /** Override eye iris color (hex). */\n eyes?: string;\n /** Override hair color (hex). */\n hair?: string;\n /** Override background color (hex). */\n bg?: string;\n /** Override mouth/lip color (hex). */\n mouth?: string;\n /** Override eyebrow color (hex). */\n eyebrow?: string;\n /** Override accessory accent color (hex). */\n accessory?: string;\n /** Override nose shadow/fill color (hex). */\n nose?: string;\n /** Override eye white (sclera) color (hex). */\n eyeWhite?: string;\n };\n /** Show a derived SolName label next to the avatar. Default: false. */\n showName?: boolean;\n /** Position of the name label relative to the avatar. Default: \"below\". */\n namePosition?: \"below\" | \"above\";\n /** Name display format (e.g. \"display\", \"short\", \"tag\"). Default: \"display\". */\n nameFormat?: NameFormat;\n}\n\n// ─── Helpers ────────────────────────────────────\n\nfunction djb2(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) + hash + str.charCodeAt(i)) | 0;\n }\n return hash >>> 0;\n}\n\n// ─── Hair Back (behind face) ────────────────────\n\nfunction HairBack(_props: { hi: number; id: string; flat: boolean }) {\n return null;\n}\n\n// ─── Ears ───────────────────────────────────────\n\nfunction Ears({ earFill, earShadow }: { earFill: string; earShadow: string }) {\n return (\n <>\n <ellipse cx=\"11\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"11\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n <ellipse cx=\"53\" cy=\"34\" rx=\"4\" ry=\"5\" fill={earFill} />\n <ellipse cx=\"53\" cy=\"34\" rx=\"2.5\" ry=\"3.5\" fill={earShadow} opacity=\"0.3\" />\n </>\n );\n}\n\n// ─── Face Overlays ──────────────────────────────\n\nfunction FaceOverlays({ id }: { id: string }) {\n return (\n <>\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}glow)`} />\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={`url(#${id}chin)`} />\n <ellipse cx=\"22\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cL)`} />\n <ellipse cx=\"42\" cy=\"42\" rx=\"5\" ry=\"3.5\" fill={`url(#${id}cR)`} />\n <line x1=\"20\" y1=\"50\" x2=\"44\" y2=\"50\" stroke=\"currentColor\" strokeWidth=\"0.3\" opacity=\"0.08\" strokeLinecap=\"round\" />\n </>\n );\n}\n\n// ─── Hair Front ─────────────────────────────────\n\nfunction HairFront(_props: { hi: number; id: string; hairCol: string; flat: boolean }) {\n return null;\n}\n\n// ─── Eyes ───────────────────────────────────────\n\nfunction Eyes({ ei, eyeCol, eyeWhite, lidColor, full }: { ei: number; eyeCol: string; eyeWhite: string; lidColor: string; full: boolean }) {\n const lx = 25, rx = 39, y = 33;\n\n const lids = full && ei !== 1 && ei !== 5 ? (\n <>\n <path d={`M${lx - 4} ${y - 1.5} Q${lx} ${y - 4} ${lx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n <path d={`M${rx - 4} ${y - 1.5} Q${rx} ${y - 4} ${rx + 4} ${y - 1.5}`} fill=\"none\" stroke={lidColor} strokeWidth=\"0.5\" opacity=\"0.4\" />\n </>\n ) : null;\n\n switch (ei) {\n case 0:\n return (\n <>\n <circle cx={lx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"4\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 1:\n return (\n <>\n <circle cx={lx} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={lx + 0.5} cy={y - 0.5} r=\"0.5\" fill=\"white\" opacity=\"0.4\" />}\n <circle cx={rx} cy={y} r=\"2.2\" fill={eyeCol} />\n {full && <circle cx={rx + 0.5} cy={y - 0.5} r=\"0.5\" fill=\"white\" opacity=\"0.4\" />}\n </>\n );\n case 2:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"2.8\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"1.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.2} cy={y - 0.8} r=\"0.6\" fill=\"white\" opacity=\"0.7\" />}\n {lids}\n </>\n );\n case 3:\n return (\n <>\n <circle cx={lx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={lx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"5\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 0.5} r=\"2.8\" fill={eyeCol} />\n {full && <circle cx={rx + 1.5} cy={y - 1} r=\"0.8\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n case 4:\n return (\n <>\n <ellipse cx={lx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={lx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={lx - 4.5} y1={y - 0.5} x2={lx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n <ellipse cx={rx} cy={y + 1} rx=\"4\" ry=\"2.2\" fill={eyeWhite} />\n <circle cx={rx} cy={y + 1} r=\"1.5\" fill={eyeCol} />\n {full && <line x1={rx - 4.5} y1={y - 0.5} x2={rx + 4.5} y2={y - 0.5} stroke={lidColor} strokeWidth=\"0.8\" strokeLinecap=\"round\" />}\n {lids}\n </>\n );\n case 5:\n return (\n <>\n <path d={`M${lx - 4} ${y} Q${lx} ${y + 4.5} ${lx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y} Q${rx} ${y + 4.5} ${rx + 4} ${y}`} fill=\"none\" stroke={eyeCol} strokeWidth=\"2\" strokeLinecap=\"round\" />\n </>\n );\n case 6:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={lx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.5} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx + 1.5} cy={y - 1} r=\"1\" fill=\"white\" opacity=\"0.9\" />\n {lids}\n </>\n );\n case 7:\n return (\n <>\n <ellipse cx={lx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={lx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n <ellipse cx={rx} cy={y} rx=\"4.5\" ry=\"1.5\" fill={eyeWhite} />\n <ellipse cx={rx + 0.5} cy={y} rx=\"2.2\" ry=\"1.2\" fill={eyeCol} />\n {lids}\n </>\n );\n case 8: // Side-look — pupils shifted left\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx - 1} cy={y} r=\"2\" fill={eyeCol} />\n {full && <circle cx={lx - 0.3} cy={y - 0.8} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx - 1} cy={y} r=\"2\" fill={eyeCol} />\n {full && <circle cx={rx - 0.3} cy={y - 0.8} r=\"0.7\" fill=\"white\" opacity=\"0.8\" />}\n {lids}\n </>\n );\n default:\n return (\n <>\n <circle cx={lx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={lx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n <circle cx={rx} cy={y} r=\"3.5\" fill={eyeWhite} />\n <circle cx={rx + 0.8} cy={y} r=\"2\" fill={eyeCol} />\n {lids}\n </>\n );\n }\n}\n\n// ─── Eyebrows ───────────────────────────────────\n\nfunction Eyebrows({ bi, browColor, full = true }: { bi: number; browColor: string; full?: boolean }) {\n const lx = 25, rx = 39, y = 27;\n switch (bi) {\n case 0:\n return (\n <>\n <line x1={lx - 3} y1={y} x2={lx + 3} y2={y - 0.5} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y - 0.5} x2={rx + 3} y2={y} stroke={browColor} strokeWidth=\"0.7\" strokeLinecap=\"round\" />\n </>\n );\n case 1:\n return (\n <>\n <line x1={lx - 3.5} y1={y} x2={lx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <line x1={rx - 3.5} y1={y} x2={rx + 3.5} y2={y} stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 2:\n return (\n <>\n <path d={`M${lx - 3.5} ${y + 0.5} Q${lx} ${y - 1.5} ${lx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y + 0.5} Q${rx} ${y - 1.5} ${rx + 3.5} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n case 3:\n return (\n <>\n <path d={`M${lx - 4} ${y + 1} Q${lx} ${y - 3} ${lx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 1} Q${rx} ${y - 3} ${rx + 4} ${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1\" strokeLinecap=\"round\" />\n </>\n );\n case 4:\n return (\n <>\n <polyline points={`${lx - 3},${y + 1} ${lx},${y - 2} ${lx + 3},${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <polyline points={`${rx - 3},${y} ${rx},${y - 2} ${rx + 3},${y + 1}`} fill=\"none\" stroke={browColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </>\n );\n case 5: // Worried\n return (\n <>\n <line x1={lx - 3} y1={y - 1} x2={lx + 3} y2={y + 1} stroke={browColor} strokeWidth=\"1.1\" strokeLinecap=\"round\" />\n <line x1={rx - 3} y1={y + 1} x2={rx + 3} y2={y - 1} stroke={browColor} strokeWidth=\"1.1\" strokeLinecap=\"round\" />\n </>\n );\n case 6: { // Bushy\n const bw = full ? \"2.0\" : \"1.5\";\n return (\n <>\n <path d={`M${lx - 4} ${y + 0.5} Q${lx} ${y - 2} ${lx + 4} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth={bw} strokeLinecap=\"round\" />\n <path d={`M${rx - 4} ${y + 0.5} Q${rx} ${y - 2} ${rx + 4} ${y + 0.5}`} fill=\"none\" stroke={browColor} strokeWidth={bw} strokeLinecap=\"round\" />\n </>\n );\n }\n case 7: // Thin\n return (\n <>\n <path d={`M${lx - 3.5} ${y} Q${lx} ${y - 1.5} ${lx + 3.5} ${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"0.5\" strokeLinecap=\"round\" />\n <path d={`M${rx - 3.5} ${y} Q${rx} ${y - 1.5} ${rx + 3.5} ${y}`} fill=\"none\" stroke={browColor} strokeWidth=\"0.5\" strokeLinecap=\"round\" />\n </>\n );\n default: return null;\n }\n}\n\n// ─── Nose ───────────────────────────────────────\n\nfunction Nose({ ni, noseFill }: { ni: number; noseFill: string }) {\n const cx = 32, y = 39;\n switch (ni) {\n case 0: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n case 1: return <circle cx={cx} cy={y} r=\"1.8\" fill={noseFill} opacity=\"0.5\" />;\n case 2: return <path d={`M${cx - 2} ${y + 1} Q${cx} ${y - 2} ${cx + 2} ${y + 1}`} fill=\"none\" stroke={noseFill} strokeWidth=\"1\" strokeLinecap=\"round\" opacity=\"0.5\" />;\n case 3:\n return (\n <>\n <circle cx={cx - 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n <circle cx={cx + 1.8} cy={y} r=\"1.2\" fill={noseFill} opacity=\"0.4\" />\n </>\n );\n case 4: // Pointed\n return <path d={`M${cx} ${y - 2} L${cx - 2} ${y + 1.5} L${cx + 2} ${y + 1.5} Z`} fill={noseFill} opacity=\"0.4\" />;\n case 5: // Wide\n return <ellipse cx={cx} cy={y} rx=\"3.5\" ry=\"1.5\" fill={noseFill} opacity=\"0.35\" />;\n case 6: // Bridge\n return <line x1={cx} y1={y - 3} x2={cx} y2={y + 1} stroke={noseFill} strokeWidth=\"1.2\" strokeLinecap=\"round\" opacity=\"0.4\" />;\n case 7: // Snub\n return (\n <>\n <circle cx={cx} cy={y + 0.5} r=\"2\" fill={noseFill} opacity=\"0.35\" />\n <ellipse cx={cx} cy={y - 0.5} rx=\"1\" ry=\"0.5\" fill={noseFill} opacity=\"0.15\" />\n </>\n );\n default: return <ellipse cx={cx} cy={y} rx=\"2\" ry=\"1.2\" fill={noseFill} opacity=\"0.35\" />;\n }\n}\n\n// ─── Mouth ──────────────────────────────────────\n\nfunction Mouth({ mi, lipColor, isDark }: { mi: number; lipColor: string; isDark: boolean }) {\n const cx = 32, y = 45;\n const teethCol = isDark ? \"#e8e0d8\" : \"#ffffff\";\n switch (mi) {\n case 0: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 1: return <line x1={cx - 3} y1={y + 1} x2={cx + 3} y2={y + 1} stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />;\n case 2: return <path d={`M${cx - 5} ${y} Q${cx} ${y + 5} ${cx + 5} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />;\n case 3: return <ellipse cx={cx} cy={y + 1} rx=\"2.5\" ry=\"3\" fill={lipColor} opacity=\"0.7\" />;\n case 4: return <path d={`M${cx - 4} ${y + 1} Q${cx + 1} ${y + 1} ${cx + 4} ${y - 1.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.3\" strokeLinecap=\"round\" />;\n case 5:\n return (\n <>\n <path d={`M${cx - 5} ${y} Q${cx} ${y + 6} ${cx + 5} ${y}`} fill={teethCol} stroke={lipColor} strokeWidth=\"1\" />\n <line x1={cx - 4} y1={y + 1.5} x2={cx + 4} y2={y + 1.5} stroke={lipColor} strokeWidth=\"0.3\" opacity=\"0.3\" />\n </>\n );\n case 6: return <path d={`M${cx - 4} ${y + 0.5} Q${cx} ${y + 1.5} ${cx + 4} ${y + 0.5}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n case 7:\n return (\n <>\n <ellipse cx={cx} cy={y + 1} rx=\"3.5\" ry=\"2\" fill={lipColor} opacity=\"0.25\" />\n <path d={`M${cx - 3} ${y} Q${cx} ${y + 2.5} ${cx + 3} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.2\" strokeLinecap=\"round\" />\n </>\n );\n default: return <path d={`M${cx - 4} ${y} Q${cx} ${y + 4} ${cx + 4} ${y}`} fill=\"none\" stroke={lipColor} strokeWidth=\"1.4\" strokeLinecap=\"round\" />;\n }\n}\n\n// ─── Accessory ──────────────────────────────────\n\nfunction Accessory({ ai, accessoryColor: _accessoryColor, glassesColor, earringColor, headbandColor, beautyMarkColor = \"#3a2a2a\", freckleColor = \"#a0785a\", skinColor = \"#E8BA8B\" }: {\n ai: number; accessoryColor: string; glassesColor: string; earringColor: string; headbandColor: string; beautyMarkColor?: string; freckleColor?: string; skinColor?: string;\n}) {\n switch (ai) {\n case 0: return null;\n case 1: return <circle cx=\"40\" cy=\"44\" r=\"0.8\" fill={beautyMarkColor} />;\n case 2:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <circle cx=\"25\" cy=\"33\" r=\"5.5\" />\n <circle cx=\"39\" cy=\"33\" r=\"5.5\" />\n <line x1=\"30.5\" y1=\"33\" x2=\"33.5\" y2=\"33\" />\n <line x1=\"19.5\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"44.5\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 3:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1\">\n <rect x=\"19\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <rect x=\"33\" y=\"29\" width=\"12\" height=\"8\" rx=\"1.5\" />\n <line x1=\"31\" y1=\"33\" x2=\"33\" y2=\"33\" />\n <line x1=\"19\" y1=\"33\" x2=\"14\" y2=\"31\" />\n <line x1=\"45\" y1=\"33\" x2=\"50\" y2=\"31\" />\n </g>\n );\n case 4:\n return (\n <>\n <circle cx=\"10\" cy=\"38\" r=\"1.5\" fill={earringColor} />\n <circle cx=\"10\" cy=\"41\" r=\"2\" fill={earringColor} opacity=\"0.8\" />\n </>\n );\n case 5:\n return <rect x=\"13\" y=\"20\" width=\"38\" height=\"3.5\" rx=\"1.5\" fill={headbandColor} opacity=\"0.85\" />;\n case 6:\n return (\n <g fill={freckleColor} opacity=\"0.35\">\n <circle cx=\"21\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"23\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"19\" cy=\"41.5\" r=\"0.5\" />\n <circle cx=\"43\" cy=\"40\" r=\"0.6\" />\n <circle cx=\"41\" cy=\"42\" r=\"0.5\" />\n <circle cx=\"45\" cy=\"41.5\" r=\"0.5\" />\n </g>\n );\n case 7:\n return (\n <>\n <circle cx=\"10\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n <circle cx=\"54\" cy=\"37\" r=\"1.2\" fill={earringColor} />\n </>\n );\n case 8:\n return (\n <g fill=\"none\" stroke={glassesColor} strokeWidth=\"1.2\">\n <path d=\"M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <path d=\"M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z\" fill={glassesColor} fillOpacity=\"0.15\" />\n <line x1=\"31\" y1=\"32\" x2=\"33\" y2=\"32\" />\n <line x1=\"19\" y1=\"31\" x2=\"14\" y2=\"29\" />\n <line x1=\"45\" y1=\"31\" x2=\"50\" y2=\"29\" />\n </g>\n );\n case 9: {\n const bandBase = lighten(skinColor, 0.3);\n const bandPad = lighten(skinColor, 0.4);\n const bandDot = darken(skinColor, 0.1);\n return (\n <g>\n <rect x=\"38\" y=\"38\" width=\"9\" height=\"4.5\" rx=\"1.2\" fill={bandBase} transform=\"rotate(-15 42 40)\" />\n <rect x=\"39.5\" y=\"38.5\" width=\"6\" height=\"3.5\" rx=\"0.8\" fill={bandPad} transform=\"rotate(-15 42 40)\" />\n <circle cx=\"42.5\" cy=\"40.25\" r=\"0.5\" fill={bandDot} transform=\"rotate(-15 42 40)\" />\n </g>\n );\n }\n case 10: // Left Eyebrow Slit\n return <line x1=\"23\" y1=\"24.8\" x2=\"23.8\" y2=\"29.2\" stroke={skinColor} strokeWidth=\"1.3\" strokeLinecap=\"butt\" />;\n case 11: // Right Eyebrow Slit\n return <line x1=\"41\" y1=\"24.8\" x2=\"40.2\" y2=\"29.2\" stroke={skinColor} strokeWidth=\"1.3\" strokeLinecap=\"butt\" />;\n default: return null;\n }\n}\n\n// ─── Pixel Art Wrapper ──────────────────────────\n\nfunction PixelWrapper({ svgString, size, theme, alt = \"\" }: { svgString: string; size: number; theme: SolFaceTheme; alt?: string }) {\n const scale = size / 64;\n\n const density = theme._pixelDensity ?? 16;\n const rounded = theme._pixelRounded ?? true;\n const outline = theme._pixelOutline ?? false;\n const outlineColor = theme._pixelOutlineColor ?? \"#000\";\n const outlineWidth = Math.max(1, Math.round((theme._pixelOutlineWidth ?? 1) * scale));\n const scanlines = theme._pixelScanlines ?? false;\n const scanlineOpacity = theme._pixelScanlineOpacity ?? 0.08;\n const scanlineSpacing = Math.max(1, Math.round((theme._pixelScanlineSpacing ?? 2) * scale));\n const grid = theme._pixelGrid ?? false;\n const gridOpacity = theme._pixelGridOpacity ?? 0.06;\n const gridColor = theme._pixelGridColor ?? \"#000\";\n const shadow = theme._pixelShadow ?? false;\n const shadowColor = theme._pixelShadowColor ?? \"rgba(0,0,0,0.3)\";\n const shadowOffset = Math.max(1, Math.round((theme._pixelShadowOffset ?? 2) * scale));\n const contrast = theme._pixelContrast;\n const saturation = theme._pixelSaturation;\n const brightness = theme._pixelBrightness;\n\n const dataUri = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgString)}`;\n\n // Build CSS filter string\n const filters: string[] = [];\n if (shadow) filters.push(`drop-shadow(${shadowOffset}px ${shadowOffset}px 0px ${shadowColor})`);\n if (contrast !== undefined) filters.push(`contrast(${contrast})`);\n if (saturation !== undefined) filters.push(`saturate(${saturation})`);\n if (brightness !== undefined) filters.push(`brightness(${brightness})`);\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n ...(filters.length ? { filter: filters.join(\" \") } : {}),\n };\n\n const imgStyle: CSSProperties = {\n width: size,\n height: size,\n imageRendering: \"pixelated\",\n borderRadius: rounded ? \"12%\" : 0,\n display: \"block\",\n border: outline ? `${outlineWidth}px solid ${outlineColor}` : \"none\",\n };\n\n return (\n <div style={containerStyle}>\n <img src={dataUri} width={density} height={density} style={imgStyle} alt={alt} />\n {scanlines && (\n <div style={{\n position: \"absolute\", inset: 0,\n background: `repeating-linear-gradient(0deg, transparent, transparent ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing}px, rgba(0,0,0,${scanlineOpacity}) ${scanlineSpacing + 1}px)`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n {grid && (\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundSize: `${size / density}px ${size / density}px`,\n backgroundImage: `linear-gradient(${gridColor} ${gridOpacity}, transparent ${gridOpacity}), linear-gradient(90deg, ${gridColor} ${gridOpacity}, transparent ${gridOpacity})`,\n pointerEvents: \"none\",\n borderRadius: rounded ? \"12%\" : 0,\n }} />\n )}\n </div>\n );\n}\n\n// ─── Liquid Glass Wrapper ───────────────────────\n\nfunction GlassWrapper({ children, size, theme }: { children: React.ReactNode; size: number; theme: SolFaceTheme }) {\n const scale = size / 64;\n\n const blurRadius = (theme._blurRadius ?? 12) * scale;\n const saturate = theme._saturate ?? 1.8;\n const tintOpacity = theme._tintOpacity ?? 0.12;\n const tintColor = theme._tintColor ?? \"rgba(255,255,255,1)\";\n const borderOpacity = theme._borderOpacity ?? 0.25;\n const borderWidth = Math.max(0.5, (theme._borderWidth ?? 1) * scale);\n const borderColor = theme._borderColor ?? `rgba(255,255,255,${borderOpacity})`;\n const specularOpacity = theme._specularOpacity ?? 0.25;\n const specularColor = theme._specularColor ?? \"rgba(255,255,255,1)\";\n const specularEnd = theme._specularEnd ?? 50;\n const lightAngle = theme._lightAngle ?? 135;\n const rimIntensity = theme._rimIntensity ?? 0.08;\n\n // Decomposed shadow scales with size; legacy _shadow string used as-is for backward compat\n const shadowY = Math.round((theme._shadowY ?? 8) * scale);\n const shadowBlurR = Math.round((theme._shadowBlur ?? 32) * scale);\n const shadowOpacity = theme._shadowOpacity ?? 0.12;\n const shadowStr = theme._shadow ?? `0 ${shadowY}px ${shadowBlurR}px rgba(0,0,0,${shadowOpacity})`;\n\n const bgRadius = (theme.bgRadius ?? 16) * scale;\n\n const containerStyle: CSSProperties = {\n position: \"relative\",\n width: size,\n height: size,\n display: \"inline-block\",\n borderRadius: bgRadius,\n overflow: \"hidden\",\n backdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n WebkitBackdropFilter: `blur(${blurRadius}px) saturate(${saturate})`,\n border: `${borderWidth}px solid ${borderColor}`,\n boxShadow: shadowStr,\n };\n\n return (\n <div style={containerStyle}>\n <div style={{\n position: \"absolute\", inset: 0,\n backgroundColor: tintColor, opacity: tintOpacity,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{ position: \"relative\", zIndex: 1 }}>\n {children}\n </div>\n <div style={{\n position: \"absolute\", inset: 0,\n background: `linear-gradient(${lightAngle}deg, ${specularColor.replace(\"1)\", `${specularOpacity})`)} 0%, transparent ${specularEnd}%)`,\n borderRadius: bgRadius, pointerEvents: \"none\",\n }} />\n <div style={{\n position: \"absolute\", inset: 0,\n borderRadius: bgRadius,\n boxShadow: `inset 0 0 0 1px rgba(255,255,255,${rimIntensity})`,\n pointerEvents: \"none\",\n }} />\n </div>\n );\n}\n\n// ─── Main Component ─────────────────────────────\n\nexport function SolFace({\n walletAddress,\n size = 64,\n enableBlink = false,\n theme,\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n showName = false,\n namePosition = \"below\",\n nameFormat = \"display\",\n className,\n style,\n ...rest\n}: SolFaceProps) {\n const traits = useMemo(\n () => generateTraits(walletAddress, traitOverrides),\n [walletAddress, traitOverrides],\n );\n\n const detailOpt = detailProp ?? \"auto\";\n const full = detailOpt === \"full\" || (detailOpt === \"auto\" && size >= 48);\n const flat = theme?.flat ?? false;\n\n const skinColors = theme?.skinColors ?? SKIN_COLORS;\n const eyeColors = theme?.eyeColors ?? EYE_COLORS;\n const hairColors = theme?.hairColors ?? HAIR_COLORS;\n const bgColors = theme?.bgColors ?? BG_COLORS;\n\n const skin = colorOverrides?.skin ?? skinColors[traits.skinColor % skinColors.length];\n const eyeCol = colorOverrides?.eyes ?? eyeColors[traits.eyeColor % eyeColors.length];\n const hairCol = colorOverrides?.hair ?? hairColors[traits.hairColor % hairColors.length];\n const bgCol = colorOverrides?.bg ?? bgColors[traits.bgColor % bgColors.length];\n\n const derived = useMemo(() => deriveSkinColors(skin), [skin]);\n\n const bgOpacity = theme?.bgOpacity ?? 1;\n const bgRadius = theme?.bgRadius ?? 4;\n const browColor = colorOverrides?.eyebrow ?? theme?.eyebrowColor ?? derived.browColor;\n const noseFill = colorOverrides?.nose ?? theme?.noseColor ?? derived.noseFill;\n const lipColor = colorOverrides?.mouth ?? theme?.mouthColor ?? derived.lipColor;\n const eyeWhite = colorOverrides?.eyeWhite ?? theme?.eyeWhiteColor ?? derived.eyeWhiteAdapted;\n const glassesColor = theme?.glassesColor ?? \"#4a4a5a\";\n const earringColor = theme?.earringColor ?? blend(skin, \"#d4a840\", 0.4);\n const headbandColor = theme?.headbandColor ?? blend(hairCol, \"#c04040\", 0.5);\n const accColor = colorOverrides?.accessory ?? theme?.accessoryColor ?? derived.accessoryColor;\n const earFillFinal = theme?.earColor ?? derived.earFill;\n const lidFinal = theme?.lidColor ?? derived.lidColor;\n const beautyMarkColor = theme?.beautyMarkColor ?? \"#3a2a2a\";\n const freckleColor = theme?.freckleColor ?? \"#a0785a\";\n\n const id = useMemo(() => \"sf\" + djb2(walletAddress).toString(36), [walletAddress]);\n\n const cheekEnabled = theme?.cheekEnabled ?? true;\n const cheekColor = theme?.cheekColor ?? derived.cheekColor;\n const cheekOpacity = theme?.cheekOpacity ?? derived.cheekOpacity;\n\n const hi = traits.hairStyle % 10;\n const ai = effectiveAccessory(traits);\n\n const blinkEnabled = !!enableBlink;\n const blinkDuration = typeof enableBlink === \"object\" ? (enableBlink.duration ?? 4) : 4;\n const blinkDelay = typeof enableBlink === \"object\" ? (enableBlink.delay ?? 0) : 0;\n const delayStr = blinkDelay ? ` ${blinkDelay}s` : \"\";\n\n const bgFill = flat ? bgCol : `url(#${id}bg)`;\n const skinFill = flat ? skin : `url(#${id}sg)`;\n\n // Pixel art mode — use string renderer and wrap in pixel div\n if (theme?._pixel) {\n const pixelSvg = renderSolFaceSVG(walletAddress, {\n size,\n theme: { ...theme, _pixel: false, _glass: false },\n traitOverrides,\n colorOverrides,\n detail: detailProp,\n });\n return <PixelWrapper svgString={pixelSvg} size={size} theme={theme} alt={solFaceAltText(walletAddress)} />;\n }\n\n const svgElement = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 64\"\n width={size}\n height={size}\n className={className}\n style={{ display: \"block\", ...style }}\n role=\"img\"\n aria-label={solFaceAltText(walletAddress)}\n {...rest}\n >\n {!flat && (\n <defs>\n <linearGradient id={`${id}sg`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={derived.skinHi} />\n <stop offset=\"50%\" stopColor={skin} />\n <stop offset=\"100%\" stopColor={derived.skinLo} />\n </linearGradient>\n <linearGradient id={`${id}bg`} x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor={lighten(bgCol, 0.12)} />\n <stop offset=\"100%\" stopColor={darken(bgCol, 0.12)} />\n </linearGradient>\n {full && cheekEnabled && (\n <>\n <radialGradient id={`${id}glow`} cx=\"0.5\" cy=\"0.28\" r=\"0.45\">\n <stop offset=\"0%\" stopColor=\"#ffffff\" stopOpacity={theme?.glowIntensity ?? 0.10} />\n <stop offset=\"100%\" stopColor=\"#ffffff\" stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}chin`} cx=\"0.5\" cy=\"0.85\" r=\"0.35\">\n <stop offset=\"0%\" stopColor={derived.skinLo} stopOpacity={0.30} />\n <stop offset=\"100%\" stopColor={derived.skinLo} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cL`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n <radialGradient id={`${id}cR`} cx=\"0.5\" cy=\"0.5\" r=\"0.5\">\n <stop offset=\"0%\" stopColor={cheekColor} stopOpacity={cheekOpacity} />\n <stop offset=\"100%\" stopColor={cheekColor} stopOpacity={0} />\n </radialGradient>\n </>\n )}\n </defs>\n )}\n\n {blinkEnabled && (\n <style>{`\n @keyframes ${id}-blink {\n 0%, 90%, 100% { transform: scaleY(1); }\n 95% { transform: scaleY(0.1); }\n }\n .${id}-eyes {\n animation: ${id}-blink ${blinkDuration}s ease-in-out${delayStr} infinite;\n transform-origin: 32px 33px;\n }\n `}</style>\n )}\n\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill={bgFill} opacity={bgOpacity} rx={bgRadius} />\n\n {theme?.hairEnabled !== false && <HairBack hi={hi} id={id} flat={flat} />}\n {theme?.earsEnabled !== false && <Ears earFill={earFillFinal} earShadow={derived.earShadow} />}\n <rect x=\"14\" y=\"16\" width=\"36\" height=\"38\" rx=\"12\" ry=\"12\" fill={skinFill} opacity={theme?.skinOpacity ?? 1} />\n\n {full && cheekEnabled && !flat && (theme?.shadowEnabled ?? true) && <FaceOverlays id={id} />}\n\n {theme?.hairEnabled !== false && <HairFront hi={hi} id={id} hairCol={hairCol} flat={flat} />}\n\n {ai === 5 && theme?.accessoriesEnabled !== false && <Accessory ai={5} accessoryColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} beautyMarkColor={beautyMarkColor} freckleColor={freckleColor} skinColor={skin} />}\n\n <g className={blinkEnabled ? `${id}-eyes` : undefined}>\n <Eyes ei={traits.eyeStyle % 9} eyeCol={eyeCol} eyeWhite={eyeWhite} lidColor={lidFinal} full={full} />\n </g>\n\n {theme?.eyebrowsEnabled !== false && <Eyebrows bi={traits.eyebrows % 8} browColor={browColor} full={full} />}\n {theme?.noseEnabled !== false && <Nose ni={traits.nose % 8} noseFill={noseFill} />}\n <Mouth mi={traits.mouth % 8} lipColor={lipColor} isDark={derived.isDark} />\n\n {ai !== 0 && ai !== 5 && theme?.accessoriesEnabled !== false && (\n <Accessory ai={ai} accessoryColor={accColor} glassesColor={glassesColor} earringColor={earringColor} headbandColor={headbandColor} beautyMarkColor={beautyMarkColor} freckleColor={freckleColor} skinColor={skin} />\n )}\n\n {theme?.border && (\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"64\" fill=\"none\" stroke={theme.border.color} strokeWidth={theme.border.width} rx={bgRadius} />\n )}\n </svg>\n );\n\n // Liquid glass mode\n if (theme?._glass) {\n const glassEl = (\n <GlassWrapper size={size} theme={theme}>\n {svgElement}\n </GlassWrapper>\n );\n if (!showName) return glassEl;\n const glassName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n {glassEl}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{glassName}</span>}\n </div>\n );\n }\n\n if (!showName) return svgElement;\n const walletName = deriveName(walletAddress, nameFormat);\n return (\n <div style={{ display: \"inline-flex\", flexDirection: \"column\", alignItems: \"center\", gap: 4 }}>\n {namePosition === \"above\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n {svgElement}\n {namePosition === \"below\" && <span style={{ fontSize: Math.max(10, size / 5), fontFamily: \"inherit\" }}>{walletName}</span>}\n </div>\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport { deriveName, deriveIdentity } from \"../names\";\nimport type { NameFormat, SolNameIdentity } from \"../names\";\n\n/**\n * React hook for deriving a SolName from a wallet address.\n *\n * @param wallet Base58 wallet address\n * @param format Optional name format. If omitted, returns full SolNameIdentity.\n */\nexport function useSolName(wallet: string): SolNameIdentity;\nexport function useSolName(wallet: string, format: NameFormat): string;\nexport function useSolName(\n wallet: string,\n format?: NameFormat,\n): string | SolNameIdentity {\n return useMemo(() => {\n if (format) return deriveName(wallet, format);\n return deriveIdentity(wallet);\n }, [wallet, format]);\n}\n"]}